IP Library Granted Patent US 12,108,098
Granted Patent B2
US 12,108,098 · App. 18/220,618 · Granted Oct 1, 2024

Digital transport adapter

Inventors: Michael Sallas (Radnor, PA); David DeAndrade (San Anselmo, CA); Christopher Stone (Newtown, PA)
Assignee: TiVo Corporation
H04N21/2385G06F16/84H04N21/2393H04N21/2668H04N21/42615H04N21/4341H04N21/4345H04N21/4384H04N21/43853H04N21/8456H04N21/858G06F16/748H04N21/234
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,108,098
App. No.
18/220,618
Granted
Oct 1, 2024
Kind
B2
Abstract

One or more computing devices may be configured to identify information corresponding to a program change request associated with a multi-program data transmission. The information may comprise at least a link to a desired program within the multi-program data transmission. The one or more computing devices may communicate the link to the desired program to a client device over a specified time period. After the time period, the one or more computing devices may communicate the desired program to the client device using a single program data transmission. The single program data transmission may be derived from the multi-program data transmission.

Claims (62)

1. A computer-implemented method, comprising:

identifying a multi-program data stream comprising a plurality of programs including a program requested by a requesting device, wherein the multi-program data stream comprises a first data structure;

generating a second data structure by modifying a particular portion of the first data structure;

converting the multi-program data stream to a single-program data stream by replacing the first data structure with the second data structure, wherein the single-program data stream corresponds to the requested program;

transmitting the single-program data stream to the requesting device for a particular period of time; and

in response to determining that the particular period of time has elapsed, modifying the second data structure in the single-program data stream by causing the second data structure to include the particular portion of the first data structure of the multi-program data stream.

2. The method of claim 1 , wherein modifying the second data structure in the single-program data stream further comprises replacing the second data structure in the single-program data stream with the first data structure of the multi-program data stream.

3. The method of claim 1 , wherein:

the first data structure corresponds to a first program association table comprising a plurality of program mapping tables respectively associated with the plurality of programs; and

generating the second data structure by modifying the particular portion of the first data structure comprises generating a second program association table comprising a particular program mapping table, of the plurality of program mapping tables, that corresponds to the requested program and removing the other of the plurality of program mapping tables.

4. The method of claim 1 , further comprising:

in response to determining that the particular period of time has elapsed, modifying the second data structure in the single-program data stream to include a digital rights management attribute.

5. The method of claim 1 , wherein generating the second data structure by modifying the particular portion of the first data structure comprises causing the second data structure to comprise a digital rights management attribute.

6. The method of claim 1 , wherein:

the first data structure corresponds to a plurality of program mapping tables respectively associated with the plurality of programs; and

generating the second data structure by modifying the particular portion of the first data structure comprises maintaining a particular program mapping table, of the plurality of program mapping tables, that corresponds to the requested program and removing the other of the plurality of program mapping tables.

7. The method of claim 1 , further comprising:

after generating the single-program data stream, and prior to transmitting the single-program data stream to the requesting device, transmitting a null data stream to the requesting device.

8. The method of claim 3 , wherein modifying the second data structure in the single-program data stream by causing the second data structure to include the particular portion of the first data structure of the multi-program data stream comprises:

causing the second data structure to include the first program association table; and

causing the second data structure to include a modified version of the particular program mapping table.

9. The method of claim 3 , wherein:

the first data structure further comprises, for each of the plurality of programs, an audio elementary stream and a video elementary stream; and

converting the multi-program data stream to a single-program data stream comprises maintaining a particular audio elementary stream and a particular video elementary stream each corresponding to the requested program, and removing the other of the audio and video elementary streams for the other of the plurality of programs; and

generating the second data structure by modifying the particular portion of the first data structure comprises generating a second program association table comprising a particular program mapping table, of the plurality of program mapping tables, that corresponds to the requested program and removing the other of the plurality of program mapping tables.

10. The method of claim 6 , further comprising, in response to determining that the particular period of time has elapsed:

modifying the particular program mapping table;

