Repository navigation
Headless media A/V pattern reaches Program video but not audio #705
Description
Activity
Root cause found and fixed in PR #706 (
cdb261a9):SourceAudioIngressrequested media PCM with the synthetic render-frame timestamp (~0 ms), while the transport decoder's audio demand and queue usesteady_clock. The source's video reached Program, but PCM windows were stranded. The fix uses the existing monotonicnowNsfor mediapopAudio; the source-bus/mixer architecture is unchanged.Windows Release proof with real D3D11 + Media Foundation core:
node scripts/qa/program-buffer-recorded-av.mjs --native-core <#705 Release core> --output-dir artifacts/issue-705-media-playout(harness from #703). Report:stream-sync-703/artifacts/issue-705-media-playout/recorded-av-1790708177822-04d11c2d/report.json. Both Program recordings have non-silent media PCM (~-6 dBFS input peak) and seven identified A/V cues. Source-corrected audio is +16.0 ms late at depth 2, +19.4 ms late at depth 3. The depth-3 one-frame and both frame-delivery gates stay red (2 buffer underruns each), and installed app playback has not been checked. #703 owns the stream/output comparison.The new regression test passed locally in the 1,263-test native stub suite and on Linux CI after removing an uptime assumption. It rejects a render timestamp sent to the media demand clock.
- added a commit that references this issue
on Sep 29, 2026 - added a commit that references this issue
on Sep 29, 2026 PR #706 merged the headless media PCM clock fix, but the issue requested an installed-app check before treating this as a product regression. That installed check is still missing, so this issue remains open for that acceptance. The Release core recording and CI evidence are in the PR and the prior issue comment.
- added a commit that references this issue
on Sep 29, 2026 Re-ran the repro on main 88eae0d (dev D3D11 core, same harness:
node scripts/qa/program-buffer-recorded-av.mjs --native-core native/build-dev/corevideo-native.exe --output-dir artifacts/issue-705-repro --depth 3). The media audio is no longer silent: recorded Program audio carries all the beeps (mediaPeakDbfs −6.1 dBFS, 361 audio packets decoded, pulses matched to flashes), so the failure described here is gone with the slice-8 timestamp work (#719–#723). Report:artifacts/issue-705-repro/recorded-av-1791025517300-dac8753c/on the dev box, not committed.Two things remain and belong elsewhere:
- The live audio-mix node still says
No native PCM has been mixed for media; meters are held at silence for that channelwhile media PCM is audibly in the recording (mixedFrameCount 324). That is a wrong diagnostic, not a wrong mix; logged on Diagnostics that over-claim or are permanently empty #766. - A/V offset: audio lagged video by a median of 26 ms (max 36 ms) in this run, with one interior pulse unmatched, which is Recorded A/V harness: media audio lands 13-18 ms after video, straddling the one-frame gate #750's territory; measurement posted there.
- The live audio-mix node still says
During #703 test-pattern work on Windows Release
38690bfe, the headless media-source route played the generated A/V clip's video into Program but produced a silent Program audio track. This is a reproducible test-path failure; installed app behavior has not yet been checked.Repro:
node scripts/qa/program-buffer-recorded-av.mjs --native-core native/build-dev/corevideo-native.exe --output-dir artifacts/issue-703-media-playoutreport.jsonand recordedProgram.mp4at Program buffer depths 2 and 3.Source
flash-beep.mp4preflight passes all eight identified flash/beep pairs at median video−audio −0.04 ms; it is H.264 1080p60 with stereo AAC 48 kHz. The engine media source is live and the flashes appear in recorded video, but the recorded audio is silent (volumedetectmax −91 dBFS). The harness's sampled media mixer input peak stays −120 dBFS on both depths. The same failure occurred with a PCM MOV control, so it is not yet attributed to AAC. Reports and artifacts:artifacts/issue-703-media-playout/recorded-av-1790702134903-aafb01c4/(AAC) andrecorded-av-1790702263397-2de7978e/(PCM MOV).Investigate Media Foundation audio reader →
MediaTransports::runaudio queue →popAudio→ source bus/strip. Add a test that fails if the audio cues do not reach Program. Confirm whether the installed app has the same behavior before calling this a product regression. Do not claim A/V alignment from video-only media playout.Related: #703. No backlog rank requested.