shaka-player 4.4.2 → 4.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/demo/common/asset.js +5 -0
  3. package/demo/common/assets.js +20 -5
  4. package/demo/common/message_ids.js +1 -1
  5. package/demo/locales/en.json +2 -1
  6. package/demo/locales/source.json +5 -1
  7. package/demo/main.js +1 -1
  8. package/demo/search.js +3 -3
  9. package/dist/demo.compiled.debug.js +72 -70
  10. package/dist/demo.compiled.debug.map +3 -3
  11. package/dist/demo.compiled.js +72 -70
  12. package/dist/demo.compiled.map +3 -3
  13. package/dist/locales.js +30 -30
  14. package/dist/receiver.compiled.debug.js +38 -36
  15. package/dist/receiver.compiled.debug.map +3 -3
  16. package/dist/receiver.compiled.js +38 -36
  17. package/dist/receiver.compiled.map +3 -3
  18. package/dist/shaka-player.compiled.d.ts +222 -1
  19. package/dist/shaka-player.compiled.debug.d.ts +222 -1
  20. package/dist/shaka-player.compiled.debug.externs.js +271 -1
  21. package/dist/shaka-player.compiled.debug.js +233 -228
  22. package/dist/shaka-player.compiled.debug.map +3 -3
  23. package/dist/shaka-player.compiled.externs.js +271 -1
  24. package/dist/shaka-player.compiled.js +1035 -1028
  25. package/dist/shaka-player.compiled.map +3 -3
  26. package/dist/shaka-player.ui.d.ts +222 -1
  27. package/dist/shaka-player.ui.debug.d.ts +222 -1
  28. package/dist/shaka-player.ui.debug.externs.js +271 -1
  29. package/dist/shaka-player.ui.debug.js +256 -251
  30. package/dist/shaka-player.ui.debug.map +3 -3
  31. package/dist/shaka-player.ui.externs.js +271 -1
  32. package/dist/shaka-player.ui.js +1162 -1155
  33. package/dist/shaka-player.ui.map +3 -3
  34. package/docs/tutorials/offline.md +1 -1
  35. package/lib/dash/dash_parser.js +4 -1
  36. package/lib/hls/hls_parser.js +60 -24
  37. package/lib/media/segment_index.js +4 -4
  38. package/lib/media/segment_reference.js +6 -1
  39. package/lib/media/streaming_engine.js +14 -24
  40. package/lib/player.js +1 -1
  41. package/lib/text/cue.js +47 -47
  42. package/lib/text/vtt_text_parser.js +2 -2
  43. package/lib/util/cmcd_manager.js +6 -1
  44. package/lib/util/manifest_parser_utils.js +10 -4
  45. package/lib/util/platform.js +14 -0
  46. package/lib/util/ts_parser.js +3 -3
  47. package/package.json +1 -1
  48. package/test/dash/dash_parser_manifest_unit.js +5 -0
  49. package/test/dash/dash_parser_segment_base_unit.js +5 -0
  50. package/test/dash/dash_parser_segment_list_unit.js +21 -17
  51. package/test/dash/dash_parser_segment_template_unit.js +47 -0
  52. package/test/hls/hls_live_unit.js +33 -0
  53. package/test/hls/hls_parser_unit.js +2 -57
  54. package/test/test/util/dash_parser_util.js +16 -7
  55. package/test/text/vtt_text_parser_unit.js +2 -17
  56. package/test/transmuxer/transmuxer_integration.js +4 -4
  57. package/test/util/ts_parser_unit.js +1 -1
@@ -1136,63 +1136,6 @@ describe('HlsParser', () => {
1136
1136
  expect(references[6].discontinuitySequence).toBe(3);
1137
1137
  });
1138
1138
 
