| Previous | Next |
| NS_E_NO_TWOPASS_TIMECOMPRESSION | NS_E_NO_MBR_WITH_TIMECODE |
NS_E_TIMECODE_REQUIRES_VIDEOSTREAM
Diagnostic meaning beyond the standard text
For NS_E_TIMECODE_REQUIRES_VIDEOSTREAM (0xC00D1BD9), the actionable event is timecode generation is enabled in an audio-only profile. Keep the result producing boundary attached to the original Encoder callback or COM call.
Why the session can reach this point
Encoder timecode is tied to a video stream, source capabilities and a selected SMPTE mode in a session that returns this result. Device-control time values include frame-rate and frame-count information, while generated timecode adds compatibility constraints for multiple source groups and MBR profiles.
A source can produce video frames but still lack usable device timecode or violate the topology required for generated timecode in a session that returns this result. One concrete way to reach the condition is that an audio archive inherits timecode settings from a video session. The result test should therefore preserve the object generation and numeric settings, not just a screenshot of the final dialog.
Trace fields with diagnostic value
| Field | What to preserve |
|---|---|
| Decisive values | video stream count, EnableTimecode and profile ContentType |
| Producing object | EnableTimecode flag, StartingTimecode, SMPTE mode, frame rate, drop-frame setting, source support, source-group count, audience count and first timecode sample |
| Session correlation | the same source-group generation, audience index, object identity and callback sequence that produced this result |
| Lower-level evidence | the first COM, driver, file-system or codec HRESULT observed before the Encoder mapped the condition to this result |
| Controlled comparison | a known-good session that changes only the setting named in the timecode requires videostream boundary |
Decision matrix
| Observation | How to interpret it |
|---|---|
| Observation that supports it | The decisive evidence is video stream count, EnableTimecode and profile ContentType. It confirms timecode generation is enabled in an audio-only profile in the same object generation. |
| Observation that points to an earlier failure | The recorded values satisfy the timecode requires videostream rule, but a source, driver, COM activation or file operation returns a different HRESULT first. |
| Observation that points to a later failure | The Encoder passes this boundary (timecode generation is enabled in an audio-only profile), but a codec, archive or broadcast sink then fails in a subsequent stage. |
| Verification after correction | Apply this isolated change: add a video stream or turn off timecode generation. The original timecode requires videostream call should then advance past the same checkpoint. |
The operational impact of it is limited to the smpte timecode generation and validation transition that owns timecode generation is enabled in an audio-only profile. In the representative case where an audio archive inherits timecode settings from a video session, keep the first failing call and its object identity so a later wrapper cannot replace the timecode requires videostream evidence.
Decision path
- Record
0xC00D1BD9, it, the Encoder version and the exact API call or property access that returned it. - Export the current
.wmeor.prxconfiguration, then capture video stream count, EnableTimecode and profile ContentType. - verify the smpte timecode generation and validation precondition without changing the source, profile and output sink at the same time.
- Run one controlled comparison in which only this condition changes: add a video stream or turn off timecode generation.
- After the change, recreate the affected Encoder object rather than assuming the existing graph discarded its earlier timecode requires videostream state.
Codes with similar symptoms but different owners
| Result | Why it is a different boundary |
|---|---|
NS_E_INVALID_TIMECODE | parsing or range validation of the configured starting timecode |
NS_E_NO_MBR_WITH_TIMECODE | generated timecode is combined with multiple-bit-rate audiences |
NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS | generated or source timecode is requested in a session with multiple source groups |
Safe recovery
Resolve the producing condition by ensuring that you add a video stream or turn off timecode generation. Then rebuild only the portion of the Encoder graph affected by it and verify the original call.
Do not convert timecode to wall-clock strings before preserving the raw frame count, frame-rate code and drop-frame mode in a session that returns it.
Source material
- WMTIMECODE device-control structure.
- WMEncoder.StartingTimecode.
- WMEncoder.EnableTimecode.
- Detecting profile compatibility.
Looking for a different code? Search another status or error code.