| Previous | Next |
| VFW_E_DVD_NONBLOCKING | VFW_E_DVD_NON_EVR_RENDERER_IN_FILTER_GRAPH |
VFW_E_DVD_TOO_MANY_RENDERERS_IN_FILTER_GRAPH
Exact result and bit fields
VFW_E_DVD_TOO_MANY_RENDERERS_IN_FILTER_GRAPH has the unsigned HRESULT value 2147746461 (0x8004029D) and the signed 32-bit representation -2147220835. AllStat describes it as “The DVD Graph Builder cannot build a DVD playback filter graph if the EVR and another renderer are in the graph builder's filter graph”. In the operation that produces this result, the DVD graph builder finds both EVR and another video renderer in the filter graph and therefore cannot build a valid DVD playback topology.
The high bit is set, so this value is a failure HRESULT. Its facility field is 4 (FACILITY_ITF) and its low code is 669 (0x029D). These fields classify this result, but they do not identify which filter, thread, device, file or graph generation returned it.
Contract boundary
This result belongs to the legacy DirectShow DVD Navigator contract. DVD state is authored and stateful: domains, user-operation controls, titles, menus, streams, command objects and graph construction each impose different preconditions.
The practical owner to locate for this HRESULT is the DVD Navigator, graph builder, decoder inventory and renderer topology. 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 application pre-adds multiple renderers.
- Cause 2 for this HRESULT: an earlier render attempt left a renderer in the graph.
- Cause 3 for this HRESULT: custom graph code and IDvdGraphBuilder both insert renderer branches.
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 disc identifiers, navigation state, parental settings and media paths.
- Evidence 1 for this HRESULT: complete filter list before RenderDvdVideoVolume.
- Evidence 2 for this HRESULT: renderer CLSIDs and connected pins.
- Evidence 3 for this HRESULT: graph-builder flags and prior cleanup results.
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: the DVD graph builder finds both EVR and another video renderer in the filter graph and therefore cannot build a valid DVD playback topology.
- 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: remove all unintended renderers before DVD graph construction.
- Action 2 for this HRESULT: give one component ownership of renderer selection.
- Action 3 for this HRESULT: recreate the graph when partial build cleanup is uncertain.
Retry and recovery
Retry rule for this HRESULT: Retry after the graph contains only the intended renderer topology. 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 application adds EVR manually but leaves a default Video Renderer from preview setup; removing the extra renderer clears 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_DVD_NON_EVR_RENDERER_IN_FILTER_GRAPH is specifically tied to requesting EVR-only mode with a non-EVR renderer present; this code reports the broader multiple-renderer conflict. 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: IDvdGraphBuilder
- Microsoft: choosing a DirectShow video renderer
Looking for a different code? Search another status or error code.