Concurrent Video Buffer Queue Switching for Seamless Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional video-playing techniques experience interruptions and reduced efficiency when switching between different rendering techniques, as they require destroying and recreating video buffer queues and allocating new memory, leading to a non-smooth video playback experience.
Innovation Solution
Implementing a system that manages two video buffer queues concurrently, allowing for seamless switching between rendering techniques without the need to destroy or recreate queues, thereby maintaining continuous video playback and reducing developer workload.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the current BufferQueue is destroyed and a new BufferQueue is created when switching rendering techniques, then the rendering technique can be changed, but the video playback becomes interrupted and non-smooth
Solution Approach 1:
The system pre-allocates and prepares multiple BufferQueue objects (at least two) in advance, each bound to different rendering techniques. When a rendering technique switch is needed, the system simply switches to the pre-prepared BufferQueue corresponding to the target technique, avoiding the need to destroy and recreate the queue during playback.
Solution Approach 2:
The system introduces a buffer management unit as an intermediary layer between the video decoder and the rendering consumers. This management unit maintains multiple BufferQueue objects and handles the switching logic, allowing seamless transitions between rendering techniques without affecting the video data flow or playback continuity.
2Adaptability or versatility
If the current BufferQueue is destroyed and a new BufferQueue is created when switching rendering techniques, then the rendering technique can be changed, but additional operations to create new BufferQueue and allocate memory are performed, affecting execution efficiency
Solution Approach 1:
The system pre-allocates and prepares multiple BufferQueue objects (at least two) in advance, each bound to different rendering techniques. When a rendering technique switch is needed, the system simply switches to the pre-prepared BufferQueue corresponding to the target technique, avoiding the need to destroy and recreate the queue during playback.
3Stability of the object's composition
If a single BufferQueue is bound to a specific consumer, then the binding is stable, but switching rendering techniques requires destroying the current BufferQueue and creating a new one
Solution Approach 1:
The system segments the buffer management functionality by creating multiple independent BufferQueue objects, each bound to a specific consumer for a specific rendering technique. The buffer management unit acts as a coordinator that switches between these segmented queues, maintaining stable bindings within each queue while enabling flexibility at the management level.
Solution Approach 2:
The system introduces a buffer management unit as an intermediary layer between the video decoder and the rendering consumers. This management unit maintains multiple BufferQueue objects and handles the switching logic, allowing seamless transitions between rendering techniques without affecting the video data flow or playback continuity.
Data Source
AI summary
Rendering video is disclosed including responding to an access request from a video data provider using a first video buffer queue corresponding to a first rendering technique, receiving a request to change the first rendering technique to a second rendering technique, and switching the first video buffer queue for the access request to a second video buffer queue corresponding to the second rendering technique, the first video buffer queue and the second video buffer queue being concurrent.


