Flow control for media streaming
First Claim
Patent Images
1. A method implemented on a computing device using instructions executable by a processor, the method comprising:
- determining maximum capacity of a plurality of buffers at a client playback device, wherein the maximum capacity is described in buffer information, wherein the plurality of buffers receive streaming content from a host device, and the plurality of buffers comprise at least one of;
jitter buffers, content buffers, audio buffers, or video buffers;
calculating available space in the plurality of buffers of the client playback device for a particular instance of time while content is streamed from the host device, wherein the available space is described in the buffer information;
sending the buffer information to the host device which allows the host device to adjust flow of streaming content to the client playback device based on the buffer information,wherein sending the buffer information comprises sending the maximum capacity and the available space of the plurality of buffers; and
indicating a high percentage of buffer capacity of the plurality of the buffers is used, the host device slows a rate of content streamed to the client playback device, and indicating a low percentage of the buffer capacity of the plurality of the buffers is used, the host device increases the rate of content streamed to the client playback device,wherein the buffer information for the client playback device is unique to the client playback device and the buffer information instructs the host device as to a fullness of a particular buffer of the plurality of buffers.
2 Assignments
0 Petitions
Accused Products
Abstract
A client device receives streaming content from a host device. The streaming content is placed in one or more buffers prior to processing. Monitoring as to the capacity and fullness of the buffers is performed at the client device and information is sent to the host device. The host device adjusts the rate or flow of the streaming content based on the information provided by the client device.
74 Citations
20 Claims
-
1. A method implemented on a computing device using instructions executable by a processor, the method comprising:
-
determining maximum capacity of a plurality of buffers at a client playback device, wherein the maximum capacity is described in buffer information, wherein the plurality of buffers receive streaming content from a host device, and the plurality of buffers comprise at least one of;
jitter buffers, content buffers, audio buffers, or video buffers;calculating available space in the plurality of buffers of the client playback device for a particular instance of time while content is streamed from the host device, wherein the available space is described in the buffer information; sending the buffer information to the host device which allows the host device to adjust flow of streaming content to the client playback device based on the buffer information, wherein sending the buffer information comprises sending the maximum capacity and the available space of the plurality of buffers; and indicating a high percentage of buffer capacity of the plurality of the buffers is used, the host device slows a rate of content streamed to the client playback device, and indicating a low percentage of the buffer capacity of the plurality of the buffers is used, the host device increases the rate of content streamed to the client playback device, wherein the buffer information for the client playback device is unique to the client playback device and the buffer information instructs the host device as to a fullness of a particular buffer of the plurality of buffers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method implemented at a host device using instructions executable by a processor, the method comprising:
-
negotiating exchange of buffer information with a client playback device, wherein the buffer information comprises maximum capacity of one or more buffers at the client playback device and available space in the one or more buffers of the client playback device for a particular instance of time while content is streamed from the host to the client playback device, and wherein the buffer information is unique to the client playback device; receiving the buffer information from the client playback device; and adjusting the rate of content streamed from the host device to the client playback device based on the buffer information, wherein when the buffer information indicates a high percentage of buffer capacity of the one or more buffers at the client playback device is used, the host device slows a rate of content streamed to the client playback device, and when the buffer information indicates a low percentage of the buffer capacity of the one or more buffers at the client playback device is used, the host device increases the rate of content streamed to the client playback device. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer comprising:
-
a processing unit; a client playback application to consume streamed content; one or more buffers that are accessible by and operated on by the processing unit, wherein the buffers receive streamed content from one or more sources; and a buffer monitor that is accessible by and operated on by the processing unit, wherein the buffer monitor monitors the fullness level of the buffers, and generates buffer fullness reports based on the fullness level of the buffers in response to a negotiated frequency as to how often buffer fullness reports are to be sent to a host device by the computer, and wherein the buffer fullness reports comprise maximum capacity of the one or more buffers and available space in the one or more buffers, wherein a buffer fullness report is generated for a particular instance of time while content is streamed to the computer, wherein the buffer fullness report is unique to the computer, wherein the buffer fullness report instructs the host device as to the fullness level of a particular buffer of the buffers. - View Dependent Claims (17, 18, 19, 20)
-
Specification