@amazon/vinyl 3.1.0 → 3.2.1

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 (69) hide show
  1. package/dist/index.cjs +236 -187
  2. package/dist/index.cjs.map +4 -4
  3. package/dist/index.js +224 -174
  4. package/dist/index.js.map +4 -4
  5. package/dist/test/integ.es5.js +245 -231
  6. package/dist/test/integ.js +676 -271
  7. package/dist/test/integ.js.map +4 -4
  8. package/dist/types/current/ad/AdControllerImpl.d.ts +18 -2
  9. package/dist/types/current/ad/AdControllerImpl.d.ts.map +1 -1
  10. package/dist/types/current/ad/AdControllerImpl.js +42 -20
  11. package/dist/types/current/drm/DrmControllerImpl.d.ts +17 -1
  12. package/dist/types/current/drm/DrmControllerImpl.d.ts.map +1 -1
  13. package/dist/types/current/drm/DrmControllerImpl.js +45 -10
  14. package/dist/types/current/playback/createStallMonitor.d.ts.map +1 -1
  15. package/dist/types/current/playback/createStallMonitor.js +19 -14
  16. package/dist/types/current/streaming/LoadMetric.d.ts +15 -1
  17. package/dist/types/current/streaming/LoadMetric.d.ts.map +1 -1
  18. package/dist/types/current/streaming/mediaTimelineFilter.d.ts +4 -2
  19. package/dist/types/current/streaming/mediaTimelineFilter.d.ts.map +1 -1
  20. package/dist/types/current/streaming/mediaTimelineFilter.js +23 -8
  21. package/dist/types/current/track/filters/sampleRateFilter.d.ts +8 -4
  22. package/dist/types/current/track/filters/sampleRateFilter.d.ts.map +1 -1
  23. package/dist/types/current/track/filters/sampleRateFilter.js +31 -21
  24. package/dist/types/current/track/mse/MseTrack.d.ts +0 -9
  25. package/dist/types/current/track/mse/MseTrack.d.ts.map +1 -1
  26. package/dist/types/current/track/mse/MseTrack.js +2 -29
  27. package/dist/types/current/tsconfig.tsbuildinfo +1 -1
  28. package/dist/types/current/vinyl/VinylPlayer.d.ts +5 -0
  29. package/dist/types/current/vinyl/VinylPlayer.d.ts.map +1 -1
  30. package/dist/types/current/vinyl/VinylPlayer.js +23 -1
  31. package/dist/types/ts3.7/ad/AdControllerImpl.d.ts +18 -2
  32. package/dist/types/ts3.7/drm/DrmControllerImpl.d.ts +17 -1
  33. package/dist/types/ts3.7/streaming/LoadMetric.d.ts +15 -1
  34. package/dist/types/ts3.7/streaming/mediaTimelineFilter.d.ts +4 -2
  35. package/dist/types/ts3.7/track/filters/sampleRateFilter.d.ts +8 -4
  36. package/dist/types/ts3.7/track/mse/MseTrack.d.ts +0 -9
  37. package/dist/types/ts3.7/vinyl/VinylPlayer.d.ts +5 -0
  38. package/dist/types/ts4.1/ad/AdControllerImpl.d.ts +18 -2
  39. package/dist/types/ts4.1/drm/DrmControllerImpl.d.ts +17 -1
  40. package/dist/types/ts4.1/streaming/LoadMetric.d.ts +15 -1
  41. package/dist/types/ts4.1/streaming/mediaTimelineFilter.d.ts +4 -2
  42. package/dist/types/ts4.1/track/filters/sampleRateFilter.d.ts +8 -4
  43. package/dist/types/ts4.1/track/mse/MseTrack.d.ts +0 -9
  44. package/dist/types/ts4.1/vinyl/VinylPlayer.d.ts +5 -0
  45. package/dist/types/ts4.7/ad/AdControllerImpl.d.ts +18 -2
  46. package/dist/types/ts4.7/drm/DrmControllerImpl.d.ts +17 -1
  47. package/dist/types/ts4.7/streaming/LoadMetric.d.ts +15 -1
  48. package/dist/types/ts4.7/streaming/mediaTimelineFilter.d.ts +4 -2
  49. package/dist/types/ts4.7/track/filters/sampleRateFilter.d.ts +8 -4
  50. package/dist/types/ts4.7/track/mse/MseTrack.d.ts +0 -9
  51. package/dist/types/ts4.7/vinyl/VinylPlayer.d.ts +5 -0
  52. package/dist/unit/types/current/ad/AdControllerImpl.test.js +110 -4
  53. package/dist/unit/types/current/drm/DrmControllerImpl.test.js +53 -9
  54. package/dist/unit/types/current/playback/createStallMonitor.test.js +38 -0
  55. package/dist/unit/types/current/streaming/MseTrack.test.js +11 -8
  56. package/dist/unit/types/current/streaming/mediaTimelineFilter.test.js +60 -54
  57. package/dist/unit/types/current/track/filters/sampleRateFilter.test.js +75 -0
  58. package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
  59. package/dist/unit/types/current/vinyl/VinylPlayer.test.js +33 -2
  60. package/dist/vinylTestUtil/index.js +10 -1
  61. package/dist/vinylTestUtil/index.js.map +2 -2
  62. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts +5 -0
  63. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts.map +1 -1
  64. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.js +9 -0
  65. package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
  66. package/dist/vinylTestUtil/types/ts3.7/assets/vinylTestAssets.d.ts +5 -0
  67. package/dist/vinylTestUtil/types/ts4.1/assets/vinylTestAssets.d.ts +5 -0
  68. package/dist/vinylTestUtil/types/ts4.7/assets/vinylTestAssets.d.ts +5 -0
  69. package/package.json +10 -10
