| Previous | Next |
| VFW_E_RPZA | VFW_E_UNSUPPORTED_AUDIO |
VFW_E_PROCESSOR_NOT_SUITABLE
Exact result and bit fields
VFW_E_PROCESSOR_NOT_SUITABLE has the unsigned HRESULT value 2147746395 (0x8004025B) and the signed 32-bit representation -2147220901. AllStat describes it as “ActiveMovie cannot play MPEG movies on this processor”. In the operation that produces this result, an ActiveMovie-era MPEG playback path determines that the processor cannot execute the required decoder implementation.
The high bit is set, so this value is a failure HRESULT. Its facility field is 4 (FACILITY_ITF) and its low code is 603 (0x025B). These fields classify this result, but they do not identify which filter, thread, device, file or graph generation returned it.
Contract boundary
This result is a DirectShow contract failure whose owner must be identified from the exact interface, filter instance, graph generation and operation stage.
The practical owner to locate for this HRESULT is the filter graph, device or persisted configuration that first returned the result. When handling this result, capture the native result before a wrapper replaces it with a generic exception, and keep the graph generation or object identity with the record.
Conditions that can produce it
- Cause 1 for this HRESULT: the decoder requires instruction-set support unavailable on the CPU.
- Cause 2 for this HRESULT: an obsolete software decoder applies a historical processor check.
- Cause 3 for this HRESULT: virtualization masks processor features expected by the component.
Evidence worth preserving
Log the interface and method, filter CLSID and friendly name, process and thread, graph state, connected pin names, media-type summary, renderer or device identity where relevant, and the first preceding HRESULT. Record lengths and hashes instead of raw content when the incident includes media paths, device identifiers, registry values and stream metadata.
- Evidence 1 for this HRESULT: CPU architecture and exposed feature flags.
- Evidence 2 for this HRESULT: decoder module and version.
- Evidence 3 for this HRESULT: whether hardware or alternate software decoding is available.
Step-by-step diagnosis
- Capture it at the first native return, not only at the top-level playback failure.
- identify the exact graph stage described here: an ActiveMovie-era MPEG playback path determines that the processor cannot execute the required decoder implementation.
- compare the live object state, topology and input with the documented interface preconditions.
- Before changing filters, drivers, registry data or media for this HRESULT, collect the code-specific evidence below.
- Test one evidence-backed the correction on the smallest reproducible graph.
- Verify that the corrected run no longer returns it and does not merely replace it with a nearby HRESULT.
Correction strategy
- Action 1 for this HRESULT: select a decoder compatible with the target processor.
- Action 2 for this HRESULT: transcode legacy MPEG content for constrained systems.
- Action 3 for this HRESULT: avoid bypassing processor checks without validating decoder safety.
Retry and recovery
Retry rule for this HRESULT: Retry after choosing a compatible decoder or execution environment; repeated graph construction does not add CPU capabilities. A safe it retry must use a changed capability, state, object generation or input. While recovering from it, preserve cancellation and avoid replaying side effects when the original operation may have partially completed.
Example incident
An archived MPEG file plays on newer desktops but fails in an old virtual appliance whose decoder rejects the exposed CPU; replacing that decoder removes it. This example keeps the diagnosis at the specific the boundary instead of treating every DirectShow failure as a codec reinstall problem.
How it differs from nearby results
VFW_E_UNSUPPORTED_VIDEO describes an unsupported stream format, whereas it states that the chosen playback implementation rejects the processor. Keep those cases separate in telemetry, UI messages and retry policy because their next actions are different.
Implementation notes
Code that handles it should preserve the original HRESULT, the failed stage and an opaque correlation identifier. After it, do not infer success from partial graph construction, and do not continue using interfaces retained from a graph or device generation that has already changed.
Operational remediation for this HRESULT should favor supported component installation, device configuration and documented DirectShow calls. Manual registry or driver changes are appropriate only when the collected evidence for this HRESULT points to that layer and a rollback is available.
Official Microsoft references
- Microsoft: DirectShow error and success codes
- Microsoft: overview of DirectShow graph building
- Microsoft: using the Filter Mapper
Looking for a different code? Search another status or error code.
