Abstract:
Playing a media file can include receiving input from a user identifying a playback location associated with a media file; downloading media content corresponding to the identified playback location from the media file; displaying a status bar to the user on a display device; and presenting a download indicator associated with the status bar showing an amount of downloaded media content, wherein the downloaded media content comprises a contiguous portion of the media file that includes the identified playback location. Further, playing the media file can include receiving additional input from a user identifying a new playback location associated with a media file; downloading media content corresponding to the new playback location; and presenting a new download indicator associated with the status bar showing an amount of downloaded media content, wherein the downloaded media content comprises a contiguous portion of the media file that includes the new playback location.
Abstract:
A method (201-207) for processing media specified in one or more playlists includes receiving data representing a plurality of variants of media and determining a peak bandwidth and an average bandwidth at a server device for each variant of the media, then creating a master playlist that includes a universal resource indicator (URI) and specifies the peak bandwidth and the average bandwidth for each variant. A method (221-231) at the client device can then use the peak bandwidth and the average bandwidth to determine whether to switch from one variant to another variant in the master playlist. A client device can perform this method by selecting and receiving a first media playlist which includes URIs for one or more segments of a first variant. The client device can further determine an observed bit rate during the downloading of the segments of the first variant and store media of the first variant in a buffer before displaying the media. The client device can then determine, before switching between the variants, whether the amount of data in the buffer exceeds an estimated value which is related to an estimated amount of data to be downloaded for a second variant.
Abstract:
Methods and apparatus to manage communication sessions to handover between a direct connection at a secondary wireless device and a relayed connection to the secondary wireless device via a primary wireless device. A connection manager of a secondary wireless device can trigger transfer of a communication session based on measurements of performance metrics for the communication session. Upon detection of performance degradation in a local connection or a backhaul connection or both, the connection manager of the secondary wireless device can determine proximity of and/or capabilities for connections of the primary wireless device and instigate transfer of the communication session between different connection types, such as between a direct connection and a relayed connection. The transfer of the communication session can occur without user intervention or in response to input from the user without interrupting or reestablishing the communication session.
Abstract:
A device implementing a system for audio-video conferencing using multiple stream identifiers includes a processor configured to receive, from a sending device, indication of a first content stream and a first stream identifier, and indication of a second content stream and a second stream identifier associated. The first content stream and the second content stream correspond to different bit rates of streaming content. The processor is configured to receive, from a receiving device, a request to subscribe to the second content stream, the request including the second stream identifier, and receive, from the sending device, an indication that the second stream identifier has been associated with the first content stream. The processor is configured to forward, to the receiving device, the first content stream based on the request to subscribe to the second content stream and on the indication that the second stream identifier has been associated with the first content stream.
Abstract:
Techniques are disclosed for synchronizing media rendering among a plurality of networked terminals. A first terminal may receive communication from another terminal that correlates a network time to a first portion of a media item to be rendered on the terminals (258). The terminals may identify, from the correlation of network time to the first portion of media and from a playback rate negotiated between the terminals, other portions of the media item to be rendered at other network times. The terminals each may render appropriate portions of the media item as network time progresses. The terminals also may exchange other data to alter playback modes during the course of a common rendering session.
Abstract:
Methods and apparatus to manage communication sessions to handover between a direct connection at a secondary wireless device and a relayed connection to the secondary wireless device via a primary wireless device. A connection manager of a secondary wireless device can trigger transfer of a communication session based on measurements of performance metrics for the communication session. Upon detection of performance degradation in a local connection or a backhaul connection or both, the connection manager of the secondary wireless device can determine proximity of and/or capabilities for connections of the primary wireless device and instigate transfer of the communication session between different connection types, such as between a direct connection and a relayed connection. The transfer of the communication session can occur without user intervention or in response to input from the user without interrupting or reestablishing the communication session.
Abstract:
In an example method, a system receives a plurality of frames of a video, and generates a data structure representing the video and representing a plurality of temporal layers. Generating the data structure includes: (i) determining a plurality of quality levels for presenting the video, where each of the quality levels corresponds to a different respective sampling period for sampling the frames of the video, (ii) assigning, based on the sampling periods, each of the frames to a respective one of the temporal layers of the data structure, and (iii) indicating, in the data structure, one or more relationships between (a) at least one the frames assigned to at least one of the temporal layers of the data structure, and (b) at least another one of the frames assigned to at least another one of the temporal layers of the data structure. Further, the system outputs the data structure.