IP Library Granted Patent US 9,338,149
Granted Patent B2
US 9,338,149 · App. 14/215,848 · Granted May 10, 2016

DLNA/DTCP stream conversion for secure media playback

Inventor: Paul Moroney (La Jolla, CA)
Assignee: ARRIS Enterprises, Inc.
H04L63/0457G06F21/10H04L63/166H04N21/2351H04N21/2381H04N21/23476H04N21/23611H04N21/23895H04N21/234309H04N21/25816H04N21/26258H04N21/26613H04N21/4126H04N21/4147H04N21/41407H04N21/4346H04N21/4353H04N21/4367H04N21/43615H04N21/43853H04N21/4405H04N21/4408H04N21/440218H04N21/4825H04N21/63345H04N21/64322H04N21/835G06F2221/0706G06F2221/0784
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 9,338,149
App. No.
14/215,848
Filed
Mar 17, 2014
Granted
May 10, 2016
Kind
B2
Art Unit
2495
USPC
713/151
Abstract

A process for converting a DTCP-IP transport stream into HLS format, comprising receiving an encrypted DTCP-IP transport stream comprising DTCP frames at a secondary device from a source device, with each of the plurality of DTCP frames comprising encrypted 16-byte portions, forming chunks from the DTCP frames by grouping encrypted 16-byte portions into a chunk, adding HLS padding bytes to the end of each chunk and encrypting the HLS padding bytes to form an encrypted chunk, loading each of the encrypted chunks and a playlist to a media proxy server at the secondary device, loading a DTCP key onto a security proxy server, and providing the playlist, each of the encrypted chunks, and the DTCP key to a native media player on the secondary device, such that the native media player follows the playlist to decrypt the encrypted chunks using the DTCP key and plays back the chunks.

Claims (50)

1. A process for converting a DTCP-IP transport stream into HLS format, comprising:

receiving an encrypted DTCP-IP transport stream at a secondary device from a source device, said encrypted DTCP-IP transport stream comprising a plurality of DTCP frames, each of said plurality of DTCP frames comprising a plurality of encrypted 16-byte portions;

forming chunks from one of said plurality of DTCP frames by grouping one or more of its plurality of encrypted 16-byte portions into a chunk;

adding HLS padding bytes to the end of said chunk and encrypting said HLS padding bytes, such that said chunk and the encrypted HLS padding bytes form an encrypted chunk;

loading each of said encrypted chunks, and a playlist of said encrypted chunks, to a media proxy server at said secondary device;

loading a DTCP key onto a security proxy server at said secondary device, said DTCP Key having been obtained from said source device; and

providing said playlist, each of said encrypted chunks, and said DTCP key to a native media player on said secondary device, such that said native media player follows said playlist to decrypt said encrypted chunks using said DTCP key and plays back said chunks.

2. The process of claim 1 , wherein one of said chunks contains a final 16 byte portion from one of said plurality of DTCP frames, and said process further comprises:

decrypting said final 16 byte portion;

replacing DTCP padding bytes within said final 16 byte portion with HLS padding bytes; and

re-encrypting said final 16 byte portion to form one of said encrypted chunks.

3. The process of claim 1 , wherein said playlist includes a value describing the time length of each encrypted chunk.

4. The process of claim 3 , wherein said time length is determined by decrypting some or all of said encrypted DTCP-IP transport stream to form a clear transport stream, finding PCRs within said clear transport stream, and determining said time length at least in part by the length of time between PCRs in said clear transport stream.

5. The process of claim 1 , further comprising finding an initialization vector for said chunk by finding a preceding 16-byte portion that immediately preceded the 16-byte portion used as the first portion in said chunk within said DTCP frame, and using that preceding 16-byte portion as said initialization vector for said chunk.

6. The process of claim 5 , further comprising including said initialization vector for said chunk in said playlist.

7. A process for converting a DTCP-IP transport stream into HLS format, comprising:

receiving an encrypted DTCP-IP transport stream at a secondary device from a source device, said encrypted DTCP-IP transport stream comprising a plurality of DTCP frames, each of said plurality of DTCP frames comprising a plurality of encrypted 16-byte portions;

forming chunks from one of said plurality of DTCP frames by grouping one or more of its plurality of encrypted 16-byte portions into a chunk;

