Buffering in HTTP streaming client
AssigneeAdobe Inc.
InventorsViswanathan Swaminathan, Saayan Mitra
Life of this patent
Estimating the term…
Abstract
A buffer model in an HTTP streaming client may include receiving a first content fragment of a first content stream in response to a first HTTP request. It may also include receiving a second content fragment of a second content stream in response to a second HTTP request. The buffer model may further include storing the first and second content fragments in first and second buffers of a plurality of configurable buffers. The first and second content fragments may be multiplexed into a third buffer of the plurality of buffers. The multiplexed first and second content fragments may be stored in a fourth buffer of the plurality of buffers for playback. The buffer model may be implemented by an application. The buffers may be designed based on one or more constraints.
Claims20
A method implemented by a computing device, the method comprising:
- storing, by the computing device and responsive to a first request to a server device, a first fragment received from the server device in a first buffer;
- storing, by the computing device and responsive to a second request to the server device, a second fragment received from the server device in a second buffer;
- multiplexing, by the computing device, the first and second fragments into a third buffer, the third buffer being configured to output the first and second fragments to a fourth buffer for decoding and playback;
- determining, by the computing device, using a sliding window that a switch is to be made from the server device to an alternate server device based on a bitrate used to receive the first or second fragments from the server device;
- generating, by the computing device, a third request to the alternate server device for a third fragment for receipt by the first or second buffer;
- and
- storing, by the computing device and responsive to the third request, the third fragment in the first or second buffer.
A computer system comprising:
- a first buffer of the computer system configured to store a first fragment received from a server device in response to a first request to the server device;
- a second buffer of the computer system configured to store a second fragment received from the server device in response to a second request to the server device;
- a third buffer of the computer system configured to store multiplexed first and second fragments from the first and second buffers;
- a fourth buffer of the computer system configured to output the multiplexed first and second fragments for playback;
- and
- an application executable by the computer system and configured to:
- determine using a sliding window with respect to the third buffer to change from the server device to an alternate server device;
- and
- generate a third request to the alternate server device for a third fragment for receipt by the first or second buffer.
A computer system comprising:
- a first buffer of the computer system configured to store an audio fragment;
- a second buffer of the computer system configured to store a video fragment;
- a third buffer of the computer system configured to store multiplexed audio and video fragments;
- a fourth buffer of the computer system configured to output the multiplexed audio and video fragments for playback;
- and
- an application executable by the computer system and configured to:
- determine a capacity of at least one of the buffers;
- determine a change in a rate of data addition to the at least one of the buffers;
- and
- modify the capacity of the at least one of the buffers based on the change in the rate of data addition to address a network change that affects playback of the multiplexed audio and video fragments.
Dependencies are inferred from the claim text.