Reducing unicast session duration with restart TV
First Claim
Patent Images
1. A method implemented in a consumer device, the method comprising:
- receiving a request at a first time for programming that has already begun to air, wherein the programming is scheduled for transmission to a plurality of users during a scheduled time interval, and wherein the first time corresponds to a point after a beginning time of the scheduled time interval;
determining the beginning time of the scheduled time interval;
obtaining by the consumer device, based on determining the beginning time, via a unicast session with a server, a first portion of the programming aired prior to the first time, the first portion including previously aired programming, wherein the previously aired programming corresponds to programming transmitted to a plurality of users starting from the beginning time of the scheduled time interval, and wherein the first portion is obtained as a first plurality of packets, each packet of the first plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the first plurality of packets;
obtaining by the consumer device, via a multicast broadcast of the programming concurrently with obtaining the first portion by the consumer device via the unicast session, at least part of a remaining portion of the programming that airs after the first time, wherein initiating said obtaining the first portion of the programming and said obtaining the remaining portion of the programming begin together at the consumer device, and wherein the multicast broadcast is obtained as a second plurality of packets, each packet of the second plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the second plurality of packets;
comparing a first presentation timestamp of a first packet of the first plurality of packets with a second presentation timestamp of a second packet of the second plurality of packets;
determining, based on the comparing, whether the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets;
in response to determining that the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets, determining that the unicast session has caught up to the multicast broadcast; and
stopping, the unicast session when the unicast session has caught up to the multicast broadcast, to obtain the programming data from the unicast session, and continuing to obtain via the multicast broadcast the remaining portion of the programming from a different source other than the server.
8 Assignments
0 Petitions
Accused Products
Abstract
A first portion of programming aired prior to a first time is obtained via a unicast session with a server, the first portion including previously aired programming. When the programming data being sent via the unicast session catches up to a multicast broadcast of the programming, the unicast session is terminated and a switch is made to obtaining a remaining portion of the programming from a different source other than the server. This different source can be, for example, a local storage device or a multicast broadcast of the programming.
1749 Citations
20 Claims
-
1. A method implemented in a consumer device, the method comprising:
-
receiving a request at a first time for programming that has already begun to air, wherein the programming is scheduled for transmission to a plurality of users during a scheduled time interval, and wherein the first time corresponds to a point after a beginning time of the scheduled time interval; determining the beginning time of the scheduled time interval; obtaining by the consumer device, based on determining the beginning time, via a unicast session with a server, a first portion of the programming aired prior to the first time, the first portion including previously aired programming, wherein the previously aired programming corresponds to programming transmitted to a plurality of users starting from the beginning time of the scheduled time interval, and wherein the first portion is obtained as a first plurality of packets, each packet of the first plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the first plurality of packets; obtaining by the consumer device, via a multicast broadcast of the programming concurrently with obtaining the first portion by the consumer device via the unicast session, at least part of a remaining portion of the programming that airs after the first time, wherein initiating said obtaining the first portion of the programming and said obtaining the remaining portion of the programming begin together at the consumer device, and wherein the multicast broadcast is obtained as a second plurality of packets, each packet of the second plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the second plurality of packets; comparing a first presentation timestamp of a first packet of the first plurality of packets with a second presentation timestamp of a second packet of the second plurality of packets; determining, based on the comparing, whether the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets; in response to determining that the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets, determining that the unicast session has caught up to the multicast broadcast; and stopping, the unicast session when the unicast session has caught up to the multicast broadcast, to obtain the programming data from the unicast session, and continuing to obtain via the multicast broadcast the remaining portion of the programming from a different source other than the server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 18)
-
-
10. A method implemented in a computing device, the method comprising:
-
sending, to a consumer device via a unicast session with the consumer device, a first portion of programming aired prior to a first time that corresponds to a request to at least one of view or record the programming, the first portion including previously aired programming and being identifiable using metadata associated with the programming that indicates the previously aired programming spans from a beginning of the programming up to the first time that corresponds to the request to at least one of view or record the programming, wherein the programming is scheduled for transmission to a plurality of users during a scheduled time interval, and wherein the first time corresponds to a point after a beginning time of the scheduled time interval, wherein the consumer device is initiated to obtain the first portion of the programming via the unicast session concurrently with obtaining a multicast broadcast of the programming via the multicast broadcast of the programming, wherein initiating said obtaining the first portion of the programming and said obtaining the multicast broadcast of the programming begin together at the consumer device, wherein the first portion is obtained as a first plurality of packets, each packet of the first plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the first plurality of packets, and the multicast broadcast is obtained as a second plurality of packets, each packet of the second plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the second plurality of packets, wherein the first portion corresponds to programming transmitted to a plurality of users starting from the beginning time of the scheduled time interval, and wherein the multicast broadcast of the programming is configured for storage to enable playback by the consumer device after the first portion of the programming is played back by the consumer device; comparing a first presentation timestamp of a first packet of the first plurality of packets with a second presentation timestamp of a second packet of the second plurality of packets; determining, based on the comparing, whether the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets; in response to determining that the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets, determining that the unicast session has caught up to the stored multicast broadcast of the programming; and stopping the unicast session when the unicast session has caught up to the stored multicast broadcast of the programming. - View Dependent Claims (11, 12, 13, 14, 19)
-
-
15. A system comprising:
-
control circuitry configured to; receive a request at a first time for programming that has already begun to air, wherein the programming is scheduled for transmission to a plurality of users during a scheduled time interval, and wherein the first time corresponds to a point after a beginning time of the scheduled time interval; establish a unicast session with a server based on the received request; determine the beginning time of the scheduled time interval; obtain, based on determining the beginning time, via the unicast session and in response to the request, a first portion of the programming that aired prior to a first time, the first portion including previously aired programming and being identifiable using metadata associated with the programming that indicates the previously aired programming spans from a beginning of the programming up to the first time, wherein the first portion is obtained at a rate faster than a playback rate of the programming, and wherein the first portion is obtained for playback by the consumer device, wherein the first portion corresponds to programming transmitted to a plurality of users starting from the beginning time of the scheduled time interval, and wherein the first portion is obtained as a first plurality of packets, each packet of the plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the first plurality of packets; obtain the first portion of the programming via the unicast session, together with obtaining and recording, via a multicast broadcast of the programming, at least a first part of the multicast broadcast of the programming, at the consumer device, wherein the multicast broadcast is obtained as a second plurality of packets, each packet of the second plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the second plurality of packets; compare a first presentation timestamp of a first packet of the first plurality of packets with a second presentation timestamp of a second packet of the second plurality of packets; determine, based on the comparing, whether the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets; in response to determining that the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets, determining that data obtained via the unicast session has caught up to the recorded multicast broadcast; and stop, based on determining that data obtained via the unicast session has caught up to the recorded multicast broadcast, obtaining via the unicast session, the first portion of the programming, and obtaining a remaining portion of the programming from a local storage device of the consumer device on which the at least the first part of the multicast broadcast was recorded, wherein the remaining portion is obtained for playback by the consumer device. - View Dependent Claims (16, 17, 20)
-
Specification