adding HLS padding bytes to the end of said chunk and encrypting said HLS padding bytes, such that said chunk and the encrypted HLS padding bytes form an encrypted chunk;

loading each of said encrypted chunks, and a playlist of said encrypted chunks, to a media proxy server at said secondary device;

loading a DTCP key onto a security proxy server at said secondary device, said DTCP Key having been obtained from said source device; and

providing said playlist, each of said encrypted chunks, and said DTCP key to a native media player on said secondary device, such that said native media player follows said playlist to decrypt said encrypted chunks using said DTCP key and plays back said chunks,

wherein said playlist includes a value describing the time length of each encrypted chunk, and

wherein said clear transport stream has a constant bitrate, and said time length is determined by the number of bits for each chunk, as found by counting bits from said constant bitrate.

8. A process for converting a DTCP-IP transport stream into HLS format, comprising:

receiving an encrypted DTCP-IP transport stream at a secondary device from a source device, said encrypted DTCP-IP transport stream comprising a plurality of DTCP frames, each of said plurality of DTCP frames comprising a plurality of encrypted 16-byte portions;

forming chunks from one of said plurality of DTCP frames by grouping one or more of its plurality of encrypted 16-byte portions into a chunk;

adding HLS padding bytes to the end of said chunk and encrypting said HLS padding bytes, such that said chunk and the encrypted HLS padding bytes form an encrypted chunk;

loading each of said encrypted chunks, and a playlist of said encrypted chunks, to a media proxy server at said secondary device;

loading a DTCP key onto a security proxy server at said secondary device, said DTCP Key having been obtained from said source device; and

providing said playlist, each of said encrypted chunks, and said DTCP key to a native media player on said secondary device, such that said native media player follows said playlist to decrypt said encrypted chunks using said DTCP key and plays back said chunks,

wherein said playlist includes a value describing the time length of each encrypted chunk, and

wherein said clear transport stream has a variable bitrate, and said time length is determined by the number of bits for each chunk, as found from an average bitrate for said clear transport stream by counting bits from said average bitrate.

9. A process for converting a DTCP-IP transport stream into HLS format, comprising:

receiving an encrypted DTCP-IP transport stream at a secondary device from a source device, said encrypted DTCP-IP transport stream comprising a plurality of DTCP frames, each of said plurality of DTCP frames comprising a plurality of encrypted 16-byte portions;

forming chunks from one of said plurality of DTCP frames by grouping one or more of its plurality of encrypted 16-byte portions into a chunk;

adding HLS padding bytes to the end of said chunk and encrypting said HLS padding bytes, such that said chunk and the encrypted HLS padding bytes form an encrypted chunk;

loading each of said encrypted chunks, and a playlist of said encrypted chunks, to a media proxy server at said secondary device;

loading a DTCP key onto a security proxy server at said secondary device, said DTCP Key having been obtained from said source device; and

providing said playlist, each of said encrypted chunks, and said DTCP key to a native media player on said secondary device, such that said native media player follows said playlist to decrypt said encrypted chunks using said DTCP key and plays back said chunks,

wherein said playlist includes a value describing the time length of each encrypted chunk, and

wherein said time length is determined by using a clock to divide said encrypted DTCP-IP transport stream into said chunks at preselected time intervals.

10. A process for converting a DTCP-IP transport stream into HLS format, comprising:

receiving an encrypted DTCP-IP transport stream at a secondary device from a source device, said encrypted DTCP-IP transport stream comprising a plurality of DTCP frames, each of said plurality of DTCP frames comprising a plurality of encrypted 16-byte portions;

forming chunks from one of said plurality of DTCP frames by grouping one or more of its plurality of encrypted 16-byte portions into a chunk;

adding HLS padding bytes to the end of said chunk and encrypting said HLS padding bytes, such that said chunk and the encrypted HLS padding bytes form an encrypted chunk;

loading each of said encrypted chunks, and a playlist of said encrypted chunks, to a media proxy server at said secondary device;

loading a DTCP key onto a security proxy server at said secondary device, said DTCP Key having been obtained from said source device;

providing said playlist, each of said encrypted chunks, and said DTCP key to a native media player on said secondary device, such that said native media player follows said playlist to decrypt said encrypted chunks using said DTCP key and plays back said chunks; and

