Media Controller with Buffer Interface
Abstract
A data processing device comprising: a jitter buffer for receiving data packets; a media decoder configured to decode the data packets so as to form a stream of media frames, each frame comprising a plurality of samples; a media consumer having an input buffer for receiving the stream of media frames and being configured to play media frames from the input buffer according to a first frame rate; a buffer interface configured to monitor the input buffer so as to detect when the number of samples at the input buffer of the media consumer falls below a predetermined level and, in response, generate a play-out request; and a media controller configured to, responsive to each of the generated play-out requests, play-out one or more data packets to the media decoder so as to cause media frames of the stream to be delivered into the input buffer at a rate commensurate with the first frame rate.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A data processing device comprising:
a media consumer having an input buffer for receiving a stream of media frames and being configured to play media frames from the input buffer according to a first frame rate; a buffer interface configured to monitor the input buffer so as to detect when a content of the input buffer of the media consumer falls below a predetermined level and, in response, generate a play-out request; and a media controller configured to, in response to a play-out request cause media frames of the stream to be delivered into the input buffer at a rate commensurate with the first frame rate.
2 . The data processing device as claimed in claim 1 , wherein the content of the input buffer is an amount of media data.
3 . The data processing device as claimed in claim 2 , wherein the amount of media data is a number of samples at the input buffer or a number of frames at the input buffer.
4 . The data processing device as claimed in claim 1 , wherein the buffer interface is supported at the media consumer.
5 . The data processing device as claimed in claim 1 , wherein the buffer interface is supported at the media controller.
6 . The data processing device as claimed in claim 1 , the buffer interface being configured to periodically check the content of the input buffer at a rate commensurate with the first frame rate.
7 . The data processing device as claimed in claim 1 , wherein the data processing device further comprises:
a jitter buffer configured to receive data packets; a media decoder configured to decode data packets from the jitter buffer so as to form a stream of media frames, each media frame comprising a plurality of samples.
8 . The data processing device as claimed in claim 7 , wherein the media controller is configured to, in response to a play-out request, transfer one or more data packets from the jitter buffer to the media decoder so as to cause media frames of the stream to be delivered into the input buffer at a rate commensurate with the first frame rate.
9 . The data processing device as claimed in claim 8 , further comprising a receive queue for receiving data packets from a network, the media controller being configured to periodically store in the jitter buffer all of the data packets available at the receive queue whose timestamps are greater than the timestamp of the last data packet transferred by the media controller.
10 . The data processing device as claimed in claim 7 , wherein the media controller is further configured to maintain a histogram representing a distribution of time periods between timestamps of successive data packets stored at the jitter buffer, the histogram indicating for each of a predetermined range of time periods a measure of the number of successive data packets separated by that time period.
11 . The data processing device as claimed in claim 10 , wherein the media controller is further configured to update the histogram on storing each of the data packets.
12 . The data processing device as claimed in claim 7 , wherein the media controller is further configured to estimate a minimum size for the jitter buffer by identifying a lowest time period between the timestamps of successive data packets for which a measure of a number of successive data packets separated by that time period is zero.
13 . The data processing device as claimed in claim 12 , wherein the media controller is further configured to cause the size of the jitter buffer to adapt so as to be at least the estimated minimum size.
14 . The data processing device as claimed in claim 8 , wherein the media controller is further configured to, on storing a data packet whose timestamp precedes the timestamp of the latest transferred data packet by less than the size of the data packet, store only that part of the data packet representing media samples subsequent to the timestamp of the latest transferred data packet, and discarding that part of the data packet representing media samples preceding the timestamp of the latest transferred data packet.
15 . The data processing device as claimed in claim 7 , further comprising a first timer, wherein the media controller is further configured to, on receiving the play-out request, calculate an overflow size of the jitter buffer and to:
if the overflow size of the jitter buffer exceeds a first threshold, increment the first timer by a measure of the number of samples requested in the play-out request; and otherwise, reset the first timer to zero.
16 . The data processing device as claimed in claim 15 , wherein the media controller is further configured to, when the first timer exceeds a second threshold, generate one or more data packets so as to cause the decoder to perform compression by an amount selected in dependence on the overflow size.
17 . The data processing device as claimed in claim 15 , further comprising a second timer, wherein the media controller is further configured to, when the first timer exceeds a third threshold:
if the overflow size of the jitter buffer exceeds the first threshold, increment the second timer by a measure of the number of samples requested in the play-out request; and otherwise, not increment the second timer.
18 . The data processing device as claimed in claim 17 , wherein the media controller is further configured to, when the second timer exceeds a fourth threshold, reset the second timer to zero and generate one or more data packets so as to cause the decoder to perform compression by an amount selected in dependence on the overflow size.
19 . The data processing device as claimed in claim 15 , wherein the media controller is further configured to estimate a minimum size for the jitter buffer by identifying a lowest time period between the timestamps of successive data packets for which a measure of a number of successive data packets separated by that time period is zero and wherein the overflow size is the difference between a measure of the size of the jitter buffer on receiving the play-out request and the estimated minimum size of the jitter buffer.
20 . A method for controlling a stream of media frames by a media consumer, the media consumer having an input buffer for receiving the stream of media frames and being configured to play the media frames according to a first frame rate, the method comprising:
generating, by a buffer interface, a play-out request when a content of the input buffer of the media consumer falls below a predetermined level; responsive to the play-out request, causing media frames of the stream to be delivered into the input buffer at a rate commensurate with the first frame rate.Join the waitlist — get patent alerts
Track US2020266839A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.