IP Library Granted Patent US 12,177,504
Granted Patent B2
US 12,177,504 · App. 18/212,907 · Granted Dec 24, 2024

Systems and methods for delivery of content via multicast and unicast

Inventors: Rajendran Pichaimurthy (Karnataka, IN); Madhusudhan Seetharam (Karnataka, IN); Harshith Kumar Gejjegondanahally Sreekanth (Karnataka, IN)
Assignee: ADEIA GUIDES INC.
H04N21/26616H04L12/185H04L65/611H04L65/612H04N21/26208H04N21/2668H04N21/6408H04N21/812H04N21/8456H04L67/306H04N21/23424
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,177,504
App. No.
18/212,907
Granted
Dec 24, 2024
Kind
B2
Abstract

The system and methods described aid content delivery by providing requested content using a hybrid delivery of unicast and multicast content. A content delivery system receives, from user equipment, a request for content and identifies multicast sources for the content. The content delivery system determines a recent multicast source from the multicast sources, the recent multicast source having begun more recently relative to the other sources. The content delivery system transmits, to the user equipment, an identity of the recent multicast source and provides a beginning portion of the content to the user equipment via a unicast stream.

Claims (107)

1. A method comprising:

receiving, from user equipment, a request for content, comprising a corresponding timestamp;

identifying a linear source of the content, wherein the linear source of the content is configured to provide a first stream of the content over a predefined time period;

identifying a non-linear source of the content, wherein the non-linear source of the content is configured to provide a second stream of the content on-demand;

receiving the content from the linear source;

determining that a first portion of the content from the linear source requires buffering, and in response:

identifying a start timestamp and an end timestamp of the first portion of the content; and

receiving a second portion of the content from the non-linear source, wherein the second portion of the content received from the non-linear source does not include the first portion of the content and comprises a plurality of successive time stamps;

modifying the second portion by:

determining an advertisement period in the second portion received from the non-linear source of the content;

determining a duration of the content;

calculating a remaining non-linear stream length corresponding to a difference in time between the start timestamp of the linear source and a current time-based position of the non-linear source;

calculating an advertisement length corresponding to the advertisement period;

determining whether the advertisement length exceeds a threshold length; and

in response to determining the advertisement length exceeds the threshold length, removing the advertisement period from the second portion received from the non-linear source;

arranging the first portion and the second portion based on the start timestamp, the end timestamp, and the plurality of successive time stamps; and

storing, in memory, a single copy of the content comprising the arranged first portion and second portion.

2. The method of claim 1 , wherein identifying the linear source comprises:

determining the timestamp of the request for content;

retrieving an identifier of the content;

transmitting a request to a data source for identities of a plurality of linear sources, wherein the request to the data source comprises the identifier of the content;

receiving a response from the data source, the response comprising a plurality of identities corresponding to each of the plurality of linear sources that are available to transmit the content;

identifying a respective start timestamp for each of the plurality of linear sources that are available to transmit the content, wherein each respective start timestamp corresponds to a time that each of the plurality of linear sources that are available to transmit the content are available to start transmitting the content;

comparing each respective start timestamp to the timestamp of the request for content; and

identifying, based on the comparing, the linear source from the plurality of linear sources that has a respective start timestamp that corresponds to the timestamp of the request for content.

3. The method of claim 1 , wherein identifying the non-linear source comprises:

determining the timestamp of the request for content;

retrieving an identifier of the content;

transmitting a request to a data source for identities of a plurality of non-linear sources, wherein the request to the data source comprises the identifier of the content;

receiving a response from the data source, the response comprising a plurality of identities corresponding to each of a plurality of non-linear sources that are available to transmit the content;

identifying a respective start timestamp for each of the plurality of non-linear sources that are available to transmit the content, wherein each respective start timestamp corresponds to a time that each of the plurality of non-linear sources are available to start transmitting the content;

comparing each respective start timestamp to the timestamp of the request for content; and

identifying, based on the comparing, the non-linear source from the plurality of non-linear sources that has a respective start timestamp that corresponds to the timestamp of the request for content.

4. The method of claim 1 , wherein receiving the content from the linear source comprises:

identifying a remote server corresponding to the linear source;

transmitting the request for the content to the remote server; and

in response to receiving the request for the content at the remote server, transmitting a linear stream comprising the content to the user equipment.

5. The method of claim 1 , wherein receiving the second portion of the content from the non-linear source comprises:

identifying a start timestamp of the non-linear source, wherein the start timestamp of the non-linear source corresponds to a time when the non-linear source is available to start transmitting the content;

comparing the start timestamp of the first portion of the content from the linear source to the start timestamp of the non-linear source;

in response to determining, based on the comparing, the start timestamp of the non-linear source matches the start timestamp of the linear source, identifying the second portion of the content from the non-linear source based on the end timestamp of the first portion of the content from the linear source; and

in response to determining, based on the comparing, the start timestamp of the non-linear source does not match the start timestamp of the linear source:

calculating a time difference between the start timestamp of the non-linear source and the start timestamp of the linear source; and

determining a start timestamp of the second portion of the content from the non-linear source by adding the calculated time difference to the end timestamp of the first portion of the content that requires buffering.

6. The method of claim 1 , further comprising:

retrieving textual information related to the advertisement period; and

supplementing the second portion received from the non-linear source with the textual information.

7. The method of 1 , further comprising:

identifying a user profile associated with the user equipment;

retrieving advertisement content based on the user profile; and

inserting the advertisement content into the second portion of the content received from the non-linear source at the advertisement period.

