# US 8,782,727 B1 · Adaptive video stream testing

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

- Number: US 8,782,727 B1
- Document ID: US8782727B1
- Status: Granted
- Kind: B1
- Application number: 13/439,695
- Filed: 2012-04-04
- Granted: 2014-07-15
- Earliest claimed: 2012-04-04
- Assignees: Google Inc.
- Applicants: Guru Nagarajan; Andrew Flynn
- Inventors: Guru Nagarajan; Andrew Flynn
- Web page: https://patentgrep.com/patent/US8782727B1

## CPC

- H04N 21/4405: involving video stream decryption
- H04L 43/0888: Throughput
- H04L 65/75: Media network packet handling
- H04N 21/4353: {involving decryption of additional data (arrangements using cryptography for the use of broadcast information or broadcast-related information H04H60/23)}
- H04N 21/44209: {Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network (arrangements for maintenance or administration in data switching networks involving bandwidth and capacity management H04L41/0896)}
- 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/42615: {involving specific demultiplexing arrangements}
- H04N 21/42623: {involving specific decryption arrangements}
- H04N 2201/3246: of data relating to permitted access or usage, e.g. level of access or usage parameters for digital rights management [DRM] related to still images
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and techniques for implementing adaptive video stream testing are presented. In particular, installation of a digital rights management (DRM) client is validated. Furthermore, a decrypted video stream at a particular bitrate is received in response to validating a DRM client. Data throttling is implemented to simulate one or more network speeds for the decrypted video stream. Additionally, video playback time is measured for a codec at the one or more network speeds and it is determined whether the video playback time for the codec exceeds a predetermined threshold value. A test report is generated that lists the codec and the video playback time for the codec at the one or more network speeds.

## Claims

### Claim 1

A system, comprising:
a memory storing computer executable components; and
a processor configured to execute the following computer executable components stored in the memory:
a validation component that validates a digital rights management (DRM) client;
a media component that receives a decrypted video stream at a particular bitrate in response to validating a DRM client;
a simulation component that implements data throttling to simulate one or more network speeds for the decrypted video stream; and
a test component that measures video playback time for a codec at the one or more network speeds and determines whether the video playback time for the codec exceeds a predetermined threshold value.

### Claim 2 (depends on 1)

The system of claim 1, wherein the system is implemented on a device under test.

### Claim 3 (depends on 1)

The system of claim 1, wherein an encrypted video stream is received from a remote server.

### Claim 4 (depends on 3)

The system of claim 3, wherein the encrypted video stream is decrypted by the DRM client to generate the decrypted video stream.

### Claim 5 (depends on 1)

The system of claim 1, wherein the decrypted video stream is delivered to the codec for playback.

### Claim 6 (depends on 1)

The system of claim 1, wherein the simulation component modifies one or more threshold values to simulate the one or more network speeds.

### Claim 7 (depends on 1)

The system of claim 1, wherein the simulation component modifies a kernel counter to receive an encrypted video stream at a particular speed.

### Claim 8 (depends on 7)

The system of claim 7, further comprising:
a kernel component that generates the kernel counter.

### Claim 9 (depends on 7)

The system of claim 7, wherein the kernel counter is generated from a network driver.

### Claim 10 (depends on 1)

The system of claim 1, wherein the test component implements one or more stress tests that verify playback functionality of the decrypted video stream.

### Claim 11 (depends on 10)

The system of claim 10, wherein the one or more stress tests further include switching between the decrypted video stream and another video source.

### Claim 12 (depends on 1)

The system of claim 1, wherein the media component receives the decrypted video stream at one or more resolutions supported by the codec.

### Claim 13 (depends on 1)

The system of claim 1, further comprising:
a report component that generates a test report, wherein the test report lists the codec and the video playback time for the codec at the one or more network speeds.

### Claim 14 (depends on 13)

The system of claim 13, further comprising:
an output component that uploads the test report to a server.

### Claim 15 (depends on 13)

The system of claim 13, wherein the test report further includes at least one of a device name, a device model, a product name or a build fingerprint.

### Claim 16

A method, comprising:
employing a processor that facilitates execution of computer executable instructions stored on a non-transitory computer readable medium to implement operations, comprising:
validating installation of a digital rights management (DRM) client;
receiving a decrypted video stream at a particular bitrate in response to validating a DRM client;
varying the particular bitrate via data throttling;
executing one or more tests using the decrypted video stream at one or more supported resolutions for a codec; and
generating a test report that lists the codec and test results for the codec.

### Claim 17

A method, comprising:
employing a processor that facilitates execution of computer executable instructions stored on a non-transitory computer readable medium to implement operations, comprising:
validating installation of a digital rights management (DRM) client;
receiving a decrypted video stream at a particular bitrate in response to validating a DRM client;
simulating one or more network speeds for the decrypted video stream via data throttling;
measuring video playback time for a supported codec on a device at the one or more network speeds; and
determining whether the video playback time for the supported codec exceeds a predetermined threshold value.

### Claim 18 (depends on 17)

The method of claim 17, further comprising generating a test report that includes the supported codec and the video playback time for the supported codec at the one or more network speeds.

### Claim 19 (depends on 18)

The method of claim 18, further comprising uploading the test report to a server.

### Claim 20 (depends on 17)

The method of claim 17, further comprising modifying a threshold value to simulate the one or more network speeds.

### Claim 21 (depends on 17)

The method of claim 17, further comprising modifying a kernel counter to receive the decrypted video stream at a particular speed.

### Claim 22 (depends on 17)

The method of claim 17, further comprising implementing one or more stress tests that verify playback functionality of the decrypted video stream.

### Claim 23

A non-transitory computer readable storage medium comprising computer-executable instructions, that in response to execution, cause a computing system to perform operations, comprising:
validating installation of a digital rights management (DRM) client;
receiving a decrypted video stream at a particular bitrate in response to validating a DRM client;
simulating one or more network speeds for the decrypted video stream via data throttling;
measuring video playback time for a codec on a device at the one or more network speeds;
determining whether the video playback time for the codec exceeds a predetermined threshold value; and
generating a test report that lists the codec and the video playback time for the codec at the one or more network speeds.
