IP Library Granted Patent US 8,069,260
Granted Patent B2
US 8,069,260 · App. 11/652,708 · Granted Nov 29, 2011

Dynamic buffer settings for media playback

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,069,260
App. No.
11/652,708
Granted
Nov 29, 2011
Kind
B2
Abstract

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.

Claims (11)

1. A method for dynamically improving responsiveness and robustness of media playback on a media player, the method comprising: receiving a media stream; configuring one or more storage parameters of a jitter buffer, the one or more storage parameters including at least one of a preroll duration value and a starvation threshold, the preroll duration value representing a minimum amount of first data from the media stream that is stored in the jitter buffer in order to play the media stream, the starvation threshold representing a minimum amount of second data from the media stream stored in the jitter buffer in order to prevent play-out of the second data in the jitter buffer; playing the media stream; monitoring a data storage state of the jitter buffer; and adjusting the one or more storage parameters of the jitter buffer based upon the data storage state.

2. The method of claim 1 further comprising gathering history data reflecting playback performance of the media stream relative to instantaneous jitter buffer characteristics; and adjusting the one or more storage parameters of the jitter buffer based upon the history data.

3. The method of claim 2 further comprising aggregating the history data corresponding to multiple media files in the media stream into a statistical compilation.

4. The method of claim 3 further comprising transmitting the statistical compilation over a network for storage at and use by one or more remote devices.

5. The method of claim 2 further comprising transmitting the history data over a network for aggregation into a statistical compilation at a remote device.

6. The method of claim 3 wherein the statistical compilation comprises a table of preroll duration values.

7. The method of claim 1 , wherein the preroll duration value and the starvation threshold are respectively different for different types of media formats.

8. The method of claim 7 further comprising receiving at least one of the preroll duration value and the starvation threshold from a remote device via a network.

9. The method of claim 1 , wherein the one or more storage parameters comprises an allocation of total jitter buffer size.

10. A computer readable storage device storing computer-executable instructions for performing a computer process implementing the method of claim 1 .

11. The method of claim 1 further comprising requesting the one or more storage parameters for the jitter buffer before receiving the media stream in the jitter buffer, the one or more storage parameters being specific to the media stream.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2007
From: SPEICHER, ASHLEY C.; FANG, NICHOLAS J.; BOWRA, TODD Z.
To: MICROSOFT CORPORATION
Reel/Frame 018932/0986 →