# US 10,771,855 B1 · Deep characterization of content playback systems

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

- Number: US 10,771,855 B1
- Document ID: US10771855B1
- Status: Granted
- Kind: B1
- Application number: 15/483,650
- Filed: 2017-04-10
- Granted: 2020-09-08
- Earliest claimed: 2017-04-10
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Marc Joliveau; Christopher Longo
- Web page: https://patentgrep.com/patent/US10771855B1

## CPC

- H04N 21/4424: {Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used (error monitoring in general G06F11/30; arrangements for monitoring conditions of receiving stations in broadcast systems H04H60/32; diagnosis, testing or measuring for television receivers H04N17/04)}
- H04N 21/64738: {Monitoring network characteristics, e.g. bandwidth, congestion level (data switched network analysis H04L41/14; monitoring functioning in data switched networks H04L43/0817; flow control in packet networks H04L47/10)}
- H04N 21/23439: {for generating different versions}
- H04N 21/2353: {specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata}
- H04N 21/251: {Learning process for intelligent management, e.g. learning user preferences for recommending movies (details of learning user preferences for the retrieval of video data in a video database G06F16/739; computer systems using learning methods G06N3/08)}
- H04N 21/25808: {Management of client data (terminal profiles in network data switching protocols H04L67/303)}
- H04N 21/43635: {HDMI}
- H04N 21/4621: {Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen (arrangements for using the results of monitoring on user's side in broadcast systems H04H60/65; flow control in packet networks H04L47/10)}
- H04N 21/466: Learning process for intelligent management, e.g. learning user preferences for recommending movies {(services using the results of monitoring in broadcast systems H04H60/61)}
- H04N 21/4662: {characterized by learning algorithms}
- H04N 21/6332: directed to client
- H04N 21/6582: {Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number (arrangements where receivers interact with the broadcast H04H20/38)}
- H04N 21/84: Generation or processing of descriptive data, e.g. content descriptors {(systems specially adapted for using meta-information in broadcast systems H04H60/73)}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Techniques are described for obtaining and analyzing deep characterization information for a content playback system with multiple interconnected components. A server can determine a subset of configurations of requested media content that are compatible with the capabilities of the components of the content playback system. Limiting a client device to select media content fragments corresponding to the subset of configurations can be enforced through the use of constrained manifest files.

## Claims

### Claim 1

A computing system, comprising:
one or more processors and memory configured to:
receive from a client device a request to play back media content;
receive a first parameter value and a second parameter value from a first component of a plurality of interconnected components of a content playback system, the first parameter value representing a characteristic of the first component, and the second parameter value representing a characteristic of a second component of the content playback system, wherein the characteristic of the first component and the characteristic of the second component correspond to different capabilities of the first component and the second component for a particular content playback parameter, and wherein the first component and the second component are configured, as part of the content playback system, to facilitate playback of the media content requested by the client device, the first component is part of the client device, and the second component is discrete from the client device;
determine the capability of the second component corresponding to the particular content playback parameter by using the second parameter value as a database index;
generate manifest data representing content playback versions of media content at a plurality of quality levels, the content playback versions being selected to ensure compatibility with the different capabilities of the first component and the second component and representing a subset of less than all of a superset of content playback versions; and
transmit the manifest data to the first component of the content playback system.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein the one or more processors and memory are further configured to:
receive a third parameter value and a fourth parameter value from the first component of the content playback system, the third parameter value and the fourth parameter value each representing characteristics of a third component of the content playback system that do not correspond to a capability of the third component for the particular content playback parameter;
determining the capability of the third component for the particular content playback parameter by using a heuristic function using the third parameter value and the fourth parameter value as inputs;
wherein the one or more processors and memory are configured to generate the manifest data by selecting the content playback versions to ensure compatibility with the different capabilities of the first component and the second component and the capability of the third component.

### Claim 3 (depends on 1)

The computing system of claim 1, wherein the one or more processors and memory are further configured to:
receive an updated first parameter value;
generate updated manifest data representing updated content playback versions of media content at a plurality of quality levels, the updated content playback versions being selected to ensure compatibility with the capabilities of the first component and the second component as reflected by the updated first parameter value and the second parameter value; and
transmit the updated manifest data to the first component of the content playback system.

### Claim 4 (depends on 3)

The computing system of claim 3:
wherein the updated first parameter value corresponds to a dynamic characteristic of the first component that can vary during the playback of the media content, and the second parameter value corresponds to a static characteristic of the second component that does not vary during playback of the media content.

### Claim 5 (depends on 1)

The computing system of claim 1 wherein the one or more processors and memory are further configured to generate the manifest data by determining at least one of:
a highest value for the particular content playback parameter that is supported by both the first component and the second component, a lowest value for the particular content playback parameter that is supported by both the first component and the second component, or a largest set of values for the particular content playback parameter in which each value in the largest set is supported by both the first component and the second component.

### Claim 6 (depends on 1)

The computing system of claim 1, wherein the one or more processors and memory are further configured to:
identify a third parameter value associated with at least one component of the content playback system; and
transmit an indication to the first component not to provide the third parameter value.

### Claim 7 (depends on 1)

The computing system of claim 1, wherein the one or more processors and memory are configured to generate the manifest data by:
determining the capability of the first component or the second component for the particular content playback parameter by accessing an information source external to the content playback system, the information source being one of a discussion forum, a product manual, a reverse engineering report, an auction site, a review, an RSS feed, a social media feed, a social networking site, or a purchase history.

### Claim 8

A device, comprising:
one or more processors and memory configured to:
request media content for playback;
determine a first parameter value and a second parameter value for a content playback system, the content playback system having a plurality of interconnected components including the device, the first parameter value representing a characteristic of the device, and the second parameter value representing a characteristic of a second component of the content playback system, wherein the characteristic of the device and the characteristic of the second component correspond to different capabilities of the device and the second component for a particular content playback parameter, and the second component is discrete from the device;
transmit the first parameter value and second parameter value to a media server;
receive manifest data representing content playback versions of media content at a plurality of quality levels, the content playback versions being selected to ensure compatibility with the different capabilities of the device and the second component and representing a subset of less than all of a superset of content playback versions, wherein the capability of the second component for the particular content playback parameter is determined by using the second parameter value as a database index; and
facilitate playback of the media content using the second component of the content playback system by selecting from among the content playback versions represented in the manifest data.

### Claim 9 (depends on 8)

The device of claim 8, wherein the one or more processors and memory are further configured to:
determine a third parameter value and a fourth parameter value of the content playback system, the third parameter value and the fourth parameter value each representing characteristics of a third component of the content playback system that do not correspond to a capability of the third component for the particular content playback parameter;
transmit the third parameter value to the media server;
wherein the one or more processors and memory are configured to receive manifest data representing content playback versions of media content at a plurality of quality levels, the content playback versions being selected to ensure compatibility with the different capabilities of the device and the second component and the capability of the third component;
further wherein the capability of the third component for the particular content playback parameter is determined by using a heuristic function using the third parameter value and the fourth parameter value as inputs.

### Claim 10 (depends on 8)

The device of claim 8, wherein the one or more processors and memory are further configured to:
transmit an updated first parameter value;
receive updated manifest data representing updated content playback versions of media content at a plurality of quality levels, the updated content playback versions being selected to ensure compatibility with the capabilities of the device and the second component as reflected by the updated first parameter value and the second parameter value.

### Claim 11 (depends on 10)

The device of claim 10:
wherein the updated first parameter value corresponds to a dynamic characteristic of the device that can vary during the playback of the media content, and the second parameter value corresponds to a static characteristic of the second component that does not vary during playback of the media content.

### Claim 12 (depends on 8)

The device of claim 8, wherein the one or more processors and memory are further configured to:
identify a third parameter value associated with at least one component of the content playback system;
generate an indication not to provide the third parameter value to the media server.

### Claim 13 (depends on 8)

The device of claim 8, wherein the one or more processors and memory are further configured to:
determine at least one of the first parameter value or second parameter value by accessing an information source external to the content playback system, the information source being one of a discussion forum, a product manual, a reverse engineering report, an auction site, a review, an RSS feed, a social media feed, a social networking site, or a purchase history.

### Claim 14

A computer-implemented method, comprising:
receiving from a client device a request to play back media content;
receiving from the client device a first parameter value and a second parameter value for a particular content playback parameter, the first parameter value representing a capability of a first component of the client device for the particular content playback parameter, and the second parameter value representing a capability of a second component for the particular content playback parameter, wherein the capability of the first component and the capability of the second component correspond to different capabilities of the first component and the second component for the particular content playback parameter, wherein the first component and the second component are included in a content playback system configured to play back the media content requested by the client device, and the second component is discrete from the client device;
determining for the second component the capability corresponding to the particular content playback parameter by using the second parameter value as a database index;
generating manifest data representing content playback versions of media content at a plurality of quality levels, the content playback versions being selected to ensure compatibility with the different capabilities of the first component and the second component and representing a subset of less than all of a superset of content playback versions; and
transmitting the manifest data to the client device.

### Claim 15 (depends on 14)

The computer-implemented method of claim 14, further comprising:
receiving a third parameter value and a fourth parameter value from the first component of the content playback system, the third parameter value and the fourth parameter value each representing characteristics of a third component of the content playback system that do not correspond to a capability of the third component for the particular content playback parameter;
determining the capability of the third component for the particular content playback parameter by using a heuristic function using the third parameter value and the fourth parameter value as inputs;
wherein generating the manifest data includes selecting the content playback versions to ensure compatibility with the different capabilities of the first component and the second component and the capability of the third component.

### Claim 16 (depends on 14)

The computer-implemented method of claim 14, further comprising:
receiving an updated first parameter value;
generating updated manifest data representing updated content playback versions of media content at a plurality of quality levels, the updated content playback versions being selected to ensure compatibility with the capabilities of the first component and the second component as reflected by the updated first parameter value and the second parameter value; and
transmitting the updated manifest data to the first component of the content playback system.

### Claim 17 (depends on 14)

The computer-implemented method of claim 14, wherein generating the manifest data includes determining at least one of:
a highest value for the particular content playback parameter that is supported by both the first component and the second component, a lowest value for the particular content playback parameter that is supported by both the first component and the second component, or a largest set of values for the particular content playback parameter in which each value in the largest set is supported by both the first component and the second component.