@@ -4,10 +4,10 @@
4
4
  */
5
5
  import { createEmptyMediaQualityMetadata, createSourceTrackFactory, createTrackFactory, createVinylPlayer, defaultQualitySelectorImplOptions, DrmError, PlaybackNetworkState, PlaybackReadyState, vinylGlobalRef, } from '@amazon/vinyl';
6
6
  import { externalDependencies } from '@amazon/vinyl-di';
7
- import { consoleLogHandler, createArrayLikeIterator, emptyRanges, historyLogHandler, noop, RangesImpl, } from '@amazon/vinyl-util';
7
+ import { consoleLogHandler, createArrayLikeIterator, emptyRanges, historyLogHandler, LogLevel, noop, RangesImpl, } from '@amazon/vinyl-util';
8
8
  import { expectIterableEquals, expectNothing, expectTypeStrictlyEquals, mockEvent, MockHTMLAudioElement, polyfillCustomEvent, } from '@amazon/vinyl-util/browserTestUtil';
9
9
  import { createMockVinylDependencies, MockCapabilities, MockPlaybackController, MockTrack, MockTrackController, MockTrackFactory, } from '@amazon/vinyl/vinylTestUtil';
10
- import { createEventSpy } from '@amazon/vinyl-util/testUtil';
10
+ import { createEventSpy, useMockLogger } from '@amazon/vinyl-util/testUtil';
11
11
  import { data } from '@amazon/vinyl-observable';
12
12
  var any = jasmine.any;
13
13
  var createSpy = jasmine.createSpy;
@@ -16,6 +16,7 @@ describe('VinylPlayer', () => {
16
16
  let depFactories;
17
17
  let player;
18
18
  let mockOptions;
19
+ const loggerRef = useMockLogger();
19
20
  polyfillCustomEvent();
20
21
  beforeEach(() => {
21
22
  mockOptions = { media: new MockHTMLAudioElement() };
@@ -247,6 +248,36 @@ describe('VinylPlayer', () => {
247
248
  });
248
249
  expect(spy).not.toHaveBeenCalled();
249
250
  });
251
+ it('logs each republished span at the verbose level with formatted times', () => {
252
+ loggerRef.value.logLevel = LogLevel.VERBOSE;
253
+ deps.drmController.dispatch('loadSpanMeasured', {
254
+ kind: 'license',
255
+ startTime: 1000,
256
+ endTime: 3500,
257
+ trackUri: 'track-a',
258
+ mimeType: 'audio/mp4',
259
+ contentType: 'audio',
260
+ });
261
+ expect(loggerRef.value.verbose).toHaveBeenCalledOnceWith(player, 'loadSpan', {
262
+ kind: 'license',
263
+ trackUri: 'track-a',
264
+ mimeType: 'audio/mp4',
265
+ contentType: 'audio',
266
+ startTime: new Date(1000).toISOString(),
267
+ endTime: new Date(3500).toISOString(),
268
+ durationMs: '2500.00',
269
+ });
270
+ });
271
+ it('does not format or log a span when the verbose level is off', () => {
272
+ loggerRef.value.logLevel = LogLevel.DEBUG;
273
+ deps.drmController.dispatch('loadSpanMeasured', {
274
+ kind: 'license',
275
+ startTime: 1000,
276
+ endTime: 3500,
277
+ trackUri: 'track-a',
278
+ });
279
+ expect(loggerRef.value.verbose).not.toHaveBeenCalled();
280
+ });
250
281
  });
