Skip to content

Headless media A/V pattern reaches Program video but not audio #705

Description

@iamfatness

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:

  1. node scripts/qa/program-buffer-recorded-av.mjs --native-core native/build-dev/corevideo-native.exe --output-dir artifacts/issue-703-media-playout
  2. Inspect the generated report.json and recorded Program.mp4 at Program buffer depths 2 and 3.

Source flash-beep.mp4 preflight 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 (volumedetect max −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) and recorded-av-1790702263397-2de7978e/ (PCM MOV).

Investigate Media Foundation audio reader → MediaTransports::run audio 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.

Activity

  1. added 2 commits that reference this issue on Sep 29, 2026
  2. iamfatness commented on Sep 29, 2026

    @iamfatness
    OwnerAuthor

    Root cause found and fixed in PR #706 (cdb261a9): SourceAudioIngress requested media PCM with the synthetic render-frame timestamp (~0 ms), while the transport decoder's audio demand and queue use steady_clock. The source's video reached Program, but PCM windows were stranded. The fix uses the existing monotonic nowNs for media popAudio; 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.

  3. added a commit that references this issue on Sep 29, 2026
  4. iamfatness commented on Sep 29, 2026

    @iamfatness
    OwnerAuthor

    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.

  5. added a commit that references this issue on Sep 29, 2026
  6. iamfatness commented on Oct 3, 2026

    @iamfatness
    OwnerAuthor

    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:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogRanked in docs/BACKLOG.md

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions