| Previous | Next |
| NS_E_INPUT_DOESNOT_SUPPORT_SMPTE | NS_E_BAD_CONTENTEDL |
NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS
Where the Encoder produces this result
0xC00D1BA9 (NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS) identifies generated or source timecode is requested in a session with multiple source groups. For NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS, the important diagnostic boundary is the Encoder object that validates this state; a later “cannot start encoding” dialog can hide that more precise origin.
Encoder timecode is tied to a video stream, source capabilities and a selected SMPTE mode in a session that returns NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS. Device-control time values include frame-rate and frame-count information, while generated timecode adds compatibility constraints for multiple source groups and MBR profiles at the no smpte with multiple sourcegroups checkpoint.
What has already succeeded
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 NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS. In a representative no smpte with multiple sourcegroups case, a live-switching session tries to maintain one continuous SMPTE counter across unrelated groups. The NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS observation should be tested at the producing object instead of being treated as a general codec or operating-system failure.
State snapshot to capture
| Field | What to preserve |
|---|---|
| Decisive values | source-group count, active-switching plan and timecode mode |
| 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 NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS |
| Lower-level evidence | the first COM, driver, file-system or codec HRESULT observed before the Encoder mapped the condition to NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS |
| Controlled comparison | a known-good session that changes only the setting named in the no smpte with multiple sourcegroups boundary |
How to read the next observation
| Observation | How to interpret it |
|---|---|
| Observation that supports this result | The decisive evidence is source-group count, active-switching plan and timecode mode. It confirms generated or source timecode is requested in a session with multiple source groups in the same object generation. |
| Observation that points to an earlier failure | The recorded values satisfy the no smpte with multiple sourcegroups 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 (generated or source timecode is requested in a session with multiple source groups), but a codec, archive or broadcast sink then fails in a subsequent stage. |
| Verification after correction | Apply this isolated change: encode one source group per timecode timeline or disable generated timecode. The original no smpte with multiple sourcegroups call should then advance past the same checkpoint. |
The operational impact of NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS is limited to the smpte timecode generation and validation transition that owns generated or source timecode is requested in a session with multiple source groups. For NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS, it does not, by itself, prove that every input is corrupt, every codec is missing or the complete Windows Media installation is unusable. In the representative case where a live-switching session tries to maintain one continuous SMPTE counter across unrelated groups, keep the first failing call and its object identity so a later wrapper cannot replace the no smpte with multiple sourcegroups evidence.
A controlled diagnostic sequence
- Record
0xC00D1BA9,NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS, the Encoder version and the exact API call or property access that returned it. - Export the current
.wmeor.prxconfiguration, then capture source-group count, active-switching plan and timecode mode. - For
NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS, 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: encode one source group per timecode timeline or disable generated timecode.
- After the change, recreate the affected Encoder object rather than assuming the existing graph discarded its earlier no smpte with multiple sourcegroups state.
Nearby HRESULTs that mean something else
| Result | Why it is a different boundary |
|---|---|
NS_E_INPUT_DOESNOT_SUPPORT_SMPTE | selected source cannot provide the SMPTE timecode requested from it |
NS_E_INVALID_TIMECODE | parsing or range validation of the configured starting timecode |
NS_E_TIMECODE_REQUIRES_VIDEOSTREAM | timecode generation is enabled in an audio-only profile |
Corrective action at the right layer
For NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS, the focused correction is to encode one source group per timecode timeline or disable generated timecode. A retry is useful only after the recorded no smpte with multiple sourcegroups precondition changes.
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 NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS.
Technical references for NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS
- WMTIMECODE device-control structure.
- WMEncoder.StartingTimecode.
- WMEncoder.EnableTimecode.
- Detecting profile compatibility.
Looking for a different code? Search another status or error code.