Dynamic Decoder Switch for Video Playback Continuity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software video players based on Microsoft DirectShow face challenges in dynamically changing between decoder filters and decoding modes, particularly when transitioning between video formats or switching between software and hardware decoding, without adequately supporting these changes without disrupting the entire filter graph or requiring complex modifications to the source filter.

Innovation Solution

A method is introduced that allows dynamic changes in a software video player by learning from input pins, recording states of decoder and renderer filters, stopping and resetting them while maintaining the source filter's state, and using specific functions like ReconnectEX or Connect to set new media types, enabling seamless transitions between decoder filters and decoding modes without involving the application layer in complex connection management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the entire filter graph is stopped to change decoder filters, then decoder filter switching is achieved, but video playback is interrupted and user experience deteriorates

Engineering Contradiction:
Improvedecoder filter switching capabilityVSAvoidvideo playback continuity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The filter graph is segmented into independent sections: the source filter section that continues running and the decoder filter section that can be stopped and replaced. This allows selective stopping of only the decoder filter while keeping the rest of the playback pipeline active, resolving the contradiction between decoder switching and playback continuity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The decoder filter is designed to be dynamically replaceable during playback without requiring a complete system shutdown. The architecture supports dynamic loading and switching of decoder filters based on video format requirements, enabling adaptive decoder selection while maintaining ongoing playback operations.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If complex modifications are made to the source filter to support dynamic changes, then decoder switching flexibility is improved, but source filter complexity increases significantly

Engineering Contradiction:
Improvedynamic decoder switching flexibilityVSAvoidsource filter complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The dynamic decoder switching functionality is extracted from the source filter and implemented as a separate mechanism. The source filter remains simple and unchanged, while a dedicated decoder filter management system handles the complexity of dynamic switching, format detection, and filter replacement operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

An intermediary decoder filter interface is introduced that standardizes the connection between the source filter and various decoder implementations. This intermediary layer abstracts the complexity of dynamic switching, allowing the source filter to remain simple while supporting flexible decoder changes through a standardized interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If DirectShow solutions are used for dynamic graph building, then some dynamic changes are supported, but certain scenarios require stopping the entire filter graph

Engineering Contradiction:
Improvedynamic graph building capabilityVSAvoiddecoder filter switching without interruption
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The filter graph is divided into separable segments where the decoder filter is an independent, replaceable component. This segmentation enables DirectShow to manage dynamic changes at the decoder level without requiring interruption of the entire graph, as the source filter and renderer filter remain active while only the decoder section is replaced.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8155205B2Dynamic decoder switch
Publication Date: 2012.04.10 HANGZHOU ARCVIDEO TECHNOLOGY CO LTD
  • US8155205B2 patent drawing
  • US8155205B2 patent drawing
  • US8155205B2 patent drawing

AI summary

A method provides for dynamic changes in a software video player. The method includes learning of a dynamic change from an input pin of a decoder filter, recording states of the decoder filter and a renderer filter, stopping the decoder and the renderer filters without changing a state of a source filter, and setting parameters for an output pin of the decoder filter. The parameters include setting a decoding mode. If the decoder filter output pin and a renderer filter input pin remain connected, a ReconnectEX function is used to set a new media type at the decoder filter output pin. Otherwise the method calls a Connect function to connect the pins and set the new media type. The method further includes changing to a decoder core in the decoder filter appropriate for the dynamic change and restoring the decoder and the renderer filters back to their original states.