# US 8,544,038 B2 · System for insertion of locally cached information into a received broadcast stream

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

- Number: US 8,544,038 B2
- Document ID: US8544038B2
- Status: Granted
- Kind: B2
- Application number: 12/000,198
- Filed: 2007-12-10
- Published: 2008-07-03
- Granted: 2013-09-24
- Earliest claimed: 2006-12-08
- Assignees: Sirius XM Radio Inc.
- Applicants: Paul D. Marko
- Inventors: Paul D. Marko
- Web page: https://patentgrep.com/patent/US8544038B2

## CPC

- H04N 21/4331: {Caching operations, e.g. of an advertisement for later insertion during playback}
- G11B 27/034: on discs (G11B27/036, G11B27/038 take precedence)
- G11B 27/105: {of operating discs}
- G11B 27/3027: {used signal is digitally coded}
- H04H 20/106: {Receiver-side switching}
- H04H 20/40: Arrangements for broadcast specially adapted for accumulation-type receivers
- H04L 65/4015: {where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference}
- H04L 65/611: for multicast or broadcast (systems for broadcast or conference H04L12/18; arrangements for broadcast or distribution combined with broadcast H04H20/00; arrangements for broadcast applications with a direct linkage to broadcast information or to broadcast space-time H04H60/00; selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS], H04W4/06)
- H04L 65/764: {at the destination (reformatting of additional data in video clients H04N21/4355)}
- H04N 21/4325: {by playing back content from the storage medium (reproduction of recorded television signals H04N5/76; reproduction of recorded television signals H04N9/79)}
- H04N 21/438: Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N 21/44004: {involving video buffer management, e.g. video decoder buffer or video display buffer}
- H04N 21/44016: {involving splicing one content stream with another content stream, e.g. for substituting a video clip}
- H04N 21/812: {involving advertisement data (advertising per se G06Q30/02)}
- H04N 21/8126: {involving additional data, e.g. news, sports, stocks, weather forecasts}
- H04N 21/8455: {involving pointers to the content, e.g. pointers to the I-frames of the video stream}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)
- H04H: BROADCAST COMMUNICATION (multiplex communication H04J; pictorial communication aspects of broadcast systems H04N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method and apparatus are provided for receiving a broadcast comprising a plurality of program channels and generating a playback stream using at least one of a buffered program channel and stored indexed content (e.g., commercials, programs, songs) for insertion. Control data controls which receivers insert which indexed content and when the indexed content is inserted into a received program channel, allowing for playback of songs from playlists, tiered subscription services, and sponsorship of broadcast program channels to provide market-directed content to selected receivers and listeners. Buffer management operations prevent uncontrolled buffer growth and commercial content avoidance through rapid channel changes.

## Claims

### Claim 1

A method of inserting content into a received broadcast stream for playback comprising:
receiving a broadcast stream comprising at least one program channel for playback and processing the received broadcast stream for playback at a user's receiver in a playback stream;
determining changes between program channel content segments in the at least one program channel;
receiving indexed content segments that can be inserted into the playback stream at selected content index pointers corresponding to potential insertion points between selected ones of the program channel content segments;
receiving control data indicating which of the indexed content segments to store at the receiver, and at least one of the frequency and when to insert selected ones of the indexed content segments into the playback stream;
storing selected ones of the received indexed content segments at the receiver in accordance with the received control data;
buffering the at least one program channel prior to playback, the buffered program channel comprising buffered content segments; and
generating the playback stream using at least one of the buffered program channel and selected ones of the stored indexed content segments by
determining from the control data which of the stored indexed content segments are to be inserted into the playback stream and at which of the content index pointers in the buffered program channel,
pausing the buffered program channel during playback at a selected one of the content index pointers and inserting a selected one of the stored indexed content segments into the playback stream in accordance with the control data, and
resuming playback of the buffered program channel by determining at the receiver which of the buffered program content segments to playback when resuming the playback of the buffered program channel, the buffered program channel being time delayed relative to the received broadcast stream during playback due to the inserted indexed content segment.

### Claim 2 (depends on 1)

A method as claimed in claim 1, the resuming further comprising determining at the receiver which of the buffered program content segments to skip in the buffer to limit playback stream delay of the buffered program content segment.

### Claim 3 (depends on 1)

A method as claimed in claim 1, further comprising skipping a program channel part constituting an entire buffered content segment from the buffered program channel to avoid the resuming of playback using a fragmented buffered content segment.

### Claim 4 (depends on 1)

A method as claimed in claim 1, wherein the content index pointers are data provided in the broadcast stream, and further comprising receiving at least one of the content index pointers and other auxiliary data at the receiver which indicates that a selected program channel segment in the received broadcast stream cannot be followed by an inserted indexed content segment during playback, the auxiliary data being provided via at least one of the broadcast stream and another transport channel.

### Claim 5 (depends on 1)

A method as claimed in claim 1, further comprising receiving at least one of the content index pointers and other auxiliary data at the receiver which indicates that a program channel segment in the received broadcast stream cannot be dropped from playback.

### Claim 6 (depends on 1)

A method as claimed in claim 1, wherein the indexed content segments are commercials, and further comprising:
receiving the control data which indicates a selected amount of the commercials for insertion into the playback stream depending on different tiers of subscription service; and
operating the receiver to insert the selected amount of commercials into the playback stream that corresponding to a selected one of the tiers of subscription service indicated in the received control data.

### Claim 7 (depends on 1)

A method as claimed in claim 1, further comprising:
maintaining plural buffers for storing respective ones of the at least one program channel currently selected for the playback stream and at least one other program channel recently selected for playback;
clearing one of the plural buffers when content from another one of the plural buffers is being currently selected for playback in the playback stream; and
commencing recording content from another program channel in the cleared buffer;
wherein the clearing of content from the plural buffers is delayed a selected amount of time corresponding to at least the duration of the selected indexed content segment currently being inserted into the playback stream to prevent avoiding playback of commercials through rapid program channel changes and to allow reverting to a previously selected program channel for playback that is subject to a delay that corresponds to the duration of the program channel change.

### Claim 8 (depends on 1)

A method as claimed in claim 1, wherein the indexed content segments are songs, and further comprising:
receiving the control data which indicates a playlist of selected songs; and
operating the receiver to insert the songs indicated by the playlist in the received control data into the playback stream.

### Claim 9 (depends on 1)

A method as claimed in claim 1, wherein the broadcast stream is a satellite digital audio radio service (SDARS) content stream comprising program associated data (PAD), and further comprising using the PAD as the content index pointers, the PAD indicating changes between at least one of artist, song title and a program identifier provided for each program broadcast in the program channel.

### Claim 10 (depends on 1)

A method as claimed in claim 1, further comprising operating the receiver in accordance with control data comprising factors indicating which of a plurality of receivers are to substitute selected ones of the indexed content segments into their respective playback streams, the factors comprising at least one of geographic location of the receiver, user profile, time of day, date, and expiration date of a corresponding indexed content segment.

### Claim 11 (depends on 1)

A method as claimed in claim 1, wherein the at least one program channel is sponsored by an entity that selects the indexed content segments to be inserted using selected ones of a plurality of receivers to be targeted by the entity, and further comprising:
receiving the control data which indicates the indexed content segments selected by the entity and when to insert them into the sponsored program channel; and
operating at least one of the receivers targeted by the entity in accordance with the control data to insert the indexed content segments selected by the entity into playback stream.

### Claim 12

One or more non-transitory, processor-readable storage devices having processor-readable code embodied on the processor-readable storage devices for programming a processing device in a digital audio broadcast radio receiver to perform a method of generating a playback stream from a received broadcast program channel having selectively inserted content, the method comprising:
receiving a broadcast stream comprising at least one program channel for playback and processing the received broadcast stream for playback at a user's receiver in a playback stream;
determining changes between program channel content segments in the at least one program channel;
receiving indexed content segments that can be inserted into the playback stream at selected content index pointers corresponding to potential insertion points between selected ones of the program channel content segments;
receiving control data indicating which of the indexed content segments to store at the receiver, and at least one of the frequency and when to insert selected ones of the indexed content segments into the playback stream;
storing selected ones of the received indexed content segments at the receiver in accordance with the received control data;
buffering the at least one program channel prior to playback, the buffered program channel comprising buffered content segments; and
generating the playback stream using at least one of the buffered program channel and selected ones of the stored indexed content segments by
determining from the control data which of the stored indexed content segments are to be inserted into the playback stream and at which of the content index pointers in the buffered program channel,
pausing the buffered program channel during playback at a selected one of the content index pointers and inserting a selected one of the stored indexed content segments into the playback stream in accordance with the control data, and
resuming playback of the buffered program channel by determining at the receiver which of the buffered program content segments to playback when resuming the playback of the buffered program channel, the buffered program channel being time delayed relative to the received broadcast stream during playback due to the inserted indexed content segment.

### Claim 13 (depends on 12)

Processor-readable storage devices as claimed in claim 12, the resuming further comprising determining at the receiver which of the buffered program content segments to skip in the buffer to limit playback stream delay of the buffered program content segment.

### Claim 14 (depends on 12)

Processor-readable storage devices as claimed in claim 12, further comprising skipping a program channel part constituting an entire buffered content segment from the buffered program channel to avoid the resuming of playback using a fragmented buffered content segment.

### Claim 15 (depends on 12)

Processor-readable storage devices as claimed in claim 12, wherein the content index pointers are data provided in the broadcast stream, and the method further comprising receiving at least one of the content index pointers and other auxiliary data at the receiver which indicates that a selected program channel segment in the received broadcast stream cannot be followed by an inserted indexed content segment during playback, the auxiliary data being provided via at least one of the broadcast stream and another transport channel.

### Claim 16 (depends on 12)

Processor-readable storage devices as claimed in claim 12, the method further comprising receiving at least one of the content index pointers and other auxiliary data at the receiver which indicates that a program channel segment in the received broadcast stream cannot be dropped from playback.

### Claim 17 (depends on 12)

Processor-readable storage devices as claimed in claim 12, wherein the indexed content segments are commercials, and the method further comprising:
receiving the control data which indicates a selected amount of the commercials for insertion into the playback stream depending on different tiers of subscription service; and
operating the receiver to insert the selected amount of commercials into the playback stream that corresponding to a selected one of the tiers of subscription service indicated in the received control data.

### Claim 18 (depends on 12)

Processor-readable storage devices as claimed in claim 12, further comprising:
maintaining plural buffers for storing respective ones of the at least one program channel currently selected for the playback stream and at least one other program channel recently selected for playback;
clearing one of the plural buffers when content from another one of the plural buffers is being currently selected for playback in the playback stream; and
commencing recording content from another program channel in the cleared buffer;
wherein the clearing of content from the plural buffers is delayed a selected amount of time corresponding to at least the duration of the selected indexed content segment currently being inserted into the playback stream to prevent avoiding playback of commercials through rapid program channel changes and to allow reverting to a previously selected program channel for playback that is subject to a delay that corresponds to the duration of the program channel change.

### Claim 19 (depends on 12)

Processor-readable storage devices as claimed in claim 12, wherein the indexed content segments are songs, and the method further comprising:
receiving the control data which indicates a playlist of selected songs; and
operating the receiver to insert the songs indicated by the playlist in the received control data into the playback stream.

### Claim 20 (depends on 12)

Processor-readable storage devices as claimed in claim 12, wherein the broadcast stream is a satellite digital audio radio service (SDARS) content stream comprising program associated data (PAD), and the method further comprising using the PAD as the content index pointers, the PAD indicating changes between at least one of artist, song title and a program identifier provided for each program broadcast in the program channel.

### Claim 21 (depends on 12)

Processor-readable storage devices as claimed in claim 12, the method further comprising operating the receiver in accordance with control data comprising factors indicating which of a plurality of receivers are to substitute selected ones of the indexed content segments into their respective playback streams, the factors comprising at least one of geographic location of the receiver, user profile, time of day, date, and expiration date of a corresponding indexed content segment.

### Claim 22 (depends on 12)

Processor-readable storage devices as claimed in claim 12, wherein the at least one program channel is sponsored by an entity that selects the indexed content segments to be inserted using selected ones of a plurality of receivers to be targeted by the entity, and the method further comprising:
receiving the control data which indicates the indexed content segments selected by the entity and when to insert them into the sponsored program channel; and
operating at least one of the receivers targeted by the entity in accordance with the control data to insert the indexed content segments selected by the entity into playback stream.

### Claim 23 (depends on 1)

A method as claimed in claim 1, further comprising buffering at least part of the buffered program content segment currently being received, and continually refreshing the buffer with a selected duration of the buffered program channel as it is being received.

### Claim 24 (depends on 12)

Processor-readable storage devices as claimed in claim 12, the method further comprising buffering at least part of the buffered program content segment currently being received, and continually refreshing the buffer with a selected duration of the buffered program channel as it is being received.
