Abstract:
Data objects can be delivered over a network using a file delivery system and universal object delivery and template-based file delivery. This might be done by forming source data into a sequence of data objects represented by symbols in packets, sending those to receivers on request, wherein a transmitter obtains a template file delivery table with delivery metadata for the data objects, and constructing a first transmission object identifier for a data object based on a transmission object identifier construction rule described in the template file delivery table. A receiver might receive packets, extract a second transmission object identifier, associate encoded symbols comprising the received data packet with the data object if the first transmission object identifier and the second transmission object identifier identify the same data object, and recover, at least approximately, the source data for the data object based on the encoded symbols associated with the data object.
Abstract:
Systems, methods, and devices of the various embodiments enable HTTP redirect messages to indicate content access policy information. In this manner, policy rules may be implemented based on the policy information in the HTTP redirect messages to control network congestion and/or quality of service (“QOS”).
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:
In one example, a client device for receiving information for streaming of media data includes a clock, and one or more processors configured to receive a media presentation description (MPD) for media content, wherein the MPD includes data indicative of wall-clock times at which the client device can retrieve data of the media content from a source device, and wherein the data indicates a synchronization method by which the client device is to synchronize the wall-clock times with the clock, synchronize the clock with the wall-clock times using the method indicated by the MPD, and request data of the media content from the source device using the synchronized clock. A server device or source device may form and provide such an MPD to a client device.
Abstract:
A proxy unit is configured to obtain mapping information that maps an identifier for media data to a resource location based on a service for retrieving the media data, wherein the service defines at least one of a plurality of types of transports for transporting the media data, receive a request for the media data from an application service client, determine whether the service is available, and, when the service is available, cause the application service client to receive the media data from a unit that receives the media data using the service from the resource location, based on the mapping information. In this manner, the application service client may receive media data from the unit (e.g., a middleware unit), which then receives the media data using a service that defines transport according to, e.g., broadcast or multicast transport, or another fashion (e.g., unicast) if the defined transport is unavailable.
Abstract:
A proxy unit is configured to obtain mapping information that maps an identifier for media data to a resource location based on a service for retrieving the media data, wherein the service defines at least one of a plurality of types of transports for transporting the media data, receive a request for the media data from an application service client, determine whether the service is available, and, when the service is available, cause the application service client to receive the media data from a unit that receives the media data using the service from the resource location, based on the mapping information. In this manner, the application service client may receive media data from the unit (e.g., a middleware unit), which then receives the media data using a service that defines transport according to, e.g., broadcast or multicast transport, or another fashion (e.g., unicast) if the defined transport is unavailable.
Abstract:
Systems, methods, and devices for dynamic resolution of content references for streaming media are described. In one innovative aspect, a device for obtaining a media stream is provided. The device includes a receiver configured to receive a location independent persistent identifier for the media stream. The device includes a resolution circuit configured to identify a location of the media stream based at least in part on the location independent persistent identifier. The device includes a media acquisition circuit configured to obtain the media stream based at least in part on the identified location. In some implementations, the resolution circuit is configured to identify a rewrite rule for the media stream and generate a rewritten identifier based on the identified rewrite rule and at least one of the location independent persistent identifier or the identified location.
Abstract:
In one example, a client device for receiving information for streaming of media data includes a clock, and one or more processors configured to receive a media presentation description (MPD) for media content, wherein the MPD includes data indicative of wall-clock times at which the client device can retrieve data of the media content from a source device, and wherein the data indicates a synchronization method by which the client device is to synchronize the wall-clock times with the clock, synchronize the clock with the wall-clock times using the method indicated by the MPD, and request data of the media content from the source device using the synchronized clock. A server device or source device may form and provide such an MPD to a client device.
Abstract:
A method, an apparatus, and a computer program product for communicating data via the Transmission Control Protocol (TCP) are provided. The apparatus receives from a sender a plurality of data segments according to a sequential order, infers at least one missing data segment in the sequential order, and acknowledges to the sender receipt of a highest byte sequence number of a received data segment plus one based on the inference of the at least one missing data segment. The apparatus also adjusts a receive window based on at least one of: the inference of the at least one missing data segment, or a round-trip-time of a TCP connection, wherein the receive window indicates a buffer capacity for receiving data segments. The apparatus further advertises the adjusted receive window to the sender.
Abstract:
Systems, methods, and devices for transmitting a media stream are described herein. In some aspects, a device includes a state manager configured to generate state information for a portion of the media stream for a client requesting the media stream. The device further includes a transmitter configured to transmit information identifying the media stream to the client, the information identifying the media stream including the generated state information. The device also includes a receiver configured to receive the state information from the client. The device includes a content generator configured to generate an output media stream based at least in part on the received state information.