# US 9,521,442 B2 · Digital transport adapter

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,521,442 B2
- Document ID: US9521442B2
- Status: Granted
- Kind: B2
- Application number: 14/284,978
- Filed: 2014-05-22
- Published: 2015-11-26
- Granted: 2016-12-13
- Earliest claimed: 2014-05-22
- Assignees: Comcast Cable Communications, LLC
- Applicants: Comcast Cable Communications, LLC
- Inventors: Michael Sallas; David DeAndrade; Christopher Stone
- Web page: https://patentgrep.com/patent/US9521442B2

## CPC

- H04N 21/2385: Channel allocation (H04N21/266 takes precedence); Bandwidth allocation (H04N21/24 takes precedence {; allocation of channels according to the instantaneous demands of the users in time-division multiplex systems H04J3/1682; admission control, resource allocation in open networks H04L12/5692; arrangements for maintenance or administration in data switching networks involving bandwidth and capacity management H04L41/0896; negotiating bandwidth in wireless networks H04W28/16})
- G06F 16/84: Mapping; Conversion
- H04N 21/2393: {involving handling client requests (scheduling or organising the servicing of application requests H04L67/60)}
- H04N 21/2668: Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles {(information retrieval from the Internet by querying with filtering and personalisation G06F16/9535; arrangements for replacing or switching information during the broadcast H04H20/10; push services over packet-switching network H04L12/1859; adaptation of message content in packet-switching networks H04L51/063)}
- H04N 21/42615: {involving specific demultiplexing arrangements}
- H04N 21/4341: {Demultiplexing of audio and video streams}
- H04N 21/4345: {Extraction or processing of SI, e.g. extracting service information from an MPEG stream}
- H04N 21/4384: {involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency}
- H04N 21/43853: {involving multiplex stream decryption (arrangements using cryptography for the use of broadcast information or broadcast-related information H04H60/23)}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N 21/858: Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- G06F 16/748: {Hypervideo (linking data to content, e.g. by linking an URL to a video object in the context of video distribution systems H04N21/858)}
- H04N 21/234: Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 1

A method comprising:
receiving, by a computing device and from a client device, a request to start receiving a program;
determining, by the computing device, a multi-program data stream comprising a plurality of programs, wherein the plurality of programs comprises the requested program, and wherein the multi-program data stream comprises a first association table indicating locations within the multi-program data stream at which assets for the plurality of programs are located;
sending, by the computing device and to the client device in response to the request, a single-program data stream comprising assets for the requested program and comprising a second association table that is a subset of the first association table, wherein the second association table comprises information for the requested program and information for less than all of the plurality of programs; and
determining a period of time for which the client device is to use the second association table; and
responsive to determining that the period of time has elapsed, replacing the second association table within the single-program data stream with the first association table, and continuing to send the single-program data stream to the client device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
deriving the single-program data stream from the multi-program data stream using a filter based, at least in part, on the request.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
assigning to the second association table a version number greater than or equal to a version number of the first association table.

### Claim 4 (depends on 1)

The method of claim 1, wherein the request is responsive to a digital video recorder (DVR) event.

### Claim 5 (depends on 1)

The method of claim 1, wherein the replacing the second association table in the single-program data stream comprises:
generating, by the computing device, a content protection descriptor for the requested program; and
sending, by the computing device and to the client device, the content protection descriptor via the single-program data stream.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
monitoring, by the computing device, the multi-program data stream for a change in a version number of the first association table; and
responsive to a detection of the change in the version number of the first association table, updating the second association table.

### Claim 7 (depends on 1)

The method of claim 1, wherein the sending the single-program data stream comprises:
locating the second association table in a first position within the single-program data stream equivalent to a position of the first association table within the multi-program data stream; and
locating the assets for the requested program in a second position within the single-program data stream equivalent to a position of the assets for the requested program within the multi-program data stream.

### Claim 8 (depends on 2)

