| Previous | Next |
| NS_E_NO_VALID_OUTPUT_STREAM | NS_E_NO_ACTIVE_SOURCEGROUP |
NS_E_NO_VALID_SOURCE_PLUGIN
Where the Encoder produces this result
0xC00D1B71 (NS_E_NO_VALID_SOURCE_PLUGIN) identifies selection or activation of a source plug-in capable of opening the configured input. The important diagnostic boundary is the Encoder object that validates this state; a later “cannot start encoding” dialog can hide that more precise origin.
Source, transform and device-control extensions are COM plug-ins in a session that returns this result. The Encoder must parse a CLSID, instantiate the registered component, obtain the expected interface and verify that the plug-in supports the selected source or transformation.
What has already succeeded
A registered class can still be the wrong bitness, expose the wrong interface or reject the requested media type in a session that returns this result. In a representative no valid source plugin case, a proprietary URL scheme remains in a.wme file after its plug-in is removed. The result 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 | input scheme/extension, candidate CLSIDs, activation HRESULTs and interface-query results |
| Producing object | CLSID text and binary value, COM registration path and bitness, DLL path/version/signature, requested interface IID, source scheme or transform name, activation HRESULT and access-control result |
| 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 no valid source plugin boundary |
How to read the next observation
| Observation | How to interpret it |
|---|---|
| Observation that supports it | The decisive evidence is input scheme/extension, candidate CLSIDs, activation HRESULTs and interface-query results. It confirms selection or activation of a source plug-in capable of opening the configured input in the same object generation. |
| Observation that points to an earlier failure | The recorded values satisfy the no valid source plugin 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 (selection or activation of a source plug-in capable of opening the configured input), but a codec, archive or broadcast sink then fails in a subsequent stage. |
| Verification after correction | Apply this isolated change: install or select the trusted source plug-in that owns the scheme and media type. The original no valid source plugin call should then advance past the same checkpoint. |
The operational impact of it is limited to the encoder plug-in discovery and activation transition that owns selection or activation of a source plug-in capable of opening the configured input. In the representative case where a proprietary URL scheme remains in a.wme file after its plug-in is removed, keep the first failing call and its object identity so a later wrapper cannot replace the no valid source plugin evidence.
A controlled diagnostic sequence
- Record
0xC00D1B71, it, the Encoder version and the exact API call or property access that returned it. - Export the current
.wmeor.prxconfiguration, then capture input scheme/extension, candidate CLSIDs, activation HRESULTs and interface-query results. - verify the encoder plug-in discovery and activation precondition without changing the source, profile and output sink at the same time.
- Run one controlled comparison in which only this condition changes: install or select the trusted source plug-in that owns the scheme and media type.
- After the change, recreate the affected Encoder object rather than assuming the existing graph discarded its earlier no valid source plugin state.
Nearby HRESULTs that mean something else
| Result | Why it is a different boundary |
|---|---|
NS_E_PLUGIN_CLSID_INVALID | parsing and activation of a COM plug-in class identifier |
NS_E_CODEC_UNAVAILABLE | profile activation when one or more named codecs cannot be instantiated |
NS_E_TRANSFORM_PLUGIN_NOT_FOUND | lookup or activation cannot find the transform plug-in named by the session |
Corrective action at the right layer
The focused correction is to install or select the trusted source plug-in that owns the scheme and media type. A retry is useful only after the recorded no valid source plugin precondition changes.
Do not register downloaded DLLs blindly; preserve the original CLSID mapping and verify provenance, bitness and interface support in a session that returns it.
Technical references
- Retrieving the configured encoder input.
- Preparing a source group for encoding.
- Saving a Windows Media Encoder configuration.
- ICCompressQuery video-compressor format check.
Looking for a different code? Search another status or error code.
