IP Library Granted Patent US 10,944,572
Granted Patent B2
US 10,944,572 · App. 15/801,037 · Granted Mar 9, 2021

Decryption and variant processing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,944,572
App. No.
15/801,037
Granted
Mar 9, 2021
Kind
B2
Abstract

A plurality of byte ranges including at least one encrypted byte range forms a variant sample for providing a digital watermark in content output by a player device. The plurality of byte ranges is ordered in a secured memory, and stored in an unsecured memory including one or more encrypted byte ranges for further processing of the ordered plurality of byte ranges. According to another aspect, a plurality of byte ranges forms a sample for content output from a player device, and includes at least one double-encrypted byte range. The plurality of byte ranges is stored in a secured memory, and the at least one double-encrypted byte range is partially decrypted to generate at least one decrypted singe-encrypted byte range. The plurality of byte ranges is stored in an unsecured memory using the at least one decrypted single-encrypted byte range in place of the at least one double-encrypted byte range.

Claims (48)

1. A player device, comprising:

an unsecured memory;

a secured memory;

a decoder;

an unsecured processor; and

a secured processor configured to:

receive a plurality of byte ranges from the unsecured memory, the plurality of byte ranges forming a variant sample for providing a digital watermark in content output by the player device, and wherein the plurality of byte ranges includes at least one encrypted byte range;

store the received plurality of byte ranges in the secured memory;

order the plurality of byte ranges stored in the secured memory;

store the ordered plurality of byte ranges including one or more of the at least one encrypted byte range in the unsecured memory for further processing of the ordered plurality of byte ranges;

receive the ordered plurality of byte ranges from the unsecured memory after the further processing of the ordered plurality of byte ranges;

decrypt the one or more encrypted byte ranges to provide one or more corresponding decrypted byte ranges; and

store in the secured memory the ordered plurality of byte ranges including the one or more decrypted byte ranges for rendering by the decoder.

2. The player device of claim 1 , wherein the unsecured processor is configured to perform further processing for the ordered plurality of byte ranges stored in the unsecured memory by performing at least one of Network Abstraction Layer (NAL) repacking of the ordered plurality of byte ranges, selecting an order for playing the ordered plurality of byte ranges among other groups of byte ranges in response to a user input, associating audio data with the ordered plurality of byte ranges, and adding subtitle data to the ordered plurality of byte ranges.

3. The player device of claim 1 , wherein the decoder is configured to:

access from the secured memory the ordered plurality of byte ranges including the one or more decrypted byte ranges;

and decode the ordered plurality of byte ranges.

4. The player device of claim 3 , wherein the decoder is further configured to access the ordered plurality of byte ranges from the secured memory using Inter-Process Communication (IPC) on a secure audio/video path.

5. The player device of claim 1 , wherein the unsecured processor is configured to execute a producer thread before the secured processor receives the plurality of byte ranges from the unsecured memory, the producer thread including at least one of caching a file received by the player device, decompressing the received file, reading sample metadata from the decompressed file, reading sample data including the plurality of byte ranges from the decompressed file, and storing the sample data in a read buffer of the unsecured memory.

6. The player device of claim 5 , wherein the unsecured processor is further configured to execute part of a consumer thread, the consumer thread including obtaining sample data from the read buffer in a particular order for further execution of the consumer thread by the secured processor.

7. A method of operating a player device, the method comprising using a secured processor of the player device for:

receiving a plurality of byte ranges from an unsecured memory of the player device, the plurality of byte ranges forming a variant sample for providing a digital watermark in content output from the player device, wherein the plurality of byte ranges includes at least one encrypted byte range;

storing the received plurality of byte ranges in a secured memory of the player device;

ordering the plurality of byte ranges stored in the secured memory; and

storing the ordered plurality of byte ranges including one or more of the at least one encrypted byte range in the unsecured memory for further processing of the ordered plurality of byte ranges, the further processing including using an unsecured processor of the player device for performing in the unsecured memory at least one of Network Abstraction Layer (NAL) repacking of the ordered plurality of byte ranges, selecting an order for playing the ordered plurality of byte ranges among other groups of byte ranges in response to a user input, associating audio data with the ordered plurality of byte ranges, and adding subtitle data to the ordered plurality of byte ranges.

8. The method of claim 7 , further comprising using the secured processor for:

receiving the ordered plurality of byte ranges from the unsecured memory after the further processing of the ordered plurality of byte ranges;

decrypting the one or more encrypted byte ranges to provide one or more corresponding decrypted byte ranges; and

storing in the secured memory the ordered plurality of byte ranges including the one or more decrypted byte ranges.

9. The method of claim 7 , further comprising using a decoder of the player device for:

accessing from the secured memory the ordered plurality of byte ranges including the one or more decrypted byte ranges; and

decoding the ordered plurality of byte ranges.

10. The method of claim 9 , wherein the decoder accesses the ordered plurality of byte ranges from the secured memory using Inter-Process Communication (IPC) on a secure audio/video path.

11. The method of claim 10 , further comprising using the unsecured processor for executing a producer thread before the secured processor receives the plurality of byte ranges from the unsecured memory, the producer thread including at least one of caching a file received by the player device, decompressing the received file, reading sample metadata from the decompressed file, reading sample data including the plurality of byte ranges from the decompressed file, and storing the sample data in a read buffer of the unsecured memory.

12. The method of claim 11 , further comprising using the unsecured processor for executing part of a consumer thread, the consumer thread including obtaining sample data from the read buffer in a particular order for further execution of the consumer thread by the secured processor.

13. A player device, comprising:

an unsecured memory;

a secured memory;

a decoder;

and an unsecured processor; and

means for:

receiving a plurality of byte ranges from the unsecured memory, the plurality of byte ranges forming a variant sample for providing a digital watermark in content output from the player device, wherein the plurality of byte ranges includes at least one encrypted byte range;

storing the received plurality of byte ranges in the secured memory;

ordering the plurality of byte ranges stored in the secured memory;

storing the ordered plurality of byte ranges including one or more of the at least one encrypted byte range in the unsecured memory for further processing of the ordered plurality of byte ranges;

receiving the ordered plurality of byte ranges from the unsecured memory after the further processing of the ordered plurality of byte ranges;

decrypting the one or more encrypted byte ranges to provide one or more corresponding decrypted byte ranges; and

storing in the secured memory the ordered plurality of byte ranges including the one or more decrypted byte ranges for rendering by the decoder.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: BLANKENBECKLER, DAVID; KOLAROVIC, NIKOLA; ZMUKIC, NINOSLAV; ANDJELIC, TIHOMIR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 044011/0075 →