Dynamic Jitter Buffer Adjustment for Media Playback Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Networked digital media players face significant latency due to large jitter buffers required for complex media formats, which increases playback latency and is undesirable from a consumer perspective, and this latency is compounded during transport control operations like seeking.
Innovation Solution
Implementing a dynamic adjustment of jitter buffer parameters based on playback performance and historical data to optimize buffer size, allowing for a smaller buffer in most cases while increasing it during starvation and decreasing it when unnecessary to improve responsiveness.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a large jitter buffer is allocated to prevent decoder starvation for complex media formats, then playback reliability is improved, but playback latency increases dramatically
Solution Approach 1:
The jitter buffer size is made dynamic rather than static. The system continuously monitors playback conditions and adjusts the buffer size in real-time, increasing it when starvation risk is detected and decreasing it when playback is smooth, thereby resolving the contradiction between reliability and latency
Solution Approach 2:
The buffer size parameter is changed from a fixed large value to a variable parameter that adapts to actual playback needs. By modifying this key parameter dynamically based on monitored conditions, the system achieves both low latency and high reliability
2Stability of the object's composition
If a large jitter buffer preroll allocation is used to ensure continuous playback, then playback stability is improved, but transport control operations such as seeking become slower
Solution Approach 1:
The buffer size adapts dynamically during different playback phases. During seeking operations, the buffer is quickly adjusted to a smaller size to enable fast seeking, then increased again to maintain stability during normal playback, thus resolving the contradiction between stability and seek speed
3Loss of time
If a small constant jitter buffer size is used to reduce latency, then responsiveness is improved, but playback may starve for demanding media files
Solution Approach 1:
The system implements feedback mechanisms that monitor decoder buffer levels and playback conditions. When the decoder approaches starvation, the feedback triggers an increase in jitter buffer size, ensuring data availability while maintaining low latency during normal operation
Solution Approach 2:
The playback system self-adjusts the jitter buffer size based on its own monitored conditions without external intervention. The system serves itself by automatically detecting when buffer adjustments are needed and making appropriate changes to maintain optimal performance
Data Source
AI summary
Improved responsiveness and reduced latency of media playback on a media player is achieved by dynamic adjustment of storage parameters for the jitter buffer in the media player. Decreasing the size of the jitter buffer to a smaller constant value may provide acceptable, starvation-free playback in many cases. Playback of more demanding files requiring more buffered data for decode are addressed by dynamic adjustment of the jitter buffer parameters. An algorithmic or heuristic process is used to dynamically set the size of the jitter buffer before and during media playback. The jitter buffer size and/or preroll duration may be adjusted based upon the quality of playback experience. If playback starves, the jitter buffer size, starvation threshold, and/or preroll duration is increased before rebuffering and resuming playback. If the jitter buffer remains above a defined threshold for a given period of time, the jitter buffer size and/or preroll duration may be decreased, improving the responsiveness of startup and seek and trick mode operations.