251
282
  it('reloads the current track on a codecUnsupported event', () => {
252
283
  const trackController = deps.trackController;
@@ -1547,7 +1547,8 @@ var dash_segmentListMediaRange = `<?xml version="1.0" encoding="UTF-8" standalon
1547
1547
  var vinylTestAssets = {
1548
1548
  prog: {
1549
1549
  libmp3lame_60s_2ch_16bit_44100Hz_48kbps: `https://assets.dev.vinyl.music.amazon.dev/prog/libmp3lame_60s_2ch_16bit_44100Hz_48kbps.mp3`,
1550
- libmp3lame_1800s_2ch_16bit_44100Hz_48kbps: `https://assets.dev.vinyl.music.amazon.dev/prog/libmp3lame_1800s_2ch_16bit_44100Hz_48kbps.mp3`
1550
+ libmp3lame_1800s_2ch_16bit_44100Hz_48kbps: `https://assets.dev.vinyl.music.amazon.dev/prog/libmp3lame_1800s_2ch_16bit_44100Hz_48kbps.mp3`,
1551
+ libmp3lame_1s_2ch_16bit_44100Hz_48kbps: `https://assets.dev.vinyl.music.amazon.dev/prog/libmp3lame_1s_2ch_16bit_44100Hz_48kbps.mp3`
1551
1552
  },
1552
1553
  dash: {
1553
1554
  live_static_aac_opus_flac_60s_segmentTemplate: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_opus_flac_60s_segmentTemplate/manifest.mpd`,
@@ -1562,6 +1563,10 @@ var vinylTestAssets = {
1562
1563
  live_static_aac_opus_flac_60s_segmentBase_widevine_cl10: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_opus_flac_60s_segmentBase_widevine_cl10/manifest.mpd`,
1563
1564
  live_static_aac_opus_flac_60s_segmentBase_widevine: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_opus_flac_60s_segmentBase_widevine/manifest.mpd`,
1564
1565
  live_static_aac_1800s_segmentBase_widevine_cl30: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_1800s_segmentBase_widevine_cl30/manifest.mpd`,
1566
+ // Edge-case tracks: ultra-short 1s assets (audio-only + video), no
1567
+ // captions or translations.
1568
+ edge_static_aac_1s_segmentTemplate: `https://assets.dev.vinyl.music.amazon.dev/dash/edge_static_aac_1s_segmentTemplate/manifest.mpd`,
1569
+ edge_static_video_1s_segmentTemplate: `https://assets.dev.vinyl.music.amazon.dev/dash/edge_static_video_1s_segmentTemplate/manifest.mpd`,
1565
1570
  // Ad-break assets (see DMTestAssetBuilder src/adBreaks): a ~3-min
1566
1571
  // labeled ABR ladder with five-language narration, full + forced
1567
1572
  // captions. Base content only — DASH ad-break scenarios are not
@@ -1581,6 +1586,10 @@ var vinylTestAssets = {
1581
1586
  live_static_video_60s_4s_mpegts: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_60s_4s_mpegts/main.m3u8`,
1582
1587
  live_static_video_audio_60s_2s_mpegts: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_audio_60s_2s_mpegts/main.m3u8`,
1583
1588
  live_static_video_audio_60s_4s_mpegts: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_audio_60s_4s_mpegts/main.m3u8`,
1589
+ // Edge-case tracks: ultra-short 1s assets (audio-only + video), no
1590
+ // captions or translations.
1591
+ edge_static_aac_1s: `https://assets.dev.vinyl.music.amazon.dev/hls/edge_static_aac_1s/main.m3u8`,
1592
+ edge_static_video_1s: `https://assets.dev.vinyl.music.amazon.dev/hls/edge_static_video_1s/main.m3u8`,
1584
1593
  // Ad-break assets: base content + HLS Interstitial scenario variants.
1585
1594
  // `*_av` = video+audio, `*_audio` = audio-only; each `__<scenario>`
1586
1595
  // injects a different ad-break configuration. See DMTestAssetBuilder