The method of claim 2, wherein the deriving the single-program data stream comprises:
determining one or more assets within the multi-program data stream corresponding to one or more programs of the plurality of programs other than the requested program; and
replacing the one or more assets with null data.

### Claim 9 (depends on 2)

The method of claim 2, wherein the deriving the single-program data stream comprises:
removing information indicative of locations within the multi-program data stream at which assets for one or more programs of the plurality of programs other than the requested program are located.

### Claim 10

A method comprising:
receiving, from a device, a program change request;
responsive to receiving the program change request, determining a multi-program data transmission comprising a plurality of programs, wherein the plurality of programs comprises a program matching the program change request, wherein the multi-program data transmission comprises a first table, and wherein the first table comprises program association data for the plurality of programs;
generating a second table, based on a subset of the first table, which comprises program association data for the program matching the program change request and less than all program association data for the plurality of programs other than the program corresponding to the program change request;
sending, to the device, the second table via a modified multi-program data transmission wherein one or more programs within the multi-program data transmission have been replaced with null data;
determining a period of time for which the device is to use the second table; and
responsive to determining that the period of time has elapsed, sending, to the device, the first table via a single-program data transmission, wherein the single-program data transmission comprises the program matching the program change request.

### Claim 11 (depends on 10)

The method of claim 10, wherein the generating the second table comprises:
assigning to the second table a version number greater than or equal to at least one of a version number of the first table.

### Claim 12 (depends on 10)

The method of claim 10, further comprising:
filtering the multi-program data transmission based, at least in part, on the program change request to produce the single program data transmission.

### Claim 13 (depends on 10)

The method of claim 10, wherein the sending the first table via the single-program data transmission further comprises:
generating a content protection descriptor for the program matching the program change request; and
sending, to the device, the content protection descriptor via the single-program data transmission.

### Claim 14 (depends on 10)

The method of claim 10, further comprising:
monitoring the multi-program data transmission for a change in a version number of the first table; and
responsive to a detection of the change in the version number of the first table, updating the second table.

### Claim 15 (depends on 12)

The method of claim 12, wherein the filtering the multi-program data transmission comprises:
forming the single program data transmission using programming content within the multi-program data transmission determined using the first table.

### Claim 16

A method comprising:
receiving, by a computing device and from a client device, a request to receive a new program;
determining, by the computing device, a multi-program transport stream (MPTS) comprising a plurality of programs and a first program association table (PAT), wherein the plurality of programs comprises the new program, and wherein the first PAT comprises information indicating one or more locations within the MPTS at which assets for the plurality of programs are located;
sending, by the computing device and to the client device in response to the request, a single-program transport stream (SPTS) comprising assets for the new program and comprising a second PAT that is a subset of the first PAT, wherein the second PAT comprises information for the new program and information for less than all of the plurality of programs;
determining a period of time for which the client device is to use the second PAT; and
responsive to determining that the period of time has elapsed, replacing the second PAT within the SPTS with the first PAT, and continuing to send the SPTS to the client device.

### Claim 17 (depends on 16)

The method of claim 16, wherein the sending the SPTS comprises:
determining one or more programs within the MPTS other than the requested program; and
replacing the one or more programs with null data.

### Claim 18 (depends on 16)

The method of claim 16, further comprising:
monitoring, by the computing device, the MPTS for a change in a PAT version number of the first PAT; and
responsive to a detection of the change in the PAT version number, updating the second PAT.

### Claim 19 (depends on 16)

The method of claim 16, wherein the sending the SPTS comprises:
inserting the second PAT in a first position within the SPTS equivalent to a position of the first PAT within the MPTS; and
inserting the assets for the new program in a second position within the SPTS equivalent to a position of the assets for the new program within the MPTS.

### Claim 20 (depends on 16)

The method of claim 16, wherein the replacing the second PAT within the SPTS with the first PAT comprises:
generating, by the computing device, a digital transmission content protection (DTCP) descriptor for the new program; and
sending, by the computing device and to the client device, the DTCP via the SPTS.
