OLD | NEW |
(Empty) | |
| 1 content = addMemberListToObject( { |
| 2 |
| 3 'mp4-clear' : { initDataType: 'cenc', |
| 4 audio : { type: 'audio/mp4;codecs="mp4a.40.2"', |
| 5 path: '/encrypted-media/content/audio_aac-
lc_128k_dashinit.mp4' }, |
| 6 video : { type: 'video/mp4;codecs="avc1.4d401e"', |
| 7 path: '/encrypted-media/content/video_512x
288_h264-360k_clear_dashinit.mp4' } |
| 8 }, |
| 9 |
| 10 'mp4-basic' : { assetId: 'mp4-basic', |
| 11 initDataType: 'cenc', |
| 12 audio : { type: 'audio/mp4;codecs="mp4a.40.2"', |
| 13 path: '/encrypted-media/content/audio_aac-
lc_128k_dashinit.mp4' }, |
| 14 video : { type: 'video/mp4;codecs="avc1.4d401e"', |
| 15 path: '/encrypted-media/content/video_512x
288_h264-360k_enc_dashinit.mp4' }, |
| 16 keys : [ { kid: [ 0xad, 0x13, 0xf9, 0xea, 0x2b, 0xe6, 0
x98, 0xb8, 0x75, 0xf5, 0x04, 0xa8, 0xe3, 0xcc, 0xea, 0x64 ], |
| 17 key: [ 0xbe, 0x7d, 0xf8, 0xa3, 0x66, 0x7a, 0
x6a, 0x8f, 0xd5, 0x64, 0xd0, 0xed, 0x81, 0x33, 0x9a, 0x95 ], |
| 18 initDataType: 'cenc', |
| 19 initData: 'AAAAcXBzc2gAAAAA7e+LqXnWSs6jyCfc1
R0h7QAAAFEIARIQrRP56ivmmLh19QSo48zqZBoIY2FzdGxhYnMiKGV5SmhjM05sZEVsa0lqb2laVzFsT
FhSbGMzUXRjMmx1WjJ4bEluMD0yB2RlZmF1bHQAAAMacHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAAC+
voCAAABAAEA8AI8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvA
HMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3A
C8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiA
DQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLA
EUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSA
DwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADYAdgBrA
FQAcgBlAFkAcgB1AEoAaAAxADkAUQBTAG8ANAA4AHoAcQBaAEEAPQA9ADwALwBLAEkARAA+ADwAQwBIA
EUAQwBLAFMAVQBNAD4AagBZAEYATgBmADAAeQBmADQAaQBzAD0APAAvAEMASABFAEMASwBTAFUATQA+A
DwATABBAF8AVQBSAEwAPgBoAHQAdABwADoALwAvAHAAbABhAHkAcgBlAGEAZAB5AC4AZABpAHIAZQBjA
HQAdABhAHAAcwAuAG4AZQB0AC8AcAByAC8AcwB2AGMALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByA
C4AYQBzAG0AeAA/AFAAbABhAHkAUgBpAGcAaAB0AD0AMQAmAGEAbQBwADsAVQBzAGUAUwBpAG0AcABsA
GUATgBvAG4AUABlAHIAcwBpAHMAdABlAG4AdABMAGkAYwBlAG4AcwBlAD0AMQA8AC8ATABBAF8AVQBSA
EwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==' } ] |
| 20 }, |
| 21 |
| 22 'mp4-clear-encrypted' : { |
| 23 assetId: 'mp4-basic', |
| 24 initDataType: 'cenc', |
| 25 audio : { type: 'audio/mp4;codecs="mp4a.40.2"', |
| 26 path: '/encrypted-media/content/audio_aac-
lc_128k_dashinit.mp4' }, |
| 27 video : { type: 'video/mp4;codecs="avc1.4d401e"', |
| 28 path: '/encrypted-media/content/video_512x
288_h264-360k_clear_enc_dashinit.mp4' }, |
| 29 keys : [ { kid: [ 0xad, 0x13, 0xf9, 0xea, 0x2b, 0xe6, 0
x98, 0xb8, 0x75, 0xf5, 0x04, 0xa8, 0xe3, 0xcc, 0xea, 0x64 ], |
| 30 key: [ 0xbe, 0x7d, 0xf8, 0xa3, 0x66, 0x7a, 0
x6a, 0x8f, 0xd5, 0x64, 0xd0, 0xed, 0x81, 0x33, 0x9a, 0x95 ], |
| 31 initDataType: 'cenc', |
| 32 initData: 'AAAAcXBzc2gAAAAA7e+LqXnWSs6jyCfc1
R0h7QAAAFEIARIQrRP56ivmmLh19QSo48zqZBoIY2FzdGxhYnMiKGV5SmhjM05sZEVsa0lqb2laVzFsT
FhSbGMzUXRjMmx1WjJ4bEluMD0yB2RlZmF1bHQAAAMacHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAAC+
voCAAABAAEA8AI8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvA
HMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3A
C8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiA
DQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLA
EUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSA
DwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADYAdgBrA
FQAcgBlAFkAcgB1AEoAaAAxADkAUQBTAG8ANAA4AHoAcQBaAEEAPQA9ADwALwBLAEkARAA+ADwAQwBIA
EUAQwBLAFMAVQBNAD4AagBZAEYATgBmADAAeQBmADQAaQBzAD0APAAvAEMASABFAEMASwBTAFUATQA+A
DwATABBAF8AVQBSAEwAPgBoAHQAdABwADoALwAvAHAAbABhAHkAcgBlAGEAZAB5AC4AZABpAHIAZQBjA
HQAdABhAHAAcwAuAG4AZQB0AC8AcAByAC8AcwB2AGMALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByA
C4AYQBzAG0AeAA/AFAAbABhAHkAUgBpAGcAaAB0AD0AMQAmAGEAbQBwADsAVQBzAGUAUwBpAG0AcABsA
GUATgBvAG4AUABlAHIAcwBpAHMAdABlAG4AdABMAGkAYwBlAG4AcwBlAD0AMQA8AC8ATABBAF8AVQBSA
EwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==' } ] |
| 33 }, |
| 34 |
| 35 'mp4-encrypted-clear' : { |
| 36 assetId: 'mp4-basic', |
| 37 initDataType: 'cenc', |
| 38 audio : { type: 'audio/mp4;codecs="mp4a.40.2"', |
| 39 path: '/encrypted-media/content/audio_aac-
lc_128k_dashinit.mp4' }, |
| 40 video : { type: 'video/mp4;codecs="avc1.4d401e"', |
| 41 path: '/encrypted-media/content/video_512x
288_h264-360k_enc_clear_dashinit.mp4' }, |
| 42 keys : [ { kid: [ 0xad, 0x13, 0xf9, 0xea, 0x2b, 0xe6, 0
x98, 0xb8, 0x75, 0xf5, 0x04, 0xa8, 0xe3, 0xcc, 0xea, 0x64 ], |
| 43 key: [ 0xbe, 0x7d, 0xf8, 0xa3, 0x66, 0x7a, 0
x6a, 0x8f, 0xd5, 0x64, 0xd0, 0xed, 0x81, 0x33, 0x9a, 0x95 ], |
| 44 initDataType: 'cenc', |
| 45 initData: 'AAAAcXBzc2gAAAAA7e+LqXnWSs6jyCfc1
R0h7QAAAFEIARIQrRP56ivmmLh19QSo48zqZBoIY2FzdGxhYnMiKGV5SmhjM05sZEVsa0lqb2laVzFsT
FhSbGMzUXRjMmx1WjJ4bEluMD0yB2RlZmF1bHQAAAMacHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAAC+
voCAAABAAEA8AI8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvA
HMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3A
C8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiA
DQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLA
EUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSA
DwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADYAdgBrA
FQAcgBlAFkAcgB1AEoAaAAxADkAUQBTAG8ANAA4AHoAcQBaAEEAPQA9ADwALwBLAEkARAA+ADwAQwBIA
EUAQwBLAFMAVQBNAD4AagBZAEYATgBmADAAeQBmADQAaQBzAD0APAAvAEMASABFAEMASwBTAFUATQA+A
DwATABBAF8AVQBSAEwAPgBoAHQAdABwADoALwAvAHAAbABhAHkAcgBlAGEAZAB5AC4AZABpAHIAZQBjA
HQAdABhAHAAcwAuAG4AZQB0AC8AcAByAC8AcwB2AGMALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByA
C4AYQBzAG0AeAA/AFAAbABhAHkAUgBpAGcAaAB0AD0AMQAmAGEAbQBwADsAVQBzAGUAUwBpAG0AcABsA
GUATgBvAG4AUABlAHIAcwBpAHMAdABlAG4AdABMAGkAYwBlAG4AcwBlAD0AMQA8AC8ATABBAF8AVQBSA
EwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==' } ] |
| 46 }, |
| 47 |
| 48 |
| 49 'mp4-av-multikey' : { |
| 50 assetId: 'mp4-basic', |
| 51 initDataType: 'cenc', |
| 52 associatedInitData: true, // indicates that initDa
ta for one key causes other keys to be returned as well |
| 53 audio: { type: 'audio/mp4;codecs="mp4a.40.2"', |
| 54 path: '/encrypted-media/content/audio_aac-
lc_128k_enc_dashinit.mp4' }, |
| 55 video : { type: 'video/mp4;codecs="avc1.4d401e"', |
| 56 path: '/encrypted-media/content/video_512x
288_h264-360k_enc_dashinit.mp4' }, |
| 57 keys : [ { kid: [ 0xad, 0x13, 0xf9, 0xea, 0x2b, 0xe6, 0
x98, 0xb8, 0x75, 0xf5, 0x04, 0xa8, 0xe3, 0xcc, 0xea, 0x64 ], |
| 58 key: [ 0xbe, 0x7d, 0xf8, 0xa3, 0x66, 0x7a, 0
x6a, 0x8f, 0xd5, 0x64, 0xd0, 0xed, 0x81, 0x33, 0x9a, 0x95 ], |
| 59 initDataType: 'cenc', |
| 60 initData: 'AAAAcXBzc2gAAAAA7e+LqXnWSs6jyCfc1
R0h7QAAAFEIARIQrRP56ivmmLh19QSo48zqZBoIY2FzdGxhYnMiKGV5SmhjM05sZEVsa0lqb2laVzFsT
FhSbGMzUXRjMmx1WjJ4bEluMD0yB2RlZmF1bHQAAAMacHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAAC+
voCAAABAAEA8AI8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvA
HMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3A
C8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiA
DQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLA
EUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSA
DwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADYAdgBrA
FQAcgBlAFkAcgB1AEoAaAAxADkAUQBTAG8ANAA4AHoAcQBaAEEAPQA9ADwALwBLAEkARAA+ADwAQwBIA
EUAQwBLAFMAVQBNAD4AagBZAEYATgBmADAAeQBmADQAaQBzAD0APAAvAEMASABFAEMASwBTAFUATQA+A
DwATABBAF8AVQBSAEwAPgBoAHQAdABwADoALwAvAHAAbABhAHkAcgBlAGEAZAB5AC4AZABpAHIAZQBjA
HQAdABhAHAAcwAuAG4AZQB0AC8AcAByAC8AcwB2AGMALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByA
C4AYQBzAG0AeAA/AFAAbABhAHkAUgBpAGcAaAB0AD0AMQAmAGEAbQBwADsAVQBzAGUAUwBpAG0AcABsA
GUATgBvAG4AUABlAHIAcwBpAHMAdABlAG4AdABMAGkAYwBlAG4AcwBlAD0AMQA8AC8ATABBAF8AVQBSA
EwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==' }, |
| 61 { kid: [ 0x55, 0x8e, 0xe5, 0x41, 0xb9, 0x0a, 0
xb2, 0xf3, 0x95, 0x0d, 0x00, 0xad, 0xe3, 0x76, 0x0d, 0x45 ], |
| 62 key: [ 0x91, 0x03, 0x92, 0x63, 0x01, 0x6d, 0
xa6, 0x35, 0x77, 0x0d, 0x57, 0xdb, 0x92, 0xf9, 0x8b, 0xd0 ], |
| 63 initDataType : 'cenc', |
| 64 initData: 'AAAAcXBzc2gAAAAA7e+LqXnWSs6jyCfc1
R0h7QAAAFEIARIQVY7lQbkKsvOVDQCt43YNRRoIY2FzdGxhYnMiKGV5SmhjM05sZEVsa0lqb2laVzFsT
FhSbGMzUXRjMmx1WjJ4bEluMD0yB2RlZmF1bHQAAAMacHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAAC+
voCAAABAAEA8AI8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvA
HMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3A
C8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiA
DQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLA
EUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSA
DwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+AFEAZQBXA
E8AVgBRAHEANQA4ADcASwBWAEQAUQBDAHQANAAzAFkATgBSAFEAPQA9ADwALwBLAEkARAA+ADwAQwBIA
EUAQwBLAFMAVQBNAD4AWQBpAE8ALwAxADYATABzADkANgBFAD0APAAvAEMASABFAEMASwBTAFUATQA+A
DwATABBAF8AVQBSAEwAPgBoAHQAdABwADoALwAvAHAAbABhAHkAcgBlAGEAZAB5AC4AZABpAHIAZQBjA
HQAdABhAHAAcwAuAG4AZQB0AC8AcAByAC8AcwB2AGMALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByA
C4AYQBzAG0AeAA/AFAAbABhAHkAUgBpAGcAaAB0AD0AMQAmAGEAbQBwADsAVQBzAGUAUwBpAG0AcABsA
GUATgBvAG4AUABlAHIAcwBpAHMAdABlAG4AdABMAGkAYwBlAG4AcwBlAD0AMQA8AC8ATABBAF8AVQBSA
EwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==' } ] |
| 65 }, |
| 66 |
| 67 'mp4-multikey' : { assetId: 'mp4-multikey', |
| 68 initDataType: 'cenc', |
| 69 audio: { type: 'audio/mp4;codecs="mp4a.40.2"', |
| 70 path: '/encrypted-media/content/audio_
aac-lc_128k_2keys_2sess.mp4' }, |
| 71 video: { type: 'video/mp4;codecs="avc1.4d401e"'
, |
| 72 path: '/encrypted-media/content/video_
512x288_h264-360k_enc_2keys_2sess.mp4' }, |
| 73 keys: [ { kid: [ 0x13, 0xa7, 0x53, 0x06, 0xd1,
0x18, 0x91, 0x7b, 0x47, 0xa6, 0xc1, 0x83, 0x64, 0x42, 0x51, 0x6f ], |
| 74 key: [ 0x8a, 0xaa, 0xd8, 0xc4, 0xdb,
0xde, 0xac, 0xcd, 0xad, 0x26, 0x76, 0xa1, 0xed, 0x38, 0x95, 0x2e ], |
| 75 variantId: 'key1', |
| 76 initDataType: 'cenc', |
| 77 initData: 'AAAAjXBzc2gAAAAA7e+LqXnWSs6jy
Cfc1R0h7QAAAG0IARIQE6dTBtEYkXtHpsGDZEJRbxoIY2FzdGxhYnMiRGV5SmhjM05sZEVsa0lqb2laV
zFsTFhSbGMzUXRNbk5sYzNOcGIyNGlMQ0oyWVhKcFlXNTBTV1FpT2lKclpYa3hJbjA9MgdkZWZhdWx0A
AADwnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAA6KiAwAAAQABAJgDPABXAFIATQBIAEUAQQBEAEUAU
gAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAb
wBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZ
QBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAP
gA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwAR
QBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQAR
QBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBCAGwATwBuAEUAeABqAFIAZQA1AEYASABwAHMARwBEAFoAR
QBKAFIAYgB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAa
QBjAC4AcwB0AGEAZwBpAG4AZwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZ
QAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZ
wBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AV
QBSAEwAPgBoAHQAdABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAY
QB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAa
AAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwAL
wBMAFUASQBfAFUAUgBMAD4APABDAEgARQBDAEsAUwBVAE0APgBJAEQAUgB0AFAAZwBVAEkALwBiAEkAP
QA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAP
gA=' }, |
| 78 { kid: [ 0xee, 0x73, 0x56, 0x4e, 0xc8,
0xa8, 0x90, 0xf0, 0x78, 0xef, 0x68, 0x71, 0xfa, 0x4b, 0xe1, 0x8b ], |
| 79 key: [ 0xe4, 0x4f, 0xe1, 0x45, 0x7c,
0x5e, 0xbc, 0xd8, 0x3e, 0xad, 0xdc, 0xd6, 0x2c, 0xaf, 0x55, 0x18 ], |
| 80 variantId: 'key2', |
| 81 initDataType: 'cenc', |
| 82 initData: 'AAAAjXBzc2gAAAAA7e+LqXnWSs6jy
Cfc1R0h7QAAAG0IARIQ7nNWTsiokPB472hx+kvhixoIY2FzdGxhYnMiRGV5SmhjM05sZEVsa0lqb2laV
zFsTFhSbGMzUXRNbk5sYzNOcGIyNGlMQ0oyWVhKcFlXNTBTV1FpT2lKclpYa3lJbjA9MgdkZWZhdWx0A
AADwnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAA6KiAwAAAQABAJgDPABXAFIATQBIAEUAQQBEAEUAU
gAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAb
wBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZ
QBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAP
gA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwAR
QBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQAR
QBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBUAGwAWgB6ADcAcQBqAEkAOABKAEIANAA3ADIAaAB4ACsAa
wB2AGgAaQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAa
QBjAC4AcwB0AGEAZwBpAG4AZwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZ
QAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZ
wBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AV
QBSAEwAPgBoAHQAdABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAY
QB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAa
AAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwAL
wBMAFUASQBfAFUAUgBMAD4APABDAEgARQBDAEsAUwBVAE0APgB4AEQASwBBAFkAMAB2AFoAaABVAFUAP
QA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAP
gA=' } ] }, |
| 83 |
| 84 'mp4-basic-key1' : { assetId: 'mp4-multikey-sequential', |
| 85 variantId: 'key1', |
| 86 initDataType: 'cenc', |
| 87 audio: { type: 'audio/mp4;codecs="mp4a.
40.2"', |
| 88 path: '/encrypted-media/conten
t/audio_aac-lc_128k_dashinit.mp4' }, |
| 89 video: { type: 'video/mp4;codecs="avc1.
4d401e"', |
| 90 path: '/encrypted-media/conten
t/video_512x288_h264-360k_multikey_key1_dashinit.mp4' }, |
| 91 keys: [ { kid: [0x8a, 0x0d, 0x85, 0x45,
0x21, 0x05, 0xd4, 0x15, 0x35, 0x8f, 0xea, 0x8f, 0x68, 0xe6, 0xc1, 0x91], |
| 92 key: [0x76, 0x6f, 0xab, 0xc1,
0x68, 0x3f, 0xf8, 0xef, 0x4e, 0x76, 0x00, 0x24, 0xc5, 0x23, 0x8f, 0x10], |
| 93 initDataType: 'cenc', |
| 94 initData: 'AAAAlXBzc2gAAAAA7e+Lq
XnWSs6jyCfc1R0h7QAAAHUIARIQig2FRSEF1BU1j+qPaObBkRoIY2FzdGxhYnMiTGV5SmhjM05sZEVsa
0lqb2liWEEwTFcxMWJIUnBhMlY1TFhObGNYVmxiblJwWVd3aUxDSjJZWEpwWVc1MFNXUWlPaUpyWlhre
EluMD0yB2RlZmF1bHQAAANYcHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAADODgDAAABAAEALgM8AFcAU
gBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMAL
gBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAe
QBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAI
gA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEAN
gA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAP
gA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+AFIAWQBVAE4AaQBnAFUAaABGAGQAU
QAxAGoAKwBxAFAAYQBPAGIAQgBrAFEAPQA9ADwALwBLAEkARAA+ADwATABBAF8AVQBSAEwAPgBoAHQAd
ABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0AL
wBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAb
wBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIAT
AA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAa
QAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAV
QBNAD4AcQBOAEkAZQBiAFQAWABzAG8AcgBnAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAV
ABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A' } ] |
| 95 }, |
| 96 'mp4-basic-key2' : { assetId: 'mp4-multikey-sequential', |
| 97 variantId: 'key2', |
| 98 initDataType: 'cenc', |
| 99 audio: { type: 'audio/mp4;codecs="mp4a.
40.2"', |
| 100 path: '/encrypted-media/conten
t/audio_aac-lc_128k_dashinit.mp4' }, |
| 101 video: { type: 'video/mp4;codecs="avc1.
4d401e"', |
| 102 path: '/encrypted-media/conten
t/video_512x288_h264-360k_multikey_key2_dashinit.mp4' }, |
| 103 keys: [ { kid: [0xfb, 0xb4, 0xb7, 0xf3,
0x4a, 0xbd, 0x31, 0x87, 0x34, 0x4b, 0xce, 0xc4, 0x5f, 0x96, 0x68, 0x88], |
| 104 key: [0x26, 0x52, 0xc3, 0x1d,
0xf7, 0x92, 0xd1, 0x7b, 0x08, 0xa6, 0xfa, 0xd3, 0x7c, 0xb6, 0x25, 0x60], |
| 105 initDataType: 'cenc', |
| 106 initData: 'AAAAlXBzc2gAAAAA7e+Lq
XnWSs6jyCfc1R0h7QAAAHUIARIQ+7S380q9MYc0S87EX5ZoiBoIY2FzdGxhYnMiTGV5SmhjM05sZEVsa
0lqb2liWEEwTFcxMWJIUnBhMlY1TFhObGNYVmxiblJwWVd3aUxDSjJZWEpwWVc1MFNXUWlPaUpyWlhre
UluMD0yB2RlZmF1bHQAAANYcHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAADODgDAAABAAEALgM8AFcAU
gBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMAL
gBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAe
QBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAI
gA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEAN
gA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAP
gA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADgANwBlADAAKwA3ADEASwBoAHoAR
QAwAFMAOAA3AEUAWAA1AFoAbwBpAEEAPQA9ADwALwBLAEkARAA+ADwATABBAF8AVQBSAEwAPgBoAHQAd
ABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0AL
wBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAb
wBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIAT
AA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAa
QAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAV
QBNAD4ARgB0AGkASQBoADYAUwBKAG0AcABZAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAV
ABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A' } ] }, |
| 107 |
| 108 'mp4-multikey-sequential' : { assetId: 'mp4-multikey-sequential', |
| 109 initDataType: 'cenc', |
| 110 audio: { type: 'audio/mp4;codecs="mp4a.
40.2"', |
| 111 path: '/encrypted-media/conten
t/audio_aac-lc_128k_dashinit.mp4' }, |
| 112 video: { type: 'video/mp4;codecs="avc1.
4d401e"', |
| 113 path: '/encrypted-media/conten
t/video_512x288_h264-360k_multikey_dashinit.mp4' }, |
| 114 keys: [ { kid: [0x8a, 0x0d, 0x85, 0x45,
0x21, 0x05, 0xd4, 0x15, 0x35, 0x8f, 0xea, 0x8f, 0x68, 0xe6, 0xc1, 0x91], |
| 115 key: [0x76, 0x6f, 0xab, 0xc1,
0x68, 0x3f, 0xf8, 0xef, 0x4e, 0x76, 0x00, 0x24, 0xc5, 0x23, 0x8f, 0x10], |
| 116 variantId: 'key1', |
| 117 initDataType: 'cenc', |
| 118 initData: 'AAAAlXBzc2gAAAAA7e+Lq
XnWSs6jyCfc1R0h7QAAAHUIARIQig2FRSEF1BU1j+qPaObBkRoIY2FzdGxhYnMiTGV5SmhjM05sZEVsa
0lqb2liWEEwTFcxMWJIUnBhMlY1TFhObGNYVmxiblJwWVd3aUxDSjJZWEpwWVc1MFNXUWlPaUpyWlhre
EluMD0yB2RlZmF1bHQAAANYcHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAADODgDAAABAAEALgM8AFcAU
gBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMAL
gBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAe
QBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAI
gA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEAN
gA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAP
gA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+AFIAWQBVAE4AaQBnAFUAaABGAGQAU
QAxAGoAKwBxAFAAYQBPAGIAQgBrAFEAPQA9ADwALwBLAEkARAA+ADwATABBAF8AVQBSAEwAPgBoAHQAd
ABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0AL
wBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAb
wBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIAT
AA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAa
QAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAV
QBNAD4AcQBOAEkAZQBiAFQAWABzAG8AcgBnAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAV
ABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A' }, |
| 119 { kid: [0xfb, 0xb4, 0xb7, 0xf3,
0x4a, 0xbd, 0x31, 0x87, 0x34, 0x4b, 0xce, 0xc4, 0x5f, 0x96, 0x68, 0x88], |
| 120 key: [0x26, 0x52, 0xc3, 0x1d,
0xf7, 0x92, 0xd1, 0x7b, 0x08, 0xa6, 0xfa, 0xd3, 0x7c, 0xb6, 0x25, 0x60], |
| 121 variantId: 'key2', |
| 122 initDataType: 'cenc', |
| 123 initData: 'AAAAlXBzc2gAAAAA7e+Lq
XnWSs6jyCfc1R0h7QAAAHUIARIQ+7S380q9MYc0S87EX5ZoiBoIY2FzdGxhYnMiTGV5SmhjM05sZEVsa
0lqb2liWEEwTFcxMWJIUnBhMlY1TFhObGNYVmxiblJwWVd3aUxDSjJZWEpwWVc1MFNXUWlPaUpyWlhre
UluMD0yB2RlZmF1bHQAAANYcHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAADODgDAAABAAEALgM8AFcAU
gBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMAL
gBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAe
QBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAI
gA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEAN
gA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAP
gA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADgANwBlADAAKwA3ADEASwBoAHoAR
QAwAFMAOAA3AEUAWAA1AFoAbwBpAEEAPQA9ADwALwBLAEkARAA+ADwATABBAF8AVQBSAEwAPgBoAHQAd
ABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0AL
wBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAb
wBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIAT
AA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAa
QAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAV
QBNAD4ARgB0AGkASQBoADYAUwBKAG0AcABZAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAV
ABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A' } ] }, |
| 124 |
| 125 'webm' : { audio : { type: 'audio/webm; codecs="opus"' }, |
| 126 video : { type: 'video/webm; codecs="vp8"', |
| 127 path: '/encrypted-media/content/test-encry
pted.webm' }, |
| 128 keys : [ { kid: [48,49,50,51,52,53,54,55,56,57,48,49
,50,51,52,53], |
| 129 key: [0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14,
0xd2, 0x7b, |
| 130 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4,
0xae, 0x3c ] } ] |
| 131 }, |
| 132 'webm-multikey' : |
| 133 { audio : { type: 'audio/webm; codecs="opus"' }, |
| 134 video : { type: 'video/webm; codecs="vp8"', |
| 135 path: '/encrypted-media/content/test-encry
pted-different-av-keys.webm' }, |
| 136 keys : [ { kid: [48,49,50,51,52,53,54,55,56,57,48,49
,50,51,52,53], |
| 137 key: [ 0x7A, 0x7A, 0x62, 0xF1, 0x68, 0x
14, 0xD2, 0x7B, |
| 138 0x68, 0xEF, 0x12, 0x2A, 0xFC, 0x
E4, 0xAE, 0x0A ] }, |
| 139 { kid: [49,50,51,52,53,54,55,56,57,48,49,50
,51,52,53,54], |
| 140 key: [ 0x30, 0x30, 0x62, 0xF1, 0x68, 0x
14, 0xD2, 0x7B, |
| 141 0x68, 0xEF, 0x12, 0x2A, 0xFC, 0x
E4, 0xAE, 0x0A ] } ] |
| 142 }, |
| 143 } ); |
| 144 |
| 145 function addMemberListToObject( o ) |
| 146 { |
| 147 var items = [ ]; |
| 148 for( var item in o ) |
| 149 { |
| 150 if ( !o.hasOwnProperty( item ) ) continue; |
| 151 |
| 152 o[item].name = item; |
| 153 items.push( o[item] ); |
| 154 } |
| 155 |
| 156 o._items = items; |
| 157 |
| 158 return o; |
| 159 } |
| 160 |
| 161 function getInitData( contentitem, initDataType ) |
| 162 { |
| 163 if (initDataType == 'webm') { |
| 164 return new Uint8Array( contentitem.keys[ 0 ].kid ); // WebM initData
supports only a single key |
| 165 } |
| 166 |
| 167 if (initDataType == 'cenc') { |
| 168 |
| 169 var size = 36 + contentitem.keys.length * 16, |
| 170 kids = contentitem.keys.map( function( k ) { return k.kid; } ); |
| 171 |
| 172 return new Uint8Array(Array.prototype.concat.call( [ |
| 173 0x00, 0x00, size / 256, size % 256, // size |
| 174 0x70, 0x73, 0x73, 0x68, // 'pssh' |
| 175 0x01, // version = 1 |
| 176 0x00, 0x00, 0x00, // flags |
| 177 0x10, 0x77, 0xEF, 0xEC, 0xC0, 0xB2, 0x4D, 0x02, // Common SystemID |
| 178 0xAC, 0xE3, 0x3C, 0x1E, 0x52, 0xE2, 0xFB, 0x4B, |
| 179 0x00, 0x00, 0x00, kids.length ], // key count ] |
| 180 Array.prototype.concat.apply( [], kids ), |
| 181 [ 0x00, 0x00, 0x00, 0x00 ]// datasize |
| 182 )); |
| 183 } |
| 184 if (initDataType == 'keyids') { |
| 185 |
| 186 return toUtf8( { kids: contentitem.keys.map( function( k ) { return base
64urlEncode( new Uint8Array( k.kid ) ); } ) } ); |
| 187 } |
| 188 throw 'initDataType ' + initDataType + ' not supported.'; |
| 189 } |
| 190 |
| 191 function getSingleKeyInitData( kid, initDataType ) |
| 192 { |
| 193 if (initDataType == 'webm') { |
| 194 return new Uint8Array( kid ); |
| 195 } |
| 196 |
| 197 if (initDataType == 'cenc') { |
| 198 |
| 199 var size = 52; |
| 200 |
| 201 return new Uint8Array(Array.prototype.concat.call( [ |
| 202 0x00, 0x00, size / 256, size % 256, // size |
| 203 0x70, 0x73, 0x73, 0x68, // 'pssh' |
| 204 0x01, // version = 1 |
| 205 0x00, 0x00, 0x00, // flags |
| 206 0x10, 0x77, 0xEF, 0xEC, 0xC0, 0xB2, 0x4D, 0x02, // Common SystemID |
| 207 0xAC, 0xE3, 0x3C, 0x1E, 0x52, 0xE2, 0xFB, 0x4B, |
| 208 0x00, 0x00, 0x00, 0x01 ], // key count ] |
| 209 kid, |
| 210 [ 0x00, 0x00, 0x00, 0x00 ]// datasize |
| 211 )); |
| 212 } |
| 213 if (initDataType == 'keyids') { |
| 214 |
| 215 return toUtf8( { kids: [ base64urlEncode( new Uint8Array( kid ) ) ] } ); |
| 216 } |
| 217 throw 'initDataType ' + initDataType + ' not supported.'; |
| 218 } |
| 219 |
| 220 function getMultikeyInitDatas( contentitem, initDataType ) |
| 221 { |
| 222 return contentitem.keys.map( function( k ) { return getSingleKeyInitData( k.
kid, initDataType ); } ); |
| 223 } |
| 224 |
| 225 function getProprietaryInitDatas( contentitem ) |
| 226 { |
| 227 var keysWithInitData = contentitem.keys.filter( function( k ) { return k.ini
tData; } ); |
| 228 return { initDataType: contentitem.initDataType, |
| 229 initDatas : keysWithInitData.map( function( k ) { return k.initData
; } ), |
| 230 variantIds: keysWithInitData.map( function( k ) { return k.variantI
d; } ) |
| 231 }; |
| 232 } |
| 233 |
| 234 // Returns a promise that resolves to the following object |
| 235 // { supported: boolean, // whether the content is suppor
ted at all |
| 236 // content: <the content item>, // the content item description |
| 237 // initDataTypes: <list of initDataTypes> |
| 238 // } |
| 239 // |
| 240 // Note: we test initData types one at a time since some versions of Edge don't
support testing several at once |
| 241 // |
| 242 function isContentSupportedForInitDataTypes( keysystem, initDataTypes, contentit
em ) |
| 243 { |
| 244 return Promise.all( initDataTypes.map( function( initDataType ) { |
| 245 var configuration = { initDataTypes : [ initDataType ], |
| 246 audioCapabilities: [ { contentType: contentitem.au
dio.type } ], |
| 247 videoCapabilities: [ { contentType: contentitem.vi
deo.type } ] |
| 248 }; |
| 249 return navigator.requestMediaKeySystemAccess( keysystem, [ configuration
] ).then( function( access ) { |
| 250 return { supported: true, initDataType: access.getConfiguration().in
itDataTypes[ 0 ] }; |
| 251 }, function() { |
| 252 return { supported: false }; |
| 253 } ); |
| 254 } ) ).then( function( results ) { |
| 255 |
| 256 var initDataTypes = results.filter( function( result ) { return result.s
upported; } ) |
| 257 .map( function( result ) { return result.ini
tDataType; } ); |
| 258 |
| 259 return initDataTypes.length > 0 ? |
| 260 { content: contentitem, supported: true, initDataTypes: init
DataTypes } |
| 261 : { content: contentitem, supported: false }; |
| 262 } ); |
| 263 } |
| 264 |
| 265 // Returns a promise that resolves to { content:, supported:, initDataTypes: } o
bject |
| 266 function isContentSupported( keysystem, contentitem ) |
| 267 { |
| 268 return isContentSupportedForInitDataTypes( keysystem, [ 'cenc', 'webm', 'key
ids' ], contentitem ); |
| 269 } |
| 270 |
| 271 // Returns a Promise resolving to an array of supported content for the key syst
em |
| 272 function getSupportedContent( keysystem ) |
| 273 { |
| 274 return Promise.all( content._items.map( isContentSupported.bind( null, keysy
stem ) ) ). |
| 275 then( function( results ) |
| 276 { |
| 277 return results.filter( function( r ) { return r.supported; } ).map( func
tion( r ) { return r.content; } ); |
| 278 } ); |
| 279 } |
| 280 |
| 281 // Returns a Promise resolving to an array of { content:, initDataType: } pairs
for the key system |
| 282 function getSupportedContentAndInitDataTypes( keysystem ) |
| 283 { |
| 284 return Promise.all( content._items.map( isContentSupported.bind( null, keysy
stem ) ) ). |
| 285 then( function( results ) |
| 286 { |
| 287 return results.filter( function( r ) { return r.supported; } ); |
| 288 } ); |
| 289 } |
| 290 |
| 291 // gets a configuration object for provided piece of content |
| 292 function getSimpleConfigurationForContent( contentitem ) |
| 293 { |
| 294 return { initDataTypes: [ 'keyids', 'webm', 'cenc' ], |
| 295 audioCapabilities: [ { contentType: contentitem.audio.type } ], |
| 296 videoCapabilities: [ { contentType: contentitem.video.type } ] }
; |
| 297 } |
OLD | NEW |