receiving and storing said encrypted DTCP-IP transport stream in its entirety at local storage within said secondary device, and forming said chunks from the local storage only on a request for playback at a subsequent time.

Assignments (14)
RELEASE OF SECURITY INTEREST AT REEL/FRAME 049905/0504 Recorded Dec 19, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC (F/K/A ARRIS ENTERPRISES, INC.); ARRIS TECHNOLOGY, INC.; ARRIS SOLUTIONS, INC.; COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; RUCKUS WIRELESS, LLC (F/K/A RUCKUS WIRELESS, INC.)
Reel/Frame 071477/0255 →
SECURITY INTEREST Recorded Dec 17, 2024
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE INC., OF NORTH CAROLINA; OUTDOOR WIRELESS NETWORKS LLC; RUCKUS IP HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC
Reel/Frame 069889/0114 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2022
From: ARRIS TECHNOLOGY, INC.
To: ARRIS ENTERPRISES, INC.
Reel/Frame 060791/0583 →
SECURITY INTEREST Recorded Nov 19, 2021
From: ARRIS SOLUTIONS, INC.; ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; RUCKUS WIRELESS, INC.
To: WILMINGTON TRUST
Reel/Frame 060752/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 049820 FRAME: 0495. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Jul 25, 2019
From: ARRIS ENTERPRISES, INC.
To: ARRIS ENTERPRISES LLC
Reel/Frame 049858/0161 →
PATENT SECURITY AGREEMENT Recorded Jul 3, 2019
From: ARRIS ENTERPRISES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 049820/0495 →
ABL SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049892/0396 →
TERM LOAN SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049905/0504 →
CHANGE OF NAME Recorded Jul 2, 2019
From: ARRIS ENTERPRISES. INC
To: ARRIS
Reel/Frame 049669/0652 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 8, 2019
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: ARRIS GROUP, INC.; ARRIS ENTERPRISES, INC.; ARRIS INTERNATIONAL LIMITED; ARRIS TECHNOLOGY, INC.; ARCHIE U.S. MERGER LLC; ARCHIE U.S. HOLDINGS LLC; ARRIS GLOBAL SERVICES, INC.; ARRIS HOLDINGS CORP. OF ILLINOIS, INC.; ARRIS SOLUTIONS, INC.; BIG BAND NETWORKS, INC.; TEXSCAN CORPORATION; POWER GUARD, INC.; JERROLD DC RADIO, INC.; NEXTLEVEL SYSTEMS (PUERTO RICO), INC.; GIC INTERNATIONAL HOLDCO LLC; GIC INTERNATIONAL CAPITAL LLC
Reel/Frame 050721/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2015
From: ARRIS TECHNOLOGY, INC
To: ARRIS ENTERPRISES, INC.
Reel/Frame 037328/0341 →
SECURITY INTEREST Recorded Jun 26, 2015
From: ARRIS GROUP, INC.; ARRIS ENTERPRISES, INC.; ARRIS INTERNATIONAL LIMITED; ARRIS TECHNOLOGY, INC.; ARCHIE U.S. MERGER LLC; ARCHIE U.S. HOLDINGS LLC; ARRIS GLOBAL SERVICES, INC.; ARRIS HOLDINGS CORP. OF ILLINOIS, INC.; ARRIS SOLUTIONS, INC.; BIG BAND NETWORKS, INC.; TEXSCAN CORPORATION; POWER GUARD, INC.; JERROLD DC RADIO, INC.; NEXTLEVEL SYSTEMS (PUERTO RICO), INC.; GIC INTERNATIONAL HOLDCO LLC; GIC INTERNATIONAL CAPITAL LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036020/0789 →
MERGER AND CHANGE OF NAME Recorded Mar 5, 2015
From: GENERAL INSTRUMENT CORPORATION; ARRIS TECHNOLOGY, INC.
To: ARRIS TECHNOLOGY, INC.
Reel/Frame 035133/0286 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2014
From: MORONEY, PAUL
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 033015/0642 →
Continuity (3)
Provisional Application 61801216 · Mar 15, 2013
Provisional Application 61817115 · Apr 29, 2013
Related Publication 20140281481A1 · Sep 18, 2014