blocking the particular program mapping table from being transmitted to the requesting device; and

causing the single-program data stream to include the modified particular program mapping table.

11. A computer-implemented system, comprising:

input/output circuitry;

control circuitry configured to:

identify a multi-program data stream comprising a plurality of programs including a program requested by a requesting device, wherein the multi-program data stream comprises a first data structure;

generate a second data structure by modifying a particular portion of the first data structure; and

convert the multi-program data stream to a single-program data stream by replacing the first data structure with the second data structure, wherein the single-program data stream corresponds to the requested program;

wherein the input/output circuitry is configured to:

transmit the single-program data stream to the requesting device for a particular period of time; and

wherein the control circuitry is further configured to:

in response to determining that the particular period of time has elapsed, modify the second data structure in the single-program data stream by causing the second data structure to include the particular portion of the first data structure of the multi-program data stream.

12. The system of claim 11 , wherein the control circuitry is configured to modify the second data structure in the single-program data stream further comprises replacing the second data structure in the single-program data stream with the first data structure of the multi-program data stream.

13. The system of claim 11 , wherein:

the first data structure corresponds to a first program association table comprising a plurality of program mapping tables respectively associated with the plurality of programs; and

the control circuitry is configured to generate the second data structure by modifying the particular portion of the first data structure by generating a second program association table comprising a particular program mapping table, of the plurality of program mapping tables, that corresponds to the requested program and removing the other of the plurality of program mapping tables.

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

in response to determining that the particular period of time has elapsed, modify the second data structure in the single-program data stream to include a digital rights management attribute.

15. The system of claim 11 , wherein the control circuitry is further configured to generate the second data structure by modifying the particular portion of the first data structure by causing the second data structure to comprise a digital rights management attribute.

16. The system of claim 11 , wherein:

the first data structure corresponds to a plurality of program mapping tables respectively associated with the plurality of programs; and

the control circuitry is further configured to generate the second data structure by modifying the particular portion of the first data structure by maintaining a particular program mapping table, of the plurality of program mapping tables, that corresponds to the requested program and removing the other of the plurality of program mapping tables.

17. The system of claim 16 , wherein the control circuitry is further configured to, in response to determining that the particular period of time has elapsed:

modify the particular program mapping table;

block the particular program mapping table from being transmitted to the requesting device; and

cause the single-program data stream to include the modified particular program mapping table.

18. The system of claim 13 , wherein the control circuitry is configured to modify the second data structure in the single-program data stream by causing the second data structure to include the particular portion of the first data structure of the multi-program data stream by:

causing the second data structure to include the first program association table; and

causing the second data structure to include a modified version of the particular program mapping table.

19. The system of claim 13 , wherein:

the first data structure further comprises, for each of the plurality of programs, an audio elementary stream and a video elementary stream; and

the control circuitry is configured to convert the multi-program data stream to a single-program data stream by maintaining a particular audio elementary stream and a particular video elementary stream each corresponding to the requested program, and removing the other of the audio and video elementary streams for the other of the plurality of programs; and

the control circuitry is configured to generate the second data structure by modifying the particular portion of the first data structure by generating a second program association table comprising a particular program mapping table, of the plurality of program mapping tables, that corresponds to the requested program and removing the other of the plurality of program mapping tables.

20. The system of claim 11 , wherein the control circuitry is further configured to:

after generating the single-program data stream, and prior to transmitting the single-program data stream to the requesting device, transmit a null data stream to the requesting device.

Assignments (5)
CHANGE OF NAME Recorded Mar 31, 2026
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075303/0980 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO CORPORATION
To: TIVO LLC
Reel/Frame 069083/0240 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO LLC
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 069083/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2023
From: SALLAS, MICHAEL; DEANDRADE, DAVID; STONE, CHRISTOPHER
To: COMCAST CABLE COMMUNICATIONS, LLC
Reel/Frame 064681/0817 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2023
From: COMCAST CABLE COMMUNICATIONS, LLC
To: TIVO CORPORATION
Reel/Frame 064681/0834 →
Cited By (1)
US 12,695,958