# US 10,484,726 B2 · Playlist error tags for delivery and rendering of streamed media

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

- Number: US 10,484,726 B2
- Document ID: US10484726B2
- Status: Granted
- Kind: B2
- Application number: 15/613,111
- Filed: 2017-06-02
- Published: 2018-12-06
- Granted: 2019-11-19
- Earliest claimed: 2017-06-02
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Jordan B. Schneider; Peng Zhou; Roger N. Pantos
- Web page: https://patentgrep.com/patent/US10484726B2

## CPC

- H04N 21/2353: {specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata}
- H04L 65/60: Network streaming of media packets
- H04L 65/752: adapting media to network capabilities
- H04N 21/26258: {for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list (retrieval of multimedia data based on playlists G06F16/40)}
- H04N 21/4425: Monitoring of client processing errors or hardware failure
- H04N 21/4825: {using a list of items to be played back in a given order, e.g. playlists}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The present disclose describes techniques for delivery and rendering of streamed media using error tags in a corresponding media playlist. The playlist may represent organization of the media item, providing information of coded media segments that constitute the media item. When segments of coded media are received for a media item, a determination may be made whether the coded media segments contain errors. When a coded media segment is encountered that does not contain an error, a playlist entry representing the coded media segment may be added to the playlist. When a coded media segment contains an error, a playlist entry may be added to represent this coded media segment. This playlist entry may indicate the segment error. The playlist may be stored for access by player device(s).

## Claims

### Claim 1

A method, comprising:
responsive to received segments of coded media and a playlist that describes a media item to which the coded media belongs, determining which coded media segments contain errors;
for a first coded media segment that does not contain an error, adding a first entry to the playlist, wherein the first entry represents the first coded media segment;
for a second coded media segment that contains an error, adding a second entry to the playlist, wherein the second entry represents the second coded media segment, and wherein the second entry indicates the segment error; and
storing the playlist for access by a player device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the second entry includes a tag indicating the segment error.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first entry to the playlist indicates that the first coded media segment does not contain an error.

### Claim 4 (depends on 1)

The method of claim 1, wherein the error of the second coded media segment is caused by null content in the second coded media segment.

### Claim 5 (depends on 1)

The method of claim 1, wherein the error of the second coded media segment is caused by corruption in the second coded media segment.

### Claim 6 (depends on 1)

The method of claim 1, wherein the second coded media segment is an expected media segment and the error indicates the absence of the expected second coded media segment.

### Claim 7 (depends on 1)

The method of claim 1, wherein the second entry to the playlist comprises a network address of an alternate segment to the second coded media segment.

### Claim 8

A method comprising:
determining whether an encoded media stream contains a segment error;
if the encoded media stream contains a segment error, modifying a playlist for the encoded media stream to include data indicating the segment error; and
transmitting the modified playlist to a terminal device for rendering at least a portion of the encoded media stream based on the data indicating the segment error.

### Claim 9 (depends on 8)

The method of claim 8, wherein the segment error corresponds to a segment of the encoded media stream.

### Claim 10 (depends on 9)

The method of claim 9, wherein the data indicating the segment error is represented in an error tag in a playlist entry for the segment.

### Claim 11 (depends on 8)

The method of claim 8, wherein the segment error is caused by a coding error.

### Claim 12 (depends on 8)

The method of claim 8, wherein the segment error is caused by an inoperability of a coder for the encoded media stream.

### Claim 13 (depends on 8)

The method of claim 8, wherein the segment error is caused by an absence of media source data from which the encoded media stream is derived.

### Claim 14 (depends on 8)

The method of claim 8, further comprising:
if the encoded media stream does not contain a segment error, modifying the playlist to include data indicating that the segments of the encoded media stream are error-free.

### Claim 15 (depends on 8)

The method of claim 8, wherein the data indicating the segment error further indicates a network location of a second segment for use as an alternative to a segment corresponding to the segment error.

### Claim 16 (depends on 15)

The method of claim 15, wherein the second segment represents content common with that of the segment corresponding to the segment error.

### Claim 17 (depends on 16)

