| Previous | Next |
| NS_E_INVALID_VIDEO_FPS | NS_E_INVALID_VIDEO_IQUALITY |
NS_E_INVALID_VIDEO_KEYFRAME
Diagnostic meaning beyond the standard text
For NS_E_INVALID_VIDEO_KEYFRAME (0xC00D1BC6), the actionable event is key-frame interval or spacing is rejected by the codec. Keep the result producing boundary attached to the original Encoder callback or COM call.
Why the session can reach this point
The video profile selects a codec and rate-control mode, then supplies bitrate, peak rate, frame rate, frame size, key-frame spacing, quality, buffer and optional interlace or pixel-aspect settings in a session that returns this result. The codec validates both values and combinations.
A source preview does not prove that the output profile is accepted; output dimensions and rate-control settings are validated by the selected encoder codec in a session that returns this result. One concrete way to reach the condition is that frames are passed to a field expressed in milliseconds. 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 | key-frame setting and units, frame rate, codec and rate-control mode |
| Producing object | audience index, codec FOURCC/index, VBR mode, width and height, frame rate, average and peak bitrate, buffer values, key-frame interval, quality values, interlace mode and pixel aspect ratio |
| 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 invalid video keyframe boundary |
Decision matrix
| Observation | How to interpret it |
|---|---|
| Observation that supports it | The decisive evidence is key-frame setting and units, frame rate, codec and rate-control mode. It confirms key-frame interval or spacing is rejected by the codec in the same object generation. |
| Observation that points to an earlier failure | The recorded values satisfy the invalid video keyframe 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 (key-frame interval or spacing is rejected by the codec), but a codec, archive or broadcast sink then fails in a subsequent stage. |
| Verification after correction | Apply this isolated change: choose a codec-supported interval using the correct time unit. The original invalid video keyframe call should then advance past the same checkpoint. |
The operational impact of it is limited to the video stream and audience settings transition that owns key-frame interval or spacing is rejected by the codec. In the representative case where frames are passed to a field expressed in milliseconds, keep the first failing call and its object identity so a later wrapper cannot replace the invalid video keyframe evidence.
Decision path
- Record
0xC00D1BC6, it, the Encoder version and the exact API call or property access that returned it. - Export the current
.wmeor.prxconfiguration, then capture key-frame setting and units, frame rate, codec and rate-control mode. - verify the video stream and audience settings precondition without changing the source, profile and output sink at the same time.
- Run one controlled comparison in which only this condition changes: choose a codec-supported interval using the correct time unit.
- After the change, recreate the affected Encoder object rather than assuming the existing graph discarded its earlier invalid video keyframe state.
Codes with similar symptoms but different owners
| Result | Why it is a different boundary |
|---|---|
NS_E_INVALID_VIDEO_FPS | output frame-rate value is outside the codec/profile constraints |
NS_E_INVALID_VIDEO_IQUALITY | video image-quality/sharpness control is outside its permitted range |
NS_E_INVALID_VIDEO_HEIGHT | output video height fails codec or profile range validation |
Safe recovery
Resolve the producing condition by ensuring that you choose a codec-supported interval using the correct time unit. Then rebuild only the portion of the Encoder graph affected by it and verify the original call.
Do not rely on the UI label alone; record the numeric profile fields and codec identity before changing presets in a session that returns it.
Source material
- Selecting a video codec for an audience.
- IWMEncProfile2.VBRMode.
- IWMEncVideoSource2.Width and live capture sizing.
- Non-square pixel mode in an encoder profile.
Looking for a different code? Search another status or error code.
