upstream contributions
Bugs reported to, and fixed in, other people's projects.
Most of these came out of building something else and hitting a wall: a spatial-audio streaming stack, a studio monitoring setup, a listening-test harness, a home network. The pattern is usually the same – a thing behaves impossibly, the cause turns out to be upstream, and the fix belongs there rather than in a local workaround.
Status is hand-maintained; follow the links for the real, current state.
Spatial audio and rendering
- Binaural rendering silently outputs digital black below 32-sample host buffers, with no error, log or UI indication – #126, open
- Renderer leaves output channels above its bus count unwritten, passing raw pre-render substream audio downstream – #127, open
- Bundled Boost 1.86.0 fails to compile under recent Clang:
templatekeyword misuse inboost::qvm, fixed upstream in 1.87.0+ – #128, open -
CGWindowListCreateImageobsoleted under the macOS 15 SDK, blocking the build – #10, open
- Powermap’s webcam selector opens the wrong device, and a failed or cleared switch leaves stale video on screen with no indication – #123, open
leomccormack/sparta-reaper-examples
- Powermap visualisations over video or a still image – #1, open
- Version mismatch in package metadata – #19, closed
Streaming stack
The HOA 360 livestream work. See ambisonic-box for what these were found with.
EnvelopSound/Earshot – maintainer since August 2026. 12 merged pull requests:
- Align track starts at the relay so DASH output carries no video edit list, the server-side half of a cross-browser A/V desync – #53, merged
- Enable libvpx in ffmpeg so VP9 is actually available – #54, merged
- Clear the DASH directory contents instead of
rm -rfon the mount – #55, merged - nginx: emit relative redirects so a mapped host port survives directory redirects – #56, merged
- Allow building without
--enable-nonfreefor a redistributable image – #57, merged - Floor DASH
suggestedPresentationDelayto avoid live-join gap-jumps – #58, merged - Decouple the DASH manifest filename from the RTMP stream key – #59, merged
- Raise RTMP
max_messageso 4K keyframes are not dropped – #60, merged - Raise the yarn network timeout so slower hosts can build the webtools image – #61, merged
- CI: make the workflows run again (actions v4, Compose v2, failure diagnostics) – #62, merged
- Test: push a real video track in CI, matching the default
-c:v copypath, sotestgoes green again after #62 – #63, merged - Resume the AudioContext from the gain slider’s
onChangeinstead of a leakingwindowlistener; supersedes #26, closes a “no audio playback in Chrome” bug open since 2021 and previously misdiagnosed as an HTTPS/CDN problem – #64, merged
- Resume the AudioContext on the combined-MPD path, which was silent on every browser enforcing the autoplay policy – #30, open
-
HoastLoader.concatBuffers()reads source channel 0 for every destination in a higher-order group, so 10 of 12 third-order filter channels load the wrong decoding filter – #31, open - Gate on a real Opus decode –
decodeAudioDataon anOfflineAudioContext, which needs no user gesture and no MediaSource – instead of an advisorycanPlayType/isTypeSupportedcheck that a browser can pass and then still fail to decode; separates the ChromeDirectOpusAudioDecodingfield-trial failure from a browser with no usable Opus decode at all, and names the flag that restores playback – #32, open
- Mobile orientation controls, renderer sizing and a three.js deprecation:
Math.clampdoes not exist,rotateLeft/rotateUpare never exposed on the OrbitControls instance so the render loop dies on any device with an orientation sensor, and the mono renderer is never resized after a zero-size init – #28, open
Browsers and standards
MSE empty-edit presentation offset – the same underlying finding, filed against every engine it touches. Each one turned out to be inconsistent in its own direction; see the engineering write-up for the technical detail.
- Chromium – drops the offset in MSE, applies it in progressive
<video src>playback – 537235698, open, engaged - Firefox (Mozilla) – the mirror image: applies the offset in MSE, drops it in progressive
<video src>playback – 2056945, open (triaged, low priority) - Safari (WebKit) – same inconsistency as Chromium’s – 319998, closed as a duplicate: already fixed by unrelated work (bug 316870)
- w3c/media-source – spec-clarification issue on the same divergence – #377, open
Multichannel Opus decode regression – a Chrome 151 field trial, DirectOpusAudioDecoding, breaks every Opus decode above 2 channels in both decodeAudioData and MSE playback.
- Chromium – 547065816, open, engaged. Reproduction: opus-multichannel-repro, live check
Capture and encoding
- The hexadecagonal (16-channel) format disappeared from audio device properties in 27.0.x – #66, closed
- 20-channel audio streaming – #67, closed
- Failed to create audio encoder on the advanced output – #70, closed
- Virtual camera installation – #71, open
- ffmpeg compilation for MPEG-H 3D Audio support – #8, open
- Request: MPEG-H 3D Audio – #2654, open
- MPEG-H 3D Audio – #128, closed
- Windows 10 build stops with
'test' is not recognized– #382, closed
Infrastructure and networking
Found running a studio monitoring stack.
- A device with a
nic-typed parent gets an endless one-directional Connected/Disconnected event stream instead of tracking its own presence – #1736, open - Skip Repeated Notifications is silently inert in most timezones, a UTC/localtime mismatch in the cooldown comparison – #1737, open
- A device’s free-text
devCommentscontaining a bare<crashes the whole notification build, silently dropping every pending alert in that cycle – #1743, open
-
tailscaledSIGBUS on 32-bit ARM during an ML-KEM (X25519MLKEM768) TLS handshake – #20827, open. A community write-up of the practical fix is under Community and hardware.
- Access Restrictions’ SSH checkbox generates
RETURNinstead ofACCEPT, so the rule does nothing – #989, open
Statistics and plotting
-
missing value where TRUE/FALSE needed– #15, open
- Counting zero occurrences of promoters, passives and detractors – #1, open
Community and hardware
Not an issue tracker, but the same pattern: hit a wall, worked out why, shared the fix.
Seeed Studio Grove Water Level Sensor
- The official library was Arduino-only; wrote and shared a working MicroPython port for Raspberry Pi, with a demo video. Seeed’s own staff asked to adopt it into their wiki – forum thread, shared
Asuswrt-Merlin community (SNBForums)
- A persistent, working Tailscale setup for 32-bit ARM Merlin firmware (RT-AX58U_V2, gnuton fork), including the fix for the SIGBUS crash reported as tailscale/tailscale#20827 above – forum thread, shared
Prepared, not yet sent
- Two crash guards: a
SegmentTimelinethat may carry noSelements, and the embedded-caption path assuming ISOBMFF and crashing on WebM segments. Written against currentdevelopmentwith four unit tests that fail without the change – waiting on the DASH-IF Feedback Agreement, required before review