Abstract:
Methods, devices, systems, and non-transitory computer-readable storage media for improving the reception of data at a computing device by proactively utilizing new TCP connections in response to identifying that TCP connections have stalled. In an embodiment, a processor of the computing device may perform operations including monitoring a status of requests via a plurality of TCP connections, identifying a stalled TCP connection having a missing request based on the monitoring, wherein the stalled TCP connection is configured to utilize a first network interface and access a first data source, evaluating other TCP connections to determine whether the other TCP connections stall using the first network interface or when accessing the first data source; identifying a second network interface and a second data source based on the evaluating, and reissuing the missing request with a new TCP connection configured to use the second network interface and access the second data source.
Abstract:
Transport accelerator (TA) systems and methods for accelerating delivery of content to a user agent (UA) of a client device are provided according to embodiments of the present disclosure. Embodiments comprise a TA architecture implementing a connection manager (CM) and a request manager (RM). A RM of embodiments subdivides a fragment request provided by the UA into a plurality of chunk requests for requesting chunks of the content. A CM of embodiments signals to the RM, that the CM is ready for an additional chunk request of the content. Priority information is provided according to embodiments, such as by the UA, wherein the priority information indicates a priority of a corresponding fragment request relative to other fragment requests.
Abstract:
A client device includes one or more processors configured to receive, from a server device, forward-error corrected data via a plurality of parallel network paths, determine losses of the data over each of the network paths, and send data representing the losses of the data over each of the network paths to the server device. Additionally or alternatively, a client device includes one or more processors configured to receive a first set of encoding units for a first block, wherein the first set of encoding units includes fewer than a minimum number of encoding units needed to recover the first block, after receiving the first set of encoding units, receive a second set of encoding units for a second block, and after receiving the second set of encoding units, receive a third set of encoding units including one or more encoding units for the first block.
Abstract:
A client/receiver downloads data over a network path between a source and the receiver coupled by the network path and stores the media data in a presentation buffer of the receiver and from there it is consumed by a presentation element. The receiver monitors a presentation buffer fill level that represents what portion of the presentation buffer contains media data not yet consumed by a presentation element. The receiver makes requests for additional data to download. If the fill level is above a high fill threshold, the receiver does not make further requests and eventually the fill level goes down. If the fill level is below a low fill threshold, the receiver restarts the downloading and updates the fill level as media data is consumed by the presentation element. The fill level might be measured in units of memory storage capacity and/or units of presentation time.
Abstract:
Aspects of this disclosure generally relate to a method of retrieving video data of multimedia content. In an example, the method includes determining a first interval between switch points for a first representation of the multimedia content and a second interval between switch points for a second representation of the multimedia content, wherein the first interval is less than the second interval. The method also includes, based on the determination, submitting one or more network requests for an amount of video data from the first representation that has a playback time that is at least equal to a playback time between switch points in the second representation. The method also includes, after submitting the request for the amount of video data from the first representation, retrieving video data from the second representation.
Abstract:
A receiver that receives media for playing out using a presentation element of the receiver can make requests and wait for responses, but can also cancel requests, possibly reissuing new requests, to improve a user experience taking into account network and other conditions. The receiver can select a playback rate and make requests conform to that playback rate, monitor a presentation buffer that stores media data to be consumed by a presentation element, store an indication of a buffer level corresponding to how much of the presentation buffer is occupied by the media data that is received and not yet consumed by the presentation element, maintain a state of an issued request for downloading a selected first chunk of media data, and when an issued request is outstanding, determine, based on network conditions and the state of the issued request, whether to continue the request or cancel the request.
Abstract:
A client device presents streaming media and includes a stream manager, a request accelerator, and a source component coupled to the stream manager and the request accelerator for determining which requests to make. A rate selection process can make rate decisions so that the buffer is filled when it is low, avoiding erratically changing rates and can choose the correct steady rate quickly. Multimedia download strategies can be used for HTTP that allow for accurate rate estimations, achieving link capacity even if network delays and packet loss rates are high, achieving timely delivery of the stream, and achieving relatively steady download rates with little short term variability. A receiver might use multiple HTTP connections, decompose media requests into smaller chunk requests, synchronize the connections using TCP flow control mechanisms, and request data in bursts. In addition, the receiver might use an HTTP pipelining process to keep the connections busy.
Abstract:
The switch signaling methods providing improved switching between representations for adaptive HTTP streaming described herein enable user experience and bandwidth efficiency improvements for adaptive HTTP streaming solutions, even when segment data is encrypted. The signaling methods include associating segment maps with segments of a representation, wherein a segment map comprises both temporal entry and temporal exit points within associated segments together with byte offset information and potentially other segment information, wherein segment maps may be generated with predictable time span patterns that are independent of the time spans of the associated segments. These embodiments can be used to enhance existing deployments in such a way that there is no need to change existing content encoding and formatting processes, and such that existing clients that receive and play out content are unaffected.
Abstract:
Various embodiments enable managing data requests made by a receiver device for delivery of content segments to the receiver device. A processor may determine a first number of first chunk requests including a first amount of data requested for a content segment. The processor may send the first chunk requests to one or more servers and may receive first data responses at a receiving rate. The processor may determine whether sufficient data responses might not be received by the receiver device in time to recover the content segment by a time deadline associated with the content segment. In response to determining that sufficient data responses to the first chunk requests might not be received by the time deadline, the processor may determine a second number of one or more second chunk requests for the content segment and a second amount of data to request from the one or more servers.
Abstract:
A client device presents streaming media and includes a stream manager for controlling streams, a request accelerator for making network requests for content, a source component coupled to the stream manager and the request accelerator for determining which requests to make, a network connection, and a media player. A process for rate estimation is provided that will react quickly to reception rate changes. The rate estimator can use an adaptive windowed average and take into account the video buffer level and the change in video buffer level in a way so to guarantee that the rate adjusts fast enough if there is a need, while keeping the windowing width large (and thus the measurement variance) large. A guarantee might be that when a rate drop or rise happens, the estimator adjusts its estimate within a time proportional to a buffer drain rate or buffer fill level.