1139
- it('sets reference timetampOffset based on discontinuity start time',
1140
- async () => {
1141
- const master = [
1142
- '#EXTM3U\n',
1143
- '#EXT-X-STREAM-INF:BANDWIDTH=2000000,CODECS="avc1"\n',
1144
- 'video\n',
1145
- ].join('');
1146
-
1147
- const media = [
1148
- '#EXTM3U\n',
1149
- '#EXT-X-VERSION:3\n',
1150
- '#EXT-X-TARGETDURATION:5\n',
1151
- '#EXT-X-MEDIA-SEQUENCE:0\n',
1152
- '#EXTINF:3,\n',
1153
- 'clip0-video-0.ts\n',
1154
- '#EXTINF:1,\n',
1155
- 'clip0-video-1.ts\n',
1156
- '#EXT-X-DISCONTINUITY\n',
1157
- '#EXTINF:2,\n',
1158
- 'clip1-video-1.ts\n',
1159
- '#EXTINF:3,\n',
1160
- 'clip1-video-2.ts\n',
1161
- '#EXT-X-DISCONTINUITY\n',
1162
- '#EXTINF:1,\n',
1163
- 'media-clip2-video-0.ts\n',
1164
- '#EXTINF:1,\n',
1165
- 'media-clip2-video-1.ts\n',
1166
- '#EXT-X-DISCONTINUITY\n',
1167
- '#EXTINF:4,\n',
1168
- 'media-clip3-video-1.ts\n',
1169
- '#EXT-X-ENDLIST\n',
1170
- ].join('');
1171
-
1172
- fakeNetEngine
1173
- .setResponseText('test:/master', master)
1174
- .setResponseText('test:/video', media);
1175
-
1176
- const manifest = await parser.start('test:/master', playerInterface);
1177
- await manifest.variants[0].video.createSegmentIndex();
1178
-
1179
- const segmentIndex = manifest.variants[0].video.segmentIndex;
1180
- const references = [];
1181
-
1182
- for (let i = 0; i < 7; i++) {
1183
- references.push(segmentIndex.get(i));
1184
- }
1185
-
1186
- expect(references[0].timestampOffset).toBe(0);
1187
- expect(references[1].timestampOffset).toBe(0);
1188
- expect(references[2].timestampOffset).toBe(4);
1189
- expect(references[3].timestampOffset).toBe(4);
1190
- expect(references[4].timestampOffset).toBe(9);
1191
- expect(references[5].timestampOffset).toBe(9);
1192
- expect(references[6].timestampOffset).toBe(11);
1193
- },
1194
- );
1195
-
1196
1139
  it('parses characteristics from audio tags', async () => {
1197
1140
  const master = [
1198
1141
  '#EXTM3U\n',
@@ -3182,8 +3125,10 @@ describe('HlsParser', () => {
3182
3125
 
3183
3126
  const firstMp4Segment = mp4AesEncryptionVideo.segmentIndex.get(0);
3184
3127
  expect(firstMp4Segment.hlsAes128Key).toBeDefined();
3128
+ expect(firstMp4Segment.initSegmentReference.hlsAes128Key).toBeDefined();
3185
3129
  const secondMp4Segment = mp4AesEncryptionVideo.segmentIndex.get(1);
3186
3130
  expect(secondMp4Segment.hlsAes128Key).toBeNull();
3131
+ expect(secondMp4Segment.initSegmentReference.hlsAes128Key).toBeDefined();
3187
3132
 
3188
3133
  const tsAesEncryptionVideo = actual.variants[2].video;
3189
3134
  await tsAesEncryptionVideo.createSegmentIndex();
@@ -46,11 +46,15 @@ shaka.test.Dash = class {
46
46
  updateDuration: () => {},
47
47
  newDrmInfo: (stream) => {},
48
48
  };
49
- const manifest = await dashParser.start('dummy://foo', playerInterface);
50
- const stream = manifest.variants[0].video;
51
- await stream.createSegmentIndex();
49
+ try {
50
+ const manifest = await dashParser.start('dummy://foo', playerInterface);
51
+ const stream = manifest.variants[0].video;
52
+ await stream.createSegmentIndex();
52
53
 
53
- shaka.test.ManifestParser.verifySegmentIndex(stream, references);
54
+ shaka.test.ManifestParser.verifySegmentIndex(stream, references);
55
+ } finally {
56
+ dashParser.stop();
57
+ }
54
58
  }
55
59
 
56
60
  /**
@@ -82,9 +86,14 @@ shaka.test.Dash = class {
82
86
  updateDuration: () => {},
83
87
  newDrmInfo: (stream) => {},
84
88
  };
85
- const p = dashParser.start('dummy://foo', playerInterface);
86
- await expectAsync(p).toBeRejectedWith(
87
- shaka.test.Util.jasmineError(expectedError));
89
+
90
+ try {
91
+ const p = dashParser.start('dummy://foo', playerInterface);
92
+ await expectAsync(p).toBeRejectedWith(
93
+ shaka.test.Util.jasmineError(expectedError));
94
+ } finally {
95
+ dashParser.stop();
96
+ }
88
97
  }
89
98
 
90
99
  /**
@@ -198,30 +198,15 @@ describe('VttTextParser', () => {
198
198
  {
199
199
  startTime: 40,
200
200
  endTime: 50,
201
- payload: '',
201
+ payload: 'Test2',
202
202
  writingMode: Cue.writingMode.VERTICAL_LEFT_TO_RIGHT,
203
- nestedCues: [
204
- {
205
- startTime: 40,
206
- endTime: 50,
207
- payload: 'Test',
208
- writingMode: Cue.writingMode.VERTICAL_LEFT_TO_RIGHT,
209
- },
210
- {
211
- startTime: 40,
212
- endTime: 50,
213
- payload: '2',
214
- fontWeight: Cue.fontWeight.BOLD,
215
- writingMode: Cue.writingMode.VERTICAL_LEFT_TO_RIGHT,
216
- },
217
- ],
218
203
  },
219
204
  ],
220
205
  'WEBVTT\n\n' +
221
206
  '00:00:20.000 --> 00:00:40.000 vertical:rl\n' +
222
207
  'Test\n\n' +
223
208
  '00:00:40.000 --> 00:00:50.000 vertical:lr\n' +
224
- 'Test<b>2</b>',
209
+ 'Test2',
225
210
  {periodStart: 0, segmentStart: 0, segmentEnd: 0, vttOffset: 0});
226
211
  });
227
212
 
@@ -36,8 +36,8 @@ describe('Transmuxer Player', () => {
36
36
  // We must enable this, once it is resolved:
37
37
  // https://bugs.chromium.org/p/chromium/issues/detail?id=1450313
38
38
  const chromeVersion = shaka.util.Platform.chromeVersion();
39
- if (shaka.util.Platform.isEdge() &&
40
- chromeVersion && chromeVersion <= 116) {
39
+ if (shaka.util.Platform.isWindows() && shaka.util.Platform.isEdge() &&
40
+ chromeVersion && chromeVersion <= 118) {
41
41
  return false;
42
42
  }
43
43
  return true;
@@ -57,8 +57,8 @@ describe('Transmuxer Player', () => {
57
57
  // We must enable this, once it is resolved:
58
58
  // https://bugs.chromium.org/p/chromium/issues/detail?id=1450313
59
59
  const chromeVersion = shaka.util.Platform.chromeVersion();
60
- if (shaka.util.Platform.isEdge() &&
61
- chromeVersion && chromeVersion <= 116) {
60
+ if (shaka.util.Platform.isWindows() && shaka.util.Platform.isEdge() &&
61
+ chromeVersion && chromeVersion <= 118) {
62
62
  return false;
63
63
  }
64
64
  return true;
@@ -72,6 +72,6 @@ describe('TsParser', () => {
72
72
  const codecs = new shaka.util.TsParser().parse(tsSegment)
73
73
  .getCodecs();
74
74
  expect(codecs.audio).toBe('aac');
75
- expect(codecs.video).toBe('');
75
+ expect(codecs.video).toBe(null);
76
76
  });
77
77
  });