8. The method of claim 1 , wherein arranging the first portion and the second portion based on the start timestamp, the end timestamp, and the plurality of successive timestamps further comprises positioning the first portion relative to the second portion such that the start timestamp, the end timestamp, and the plurality of successive time stamps are in temporal order.

9. A system comprising:

a communication port;

a memory storing instructions; and

control circuitry communicatively coupled to the memory and the communication port and configured to execute the instructions to:

receive, from user equipment, a request for content;

identify a linear source of the content, wherein the linear source of the content is configured to provide a first stream of the content over a predefined time period;

identify a non-linear source of the content, wherein a non-linear source of the content is configured to provide a second stream of the content on-demand;

receive the content from the linear source;

determine that a first portion of the content from the linear source requires buffering, and in response:

identify a start timestamp and an end timestamp of the first portion of the content;

receive a second portion of the content from the non-linear source, wherein the content received from the non-linear source does not include the first portion of the content and comprises a plurality of successive time stamps;

modify the second portion by:

determining an advertisement period in the second portion received from the non-linear source of the content;

determining a duration of the content;

calculating a remaining non-linear stream length corresponding to a difference in time between the start timestamp of the linear source and a current time-based position of the non-linear source;

calculating an advertisement length corresponding to the advertisement period;

determining whether the advertisement length exceeds a threshold length; and

in response to determining the advertisement length exceeds the threshold length, removing the advertisement period from the second portion received from the non-linear source;

arrange the first portion and the second portion based on the start timestamp, the end timestamp, and the plurality of successive time stamps; and

store, in the memory, a single copy of the content comprising the arranged first portion and second portion.

10. The system of claim 9 , wherein the control circuitry configured to identify the linear source is further configured to:

determine the timestamp of the request for content;

retrieve an identifier of the content;

transmit a request to a data source for identities of a plurality of linear sources, wherein the request to the data source comprises the identifier of the content;

receive a response from the data source, the response comprising a plurality of identities corresponding to each of the plurality of linear sources that are available to transmit the content;

identify a respective start timestamp for each of the plurality of linear sources that are available to transmit the content, wherein each respective start timestamp corresponds to a time that each of the plurality of linear sources that are available to transmit the content are available to start transmitting the content;

compare each respective start timestamp to the timestamp of the request for content; and

identify, based on the comparing, the linear source from the plurality of linear sources that has a respective start timestamp that corresponds to the timestamp of the request for content.

11. The system of claim 9 , wherein the control circuitry configured to identify the non-linear source is further configured to:

determine the timestamp of the request for content;

retrieve an identifier of the content;

transmit a request to a data source for identities of a plurality of non-linear sources, wherein the request to the data source comprises the identifier of the content;

receive a response from the data source, the response comprising a plurality of identities corresponding to each of a plurality of non-linear sources that are available to transmit the content;

identify a respective start timestamp for each of the plurality of non-linear sources that are available to transmit the content, wherein each respective start timestamp corresponds to a time that each of the plurality of non-linear sources are available to start transmitting the content;

compare each respective start timestamp to the timestamp of the request for content; and

identify, based on the comparing, the non-linear source from the plurality of non-linear sources that has a respective start timestamp that corresponds to the timestamp of the request for content.

12. The system of claim 9 , wherein the control circuitry configured to receive the content from the linear source is further configured to:

identify a remote server corresponding to the linear source;

transmit the request for the content to the remote server; and

in response to receiving the request for the content at the remote server, transmit a linear stream comprising the content to the user equipment.

13. The system of claim 9 , wherein the control circuitry configured to receive the second portion of the content from the non-linear source is further configured to:

identify a start timestamp of the non-linear source, wherein the start timestamp of the non-linear source corresponds to a time when the non-linear source is available to start transmitting the content;

compare the start timestamp of the first portion of the content from the linear source to the start timestamp of the non-linear source;

in response to determining, based on the comparing, the start timestamp of the non-linear source matches the start timestamp of the linear source, identify the second portion of the content from the non-linear source based on the end timestamp of the first portion of the content from the linear source; and

in response to determining, based on the comparing, the start timestamp of the non-linear source does not match the start timestamp of the linear source:

calculate a time difference between the start timestamp of the non-linear source and the start timestamp of the linear source; and

determine a start timestamp of the second portion of the content from the non-linear source by adding the calculated time difference to the end timestamp of the first portion of the content that requires buffering.

14. The system of claim 9 , wherein the control circuitry is further configured to:

retrieve textual information related to the advertisement period; and

supplement the second portion received from the non-linear source with the textual information.

15. The system of claim 9 , wherein the control circuitry is further configured to:

identify a user profile associated with the user equipment;

retrieve advertisement content based on the user profile; and

insert the advertisement content into the second portion of the content received from the non-linear source at the advertisement period.

16. The system of claim 9 , wherein the control circuitry configured to arrange the first portion and the second portion based on the start timestamp, the end timestamp, and the plurality of successive timestamps is further configured to position the first portion relative to the second portion such that the start timestamp, the end timestamp, and the plurality of successive time stamps are in temporal order.

Assignments (2)
CHANGE OF NAME Recorded Oct 3, 2024
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 069106/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2023
From: PICHAIMURTHY, RAJENDRAN; SEETHARAM, MADHUSUDHAN; SREEKANTH, HARSHITH KUMAR GEJJEGONDANAHALLY
To: ROVI GUIDES, INC.
Reel/Frame 064032/0837 →
Continuity (4)
Continuation 17979127 · Nov 2, 2022
Continuation 17313355 · May 6, 2021
Continuation 16145390 · Sep 28, 2018
Related Publication 20230353807A1 · Nov 2, 2023
Cited By (1)
US 12,684,188