USRE50355E

Reducing unicast session duration with restart TV

Claim Score by NHIP

Read claim 21, the broadest

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.

USRE50355E, drawing sheet 1
Sheet 1 of 8

Term

2.2 yearsleft in the term

Expires 25 November 2028.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

40 claims: 5 independent, 35 dependent

  1. 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 transmit , wherein the programming is scheduled for transmission to a plurality of users user devices 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 transmitted prior to the first time, the first portion including previously aired transmitted programming, wherein the previously aired transmitted programming corresponds to programming transmitted to a the plurality of users user devices 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 transmitted 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 a first presentation timestamp of the a first packet of the first plurality of packets matches the a second presentation timestamp of the a 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.
  2. 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 transmitted 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 transmitted programming and being identifiable using metadata associated with the programming that indicates the previously aired transmitted 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 user devices 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 the plurality of users user devices 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 a first presentation timestamp of the a first packet of the first plurality of packets matches the a second presentation timestamp of the a 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.
  3. 15
    A system for communication with a consumer device having a local storage device, the system comprising:a server configured to establish a unicast session and/or a multicast broadcast with the consumer device, the server comprising: memory circuitry configured to store content of the unicast session and/or the multicast broadcast for distribution to the consumer device;and control processing circuitry configured to: receive a request from the consumer device at a first time for programming that has already begun to air transmit , wherein the programming is scheduled for transmission to a plurality of users user devices 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 the unicast session with a at the 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 transmitted prior to a first time, the first portion including previously aired transmitted programming and being identifiable using metadata associated with the programming that indicates the previously aired transmitted 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 the plurality of users user devices 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 the 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 a first presentation timestamp of the a first packet of the first plurality of packets matches the a second presentation timestamp of the a 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 the 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.
  4. 21
    Broadest claimClaim Score 27, narrow(NHIP)A method for playing, on a media device, a portion of programming that was broadcast prior to a time at which the media device began playing the programming the method comprising:beginning to obtain, at a first time, via a first stream, programming that is scheduled for broadcast during a scheduled time interval, wherein the first time corresponds to a point after a beginning time of the scheduled time interval;receiving, at a second time later than the first time, a request for a portion of the programming that was broadcast prior to the first time;in response to receiving the request: obtaining, via a second stream, a first plurality of packets containing media data of a first portion of the programming that was broadcast prior to the first time, each packet of the first plurality of packets having a presentation timestamp that indicates a respective play time of media data;continuing to obtain, via the first stream, the programming, wherein the first stream is obtained as a second plurality of packets, each packet of the second plurality of packets having respective a presentation timestamp that indicates a play time of media data;in response to determining that a presentation timestamp of the most recently obtained packet of the second plurality of packets matches a presentation timestamp of a most recently obtained packet of the first plurality of packets, determining, when playing the programming, that the second stream has caught up to the first stream;and in response to determining that the second stream has caught up to the first stream, ending obtaining the second stream, and continuing to obtain via the first stream a remaining portion of the programming;wherein the first stream is a multicast broadcast and the second stream is a unicast session.
  5. 31
    A system for playing a portion of programming that was broadcast prior to a time at which the media device began playing the programming, the system comprising:a server configured to establish a second stream and/or a first stream with the media device, the server comprising: memory circuitry configured to store content of the second stream and/or the first stream for distribution to the media device;and processing circuitry configured to: begin to obtain, at a first time, via the first stream, programming that is scheduled for broadcast during a scheduled time interval, wherein the first time corresponds to a point after a beginning time of the scheduled time interval;receive, at a second time later than the first time, a request from the media device for a portion of the programming that was broadcast prior to the first time;in response to receiving the request: obtain, via the second stream, a first plurality of packets containing media data of a first portion of the programming that was broadcast prior to the first time, each packet of the first plurality of packets having a presentation timestamp that indicates a respective play time of media data;continue to obtain, via the first stream, the programming, wherein the first stream is obtained as a second plurality of packets, each packet of the second plurality of packets having respective a presentation timestamp that indicates a play time of media data;in response to determining that a presentation timestamp of the most recently obtained packet of the second plurality of packets matches a presentation timestamp of a most recently obtained packet of the first plurality of packets, determine, when playing the programming, that the second stream has caught up to the first stream;and in response to determining that the second stream has caught up to the first stream, end obtaining the second stream, and continue to obtain via the first stream a remaining portion of the programming;wherein the first stream is a multicast broadcast and the second stream is a unicast session.