The method of claim 16, wherein the second segment has at least one attribute different than that of the segment corresponding to the segment error, wherein the at least one attribute comprises at least one of a coding format, a bit rate, a resolution, and a language.

### Claim 18 (depends on 8)

The method of claim 8, wherein the segment error corresponds to a plurality of successive segments in the encoded media stream.

### Claim 19 (depends on 18)

The method of claim 18, wherein the data indicating the segment error further indicates an aggregate duration based on the respective durations of the plurality of successive segments.

### Claim 20 (depends on 8)

The method of claim 8, wherein the encoded media stream is an encoded audio stream.

### Claim 21 (depends on 8)

The method of claim 8, wherein the encoded media stream is an encoded video stream.

### Claim 22

A method comprising:
receiving a playlist for a media item, wherein the playlist identifies segments of coded media organized according to different streams;
selecting a stream to play;
determining whether coded media segments of the selected stream have tags associated with them identifying an error;
for a first coded media segment that is not identified as having an error, initiating retrieval of the first coded media segment using information specified in the playlist;
for a second coded media segment that is identified as having an error, determining whether to switch to a counterpart coded media segment from another stream; and
when the determination is to switch, initiating retrieval of the counterpart coded media segment using information specified in the playlist.

### Claim 23 (depends on 22)

The method of claim 22, wherein the information specified in the playlist comprises a network address.

### Claim 24 (depends on 22)

The method of claim 22, wherein when the determination is not to switch, initiating retrieval of the second coded media segment using information specified in the playlist.

### Claim 25 (depends on 24)

The method of claim 24, wherein the retrieval of the second coded media segment results in an error.

### Claim 26 (depends on 22)

The method of claim 22, wherein when the determination is not to switch, rendering alternate content of the second coded media segment at a player device.

### Claim 27 (depends on 26)

The method of claim 26, wherein the alternate content is stored locally at the player device.

### Claim 28 (depends on 22)

The method of claim 22, wherein when the determination is not to switch, suspending rendering of content corresponding to the selected stream for a duration corresponding to a duration of the second coded media segment.

### Claim 29 (depends on 22)

The method of claim 22, wherein the counterpart coded media segment has at least one attribute different than that of the second coded media segment, wherein the at least one attribute comprises at least one of a coding format, a bit rate, a resolution, and a language.

### Claim 30

A non-transitory computer-readable medium storing instructions that, when executed by a processor, effectuate operations comprising:
receiving a playlist for a media item, wherein the playlist identifies segments of coded media organized according to different streams;
selecting a stream to play;
determining whether coded media segments of the selected stream have tags associated with them identifying an error;
for a first coded media segment that is not identified as having an error, initiating retrieval of the first coded media segment using information specified in the playlist;
for a second coded media segment that is identified as having an error, determining whether to switch to a counterpart coded media segment from another stream; and
when the determination is to switch, initiating retrieval of the counterpart coded media segment using information specified in the playlist.

### Claim 31

A computing device comprising:
a processor;
a memory in mutual communication with the processor and storing instructions that, when executed by the processor, effectuate operations comprising:
receiving a playlist for a media item, wherein the playlist identifies segments of coded media organized according to different streams;
selecting a stream to play;
determining whether coded media segments of the selected stream have tags associated with them identifying an error;
for a first coded media segment that is not identified as having an error, initiating retrieval of the first coded media segment using information specified in the playlist;
for a second coded media segment that is identified as having an error, determining whether to switch to a counterpart coded media segment from another stream; and
when the determination is to switch, initiating retrieval of the counterpart coded media segment using information specified in the playlist.

### Claim 32

A method, comprising:
receiving, at a media distribution server, streams of coded media data, the streams representing a common media item and partitioned respectively into segments,
determining which segment(s) contain coded media data errors;
generating a playlist representing the streams of the media item in which:
when a segment does not contain a coded media data error, an entry for the respective segment identifies an ID of the segment and a network location from which the respective segment can be retrieved;
when a segment contains a coded media data error, an entry for the respective segment identifies an ID of the segment, a network location from which the respective segment can be retrieved, and a field containing an error identifier; and
storing the playlist for access by a player device.
