Skip to content

Shell accepts any core: a stub encoder or no-op compositor in a real build is silent #762

Description

@iamfatness

Symptom. Two real-build fallbacks leave a stub in place with nothing shown to the operator.

  • If MFStartup fails, the core keeps StubRecordingEncoderSink ("software-counting"): Record reports recording, a program path and a growing byte count, and writes no file.
  • If D3D11CreateDevice fails, the core keeps CpuNoopCompositor: frames report live with advancing numbers and nothing is composed. (This is the 2026-09-10 "software Stub core looked healthy" incident.)

Cause (read, not run). The core records failed-to-construct and marks program-recording/iso-recording unavailable, but NativeMediaCoreProfileValidator (13 required capabilities) has no non-test caller and the handshake checks nothing. No post-Stop check that the recording file exists was found.

Done when. The shell validates the profile at handshake and refuses to go on air, with a named reason, on a software compositor or the counting encoder; the core rejects start-recording-session when its encoder is the stub. See also #741 (fake Zoom session when the engine path is unset).

Found by the 2026-10-02 half-wired-feature audit, by reading code on main (8b84a8f). Not yet reproduced in the running app unless stated.

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