| Previous | Next |
| NS_E_NO_REALTIME_TIMECOMPRESSION | NS_E_UNEXPECTED_DISPLAY_SETTINGS |
NS_E_UNSUPPORTED_ENCODER_DEVICE
Diagnostic meaning beyond the standard text
For NS_E_UNSUPPORTED_ENCODER_DEVICE (0xC00D1B87), the actionable event is opening a device that enumerates but is not supported by the Encoder source plug-in. Keep the result producing boundary attached to the original Encoder callback or COM call.
Why the session can reach this point
A live video source passes through device opening, capture-format negotiation, optional clipping and preview-window setup before an encoder codec accepts the frames in a session that returns this result. Width, height, pixel format and driver state belong to this boundary.
Seeing a device in enumeration or obtaining a preview frame does not establish that the requested capture format can be delivered continuously to the encoder in a session that returns this result. One concrete way to reach the condition is that a rendering-only or control-only device is selected as a capture source. 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 | device category, moniker, exposed interfaces, native formats and plug-in selection |
| Producing object | device moniker, driver version, requested and native width/height, frame rate, BITMAPINFOHEADER compression and bit depth, preview state, source-plug-in result and first driver error |
| 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 unsupported encoder device boundary |
Decision matrix
| Observation | How to interpret it |
|---|---|
| Observation that supports it | The decisive evidence is device category, moniker, exposed interfaces, native formats and plug-in selection. It confirms opening a device that enumerates but is not supported by the Encoder source plug-in in the same object generation. |
| Observation that points to an earlier failure | The recorded values satisfy the unsupported encoder device 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 (opening a device that enumerates but is not supported by the Encoder source plug-in), but a codec, archive or broadcast sink then fails in a subsequent stage. |
| Verification after correction | Apply this isolated change: use a capture device/interface supported by the installed Encoder components. The original unsupported encoder device call should then advance past the same checkpoint. |
The operational impact of it is limited to the video capture and compressor negotiation transition that owns opening a device that enumerates but is not supported by the Encoder source plug-in. In the representative case where a rendering-only or control-only device is selected as a capture source, keep the first failing call and its object identity so a later wrapper cannot replace the unsupported encoder device evidence.
Decision path
- Record
0xC00D1B87, it, the Encoder version and the exact API call or property access that returned it. - Export the current
.wmeor.prxconfiguration, then capture device category, moniker, exposed interfaces, native formats and plug-in selection. - verify the video capture and compressor negotiation precondition without changing the source, profile and output sink at the same time.
- Run one controlled comparison in which only this condition changes: use a capture device/interface supported by the installed Encoder components.
- After the change, recreate the affected Encoder object rather than assuming the existing graph discarded its earlier unsupported encoder device state.
Codes with similar symptoms but different owners
| Result | Why it is a different boundary |
|---|---|
NS_E_NO_DATAVIEW_SUPPORT | request for Encoder Video panel data from a source or output path that cannot expose preview samples |
NS_E_UNEXPECTED_DISPLAY_SETTINGS | screen-capture session detects display geometry or color-depth changes after configuration |
NS_E_INCORRECTCLIPSETTINGS | validation of crop margins against source dimensions |
Safe recovery
Resolve the producing condition by ensuring that you use a capture device/interface supported by the installed Encoder components. Then rebuild only the portion of the Encoder graph affected by it and verify the original call.
Do not keep retrying an unstable capture driver in the same process after preserving the first error; close the graph and test one known-native format in a fresh process in a session that returns it.
Source material
- IWMEncVideoSource2.Width and live capture sizing.
- BITMAPINFOHEADER structure.
- ICCompressQuery video-compressor format check.
- Retrieving the configured encoder input.
Looking for a different code? Search another status or error code.