File tree Expand file tree Collapse file tree 2 files changed +12
-22
lines changed
Expand file tree Collapse file tree 2 files changed +12
-22
lines changed Original file line number Diff line number Diff line change @@ -803,10 +803,9 @@ class EMEController extends Logger implements ComponentAPI {
803803 const generateRequestFilter =
804804 this . config . drmSystems ?. [ context . keySystem ] ?. generateRequest ;
805805 if ( generateRequestFilter ) {
806- const contextWithLevelKey : MediaKeySessionContextAndLevelKey = {
806+ const contextWithLevelKey = Object . assign ( { } , context , {
807807 decryptdata : levelKey ,
808- ...context ,
809- } ;
808+ } ) ;
810809 try {
811810 const mappedInitData : ReturnType < typeof generateRequestFilter > =
812811 generateRequestFilter . call (
@@ -1173,10 +1172,9 @@ class EMEController extends Logger implements ComponentAPI {
11731172 levelKey : LevelKey ,
11741173 keyMessage : ArrayBuffer ,
11751174 ) : Promise < void > {
1176- const contextWithLevelKey : MediaKeySessionContextAndLevelKey = {
1175+ const contextWithLevelKey = Object . assign ( { } , context , {
11771176 decryptdata : levelKey ,
1178- ...context ,
1179- } ;
1177+ } ) ;
11801178 return this . requestLicense (
11811179 contextWithLevelKey ,
11821180 new Uint8Array ( keyMessage ) ,
Original file line number Diff line number Diff line change @@ -178,10 +178,6 @@ export class LevelKey implements DecryptData {
178178 }
179179 if ( ! this . keyId ) {
180180 this . keyId = getKeyIdFromPlayReadyKey ( levelKeys ) ;
181- if ( ! this . keyId ) {
182- const offset = keyBytes . length - 22 ;
183- this . keyId = keyBytes . subarray ( offset , offset + 16 ) ;
184- }
185181 }
186182 break ;
187183 case KeySystemFormats . PLAYREADY : {
@@ -211,22 +207,18 @@ export class LevelKey implements DecryptData {
211207 }
212208 }
213209
214- // Default behavior: assign a new keyId for each uri
210+ // Default behavior: get keyId from other KEY tag or URI lookup
215211 if ( ! this . keyId || this . keyId . byteLength !== 16 ) {
216- let keyId : Uint8Array < ArrayBuffer > | null | undefined =
217- keyUriToKeyIdMap [ this . uri ] ;
212+ let keyId : Uint8Array < ArrayBuffer > | null | undefined ;
213+ keyId = getKeyIdFromWidevineKey ( levelKeys ) ;
218214 if ( ! keyId ) {
219- keyId = getKeyIdFromWidevineKey ( levelKeys ) ;
215+ keyId = getKeyIdFromPlayReadyKey ( levelKeys ) ;
220216 if ( ! keyId ) {
221- keyId = getKeyIdFromPlayReadyKey ( levelKeys ) ;
222- if ( ! keyId ) {
223- const val =
224- Object . keys ( keyUriToKeyIdMap ) . length % Number . MAX_SAFE_INTEGER ;
225- keyId = new Uint8Array ( 16 ) ;
226- const dv = new DataView ( keyId . buffer , 12 , 4 ) ; // Just set the last 4 bytes
227- dv . setUint32 ( 0 , val ) ;
228- }
217+ keyId = keyUriToKeyIdMap [ this . uri ] ;
229218 }
219+ }
220+ if ( keyId ) {
221+ this . keyId = keyId ;
230222 LevelKey . setKeyIdForUri ( this . uri , keyId ) ;
231223 }
232224 }
You can’t perform that action at this time.
0 commit comments