@amazon/vinyl 1.2.0 → 1.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.
- package/dist/index.cjs +11 -2
- package/dist/index.cjs.map +2 -2
- package/dist/index.js +15 -4
- package/dist/index.js.map +3 -3
- package/dist/test/integ.es5.js +43 -43
- package/dist/test/integ.js +70 -2
- package/dist/test/integ.js.map +2 -2
- package/dist/types/current/ad/AdBreakInfo.d.ts +160 -0
- package/dist/types/current/ad/AdBreakInfo.d.ts.map +1 -0
- package/dist/types/current/ad/AdBreakInfo.js +5 -0
- package/dist/types/current/ad/AdController.d.ts +229 -0
- package/dist/types/current/ad/AdController.d.ts.map +1 -0
- package/dist/types/current/ad/AdController.js +19 -0
- package/dist/types/current/ad/AdControllerImpl.d.ts +146 -0
- package/dist/types/current/ad/AdControllerImpl.d.ts.map +1 -0
- package/dist/types/current/ad/AdControllerImpl.js +705 -0
- package/dist/types/current/ad/AdError.d.ts +6 -0
- package/dist/types/current/ad/AdError.d.ts.map +1 -0
- package/dist/types/current/ad/AdError.js +14 -0
- package/dist/types/current/ad/AdsProvider.d.ts +28 -0
- package/dist/types/current/ad/AdsProvider.d.ts.map +1 -0
- package/dist/types/current/ad/AdsProvider.js +5 -0
- package/dist/types/current/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
- package/dist/types/current/ad/defaultAdLoadOptionsResolver.d.ts.map +1 -0
- package/dist/types/current/ad/defaultAdLoadOptionsResolver.js +26 -0
- package/dist/types/current/ad/discoverHlsInterstitials.d.ts +22 -0
- package/dist/types/current/ad/discoverHlsInterstitials.d.ts.map +1 -0
- package/dist/types/current/ad/discoverHlsInterstitials.js +246 -0
- package/dist/types/current/drm/DrmControllerImpl.d.ts.map +1 -1
- package/dist/types/current/drm/DrmControllerImpl.js +11 -1
- package/dist/types/current/playback/PlaybackControllerImpl.d.ts +1 -1
- package/dist/types/current/streaming/AudioOptions.d.ts +39 -0
- package/dist/types/current/streaming/AudioOptions.d.ts.map +1 -0
- package/dist/types/current/streaming/AudioOptions.js +15 -0
- package/dist/types/current/streaming/LoadMetric.d.ts +58 -0
- package/dist/types/current/streaming/LoadMetric.d.ts.map +1 -0
- package/dist/types/current/streaming/LoadMetric.js +5 -0
- package/dist/types/current/streaming/ManifestControllerImpl.d.ts +43 -0
- package/dist/types/current/streaming/ManifestControllerImpl.d.ts.map +1 -0
- package/dist/types/current/streaming/ManifestControllerImpl.js +104 -0
- package/dist/types/current/streaming/buffering/codecDenylist.d.ts +23 -0
- package/dist/types/current/streaming/buffering/codecDenylist.d.ts.map +1 -0
- package/dist/types/current/streaming/buffering/codecDenylist.js +62 -0
- package/dist/types/current/streaming/createAllowedContentTypesValue.d.ts +30 -0
- package/dist/types/current/streaming/createAllowedContentTypesValue.d.ts.map +1 -0
- package/dist/types/current/streaming/createAllowedContentTypesValue.js +43 -0
- package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
- package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.d.ts.map +1 -0
- package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.js +75 -0
- package/dist/types/current/text/HtmlTextTrackRenderer.d.ts +60 -0
- package/dist/types/current/text/HtmlTextTrackRenderer.d.ts.map +1 -0
- package/dist/types/current/text/HtmlTextTrackRenderer.js +231 -0
- package/dist/types/current/text/SidecarTextTrackController.d.ts +103 -0
- package/dist/types/current/text/SidecarTextTrackController.d.ts.map +1 -0
- package/dist/types/current/text/SidecarTextTrackController.js +250 -0
- package/dist/types/current/text/SidecarTextTrackLoader.d.ts +65 -0
- package/dist/types/current/text/SidecarTextTrackLoader.d.ts.map +1 -0
- package/dist/types/current/text/SidecarTextTrackLoader.js +150 -0
- package/dist/types/current/text/TextTrack.d.ts +179 -0
- package/dist/types/current/text/TextTrack.d.ts.map +1 -0
- package/dist/types/current/text/TextTrack.js +29 -0
- package/dist/types/current/text/TextTrackRenderer.d.ts +24 -0
- package/dist/types/current/text/TextTrackRenderer.d.ts.map +1 -0
- package/dist/types/current/text/TextTrackRenderer.js +5 -0
- package/dist/types/current/text/VttCueStyle.d.ts +41 -0
- package/dist/types/current/text/VttCueStyle.d.ts.map +1 -0
- package/dist/types/current/text/VttCueStyle.js +45 -0
- package/dist/types/current/text/discoverDashTextTracks.d.ts +24 -0
- package/dist/types/current/text/discoverDashTextTracks.d.ts.map +1 -0
- package/dist/types/current/text/discoverDashTextTracks.js +109 -0
- package/dist/types/current/text/discoverHlsTextTracks.d.ts +19 -0
- package/dist/types/current/text/discoverHlsTextTracks.d.ts.map +1 -0
- package/dist/types/current/text/discoverHlsTextTracks.js +49 -0
- package/dist/types/current/text/mediaTextTrackProvider.d.ts +34 -0
- package/dist/types/current/text/mediaTextTrackProvider.d.ts.map +1 -0
- package/dist/types/current/text/mediaTextTrackProvider.js +42 -0
- package/dist/types/current/text/parseWebVtt.d.ts +60 -0
- package/dist/types/current/text/parseWebVtt.d.ts.map +1 -0
- package/dist/types/current/text/parseWebVtt.js +248 -0
- package/dist/types/current/text/pickPreferredTextTrack.d.ts +15 -0
- package/dist/types/current/text/pickPreferredTextTrack.d.ts.map +1 -0
- package/dist/types/current/text/pickPreferredTextTrack.js +71 -0
- package/dist/types/current/track/SeekRange.d.ts +9 -0
- package/dist/types/current/track/SeekRange.d.ts.map +1 -0
- package/dist/types/current/track/SeekRange.js +5 -0
- package/dist/types/current/track/hls/HlsManifestData.d.ts +19 -0
- package/dist/types/current/track/hls/HlsManifestData.d.ts.map +1 -0
- package/dist/types/current/track/hls/HlsManifestData.js +5 -0
- package/dist/types/current/track/hls/createHlsManifestProvider.d.ts +6 -0
- package/dist/types/current/track/hls/createHlsManifestProvider.d.ts.map +1 -0
- package/dist/types/current/track/hls/createHlsManifestProvider.js +9 -0
- package/dist/types/current/track/inferLoadOptionsFromUri.d.ts +15 -0
- package/dist/types/current/track/inferLoadOptionsFromUri.d.ts.map +1 -0
- package/dist/types/current/track/inferLoadOptionsFromUri.js +55 -0
- package/dist/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/types/current/util/media/codecOverrides.d.ts +33 -0
- package/dist/types/current/util/media/codecOverrides.d.ts.map +1 -0
- package/dist/types/current/util/media/codecOverrides.js +37 -0
- package/dist/types/current/util/media/codecSupport.d.ts +6 -0
- package/dist/types/current/util/media/codecSupport.d.ts.map +1 -0
- package/dist/types/current/util/media/codecSupport.js +17 -0
- package/dist/types/current/util/media/mimeType.d.ts +8 -0
- package/dist/types/current/util/media/mimeType.d.ts.map +1 -0
- package/dist/types/current/util/media/mimeType.js +13 -0
- package/dist/types/ts3.7/ad/AdBreakInfo.d.ts +160 -0
- package/dist/types/ts3.7/ad/AdController.d.ts +243 -0
- package/dist/types/ts3.7/ad/AdControllerImpl.d.ts +146 -0
- package/dist/types/ts3.7/ad/AdError.d.ts +6 -0
- package/dist/types/ts3.7/ad/AdsProvider.d.ts +28 -0
- package/dist/types/ts3.7/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
- package/dist/types/ts3.7/ad/discoverHlsInterstitials.d.ts +22 -0
- package/dist/types/ts3.7/playback/PlaybackControllerImpl.d.ts +1 -1
- package/dist/types/ts3.7/streaming/AudioOptions.d.ts +39 -0
- package/dist/types/ts3.7/streaming/LoadMetric.d.ts +58 -0
- package/dist/types/ts3.7/streaming/ManifestControllerImpl.d.ts +40 -0
- package/dist/types/ts3.7/streaming/buffering/codecDenylist.d.ts +23 -0
- package/dist/types/ts3.7/streaming/createAllowedContentTypesValue.d.ts +30 -0
- package/dist/types/ts3.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
- package/dist/types/ts3.7/text/HtmlTextTrackRenderer.d.ts +60 -0
- package/dist/types/ts3.7/text/SidecarTextTrackController.d.ts +103 -0
- package/dist/types/ts3.7/text/SidecarTextTrackLoader.d.ts +65 -0
- package/dist/types/ts3.7/text/TextTrack.d.ts +183 -0
- package/dist/types/ts3.7/text/TextTrackRenderer.d.ts +24 -0
- package/dist/types/ts3.7/text/VttCueStyle.d.ts +41 -0
- package/dist/types/ts3.7/text/discoverDashTextTracks.d.ts +24 -0
- package/dist/types/ts3.7/text/discoverHlsTextTracks.d.ts +19 -0
- package/dist/types/ts3.7/text/mediaTextTrackProvider.d.ts +34 -0
- package/dist/types/ts3.7/text/parseWebVtt.d.ts +60 -0
- package/dist/types/ts3.7/text/pickPreferredTextTrack.d.ts +15 -0
- package/dist/types/ts3.7/track/SeekRange.d.ts +9 -0
- package/dist/types/ts3.7/track/hls/HlsManifestData.d.ts +19 -0
- package/dist/types/ts3.7/track/hls/createHlsManifestProvider.d.ts +6 -0
- package/dist/types/ts3.7/track/inferLoadOptionsFromUri.d.ts +15 -0
- package/dist/types/ts3.7/util/media/codecOverrides.d.ts +33 -0
- package/dist/types/ts3.7/util/media/codecSupport.d.ts +6 -0
- package/dist/types/ts3.7/util/media/mimeType.d.ts +8 -0
- package/dist/types/ts4.1/ad/AdBreakInfo.d.ts +160 -0
- package/dist/types/ts4.1/ad/AdController.d.ts +243 -0
- package/dist/types/ts4.1/ad/AdControllerImpl.d.ts +146 -0
- package/dist/types/ts4.1/ad/AdError.d.ts +6 -0
- package/dist/types/ts4.1/ad/AdsProvider.d.ts +28 -0
- package/dist/types/ts4.1/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
- package/dist/types/ts4.1/ad/discoverHlsInterstitials.d.ts +22 -0
- package/dist/types/ts4.1/playback/PlaybackControllerImpl.d.ts +1 -1
- package/dist/types/ts4.1/streaming/AudioOptions.d.ts +39 -0
- package/dist/types/ts4.1/streaming/LoadMetric.d.ts +58 -0
- package/dist/types/ts4.1/streaming/ManifestControllerImpl.d.ts +40 -0
- package/dist/types/ts4.1/streaming/buffering/codecDenylist.d.ts +23 -0
- package/dist/types/ts4.1/streaming/createAllowedContentTypesValue.d.ts +30 -0
- package/dist/types/ts4.1/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
- package/dist/types/ts4.1/text/HtmlTextTrackRenderer.d.ts +60 -0
- package/dist/types/ts4.1/text/SidecarTextTrackController.d.ts +104 -0
- package/dist/types/ts4.1/text/SidecarTextTrackLoader.d.ts +65 -0
- package/dist/types/ts4.1/text/TextTrack.d.ts +183 -0
- package/dist/types/ts4.1/text/TextTrackRenderer.d.ts +24 -0
- package/dist/types/ts4.1/text/VttCueStyle.d.ts +41 -0
- package/dist/types/ts4.1/text/discoverDashTextTracks.d.ts +24 -0
- package/dist/types/ts4.1/text/discoverHlsTextTracks.d.ts +19 -0
- package/dist/types/ts4.1/text/mediaTextTrackProvider.d.ts +34 -0
- package/dist/types/ts4.1/text/parseWebVtt.d.ts +60 -0
- package/dist/types/ts4.1/text/pickPreferredTextTrack.d.ts +15 -0
- package/dist/types/ts4.1/track/SeekRange.d.ts +9 -0
- package/dist/types/ts4.1/track/hls/HlsManifestData.d.ts +19 -0
- package/dist/types/ts4.1/track/hls/createHlsManifestProvider.d.ts +6 -0
- package/dist/types/ts4.1/track/inferLoadOptionsFromUri.d.ts +15 -0
- package/dist/types/ts4.1/util/media/codecOverrides.d.ts +33 -0
- package/dist/types/ts4.1/util/media/codecSupport.d.ts +6 -0
- package/dist/types/ts4.1/util/media/mimeType.d.ts +8 -0
- package/dist/types/ts4.7/ad/AdBreakInfo.d.ts +160 -0
- package/dist/types/ts4.7/ad/AdController.d.ts +243 -0
- package/dist/types/ts4.7/ad/AdControllerImpl.d.ts +146 -0
- package/dist/types/ts4.7/ad/AdError.d.ts +6 -0
- package/dist/types/ts4.7/ad/AdsProvider.d.ts +28 -0
- package/dist/types/ts4.7/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
- package/dist/types/ts4.7/ad/discoverHlsInterstitials.d.ts +22 -0
- package/dist/types/ts4.7/playback/PlaybackControllerImpl.d.ts +1 -1
- package/dist/types/ts4.7/streaming/AudioOptions.d.ts +39 -0
- package/dist/types/ts4.7/streaming/LoadMetric.d.ts +58 -0
- package/dist/types/ts4.7/streaming/ManifestControllerImpl.d.ts +43 -0
- package/dist/types/ts4.7/streaming/buffering/codecDenylist.d.ts +23 -0
- package/dist/types/ts4.7/streaming/createAllowedContentTypesValue.d.ts +30 -0
- package/dist/types/ts4.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
- package/dist/types/ts4.7/text/HtmlTextTrackRenderer.d.ts +60 -0
- package/dist/types/ts4.7/text/SidecarTextTrackController.d.ts +103 -0
- package/dist/types/ts4.7/text/SidecarTextTrackLoader.d.ts +65 -0
- package/dist/types/ts4.7/text/TextTrack.d.ts +183 -0
- package/dist/types/ts4.7/text/TextTrackRenderer.d.ts +24 -0
- package/dist/types/ts4.7/text/VttCueStyle.d.ts +41 -0
- package/dist/types/ts4.7/text/discoverDashTextTracks.d.ts +24 -0
- package/dist/types/ts4.7/text/discoverHlsTextTracks.d.ts +19 -0
- package/dist/types/ts4.7/text/mediaTextTrackProvider.d.ts +34 -0
- package/dist/types/ts4.7/text/parseWebVtt.d.ts +60 -0
- package/dist/types/ts4.7/text/pickPreferredTextTrack.d.ts +15 -0
- package/dist/types/ts4.7/track/SeekRange.d.ts +9 -0
- package/dist/types/ts4.7/track/hls/HlsManifestData.d.ts +19 -0
- package/dist/types/ts4.7/track/hls/createHlsManifestProvider.d.ts +6 -0
- package/dist/types/ts4.7/track/inferLoadOptionsFromUri.d.ts +15 -0
- package/dist/types/ts4.7/util/media/codecOverrides.d.ts +33 -0
- package/dist/types/ts4.7/util/media/codecSupport.d.ts +6 -0
- package/dist/types/ts4.7/util/media/mimeType.d.ts +8 -0
- package/dist/unit/types/current/ad/AdController.test.d.ts +2 -0
- package/dist/unit/types/current/ad/AdController.test.d.ts.map +1 -0
- package/dist/unit/types/current/ad/AdController.test.js +10 -0
- package/dist/unit/types/current/ad/AdControllerImpl.test.d.ts +2 -0
- package/dist/unit/types/current/ad/AdControllerImpl.test.d.ts.map +1 -0
- package/dist/unit/types/current/ad/AdControllerImpl.test.js +1456 -0
- package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.d.ts +2 -0
- package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.d.ts.map +1 -0
- package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.js +56 -0
- package/dist/unit/types/current/ad/discoverHlsInterstitials.test.d.ts +2 -0
- package/dist/unit/types/current/ad/discoverHlsInterstitials.test.d.ts.map +1 -0
- package/dist/unit/types/current/ad/discoverHlsInterstitials.test.js +756 -0
- package/dist/unit/types/current/drm/DrmControllerImpl.test.js +66 -1
- package/dist/unit/types/current/streaming/ManifestControllerImpl.test.d.ts +2 -0
- package/dist/unit/types/current/streaming/ManifestControllerImpl.test.d.ts.map +1 -0
- package/dist/unit/types/current/streaming/ManifestControllerImpl.test.js +197 -0
- package/dist/unit/types/current/streaming/buffering/codecDenylist.test.d.ts +2 -0
- package/dist/unit/types/current/streaming/buffering/codecDenylist.test.d.ts.map +1 -0
- package/dist/unit/types/current/streaming/buffering/codecDenylist.test.js +56 -0
- package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.d.ts +2 -0
- package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.d.ts.map +1 -0
- package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.js +77 -0
- package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.d.ts +2 -0
- package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.d.ts.map +1 -0
- package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.js +99 -0
- package/dist/unit/types/current/text/HtmlTextTrackRenderer.test.d.ts +2 -0
- package/dist/unit/types/current/text/HtmlTextTrackRenderer.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/HtmlTextTrackRenderer.test.js +231 -0
- package/dist/unit/types/current/text/SidecarTextTrackController.test.d.ts +2 -0
- package/dist/unit/types/current/text/SidecarTextTrackController.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/SidecarTextTrackController.test.js +686 -0
- package/dist/unit/types/current/text/SidecarTextTrackLoader.test.d.ts +2 -0
- package/dist/unit/types/current/text/SidecarTextTrackLoader.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/SidecarTextTrackLoader.test.js +365 -0
- package/dist/unit/types/current/text/VttCueStyle.test.d.ts +2 -0
- package/dist/unit/types/current/text/VttCueStyle.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/VttCueStyle.test.js +76 -0
- package/dist/unit/types/current/text/discoverDashTextTracks.test.d.ts +2 -0
- package/dist/unit/types/current/text/discoverDashTextTracks.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/discoverDashTextTracks.test.js +199 -0
- package/dist/unit/types/current/text/discoverHlsTextTracks.test.d.ts +2 -0
- package/dist/unit/types/current/text/discoverHlsTextTracks.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/discoverHlsTextTracks.test.js +177 -0
- package/dist/unit/types/current/text/mediaTextTrackProvider.test.d.ts +2 -0
- package/dist/unit/types/current/text/mediaTextTrackProvider.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/mediaTextTrackProvider.test.js +86 -0
- package/dist/unit/types/current/text/parseWebVtt.test.d.ts +2 -0
- package/dist/unit/types/current/text/parseWebVtt.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/parseWebVtt.test.js +393 -0
- package/dist/unit/types/current/text/pickPreferredTextTrack.test.d.ts +2 -0
- package/dist/unit/types/current/text/pickPreferredTextTrack.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/pickPreferredTextTrack.test.js +78 -0
- package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.d.ts +2 -0
- package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.d.ts.map +1 -0
- package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.js +165 -0
- package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/unit/types/current/util/media/codecOverrides.test.d.ts +2 -0
- package/dist/unit/types/current/util/media/codecOverrides.test.d.ts.map +1 -0
- package/dist/unit/types/current/util/media/codecOverrides.test.js +42 -0
- package/dist/unit/types/current/util/media/codecSupport.test.d.ts +2 -0
- package/dist/unit/types/current/util/media/codecSupport.test.d.ts.map +1 -0
- package/dist/unit/types/current/util/media/codecSupport.test.js +26 -0
- package/dist/unit/types/current/util/media/mimeType.test.d.ts +2 -0
- package/dist/unit/types/current/util/media/mimeType.test.d.ts.map +1 -0
- package/dist/unit/types/current/util/media/mimeType.test.js +22 -0
- package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.d.ts +2 -0
- package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.d.ts.map +1 -0
- package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.js +142 -0
- package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.d.ts +2 -0
- package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.d.ts.map +1 -0
- package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.js +188 -0
- package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.d.ts +15 -0
- package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.d.ts.map +1 -0
- package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.js +26 -0
- package/dist/vinylTestUtil/types/current/mock/dash/mockDashManifest.d.ts +84 -84
- package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts +10 -0
- package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts.map +1 -0
- package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.js +14 -0
- package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/vinylTestUtil/types/ts3.7/mock/ad/MockAdController.d.ts +15 -0
- package/dist/vinylTestUtil/types/ts3.7/mock/dash/mockDashManifest.d.ts +84 -84
- package/dist/vinylTestUtil/types/ts3.7/mock/text/MockTextTrackController.d.ts +10 -0
- package/dist/vinylTestUtil/types/ts4.1/mock/ad/MockAdController.d.ts +15 -0
- package/dist/vinylTestUtil/types/ts4.1/mock/dash/mockDashManifest.d.ts +84 -84
- package/dist/vinylTestUtil/types/ts4.1/mock/text/MockTextTrackController.d.ts +10 -0
- package/dist/vinylTestUtil/types/ts4.7/mock/ad/MockAdController.d.ts +15 -0
- package/dist/vinylTestUtil/types/ts4.7/mock/dash/mockDashManifest.d.ts +84 -84
- package/dist/vinylTestUtil/types/ts4.7/mock/text/MockTextTrackController.d.ts +10 -0
- package/package.json +10 -11
package/dist/test/integ.es5.js
CHANGED
|
@@ -852,7 +852,7 @@ function setMockNavigator(){var navigator2=new MockNavigator;spyOnPropertySafe(g
|
|
|
852
852
|
function overrideGlobalInit(initHandle,initOverride){beforeEach(function(){initHandle.set(initOverride)});return initHandle}// ../vinyl-util/test/testUtil/mock/logging/MockLogger.ts
|
|
853
853
|
var createSpy4=jasmine.createSpy;var spyFactory4=createSpyFactory();var MockLogger=/*#__PURE__*/function(_MockEventHost4){function MockLogger(){var _this42;_classCallCheck(this,MockLogger);_this42=_callSuper(this,MockLogger,arguments);__publicField(_this42,"logLevel",1/* DEBUG */);__publicField(_this42,"log",spyFactory4("log").and.callFake(function(target,level){var _this43,_this44,_this45,_this46,_this47;for(var _len16=arguments.length,messages=new Array(_len16>2?_len16-2:0),_key17=2;_key17<_len16;_key17++){messages[_key17-2]=arguments[_key17]}switch(level){// Delegates logs to spies separated by log level.
|
|
854
854
|
case 0/* VERBOSE */:(_this43=_this42).verbose.apply(_this43,[target].concat(messages));break;case 1/* DEBUG */:(_this44=_this42).debug.apply(_this44,[target].concat(messages));break;case 2/* INFO */:(_this45=_this42).info.apply(_this45,[target].concat(messages));break;case 3/* WARN */:(_this46=_this42).warn.apply(_this46,[target].concat(messages));break;case 4/* ERROR */:(_this47=_this42).error.apply(_this47,[target].concat(messages));break}}));__publicField(_this42,"verbose",createSpy4("verbose"));__publicField(_this42,"debug",createSpy4("debug"));__publicField(_this42,"info",createSpy4("info"));__publicField(_this42,"warn",createSpy4("warn"));__publicField(_this42,"error",createSpy4("error"));return _this42}_inherits(MockLogger,_MockEventHost4);return _createClass(MockLogger)}(MockEventHost);function useMockLogger(){return overrideGlobalInit(loggerRef,function(){return new MockLogger})}// test/vinylTestUtil/util/playback/playbackStateExpectations.ts
|
|
855
|
-
function expectTimeDoesNotElapse(_x12){return _expectTimeDoesNotElapse.apply(this,arguments)}function _expectTimeDoesNotElapse(){_expectTimeDoesNotElapse=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
855
|
+
function expectTimeDoesNotElapse(_x12){return _expectTimeDoesNotElapse.apply(this,arguments)}function _expectTimeDoesNotElapse(){_expectTimeDoesNotElapse=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee563(player){var startTime;return _regenerator().w(function(_context563){while(1)switch(_context563.n){case 0:startTime=player.currentTime;_context563.n=1;return _sleep(0.5);case 1:if(!closeTo(player.currentTime,startTime,0.1)){_context563.n=2;break}expectNothing();_context563.n=4;break;case 2:_context563.n=3;return _sleep(2);case 3:expect(player.currentTime).withContext("expectTimeDoesNotElapse").toBeCloseToWithin(startTime,0.3);case 4:return _context563.a(2)}},_callee563)}));return _expectTimeDoesNotElapse.apply(this,arguments)}function expectTimeElapses(_x13){return _expectTimeElapses.apply(this,arguments)}function _expectTimeElapses(){_expectTimeElapses=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee564(player){var minTimeDelta,startTime;return _regenerator().w(function(_context564){while(1)switch(_context564.n){case 0:minTimeDelta=0.5;startTime=player.currentTime;_context564.n=1;return nextEventAsPromise(player,"timeUpdate",{filter:function filter(){return player.currentTime>startTime+minTimeDelta},timeout:4,timeoutMessage:"currentTime did not progress at least ".concat(minTimeDelta,"s after {time} seconds.")});case 1:return _context564.a(2)}},_callee564)}));return _expectTimeElapses.apply(this,arguments)}function expectPausedState(player){expect(player.paused).withContext("paused").toBeTrue();expect(player.playing).withContext("not playing").toBeFalse()}function expectPlayingState(player){expect(player.playIsPending).withContext("not pending play").toBeFalse();expect(player.paused).withContext("not paused").toBeFalse();expect(player.playing).withContext("playing").toBeTrue()}function expectPendingPlaying(player){expect(player.playIsPending).withContext("pending play").toBeTrue();expect(player.playing).withContext("pending, not playing").toBeFalse()}// ../vinyl-observable/src/observable/observableValue.ts
|
|
856
856
|
var MutableValueBase=/*#__PURE__*/function(){function MutableValueBase(){_classCallCheck(this,MutableValueBase)}return _createClass(MutableValueBase,[{key:"getValue",value:function getValue(){return this.value}},{key:"setValue",value:function setValue(value){this.value=value}},{key:"map",value:function map(transform,setData){return new SubDataController(this,transform,setData!=null?setData:throwSaveNotProvidedError)}},{key:"pick",value:function pick(prop){var _this48=this;return new SubDataController(this,function(value){return value==null?void 0:value[prop]},function(subValue){var current=_this48.value;if(current==null)return current;var newValue=__spreadValues({},current);newValue[prop]=subValue;return newValue})}}])}();var MutableValueImpl=/*#__PURE__*/function(_MutableValueBase){function MutableValueImpl(currentValue){var _this49;_classCallCheck(this,MutableValueImpl);_this49=_callSuper(this,MutableValueImpl);__publicField(_this49,"currentValue",currentValue);__publicField(_this49,"_disposed",false);__publicField(_this49,"currentIndex",-1);__publicField(_this49,"n",0);__publicField(_this49,"callbacks",[]);__publicField(_this49,"_changeId",0);return _this49}_inherits(MutableValueImpl,_MutableValueBase);return _createClass(MutableValueImpl,[{key:"changeId",get:function get(){return this._changeId}},{key:"hasAnyListeners",value:function hasAnyListeners(){return this.callbacks.length>0}},{key:"onData",value:function onData(callback){var _this50=this;if(this._disposed)throw new DisposedError;this.callbacks.push(callback);callback(this.currentValue,void 0);return function(){var index=_this50.callbacks.indexOf(callback);if(index!==-1){_this50.callbacks.splice(index,1);if(index<=_this50.currentIndex)_this50.currentIndex--;_this50.n--}}}},{key:"value",get:function get(){return this.currentValue},set:function set(value){if(this.currentIndex!==-1){throw new Error("data cannot be set from onData callback")}if(this._disposed)throw new DisposedError;var previousValue=this.currentValue;if(value===previousValue)return;this.currentValue=value;this.notify(value,previousValue)}},{key:"invalidate",value:function invalidate(){this.notify(this.currentValue,this.currentValue)}},{key:"disposed",get:function get(){return this._disposed}},{key:"dispose",value:function dispose(){this._disposed=true;this.callbacks.length=0}},{key:"notify",value:function notify(value,previousValue){this._changeId++;this.n=this.callbacks.length;try{while(this.currentIndex<this.n-1){this.callbacks[++this.currentIndex](value,previousValue)}}finally{this.currentIndex=-1}}}])}(MutableValueBase);var SubDataController=/*#__PURE__*/function(_MutableValueBase2){function SubDataController(source,getter,setter){var _this51;_classCallCheck(this,SubDataController);_this51=_callSuper(this,SubDataController);__publicField(_this51,"source",source);__publicField(_this51,"getter",getter);__publicField(_this51,"setter",setter);__publicField(_this51,"needsValidation",false);__publicField(_this51,"cachedChangeId",-1);__publicField(_this51,"cachedValue");return _this51}_inherits(SubDataController,_MutableValueBase2);return _createClass(SubDataController,[{key:"changeId",get:function get(){return this.source.changeId}},{key:"getTransformed",value:function getTransformed(){var id=this.source.changeId;if(this.cachedChangeId===id)return this.cachedValue;var value=this.getter(this.source.value);this.cachedChangeId=id;this.cachedValue=value;return value}},{key:"value",get:function get(){return this.getTransformed()},set:function set(value){this.source.value=this.setter(value,this.source.value)}},{key:"onData",value:function onData(callback){var _this52=this;var previous;var firstCall=true;return this.source.onData(function(){var newValue=_this52.getTransformed();if(firstCall||_this52.needsValidation||newValue!==previous){callback(newValue,previous);firstCall=false;previous=newValue}})}},{key:"invalidate",value:function invalidate(){this.needsValidation=true;this.source.invalidate();this.needsValidation=false}}])}(MutableValueBase);function data(value){return new MutableValueImpl(value)}function throwSaveNotProvidedError(){throw new Error("data cannot be set, a `setData` function must be provided")}var ExternalMutableValue=/*#__PURE__*/function(_MutableValueBase3){function ExternalMutableValue(currentValue,onDataRequested){var _this53;_classCallCheck(this,ExternalMutableValue);_this53=_callSuper(this,ExternalMutableValue);__publicField(_this53,"onDataRequested",onDataRequested);__publicField(_this53,"_data");__publicField(_this53,"externalDataSub",null);_this53._data=data(currentValue);return _this53}_inherits(ExternalMutableValue,_MutableValueBase3);return _createClass(ExternalMutableValue,[{key:"value",get:function get(){return this._data.value},set:function set(_value){throw new Error("set value not supported")}},{key:"changeId",get:function get(){return this._data.changeId}},{key:"onData",value:function onData(callback){var _this54=this;if(!this._data.hasAnyListeners()){this.externalDataSub=this.onDataRequested(function(value){_this54._data.value=value})}var sub=this._data.onData(callback);return function(){var _a3;sub();if(!_this54._data.hasAnyListeners()){(_a3=_this54.externalDataSub)==null?void 0:_a3.call(_this54);_this54.externalDataSub=null}}}},{key:"invalidate",value:function invalidate(){throw new Error("invalidate not supported")}}])}(MutableValueBase);function externalData(initialValue,onDataRequested){return new ExternalMutableValue(initialValue,onDataRequested)}// ../vinyl-observable/src/observable/combineData.ts
|
|
857
857
|
function combineData(inputs){var keys=Object.keys(inputs);var providers={};var current={};for(var _i7=0,_keys=keys;_i7<_keys.length;_i7++){var key=_keys[_i7];var provider=inputs[key];providers[key]=provider;current[key]=provider.value}return externalData(current,function(setData){var subs=[];var _loop6=function _loop6(){var key=_keys2[_i8];var provider=providers[key];var isFirst=true;subs.push(provider.onData(function(value){if(isFirst){isFirst=false;return}current[key]=value;setData(__spreadValues({},current))}))};for(var _i8=0,_keys2=keys;_i8<_keys2.length;_i8++){_loop6()}setData(current);return function(){for(var _i9=0,_subs=subs;_i9<_subs.length;_i9++){var unsub=_subs[_i9];unsub()}}})}// src/vinyl/playerConfigFactory.ts
|
|
858
858
|
function playerConfigFactory(defaults,validator){return function(_deps,add){var config=data(defaults);add(config.onData(function(data2){validator.assert(data2)}));return config}}// src/util/media/mediaSource.ts
|
|
@@ -1511,15 +1511,15 @@ var ContentStreamImpl=/*#__PURE__*/function(_EventHostImpl11){function ContentSt
|
|
|
1511
1511
|
*/},{key:"reset",value:function reset(){this.segmentController.reset();this.bufferingController.reset()}},{key:"activate",value:function activate(options){var _a3;this.segmentController.configure({startTime:(_a3=options.startTime)!=null?_a3:0});this.segmentController.activate();this.bufferingController.activate()}},{key:"deactivate",value:function deactivate(){this.segmentController.deactivate();this.bufferingController.deactivate()}},{key:"dispose",value:function dispose(){_superPropGet(ContentStreamImpl,"dispose",this,3)([]);this.disposer.dispose()}}])}(EventHostImpl);function createContentStreamFactory(deps){return function(contentType2){return new ContentStreamImpl(deps.createContentStreamFactories(contentType2),contentType2)}}// src/track/dash/createDashContentTypesValue.ts
|
|
1512
1512
|
function createDashContentTypesValue(deps){return deps.manifestTransformed.map(/*#__PURE__*/function(){var _ref26=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee32(manifestAndPath){var _t6,_t7;return _regenerator().w(function(_context32){while(1)switch(_context32.n){case 0:_t6=getContentTypes;_t7=deps;_context32.n=1;return manifestAndPath;case 1:return _context32.a(2,_t6(_t7,_context32.v.manifest))}},_callee32)}));return function(_x28){return _ref26.apply(this,arguments)}}())}function getContentTypes(deps,manifest3){var contentTypes=/* @__PURE__ */new Set;var _iterator61=_createForOfIteratorHelper(manifest3.MPD.Period),_step61;try{for(_iterator61.s();!(_step61=_iterator61.n()).done;){var period=_step61.value;if(!period.AdaptationSet)continue;var mediaMetadata=flattenRepresentations(period).map(deps.mediaQualityMetadataResolver);var _iterator62=_createForOfIteratorHelper(mediaMetadata),_step62;try{for(_iterator62.s();!(_step62=_iterator62.n()).done;){var contentType2=_step62.value.contentType;if(contentType2)contentTypes.add(contentType2)}}catch(err){_iterator62.e(err)}finally{_iterator62.f()}}}catch(err){_iterator61.e(err)}finally{_iterator61.f()}return contentTypes}// src/track/createSegmentDataProvider.ts
|
|
1513
1513
|
function createSegmentDataProvider(deps,options){return/*#__PURE__*/function(){var _ref27=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee33(abort){var _a3,init,params,serviceId,requestStart,response,responseEnd,arrayBuffer,contentEnd,responseStart,lastRequest;return _regenerator().w(function(_context33){while(1)switch(_context33.n){case 0:init=__spreadValues({},deps.segmentRequestInit);if(options.mediaRange){init.headers=__spreadProps(__spreadValues({},normalizeHeadersInit(init.headers)),{Range:"bytes=".concat(stringifyByteRange(options.mediaRange))})}params={input:options.url,init:init};deps.requestInterceptor(params);serviceId=(_a3=options.serviceId)!=null?_a3:getHostname(options.url);requestStart=Date.now();_context33.n=1;return requestWithRetry(params.input,params.init,{serviceId:serviceId,abort:abort});case 1:response=_context33.v;responseEnd=Date.now();_context33.n=2;return response.arrayBuffer();case 2:arrayBuffer=_context33.v;contentEnd=Date.now();responseStart=null;if("getEntriesByName"in performance){lastRequest=last(performance.getEntriesByName(params.input));if(lastRequest){if(lastRequest.responseStart){responseStart=performance.timeOrigin+lastRequest.responseStart}}}if(options.reportDownlinkMetrics){networkMetricsController.value.addDownlinkTransferEntry({bytes:arrayBuffer.byteLength,serviceId:serviceId,requestStart:requestStart,responseStart:responseStart,responseEnd:responseEnd,contentEnd:contentEnd})}return _context33.a(2,arrayBuffer)}},_callee33)}));return function(_x29){return _ref27.apply(this,arguments)}}()}// src/track/dash/timeline/DashRepresentationSegmentProvider.ts
|
|
1514
|
-
function createDashRepresentationSegmentProvider(deps,baseUrl,representation){var _a3;var quality=deps.mediaQualityMetadataResolver(representation);var options={baseUrl:baseUrl,periodTimeRange:calculatePeriodTimeRange(representation.parent.parent),representation:representation};var segmentTemplate=getSegmentTemplate(representation);var segmentList=getSegmentList(representation);var segmentBase=getSegmentBase(representation);var segmentsPromise=null;var initUri;var initRange;if(segmentTemplate==null?void 0:segmentTemplate.initialization){initUri=segmentTemplateUrl(segmentTemplate.initialization,{representation:representation})}var commonSegmentBase=(_a3=segmentTemplate!=null?segmentTemplate:segmentList)!=null?_a3:segmentBase;if(!commonSegmentBase)throw new ValidationError("Manifest must have one of SegmentList, SegmentTemplate, or SegmentBase",ErrorOrigin.MEDIA);if(commonSegmentBase.Initialization){initUri=commonSegmentBase.Initialization.sourceURL;initRange=commonSegmentBase.Initialization.range}if(!initUri&&!initRange)throw new ValidationError("Missing initialization range",ErrorOrigin.MEDIA);var _resolveDashUri=resolveDashUri(deps,{baseUrl:baseUrl,representation:representation,uri:initUri}),initUrl=_resolveDashUri.url,initServiceLocation=_resolveDashUri.serviceLocation;var initData=createSegmentDataProvider(deps,{url:initUrl,mediaRange:initRange,serviceId:initServiceLocation,reportDownlinkMetrics:false});var getSegmentReferences;if(segmentList){getSegmentReferences=function getSegmentReferences(){return createSegmentsFromSegmentList(deps,__spreadProps(__spreadValues({},options),{segmentList:segmentList}))}}else if(segmentTemplate){getSegmentReferences=function getSegmentReferences(){return createSegmentsFromSegmentTemplate(deps,__spreadProps(__spreadValues({},options),{segmentTemplate:segmentTemplate}))}}else if(segmentBase){getSegmentReferences=function getSegmentReferences(){return createSegmentsFromSegmentBase(deps,__spreadProps(__spreadValues({},options),{segmentBase:segmentBase}))}}return{getSegment:function getSegment(time){var _arguments2=arguments;return _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee34(){var affordance,segments,segment;return _regenerator().w(function(_context34){while(1)switch(_context34.n){case 0:affordance=_arguments2.length>1&&_arguments2[1]!==undefined?_arguments2[1]:0;if(!segmentsPromise)segmentsPromise=getSegmentReferences();_context34.n=1;return Promise.resolve(segmentsPromise)["catch"](function(error){segmentsPromise=null;throw error});case 1:segments=_context34.v;segment=getSegmentAtTime(time,segments,affordance);if(segment){_context34.n=2;break}return _context34.a(2,null);case 2:return _context34.a(2,__spreadProps(__spreadValues({quality:quality},segment),{initData:initData}))}},_callee34)}))()}}}function createSegmentsFromSegmentList(deps,options){var _a3;var baseUrl=options.baseUrl,periodTimeRange=options.periodTimeRange,representation=options.representation,segmentList=options.segmentList;var segmentUrls=segmentList.SegmentURL;if(segmentUrls){var timescale=getTimescale(segmentList);var sampleTimes=calculateSegmentSampleTimes({multipleSegmentBase:segmentList,periodTimeRange:periodTimeRange,numSegments:segmentUrls.length});var presentationTimeOffset=(_a3=segmentList.presentationTimeOffset)!=null?_a3:0;return createTimeline({sampleTimes:sampleTimes,presentationTimeOffset:presentationTimeOffset,periodTimeRange:periodTimeRange,timescale:timescale},function(i){var segmentUrl=segmentUrls[i];var _resolveDashUri2=resolveDashUri(deps,{baseUrl:baseUrl,uri:segmentUrl.media,representation:representation}),url=_resolveDashUri2.url,serviceLocation=_resolveDashUri2.serviceLocation;return createSegmentDataProvider(deps,{url:url,mediaRange:segmentUrl.mediaRange,serviceId:serviceLocation,reportDownlinkMetrics:true})})}else{if(segmentList.href){throw new ValidationError("SegmentList.href currently unsupported",ErrorOrigin.MEDIA)}else{throw new ValidationError("could not determine segments from SegmentList",ErrorOrigin.MEDIA)}}}function createSegmentsFromSegmentTemplate(deps,options){var _a3,_b;var baseUrl=options.baseUrl,periodTimeRange=options.periodTimeRange,representation=options.representation,segmentTemplate=options.segmentTemplate;if(!segmentTemplate.media){throw new ValidationError("SegmentTemplate.media required",ErrorOrigin.MEDIA)}var media=segmentTemplate.media;var presentationTimeOffset=(_a3=segmentTemplate.presentationTimeOffset)!=null?_a3:0;var sampleTimes=calculateSegmentSampleTimes({multipleSegmentBase:segmentTemplate,periodTimeRange:periodTimeRange});var timescale=getTimescale(segmentTemplate);var segmentNumber=(_b=segmentTemplate.startNumber)!=null?_b:1;return createTimeline({timescale:timescale,presentationTimeOffset:presentationTimeOffset,periodTimeRange:periodTimeRange,sampleTimes:sampleTimes},function(_,sampleTime){var uri=segmentTemplateUrl(media,{representation:representation,sampleTime:sampleTime,segmentNumber:segmentNumber++});var _resolveDashUri3=resolveDashUri(deps,{baseUrl:baseUrl,uri:uri,representation:representation}),url=_resolveDashUri3.url,serviceLocation=_resolveDashUri3.serviceLocation;return createSegmentDataProvider(deps,{url:url,serviceId:serviceLocation,reportDownlinkMetrics:true})})}function createSegmentsFromSegmentBase(_x30,_x31){return _createSegmentsFromSegmentBase.apply(this,arguments)}function _createSegmentsFromSegmentBase(){_createSegmentsFromSegmentBase=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1514
|
+
function createDashRepresentationSegmentProvider(deps,baseUrl,representation){var _a3;var quality=deps.mediaQualityMetadataResolver(representation);var options={baseUrl:baseUrl,periodTimeRange:calculatePeriodTimeRange(representation.parent.parent),representation:representation};var segmentTemplate=getSegmentTemplate(representation);var segmentList=getSegmentList(representation);var segmentBase=getSegmentBase(representation);var segmentsPromise=null;var initUri;var initRange;if(segmentTemplate==null?void 0:segmentTemplate.initialization){initUri=segmentTemplateUrl(segmentTemplate.initialization,{representation:representation})}var commonSegmentBase=(_a3=segmentTemplate!=null?segmentTemplate:segmentList)!=null?_a3:segmentBase;if(!commonSegmentBase)throw new ValidationError("Manifest must have one of SegmentList, SegmentTemplate, or SegmentBase",ErrorOrigin.MEDIA);if(commonSegmentBase.Initialization){initUri=commonSegmentBase.Initialization.sourceURL;initRange=commonSegmentBase.Initialization.range}if(!initUri&&!initRange)throw new ValidationError("Missing initialization range",ErrorOrigin.MEDIA);var _resolveDashUri=resolveDashUri(deps,{baseUrl:baseUrl,representation:representation,uri:initUri}),initUrl=_resolveDashUri.url,initServiceLocation=_resolveDashUri.serviceLocation;var initData=createSegmentDataProvider(deps,{url:initUrl,mediaRange:initRange,serviceId:initServiceLocation,reportDownlinkMetrics:false});var getSegmentReferences;if(segmentList){getSegmentReferences=function getSegmentReferences(){return createSegmentsFromSegmentList(deps,__spreadProps(__spreadValues({},options),{segmentList:segmentList}))}}else if(segmentTemplate){getSegmentReferences=function getSegmentReferences(){return createSegmentsFromSegmentTemplate(deps,__spreadProps(__spreadValues({},options),{segmentTemplate:segmentTemplate}))}}else if(segmentBase){getSegmentReferences=function getSegmentReferences(){return createSegmentsFromSegmentBase(deps,__spreadProps(__spreadValues({},options),{segmentBase:segmentBase}))}}return{getSegment:function getSegment(time){var _arguments2=arguments;return _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee34(){var affordance,segments,segment;return _regenerator().w(function(_context34){while(1)switch(_context34.n){case 0:affordance=_arguments2.length>1&&_arguments2[1]!==undefined?_arguments2[1]:0;if(!segmentsPromise)segmentsPromise=getSegmentReferences();_context34.n=1;return Promise.resolve(segmentsPromise)["catch"](function(error){segmentsPromise=null;throw error});case 1:segments=_context34.v;segment=getSegmentAtTime(time,segments,affordance);if(segment){_context34.n=2;break}return _context34.a(2,null);case 2:return _context34.a(2,__spreadProps(__spreadValues({quality:quality},segment),{initData:initData}))}},_callee34)}))()}}}function createSegmentsFromSegmentList(deps,options){var _a3;var baseUrl=options.baseUrl,periodTimeRange=options.periodTimeRange,representation=options.representation,segmentList=options.segmentList;var segmentUrls=segmentList.SegmentURL;if(segmentUrls){var timescale=getTimescale(segmentList);var sampleTimes=calculateSegmentSampleTimes({multipleSegmentBase:segmentList,periodTimeRange:periodTimeRange,numSegments:segmentUrls.length});var presentationTimeOffset=(_a3=segmentList.presentationTimeOffset)!=null?_a3:0;return createTimeline({sampleTimes:sampleTimes,presentationTimeOffset:presentationTimeOffset,periodTimeRange:periodTimeRange,timescale:timescale},function(i){var segmentUrl=segmentUrls[i];var _resolveDashUri2=resolveDashUri(deps,{baseUrl:baseUrl,uri:segmentUrl.media,representation:representation}),url=_resolveDashUri2.url,serviceLocation=_resolveDashUri2.serviceLocation;return createSegmentDataProvider(deps,{url:url,mediaRange:segmentUrl.mediaRange,serviceId:serviceLocation,reportDownlinkMetrics:true})})}else{if(segmentList.href){throw new ValidationError("SegmentList.href currently unsupported",ErrorOrigin.MEDIA)}else{throw new ValidationError("could not determine segments from SegmentList",ErrorOrigin.MEDIA)}}}function createSegmentsFromSegmentTemplate(deps,options){var _a3,_b;var baseUrl=options.baseUrl,periodTimeRange=options.periodTimeRange,representation=options.representation,segmentTemplate=options.segmentTemplate;if(!segmentTemplate.media){throw new ValidationError("SegmentTemplate.media required",ErrorOrigin.MEDIA)}var media=segmentTemplate.media;var presentationTimeOffset=(_a3=segmentTemplate.presentationTimeOffset)!=null?_a3:0;var sampleTimes=calculateSegmentSampleTimes({multipleSegmentBase:segmentTemplate,periodTimeRange:periodTimeRange});var timescale=getTimescale(segmentTemplate);var segmentNumber=(_b=segmentTemplate.startNumber)!=null?_b:1;return createTimeline({timescale:timescale,presentationTimeOffset:presentationTimeOffset,periodTimeRange:periodTimeRange,sampleTimes:sampleTimes},function(_,sampleTime){var uri=segmentTemplateUrl(media,{representation:representation,sampleTime:sampleTime,segmentNumber:segmentNumber++});var _resolveDashUri3=resolveDashUri(deps,{baseUrl:baseUrl,uri:uri,representation:representation}),url=_resolveDashUri3.url,serviceLocation=_resolveDashUri3.serviceLocation;return createSegmentDataProvider(deps,{url:url,serviceId:serviceLocation,reportDownlinkMetrics:true})})}function createSegmentsFromSegmentBase(_x30,_x31){return _createSegmentsFromSegmentBase.apply(this,arguments)}function _createSegmentsFromSegmentBase(){_createSegmentsFromSegmentBase=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee565(deps,options){var _a3,baseUrl,periodTimeRange,representation,segmentBase,indexRange,_resolveDashUri4,indexUrl,indexServiceLocation,sidx,sampleTimes,rangeStart,_t51;return _regenerator().w(function(_context565){while(1)switch(_context565.n){case 0:baseUrl=options.baseUrl,periodTimeRange=options.periodTimeRange,representation=options.representation,segmentBase=options.segmentBase;if(!segmentBase.indexRange){_context565.n=2;break}indexRange=segmentBase.indexRange;_resolveDashUri4=resolveDashUri(deps,{baseUrl:baseUrl,representation:representation}),indexUrl=_resolveDashUri4.url,indexServiceLocation=_resolveDashUri4.serviceLocation;_t51=parseSidxBox;_context565.n=1;return createSegmentDataProvider(deps,{url:indexUrl,mediaRange:indexRange,serviceId:indexServiceLocation,reportDownlinkMetrics:false})();case 1:sidx=_t51(_context565.v);sampleTimes=getSidxSampleTimes(sidx);rangeStart=Number(sidx.firstOffset)+indexRange[1]+1;return _context565.a(2,createTimeline({sampleTimes:sampleTimes,periodTimeRange:periodTimeRange,presentationTimeOffset:(_a3=segmentBase.presentationTimeOffset)!=null?_a3:0,timescale:sidx.timescale},function(i){var segmentReference=sidx.references[i];var size=segmentReference.referencedSize;var provider=createSegmentDataProvider(deps,{url:indexUrl,mediaRange:[rangeStart,rangeStart+size-1],serviceId:indexServiceLocation,reportDownlinkMetrics:true});rangeStart+=size;return provider}));case 2:throw new ValidationError("Manifest missing segments");case 3:return _context565.a(2)}},_callee565)}));return _createSegmentsFromSegmentBase.apply(this,arguments)}function calculateSegmentSampleTimes(options){var multipleSegmentBase=options.multipleSegmentBase,periodTimeRange=options.periodTimeRange;var timescale=getTimescale(multipleSegmentBase);var startTimes;if(multipleSegmentBase.SegmentTimeline){startTimes=calculateSampleTimesFromSegmentTimeline(multipleSegmentBase.SegmentTimeline)}else{var sampleDuration=getSampleDuration(multipleSegmentBase);startTimes=calculateFixedSegmentSampleTimes({timescale:timescale,periodTimeRange:periodTimeRange,sampleDuration:sampleDuration,numSegments:options.numSegments})}return startTimes}function calculateSampleTimesFromSegmentTimeline(segmentTimeline){var _a3,_b,_c;var out=new Array(((_b=(_a3=segmentTimeline.S)==null?void 0:_a3.length)!=null?_b:0)+1);var startTime=0;var c=0;(_c=segmentTimeline.S)==null?void 0:_c.forEach(function(s){startTime=s.t!=null?s.t:startTime;for(var i=0;i<=s.r;i++){out[c++]=startTime;startTime+=s.d}});out[c++]=startTime;return out}function calculateFixedSegmentSampleTimes(options){var _a3;var sampleDuration=options.sampleDuration,timescale=options.timescale;var _options$periodTimeRa=_slicedToArray(options.periodTimeRange,2),periodStart=_options$periodTimeRa[0],periodEnd=_options$periodTimeRa[1];if(periodEnd==null)throw new ValidationError("MPD.mediaPresentationDuration or Period.duration required",ErrorOrigin.MEDIA);var numSegments=(_a3=options.numSegments)!=null?_a3:Math.ceil((periodEnd-periodStart)/(sampleDuration/timescale));var out=new Array(numSegments+1);var startTime=0;for(var i=0;i<numSegments;i++){out[i]=startTime;startTime+=sampleDuration}out[numSegments]=periodEnd*timescale;return out}function createTimeline(_ref28,dataProviderFactory){var sampleTimes=_ref28.sampleTimes,periodTimeRange=_ref28.periodTimeRange,presentationTimeOffset=_ref28.presentationTimeOffset,timescale=_ref28.timescale;var _periodTimeRange=_slicedToArray(periodTimeRange,2),periodStart=_periodTimeRange[0],periodEnd=_periodTimeRange[1];var mpdTimes=sampleTimes.map(function(sampleTime){return sampleToMpdTime(sampleTime,periodStart,presentationTimeOffset,timescale)});var n=mpdTimes.length-1;var out=new Array(n);for(var i=0;i<n;i++){var startTime=mpdTimes[i];var endTime=mpdTimes[i+1];out[i]={data:dataProviderFactory(i,sampleTimes[i]),timestampOffset:startTime,startTime:Math.max(periodStart,startTime),endTime:periodEnd==null?endTime:Math.min(periodEnd,endTime)}}return out}function getTimescale(multipleSegmentBase){if(!multipleSegmentBase.timescale)throw new ValidationError("invalid timescale",ErrorOrigin.MEDIA);return multipleSegmentBase.timescale}function getSampleDuration(multipleSegmentBase){if(!multipleSegmentBase.duration)throw new ValidationError("invalid duration",ErrorOrigin.MEDIA);return multipleSegmentBase.duration}// src/track/dash/buildDashMediaTimeline.ts
|
|
1515
1515
|
function buildDashMediaTimeline(deps,data2){var manifest3=data2.manifest,baseUrl=data2.baseUrl;var periods=manifest3.MPD.Period.map(function(period){var _a3;var startTime=calculatePeriodStart(period);var endTime=(_a3=calculatePeriodEnd(period))!=null?_a3:Infinity;var representations=flattenRepresentations(period);var qualities=representations.map(function(representation){var metadata=deps.mediaQualityMetadataResolver(representation);var segmentProvider=createDashRepresentationSegmentProvider(deps,baseUrl,representation);return{metadata:metadata,getSegment:function getSegment(time,affordance){return segmentProvider.getSegment(time,affordance)}}});return{startTime:startTime,endTime:endTime,qualities:qualities}});var duration=calculateDuration(manifest3);return{periods:periods,minBufferTime:manifest3.MPD.minBufferTime,getDuration:function getDuration(){return Promise.resolve(duration)}}}// src/track/filters/languageFilter.ts
|
|
1516
1516
|
function throwLanguagesUnsupported(){throw new MediaUnsupportedError("No content matching preferred language","language")}var iso3to2=/* @__PURE__ */new Map([["aar","aa"],["abk","ab"],["afr","af"],["aka","ak"],["amh","am"],["ara","ar"],["arg","an"],["asm","as"],["ava","av"],["ave","ae"],["aym","ay"],["aze","az"],["bak","ba"],["bam","bm"],["bel","be"],["ben","bn"],["bis","bi"],["bod","bo"],["bos","bs"],["bre","br"],["bul","bg"],["cat","ca"],["ces","cs"],["cha","ch"],["che","ce"],["chu","cu"],["chv","cv"],["cor","kw"],["cos","co"],["cre","cr"],["cym","cy"],["dan","da"],["deu","de"],["div","dv"],["dzo","dz"],["ell","el"],["eng","en"],["epo","eo"],["est","et"],["eus","eu"],["ewe","ee"],["fao","fo"],["fas","fa"],["fij","fj"],["fin","fi"],["fra","fr"],["fry","fy"],["ful","ff"],["gla","gd"],["gle","ga"],["glg","gl"],["glv","gv"],["grn","gn"],["guj","gu"],["hat","ht"],["hau","ha"],["heb","he"],["her","hz"],["hin","hi"],["hmo","ho"],["hrv","hr"],["hun","hu"],["hye","hy"],["ibo","ig"],["ido","io"],["iii","ii"],["iku","iu"],["ile","ie"],["ina","ia"],["ind","id"],["ipk","ik"],["isl","is"],["ita","it"],["jav","jv"],["jpn","ja"],["kal","kl"],["kan","kn"],["kas","ks"],["kat","ka"],["kau","kr"],["kaz","kk"],["khm","km"],["kik","ki"],["kin","rw"],["kir","ky"],["kom","kv"],["kon","kg"],["kor","ko"],["kua","kj"],["kur","ku"],["lao","lo"],["lat","la"],["lav","lv"],["lim","li"],["lin","ln"],["lit","lt"],["ltz","lb"],["lub","lu"],["lug","lg"],["mah","mh"],["mal","ml"],["mar","mr"],["mkd","mk"],["mlg","mg"],["mlt","mt"],["mon","mn"],["mri","mi"],["msa","ms"],["mya","my"],["nau","na"],["nav","nv"],["nbl","nr"],["nde","nd"],["ndo","ng"],["nep","ne"],["nld","nl"],["nno","nn"],["nob","nb"],["nor","no"],["nya","ny"],["oci","oc"],["oji","oj"],["ori","or"],["orm","om"],["oss","os"],["pan","pa"],["pli","pi"],["pol","pl"],["por","pt"],["pus","ps"],["que","qu"],["roh","rm"],["ron","ro"],["run","rn"],["rus","ru"],["sag","sg"],["san","sa"],["sin","si"],["slk","sk"],["slv","sl"],["sme","se"],["smo","sm"],["sna","sn"],["snd","sd"],["som","so"],["sot","st"],["spa","es"],["sqi","sq"],["srd","sc"],["srp","sr"],["ssw","ss"],["sun","su"],["swa","sw"],["swe","sv"],["tah","ty"],["tam","ta"],["tat","tt"],["tel","te"],["tgk","tg"],["tgl","tl"],["tha","th"],["tir","ti"],["ton","to"],["tsn","tn"],["tso","ts"],["tuk","tk"],["tur","tr"],["twi","tw"],["uig","ug"],["ukr","uk"],["urd","ur"],["uzb","uz"],["ven","ve"],["vie","vi"],["vol","vo"],["wln","wa"],["wol","wo"],["xho","xh"],["yid","yi"],["yor","yo"],["zha","za"],["zho","zh"],["zul","zu"],// Bibliographic codes (ISO 639-2/B) that differ from terminological codes
|
|
1517
1517
|
["alb","sq"],["arm","hy"],["baq","eu"],["bur","my"],["chi","zh"],["cze","cs"],["dut","nl"],["fre","fr"],["geo","ka"],["ger","de"],["gre","el"],["ice","is"],["mac","mk"],["mao","mi"],["may","ms"],["per","fa"],["rum","ro"],["slo","sk"],["tib","bo"],["wel","cy"]]);function normalizeLanguage(locale21){var parts=locale21.split("-");var language=(parts[0]||"").toLowerCase();language=iso3to2.get(language)||language;var region=parts[1]?parts[1].toUpperCase():"";return region?"".concat(language,"-").concat(region):language}function languageRelatedness(target,candidate){var t=normalizeLanguage(target);var c=normalizeLanguage(candidate);if(c===t)return 4;var tParts=t.split("-");var cParts=c.split("-");if(tParts[0]!==cParts[0])return 0;if(cParts.length===1&&tParts.length===2)return 3;if(cParts.length===2&&tParts.length===2)return 2;return 1}function findBestLanguageMatch(target,available){return max(available,compareBy(function(lang){return languageRelatedness(target,lang)}))}// src/streaming/mediaTimelineLanguageFilter.ts
|
|
1518
1518
|
function createLanguageFilter(preferredLanguage,contentType2){if(!preferredLanguage)return null;var bestRelevanceForPeriod=memoize(function(array2){var langs=Array.from(array2).filter(function(q){return q.contentType===contentType2&&q.lang}).map(function(q){return q.lang});return languageRelatedness(preferredLanguage,findBestLanguageMatch(preferredLanguage,langs))},function(array2){return array2},1);return function(quality,_index,array2){if(quality.contentType!==contentType2)return true;if(!quality.lang)return true;var bestScore=bestRelevanceForPeriod(array2);return languageRelatedness(preferredLanguage,quality.lang)>=bestScore}}// src/streaming/mediaTimelineFilter.ts
|
|
1519
1519
|
function filterTimelineQualities(filter,throwError,timeline){if(!filter)return timeline;var mapMetadataArray=memoize(function(qualities){return map(qualities,function(q){return q.metadata})},function(qualities){return qualities},1);var periods=timeline.periods.map(function(period){var filtered=period.qualities.filter(function(q,index){return filter(q.metadata,index,mapMetadataArray(period.qualities))});return __spreadProps(__spreadValues({},period),{qualities:filtered})});if(periods.some(function(p){return p.qualities.length===0})){throwError()}return __spreadProps(__spreadValues({},timeline),{periods:periods})}function filterTimelineQualitiesAsync(_x32,_x33,_x34){return _filterTimelineQualitiesAsync.apply(this,arguments)}// src/track/filters/resourceTypeFilter.ts
|
|
1520
|
-
function _filterTimelineQualitiesAsync(){_filterTimelineQualitiesAsync=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1520
|
+
function _filterTimelineQualitiesAsync(){_filterTimelineQualitiesAsync=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee566(filter,throwError,timeline){var mapMetadataArray,periods,_iterator90,_step90,period,filtered,metadataArray,i,_t52;return _regenerator().w(function(_context566){while(1)switch(_context566.p=_context566.n){case 0:mapMetadataArray=memoize(function(qualities){return map(qualities,function(q){return q.metadata})},function(qualities){return qualities},1);periods=[];_iterator90=_createForOfIteratorHelper(timeline.periods);_context566.p=1;_iterator90.s();case 2:if((_step90=_iterator90.n()).done){_context566.n=8;break}period=_step90.value;filtered=[];metadataArray=mapMetadataArray(period.qualities);i=0;case 3:if(!(i<period.qualities.length)){_context566.n=6;break}_context566.n=4;return filter(period.qualities[i].metadata,i,metadataArray);case 4:if(!_context566.v){_context566.n=5;break}filtered.push(period.qualities[i]);case 5:i++;_context566.n=3;break;case 6:periods.push(__spreadProps(__spreadValues({},period),{qualities:filtered}));case 7:_context566.n=2;break;case 8:_context566.n=10;break;case 9:_context566.p=9;_t52=_context566.v;_iterator90.e(_t52);case 10:_context566.p=10;_iterator90.f();return _context566.f(10);case 11:if(periods.some(function(p){return p.qualities.length===0})){throwError()}return _context566.a(2,__spreadProps(__spreadValues({},timeline),{periods:periods}))}},_callee566,null,[[1,9,10,11]])}));return _filterTimelineQualitiesAsync.apply(this,arguments)}function throwMimeTypesUnsupported(){throw new MediaUnsupportedError("No resource type supported (container/codec).","resource-type")}function canPlayMimeType(deps,metadata){if(!metadata.mimeType)return false;return deps.capabilities.canPlayTypeMse(metadata.mimeType)}// src/track/filters/keySystemFilter.ts
|
|
1521
1521
|
function throwKeySystemsUnsupported(){throw new MediaUnsupportedError("No key system supported.","key-system")}function canPlayKeySystem(_x35,_x36){return _canPlayKeySystem.apply(this,arguments)}// src/track/filters/sampleRateFilter.ts
|
|
1522
|
-
function _canPlayKeySystem(){_canPlayKeySystem=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1522
|
+
function _canPlayKeySystem(){_canPlayKeySystem=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee567(deps,metadata){return _regenerator().w(function(_context567){while(1)switch(_context567.n){case 0:if(metadata.contentProtections.length){_context567.n=1;break}return _context567.a(2,true);case 1:_context567.n=2;return deps.drmController.isSupported(metadata);case 2:return _context567.a(2,_context567.v.supported)}},_callee567)}));return _canPlayKeySystem.apply(this,arguments)}function throwSamplingRatesUnsupported(){throw new MediaUnsupportedError("No supported sample rate","sampling-rate")}function supportsAudioSamplingRate(deps,metadata,_index,array2){var isFirefox=hasBrowser("Firefox"/* FIREFOX */);var maxSampleRate=deps.capabilities.sampleRate;var samplingRate=last(metadata.audioSamplingRate);if(!samplingRate||!maxSampleRate)return true;if(isFirefox){return samplingRate<=48e3}if(samplingRate<=maxSampleRate)return true;var allAboveMax=every(array2,function(item){var itemSamplingRate=last(item.audioSamplingRate);return itemSamplingRate!=null&&itemSamplingRate>maxSampleRate});if(allAboveMax){var samplingRates=map(array2,function(item){return last(item.audioSamplingRate)}).filter(function(rate){return rate!=null});var lowestSamplingRate=min(samplingRates);return samplingRate===lowestSamplingRate}return false}// src/streaming/createDefaultMediaTimelineTransformer.ts
|
|
1523
1523
|
function createDefaultMediaTimelineTransformer(deps){function transformTimeline(_x37){return _transformTimeline.apply(this,arguments)}function _transformTimeline(){_transformTimeline=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee36(timeline){var t;return _regenerator().w(function(_context36){while(1)switch(_context36.n){case 0:t=filterTimelineQualities(function(quality){return canPlayMimeType(deps,quality)},throwMimeTypesUnsupported,timeline);_context36.n=1;return filterTimelineQualitiesAsync(function(quality){return canPlayKeySystem(deps,quality)},throwKeySystemsUnsupported,t);case 1:t=_context36.v;t=filterTimelineQualities(function(quality,index,array2){return supportsAudioSamplingRate(deps,quality,index,array2)},throwSamplingRatesUnsupported,t);t=filterTimelineQualities(createLanguageFilter(deps.options.value.preferredAudioLanguage,"audio"),throwLanguagesUnsupported,t);return _context36.a(2,t)}},_callee36)}));return _transformTimeline.apply(this,arguments)}return combineData({timeline:deps.mediaTimeline,preferredAudioLanguage:deps.options.pick("preferredAudioLanguage")}).map(/*#__PURE__*/function(){var _ref30=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee35(_ref29){var timeline,_t8;return _regenerator().w(function(_context35){while(1)switch(_context35.n){case 0:timeline=_ref29.timeline;_t8=transformTimeline;_context35.n=1;return timeline;case 1:return _context35.a(2,_t8(_context35.v))}},_callee35)}));return function(_x38){return _ref30.apply(this,arguments)}}())}// src/track/dash/createDashFactories.ts
|
|
1524
1524
|
function createDashFactories(options){return function(deps){return function(loadOptions){return validateFactories(__spreadProps(__spreadValues({},externalDependencies(deps)),{contentTypesValue:createDashContentTypesValue,baseUrlSelector:function baseUrlSelector(){return pickFirstBaseUrlSelector},segmentRequestInit:function segmentRequestInit(){return loadOptions.segmentRequestInit},manifestProvider:createDashManifestProvider(loadOptions),manifestController:function manifestController(deps2){return new DashManifestControllerImpl(deps2)},mediaSourceFactory:function mediaSourceFactory(){return createMediaSource},mediaQualityMetadataResolver:function mediaQualityMetadataResolver(deps2){return createDefaultDashMediaQualityMetadataResolver(deps2)},mediaSourceController:function mediaSourceController(deps2){return new MediaSourceControllerImpl(deps2)},createContentStreamFactories:createDashContentStreamFactories(options==null?void 0:options.streaming),contentStreamFactory:createContentStreamFactory,qualitySelector:function qualitySelector(deps2){return new QualitySelectorImpl({options:deps2.options.pick("abr")})},manifestTransformed:createDefaultDashManifestTransformer,mediaTimeline:function mediaTimeline(deps2){return deps2.manifestTransformed.map(/*#__PURE__*/function(){var _ref31=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee37(manifestPromise){var data2;return _regenerator().w(function(_context37){while(1)switch(_context37.n){case 0:_context37.n=1;return manifestPromise;case 1:data2=_context37.v;return _context37.a(2,buildDashMediaTimeline(deps2,data2))}},_callee37)}));return function(_x39){return _ref31.apply(this,arguments)}}())},mediaTimelineTransformed:createDefaultMediaTimelineTransformer}))}}}// src/track/hls/HlsMediaQualityMetadataResolver.ts
|
|
1525
1525
|
function createDefaultHlsMediaQualityMetadataResolver(){return function(variant2,renditions){var _a3,_b,_c;var codecs=variant2.codecs||null;var contentType2=codecs?codecToContentType(codecs.split(",")[0]):null;var audioRendition=variant2.audioGroup?renditions.find(function(r){return r.type==="AUDIO"&&r.groupId===variant2.audioGroup}):void 0;return{qualityId:"".concat(variant2.bandwidth,"-").concat(codecs!=null?codecs:""),decoderId:variant2.uri,groupId:"0",switchingGroupIds:null,mimeType:contentType2?contentTypeToMimeType(contentType2,codecs):null,contentType:contentType2,codecs:codecs,bandwidth:null,bandwidthTotal:variant2.bandwidth,audioSamplingRate:null,width:(_a3=variant2.width)!=null?_a3:null,height:(_b=variant2.height)!=null?_b:null,frameRate:variant2.frameRate?[variant2.frameRate,1]:null,lang:(_c=audioRendition==null?void 0:audioRendition.language)!=null?_c:null,contentProtections:[],encryptionScheme:null,initDataType:null,supplementalProperties:{}}}}// src/track/hls/HlsManifestController.ts
|
|
@@ -1533,7 +1533,7 @@ var EQUALS=_char("=");var COMMA=_char(",");var QUOTE=_char("\"");function parseA
|
|
|
1533
1533
|
var HLS_VARIABLE_PATTERN=/\{\$([^}]+)}/g;var EXTM3U="#EXTM3U";var EXTINF="#EXTINF:";var EXT_X_TARGETDURATION="#EXT-X-TARGETDURATION:";var EXT_X_MEDIA_SEQUENCE="#EXT-X-MEDIA-SEQUENCE:";var EXT_X_ENDLIST="#EXT-X-ENDLIST";var EXT_X_PLAYLIST_TYPE="#EXT-X-PLAYLIST-TYPE:";var EXT_X_VERSION="#EXT-X-VERSION:";var EXT_X_KEY="#EXT-X-KEY:";var EXT_X_BYTERANGE="#EXT-X-BYTERANGE:";var EXT_X_DISCONTINUITY="#EXT-X-DISCONTINUITY";var EXT_X_PROGRAM_DATE_TIME="#EXT-X-PROGRAM-DATE-TIME:";var EXT_X_MAP="#EXT-X-MAP:";function parseMediaPlaylist(text,variables){var reader=new StringReader(text);reader.white();if(!reader.stringIf(EXTM3U)){reader.err("Expected #EXTM3U")}readLine(reader);var version=1;var targetDuration=0;var mediaSequence=0;var playlistType="LIVE";var ended=false;var currentKey;var currentMap;var pendingByteRange;var pendingDiscontinuity=false;var pendingDateTime;var segments=[];var sequenceCounter=0;while(reader.hasNext()){if(skipWhitespaceLine(reader))continue;var line=readLine(reader);var trimmed=line.trim();if(!trimmed)continue;if(trimmed.startsWith(EXTINF)){var durationStr=trimmed.substring(EXTINF.length).split(",")[0];var duration=Number(durationStr);var uri="";while(reader.hasNext()){if(skipWhitespaceLine(reader))continue;var nextLine=readLine(reader).trim();if(!nextLine.startsWith("#")){uri=variables?substitute(nextLine,variables,HLS_VARIABLE_PATTERN):nextLine;break}if(nextLine.startsWith(EXT_X_BYTERANGE)){var rangeStr=nextLine.substring(EXT_X_BYTERANGE.length);pendingByteRange=parseByteRangeString(rangeStr)}else if(nextLine===EXT_X_DISCONTINUITY){pendingDiscontinuity=true}else if(nextLine.startsWith(EXT_X_PROGRAM_DATE_TIME)){pendingDateTime=nextLine.substring(EXT_X_PROGRAM_DATE_TIME.length)}else if(nextLine.startsWith(EXT_X_MAP)){var attrStr=nextLine.substring(EXT_X_MAP.length);var attrReader=new StringReader(attrStr);var attrs=parseAttributes(attrReader);var mapUri=attrs["URI"];if(mapUri){var byteRangeStr=attrs["BYTERANGE"];currentMap=__spreadValues({uri:mapUri},byteRangeStr&&{byteRange:parseByteRangeString(byteRangeStr)})}}}segments.push(__spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({uri:uri,duration:duration,sequenceNumber:mediaSequence+sequenceCounter},currentKey&&{key:currentKey}),currentMap&&{map:currentMap}),pendingByteRange&&{byteRange:pendingByteRange}),{discontinuity:pendingDiscontinuity}),pendingDateTime&&{programDateTime:pendingDateTime}));sequenceCounter++;pendingByteRange=void 0;pendingDiscontinuity=false;pendingDateTime=void 0}else if(trimmed.startsWith(EXT_X_TARGETDURATION)){targetDuration=Number(trimmed.substring(EXT_X_TARGETDURATION.length))}else if(trimmed.startsWith(EXT_X_MEDIA_SEQUENCE)){mediaSequence=Number(trimmed.substring(EXT_X_MEDIA_SEQUENCE.length))}else if(trimmed===EXT_X_ENDLIST){ended=true}else if(trimmed.startsWith(EXT_X_PLAYLIST_TYPE)){var val=trimmed.substring(EXT_X_PLAYLIST_TYPE.length).trim();if(val==="VOD"||val==="EVENT"){playlistType=val}}else if(trimmed.startsWith(EXT_X_VERSION)){version=Number(trimmed.substring(EXT_X_VERSION.length))}else if(trimmed.startsWith(EXT_X_KEY)){var _attrStr=trimmed.substring(EXT_X_KEY.length);var _attrReader=new StringReader(_attrStr);var _attrs=parseAttributes(_attrReader);var method=_attrs["METHOD"];encryptionMethodValidator.assert(method);currentKey=addIfPresent({method:method},_attrs,{URI:"uri",IV:"iv",KEYFORMAT:"keyFormat",KEYFORMATVERSIONS:"keyFormatVersions"})}else if(trimmed.startsWith(EXT_X_MAP)){var _attrStr2=trimmed.substring(EXT_X_MAP.length);var _attrReader2=new StringReader(_attrStr2);var _attrs2=parseAttributes(_attrReader2);var _mapUri=_attrs2["URI"];if(_mapUri){var _byteRangeStr=_attrs2["BYTERANGE"];currentMap=__spreadValues({uri:_mapUri},_byteRangeStr&&{byteRange:parseByteRangeString(_byteRangeStr)})}}else if(trimmed.startsWith(EXT_X_BYTERANGE)){var _rangeStr=trimmed.substring(EXT_X_BYTERANGE.length);pendingByteRange=parseByteRangeString(_rangeStr)}else if(trimmed===EXT_X_DISCONTINUITY){pendingDiscontinuity=true}else if(trimmed.startsWith(EXT_X_PROGRAM_DATE_TIME)){pendingDateTime=trimmed.substring(EXT_X_PROGRAM_DATE_TIME.length)}}return{version:version,targetDuration:targetDuration,mediaSequence:mediaSequence,playlistType:playlistType,ended:ended,segments:segments}}function parseByteRangeString(str){var parts=str.split("@");return{length:Number(parts[0]),offset:parts.length>1?Number(parts[1]):0}}// ../vinyl-hls-parser/src/parse/parseMainPlaylist.ts
|
|
1534
1534
|
var EXTM3U2="#EXTM3U";var EXT_X_STREAM_INF="#EXT-X-STREAM-INF:";var EXT_X_MEDIA="#EXT-X-MEDIA:";var EXT_X_SESSION_DATA="#EXT-X-SESSION-DATA:";var EXT_X_DEFINE="#EXT-X-DEFINE:";function parseMainPlaylist(text){var reader=new StringReader(text);reader.white();if(!reader.stringIf(EXTM3U2)){reader.err("Expected #EXTM3U")}readLine(reader);var variants=[];var alternativeRenditions=[];var sessionData=[];var defines={};while(reader.hasNext()){if(skipWhitespaceLine(reader))continue;var line=readLine(reader);var trimmed=line.trim();if(!trimmed)continue;if(trimmed.startsWith(EXT_X_STREAM_INF)){var attrStr=trimmed.substring(EXT_X_STREAM_INF.length);var attrReader=new StringReader(attrStr);var attrs=parseAttributes(attrReader);var uri="";while(reader.hasNext()){if(skipWhitespaceLine(reader))continue;uri=readLine(reader).trim();break}variants.push(addIfPresent(__spreadValues(__spreadValues({bandwidth:Number(attrs["BANDWIDTH"]),uri:substituteHlsVariables(uri,defines)},attrs["FRAME-RATE"]&&{frameRate:Number(attrs["FRAME-RATE"])}),attrs.RESOLUTION&&parseResolution(attrs.RESOLUTION)),attrs,{CODECS:"codecs",AUDIO:"audioGroup",VIDEO:"videoGroup",SUBTITLES:"subtitlesGroup","CLOSED-CAPTIONS":"closedCaptionsGroup"}))}else if(trimmed.startsWith(EXT_X_MEDIA)){var _attrStr3=trimmed.substring(EXT_X_MEDIA.length);var _attrReader3=new StringReader(_attrStr3);var _attrs3=parseAttributes(_attrReader3);var type=_attrs3["TYPE"];renditionTypeValidator.assert(type);if(_attrs3["URI"]){_attrs3["URI"]=substituteHlsVariables(_attrs3["URI"],defines)}alternativeRenditions.push(addIfPresent(__spreadValues(__spreadValues({type:type,groupId:_attrs3["GROUP-ID"],name:_attrs3["NAME"]},_attrs3["DEFAULT"]&&{"default":_attrs3["DEFAULT"]==="YES"}),_attrs3["AUTOSELECT"]&&{autoSelect:_attrs3["AUTOSELECT"]==="YES"}),_attrs3,{URI:"uri",LANGUAGE:"language"}))}else if(trimmed.startsWith(EXT_X_SESSION_DATA)){var _attrStr4=trimmed.substring(EXT_X_SESSION_DATA.length);var _attrReader4=new StringReader(_attrStr4);var _attrs4=parseAttributes(_attrReader4);sessionData.push(addIfPresent({dataId:_attrs4["DATA-ID"]},_attrs4,{VALUE:"value",URI:"uri",LANGUAGE:"language"}))}else if(trimmed.startsWith(EXT_X_DEFINE)){var _attrStr5=trimmed.substring(EXT_X_DEFINE.length);var _attrReader5=new StringReader(_attrStr5);var _attrs5=parseAttributes(_attrReader5);if(_attrs5["NAME"]&&_attrs5["VALUE"]){defines[_attrs5["NAME"]]=_attrs5["VALUE"]}}}return{variants:variants,alternativeRenditions:alternativeRenditions,sessionData:sessionData,defines:defines}}function substituteHlsVariables(value,variables){if(!value||Object.keys(variables).length===0)return value;return substitute(value,variables,HLS_VARIABLE_PATTERN)}function parseResolution(resolution){var parts=resolution.split("x");if(parts.length!==2){throw new ValidationError("Invalid resolution format, expected WIDTHxHEIGHT")}var width=Number(parts[0]);var height=Number(parts[1]);if(!Number.isInteger(width)||!Number.isInteger(height)||width<=0||height<=0){throw new ValidationError("Invalid resolution values, width and height must be positive integers")}return{width:width,height:height}}// src/track/hls/createUrlHlsManifestProvider.ts
|
|
1535
1535
|
function createUrlHlsManifestProvider(url,requestInit){return/*#__PURE__*/function(){var _ref32=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee38(abort){var mainResponse,mainText,mainPlaylist,baseUrl,getMediaPlaylist;return _regenerator().w(function(_context38){while(1)switch(_context38.n){case 0:_context38.n=1;return requestWithRetry(url,requestInit,{abort:abort});case 1:mainResponse=_context38.v;_context38.n=2;return mainResponse.text();case 2:mainText=_context38.v;mainPlaylist=parseMainPlaylist(mainText);baseUrl=mainResponse.url||url;getMediaPlaylist=memoize(function(uri){return fetchMediaPlaylist({uri:uri,baseUrl:baseUrl,defines:mainPlaylist.defines,requestInit:requestInit,abort:abort})},function(uri){return uri});return _context38.a(2,{mainPlaylist:mainPlaylist,baseUrl:baseUrl,getMediaPlaylist:getMediaPlaylist})}},_callee38)}));return function(_x40){return _ref32.apply(this,arguments)}}()}function fetchMediaPlaylist(_x41){return _fetchMediaPlaylist.apply(this,arguments)}// src/track/hls/createHlsContentTypesValue.ts
|
|
1536
|
-
function _fetchMediaPlaylist(){_fetchMediaPlaylist=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1536
|
+
function _fetchMediaPlaylist(){_fetchMediaPlaylist=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee568(options){var uri,baseUrl,defines,requestInit,abort,variantUrl,response,text;return _regenerator().w(function(_context568){while(1)switch(_context568.n){case 0:uri=options.uri,baseUrl=options.baseUrl,defines=options.defines,requestInit=options.requestInit,abort=options.abort;variantUrl=resolveUrl(uri,baseUrl);_context568.n=1;return requestWithRetry(variantUrl,requestInit,{abort:abort});case 1:response=_context568.v;_context568.n=2;return response.text();case 2:text=_context568.v;return _context568.a(2,parseMediaPlaylist(text,defines))}},_callee568)}));return _fetchMediaPlaylist.apply(this,arguments)}function createHlsContentTypesValue(deps){return deps.manifestTransformed.map(/*#__PURE__*/function(){var _ref33=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee39(manifestData2){var _t9;return _regenerator().w(function(_context39){while(1)switch(_context39.n){case 0:_t9=getContentTypes2;_context39.n=1;return manifestData2;case 1:return _context39.a(2,_t9(_context39.v.mainPlaylist))}},_callee39)}));return function(_x42){return _ref33.apply(this,arguments)}}())}function getContentTypes2(mainPlaylist){var contentTypes=/* @__PURE__ */new Set;var _iterator63=_createForOfIteratorHelper(mainPlaylist.variants),_step63;try{for(_iterator63.s();!(_step63=_iterator63.n()).done;){var variant2=_step63.value;if(variant2.codecs){var _iterator65=_createForOfIteratorHelper(codecsToContentTypes(variant2.codecs)),_step65;try{for(_iterator65.s();!(_step65=_iterator65.n()).done;){var type=_step65.value;if(type==="audio"||type==="video"){contentTypes.add(type)}}}catch(err){_iterator65.e(err)}finally{_iterator65.f()}}}}catch(err){_iterator63.e(err)}finally{_iterator63.f()}var _iterator64=_createForOfIteratorHelper(mainPlaylist.alternativeRenditions),_step64;try{for(_iterator64.s();!(_step64=_iterator64.n()).done;){var rendition=_step64.value;if(rendition.type==="AUDIO")contentTypes.add("audio");if(rendition.type==="VIDEO")contentTypes.add("video")}}catch(err){_iterator64.e(err)}finally{_iterator64.f()}return contentTypes}// src/track/hls/createHlsContentStreamFactories.ts
|
|
1537
1537
|
function createHlsContentStreamFactories(options){return function(deps){return memoize(function(contentType2){return validateFactories(__spreadProps(__spreadValues({},externalDependencies(deps)),{sourceBufferControllerFactory:function sourceBufferControllerFactory(deps2){return function(){return new SourceBufferControllerImpl(deps2,contentType2)}},bufferingController:function bufferingController(deps2){return new BufferingControllerImpl(deps2,contentType2,options==null?void 0:options.buffering)},segmentController:function segmentController(deps2){return new SegmentControllerImpl(deps2,contentType2,options==null?void 0:options.segmentController)}}))},function(contentType2){return contentType2})}}// src/track/hls/createDefaultHlsManifestTransformer.ts
|
|
1538
1538
|
function createDefaultHlsManifestTransformer(deps){return deps.manifestController.map(/*#__PURE__*/function(){var _ref34=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee40(v){var data2,sorted;return _regenerator().w(function(_context40){while(1)switch(_context40.n){case 0:_context40.n=1;return v;case 1:data2=_context40.v;sorted=_toConsumableArray(data2.mainPlaylist.variants).sort(function(a,b){return b.bandwidth-a.bandwidth});return _context40.a(2,__spreadProps(__spreadValues({},data2),{mainPlaylist:__spreadProps(__spreadValues({},data2.mainPlaylist),{variants:sorted})}))}},_callee40)}));return function(_x43){return _ref34.apply(this,arguments)}}())}// src/track/hls/util/hlsByteRangeToMediaRange.ts
|
|
1539
1539
|
function hlsByteRangeToMediaRange(byteRange){return[byteRange.offset,byteRange.offset+byteRange.length-1]}// src/track/hls/util/hlsSegmentTime.ts
|
|
@@ -1596,7 +1596,7 @@ var LICENSE_TIMEOUT=90;var LICENSE_TIMEOUT_MESSAGE="License provider timed out a
|
|
|
1596
1596
|
* Creates a CommonMediaKeySystemAccess object from the given content protection settings.
|
|
1597
1597
|
*/)},{key:"createAccess",value:(function(){var _createAccess=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee57(drmInfo){var accessParamsList,_iterator83,_step83,_step83$value,keySystem,config,access,_t10,_t11;return _regenerator().w(function(_context57){while(1)switch(_context57.p=_context57.n){case 0:accessParamsList=this.createMediaKeySystemAccessParams(drmInfo);_iterator83=_createForOfIteratorHelper(accessParamsList);_context57.p=1;_iterator83.s();case 2:if((_step83=_iterator83.n()).done){_context57.n=7;break}_step83$value=_step83.value,keySystem=_step83$value.keySystem,config=_step83$value.config;_context57.p=3;_context57.n=4;return this.deps.commonEme.requestMediaKeySystemAccess(keySystem,[config]);case 4:access=_context57.v;logDebug(this,"created media key system access for keySystem: ".concat(access.keySystem,"}"),config);return _context57.a(2,access);case 5:_context57.p=5;_t10=_context57.v;case 6:_context57.n=2;break;case 7:_context57.n=9;break;case 8:_context57.p=8;_t11=_context57.v;_iterator83.e(_t11);case 9:_context57.p=9;_iterator83.f();return _context57.f(9);case 10:throw new DrmError("No keySystem supported",{contentProtections:drmInfo,attemptedKeySystems:accessParamsList.map(function(arr){return arr.keySystem})},ErrorOrigin.DRM);case 11:return _context57.a(2)}},_callee57,this,[[3,5],[1,8,9,10]])}));function createAccess(_x63){return _createAccess.apply(this,arguments)}return createAccess}()/**
|
|
1598
1598
|
* Creates a list of the MediaKeySystemAccess configurations to try for the given media format options.
|
|
1599
|
-
*/)},{key:"createMediaKeySystemAccessParams",value:function createMediaKeySystemAccessParams(drmInfo){var _this115=this;var keySystems=drmInfo.contentProtections.map(function(protection){return protection.keySystem}).sort(this.keySystemComparator);return keySystems.map(function(keySystem){var _a3,_b;var mediaOptions=_this115.getMediaKeySystemOptions(keySystem,drmInfo.contentType);var capability={robustness:(_a3=mediaOptions==null?void 0:mediaOptions.robustness)!=null?_a3:"SW_SECURE_CRYPTO"/* SW_SECURE_CRYPTO */,encryptionScheme:drmInfo.encryptionScheme};if(drmInfo.mimeType){capability.contentType=drmInfo.mimeType}var config={initDataTypes:[(_b=drmInfo.initDataType)!=null?_b:"cenc"]};var contentType2=drmInfo.contentType;if(contentType2==="video"){config.videoCapabilities=[capability]}else if(contentType2==="audio"){config.audioCapabilities=[capability]}return{keySystem:keySystem,config:config,// Concatenate a list of inputs to use as a cache key for isSupported checks.
|
|
1599
|
+
*/)},{key:"createMediaKeySystemAccessParams",value:function createMediaKeySystemAccessParams(drmInfo){var _this115=this;var keySystems=drmInfo.contentProtections.map(function(protection){return protection.keySystem}).sort(this.keySystemComparator);return keySystems.map(function(keySystem){var _a3,_b,_c;var mediaOptions=_this115.getMediaKeySystemOptions(keySystem,drmInfo.contentType);var capability={robustness:(_a3=mediaOptions==null?void 0:mediaOptions.robustness)!=null?_a3:"SW_SECURE_CRYPTO"/* SW_SECURE_CRYPTO */,encryptionScheme:drmInfo.encryptionScheme};if(drmInfo.mimeType){capability.contentType=drmInfo.mimeType}var config={initDataTypes:[(_b=drmInfo.initDataType)!=null?_b:"cenc"]};var contentType2=drmInfo.contentType;if(contentType2==="video"){config.videoCapabilities=[capability]}else if(contentType2==="audio"){config.audioCapabilities=[capability];if(((_c=getUserAgentInfo().os)==null?void 0:_c.name)==="chromeOS"/* CHROME_OS */){logDebug(_this115,"Adding video avc1 drm capabilities for VMP");config.videoCapabilities=[{contentType:"video/mp4; codecs=\"avc1.4d401f\"",robustness:"SW_SECURE_DECODE"}]}}return{keySystem:keySystem,config:config,// Concatenate a list of inputs to use as a cache key for isSupported checks.
|
|
1600
1600
|
cacheKey:[keySystem,drmInfo.mimeType,drmInfo.contentType,capability.robustness,drmInfo.encryptionScheme,drmInfo.initDataType].map(String).join("|")}})}},{key:"getMediaKeySystemOptions",value:function getMediaKeySystemOptions(keySystem,contentType2){var _a3;var keySystems=this.options.keySystems;var keySystemOptions=(_a3=keySystems[keySystem])!=null?_a3:keySystems["*"];if(!keySystemOptions)return void 0;switch(contentType2){case"video":return keySystemOptions.video;case"audio":return keySystemOptions.audio;default:return void 0}}/**
|
|
1601
1601
|
* Creates a new key session and adds a message handler.
|
|
1602
1602
|
*/},{key:"createNewSession",value:(function(){var _createNewSession=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee58(serverCertificate,mediaKeys,initData,initDataType,drmInfo,initDataTransformer){var _this116=this;var certBytes,transform,session;return _regenerator().w(function(_context58){while(1)switch(_context58.n){case 0:certBytes=serverCertificate?typeof serverCertificate==="string"?base64ToByteArray(serverCertificate):bufferToByteArray(serverCertificate):null;if(!certBytes){_context58.n=1;break}_context58.n=1;return mediaKeys.setServerCertificate(certBytes);case 1:transform=initDataTransformer!=null?initDataTransformer:defaultInitDataTransformer(mediaKeys.keySystem,certBytes);initData=transform(bufferToByteArray(initData),initDataType,drmInfo);logDebug(this,"createSession",drmInfo.mimeType,initDataType);session=mediaKeys.createSession(drmInfo.mimeType,initDataType,initData);session.on("message",function(event){withTimeout(_this116.messageHandler({mediaKeys:mediaKeys,session:session,event:event}),LICENSE_TIMEOUT,LICENSE_TIMEOUT_MESSAGE)["catch"](_this116.handleError)});session.on("error",function(event){_this116.closeSession(session);_this116.handleError(event.error)});return _context58.a(2,session)}},_callee58,this)}));function createNewSession(_x64,_x65,_x66,_x67,_x68,_x69){return _createNewSession.apply(this,arguments)}return createNewSession}()/**
|
|
@@ -1631,7 +1631,7 @@ function createVinylFactories(options){var _a3;var patches=mergeDeep([defaultPat
|
|
|
1631
1631
|
var locale20={maxPlayersWarning:"{count} Vinyl Players have been constructed without disposal. Check that player.dispose is properly being called, then increase the maxPlayersWarning option if this was intentional."};var DEFAULT_MAX_PLAYERS=5;var PlayerRegistryImpl=/*#__PURE__*/function(){function PlayerRegistryImpl(){var maxPlayersWarning=arguments.length>0&&arguments[0]!==undefined?arguments[0]:DEFAULT_MAX_PLAYERS;_classCallCheck(this,PlayerRegistryImpl);__publicField(this,"maxPlayersWarning",maxPlayersWarning);__publicField(this,"_players",[]);__publicField(this,"gaveMaxPlayersWarning",false)}return _createClass(PlayerRegistryImpl,[{key:"players",get:function get(){return this._players}},{key:"addPlayer",value:function addPlayer(player){this._players.push(player);var n=this._players.length;if(n>this.maxPlayersWarning&&!this.gaveMaxPlayersWarning){this.gaveMaxPlayersWarning=true;logWarn(globalTarget,substitute(locale20.maxPlayersWarning,{count:n}))}}},{key:"removePlayer",value:function removePlayer(player){remove(this._players,player)}/**
|
|
1632
1632
|
* @throws An IllegalStateError if all players have not been removed.
|
|
1633
1633
|
*/},{key:"dispose",value:function dispose(){if(this._players.length)throw new IllegalStateError("All players must be removed before disposing VinylGlobal")}}])}();var playerRegistryRef=globalRef(function(){return new PlayerRegistryImpl});// src/global/environment.ts
|
|
1634
|
-
var vinylVersion=parseVersion(/* istanbul ignore next */"1.2.
|
|
1634
|
+
var vinylVersion=parseVersion(/* istanbul ignore next */"1.2.1");// src/global/globalRef.ts
|
|
1635
1635
|
var VinylGlobal=/*#__PURE__*/function(){function VinylGlobal(){_classCallCheck(this,VinylGlobal)}return _createClass(VinylGlobal,[{key:"players",get:function get(){return playerRegistryRef.value.players}/**
|
|
1636
1636
|
* Returns the first player.
|
|
1637
1637
|
*/},{key:"player",get:function get(){return playerRegistryRef.value.players[0]}},{key:"logs",get:function get(){var _a3;return(_a3=historyLogHandler.value)==null?void 0:_a3.history}},{key:"version",get:function get(){return vinylVersion.str}},{key:"userAgentInfo",get:function get(){return getUserAgentInfo()}},{key:"network",get:function get(){return getNetworkMetrics()}/**
|
|
@@ -1721,18 +1721,18 @@ var VinylPlayer=/*#__PURE__*/function(_EventHostImpl18){/**
|
|
|
1721
1721
|
*/},{key:"dispose",value:function dispose(){logDebug(this,"dispose");_superPropGet(VinylPlayer,"dispose",this,3)([]);this.disposer.dispose();playerRegistryRef.value.removePlayer(this)}}])}(EventHostImpl);function createVinylPlayer(options,factoryOverrides){var player=new VinylPlayer(__spreadValues(__spreadValues({},createVinylFactories(options)),factoryOverrides));logInfo(player,"VinylPlayer initialized");return player}function notResetEvent(type){return type!=="reset"}var qualityEventsAndGetters=[["streamingQualityChange","getStreamingQuality"],["bufferingQualityChange","getBufferingQuality"],["playbackQualityChange","getPlaybackQuality"]];var emptyContentTypes=/* @__PURE__ */new Set;// src/track/dash/createSegmentControllerFactory.ts
|
|
1722
1722
|
function createSegmentControllerFactory(playerDeps,contentType2,options){return function(trackDeps){return new SegmentControllerImpl(__spreadValues(__spreadValues({},playerDeps),trackDeps),contentType2,options)}}// src/global/configureVinylGlobal.ts
|
|
1723
1723
|
var logLevelValidator=function(){return isOneOf(0/* VERBOSE */,1/* DEBUG */,2/* INFO */,3/* WARN */,4/* ERROR */,5/* NONE */)}();var vinylGlobalOptionsValidator=object({logging:object({console:object({logLevel:logLevelValidator}),history:object({logLevel:logLevelValidator,maxHistorySize:number()}),logLevel:logLevelValidator}),maxPlayersWarning:number()});var vinylGlobalOptionsPartialValidator=vinylGlobalOptionsValidator.partialDeep();function configureVinylGlobal(options){var _a3;vinylGlobalOptionsPartialValidator.assert(options);if(options.logging){var logging=options.logging;if(logging.logLevel!=null)setLogLevel(logging.logLevel);if(logging.history){var history=logging.history;if(historyLogHandler.value){if(history.maxHistorySize!=null)historyLogHandler.value.maxHistorySize=history.maxHistorySize;if(history.logLevel!=null)historyLogHandler.value.logLevel=history.logLevel}}if(((_a3=logging.console)==null?void 0:_a3.logLevel)!=null){if(consoleLogHandler.value){consoleLogHandler.value.logLevel=logging.console.logLevel}}}if(options.maxPlayersWarning!=null&&playerRegistryRef.value instanceof PlayerRegistryImpl){playerRegistryRef.value.maxPlayersWarning=options.maxPlayersWarning}}// test/vinylTestUtil/util/playback/eventPromises.ts
|
|
1724
|
-
function onPlaying(_x71){return _onPlaying.apply(this,arguments)}function _onPlaying(){_onPlaying=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1724
|
+
function onPlaying(_x71){return _onPlaying.apply(this,arguments)}function _onPlaying(){_onPlaying=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee569(playbackController){var timeout2,_args569=arguments;return _regenerator().w(function(_context569){while(1)switch(_context569.n){case 0:timeout2=_args569.length>1&&_args569[1]!==undefined?_args569[1]:10;if(!playbackController.playing){_context569.n=1;break}return _context569.a(2,Promise.resolve());case 1:return _context569.a(2,nextEventAsPromise(playbackController,"playing",{timeout:timeout2,timeoutMessage:"playing timed out after {time}s"}).then(function(){return void 0}))}},_callee569)}));return _onPlaying.apply(this,arguments)}function onEnded(_x72){return _onEnded.apply(this,arguments)}function _onEnded(){_onEnded=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee570(playbackController){var timeout2,metadataTimeout,_args570=arguments;return _regenerator().w(function(_context570){while(1)switch(_context570.n){case 0:timeout2=_args570.length>1&&_args570[1]!==undefined?_args570[1]:10;metadataTimeout=_args570.length>2&&_args570[2]!==undefined?_args570[2]:10;if(!playbackController.ended){_context570.n=1;break}return _context570.a(2,Promise.resolve());case 1:_context570.n=2;return nextHasMetadata(playbackController,{timeout:metadataTimeout});case 2:return _context570.a(2,nextEventAsPromise(playbackController,"ended",{// Set the timeout to be the remaining track duration plus a large margin of error for stalls and seek
|
|
1725
1725
|
// inaccuracy.
|
|
1726
|
-
timeout:playbackController.duration-playbackController.currentTime+timeout2,timeoutMessage:"ended timed out after {time}s"}).then(function(){return void 0}))}},
|
|
1726
|
+
timeout:playbackController.duration-playbackController.currentTime+timeout2,timeoutMessage:"ended timed out after {time}s"}).then(function(){return void 0}))}},_callee570)}));return _onEnded.apply(this,arguments)}function onTimeUpdate(playbackController){var timeout2=arguments.length>1&&arguments[1]!==undefined?arguments[1]:5;return nextEventAsPromise(playbackController,"timeUpdate",{timeout:timeout2,timeoutMessage:"timeUpdate timed out after {time}s"})}function onDuration(playbackController){var timeout2=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;if(playbackController.duration>0)return Promise.resolve();return nextEventAsPromise(playbackController,"durationChange",{timeout:timeout2,timeoutMessage:"durationChange timed out after {time}s"}).then(function(){return void 0})}// test/vinylTestUtil/player/mediaRef.ts
|
|
1727
1727
|
var mediaRef=lazy(function(){var media=document.createElement("video");media.muted=true;media.playsInline=true;media.disableRemotePlayback=true;return media});afterEach(function(){if(mediaRef.constructed){var media=mediaRef.value;media.removeAttribute("src");media.load()}});// test/vinylTestUtil/ui/requireUserInteraction.ts
|
|
1728
1728
|
function requireUserInteraction(){return _requireUserInteraction.apply(this,arguments)}// test/vinylTestUtil/assets/vinylTestAssets.ts
|
|
1729
|
-
function _requireUserInteraction(){_requireUserInteraction=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1729
|
+
function _requireUserInteraction(){_requireUserInteraction=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee571(){var audioPrompt,body;return _regenerator().w(function(_context571){while(1)switch(_context571.n){case 0:audioPrompt=document.getElementById("unlockAudioPrompt");audioPrompt.style.removeProperty("display");body=document.body;body.focus();_context571.n=1;return new Promise(function(resolve){var _done=function done(){body.removeEventListener("click",_done);body.removeEventListener("keypress",_done);body.removeEventListener("touchend",_done);return resolve(void 0)};body.addEventListener("click",_done);body.addEventListener("keypress",_done);body.addEventListener("touchend",_done)});case 1:audioPrompt.style.display="none";case 2:return _context571.a(2)}},_callee571)}));return _requireUserInteraction.apply(this,arguments)}var VINYL_ASSETS_HOST="https://assets.dev.vinyl.music.amazon.dev";var vinylTestAssets={prog:{libmp3lame_60s_2ch_16bit_44100Hz_48kbps:"".concat(VINYL_ASSETS_HOST,"/prog/libmp3lame_60s_2ch_16bit_44100Hz_48kbps.mp3"),libmp3lame_1800s_2ch_16bit_44100Hz_48kbps:"".concat(VINYL_ASSETS_HOST,"/prog/libmp3lame_1800s_2ch_16bit_44100Hz_48kbps.mp3")},dash:{live_static_aac_opus_flac_60s_segmentTemplate:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_aac_opus_flac_60s_segmentTemplate/manifest.mpd"),live_static_aac_opus_flac_60s_segmentBase:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_aac_opus_flac_60s_segmentBase/manifest.mpd"),live_static_video_audio_60s_2s_segmentTemplate:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_video_audio_60s_2s_segmentTemplate/manifest.mpd"),live_static_video_audio_60s_4s_segmentTemplate:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_video_audio_60s_4s_segmentTemplate/manifest.mpd"),live_static_video_audio_60s_2s_segmentTemplate_widevine_cl10:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_video_audio_60s_2s_segmentTemplate_widevine_cl10/manifest.mpd"),live_static_video_audio_60s_4s_segmentTemplate_widevine_cl10:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_video_audio_60s_4s_segmentTemplate_widevine_cl10/manifest.mpd"),live_static_video_60s_2s_segmentTemplate:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_video_60s_2s_segmentTemplate/manifest.mpd"),live_static_video_60s_4s_segmentTemplate:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_video_60s_4s_segmentTemplate/manifest.mpd"),live_static_aac_opus_flac_60s_segmentBase_widevine_cl10:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_aac_opus_flac_60s_segmentBase_widevine_cl10/manifest.mpd"),live_static_aac_opus_flac_60s_segmentBase_widevine:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_aac_opus_flac_60s_segmentBase_widevine/manifest.mpd"),live_static_aac_1800s_segmentBase_widevine_cl30:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_aac_1800s_segmentBase_widevine_cl30/manifest.mpd")},hls:{live_static_video_audio_60s_2s:"".concat(VINYL_ASSETS_HOST,"/hls/live_static_video_audio_60s_2s/main.m3u8"),live_static_video_audio_60s_4s:"".concat(VINYL_ASSETS_HOST,"/hls/live_static_video_audio_60s_4s/main.m3u8"),live_static_aac_opus_flac_60s:"".concat(VINYL_ASSETS_HOST,"/hls/live_static_aac_opus_flac_60s/main.m3u8"),live_static_aac_60s_mpegts:"".concat(VINYL_ASSETS_HOST,"/hls/live_static_aac_60s_mpegts/main.m3u8"),live_static_video_60s_2s:"".concat(VINYL_ASSETS_HOST,"/hls/live_static_video_60s_2s/main.m3u8"),live_static_video_60s_4s:"".concat(VINYL_ASSETS_HOST,"/hls/live_static_video_60s_4s/main.m3u8"),live_static_video_60s_2s_mpegts:"".concat(VINYL_ASSETS_HOST,"/hls/live_static_video_60s_2s_mpegts/main.m3u8"),live_static_video_60s_4s_mpegts:"".concat(VINYL_ASSETS_HOST,"/hls/live_static_video_60s_4s_mpegts/main.m3u8"),live_static_video_audio_60s_2s_mpegts:"".concat(VINYL_ASSETS_HOST,"/hls/live_static_video_audio_60s_2s_mpegts/main.m3u8"),live_static_video_audio_60s_4s_mpegts:"".concat(VINYL_ASSETS_HOST,"/hls/live_static_video_audio_60s_4s_mpegts/main.m3u8")},// Segmented streaming is added by hand, ControlledMediaSource provides a way to test
|
|
1730
1730
|
// Media source extensions without reading a dash manifest.
|
|
1731
1731
|
segmentedStreaming:{aac_60s_2ch_16bit_44100Hz_48kbps:{init:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_aac_opus_flac_60s_segmentTemplate/segments/aac_60s_2ch_16bit_44100Hz_48kbps/sample.mp4"),part:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_aac_opus_flac_60s_segmentTemplate/segments/aac_60s_2ch_16bit_44100Hz_48kbps/part_{index}.m4s"),numSegments:6,duration:60},// For testing Widevine, use a ControlledMediaSource with this asset.
|
|
1732
1732
|
// EME requires using a media source, but DRM testing does not need to test buffering.
|
|
1733
1733
|
aac_60s_2ch_16bit_44100Hz_48kbps_widevine_cl10:{init:"".concat(VINYL_ASSETS_HOST,"/dash/live_static_aac_opus_flac_segmentBase_widevine_60s_cl10/representations/aac_60s_2ch_16bit_44100Hz_48kbps.mp4"),part:"",numSegments:0,duration:60}}};// test/vinylTestUtil/media/unlockMediaElement.ts
|
|
1734
1734
|
function unlockMediaElement(){return _unlockMediaElement.apply(this,arguments)}// test/vinylTestUtil/media/FrequencyAnalyzer.ts
|
|
1735
|
-
function _unlockMediaElement(){_unlockMediaElement=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1735
|
+
function _unlockMediaElement(){_unlockMediaElement=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee572(){var media;return _regenerator().w(function(_context572){while(1)switch(_context572.n){case 0:media=mediaRef.value;media.src=vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps;_context572.n=1;return media.play()["catch"](noop);case 1:media.pause();media.removeAttribute("src");media.load();case 2:return _context572.a(2)}},_callee572)}));return _unlockMediaElement.apply(this,arguments)}var TIME_ESTIMATE_TOLERANCE=0.02;var defaultFrequencyAnalyzerOptions={startFrequency:100,endFrequency:6e3,fftSize:4096};var FrequencyAnalyzer=/*#__PURE__*/function(){function FrequencyAnalyzer(audioContext,source,options){_classCallCheck(this,FrequencyAnalyzer);__publicField(this,"audioContext",audioContext);__publicField(this,"source",source);__publicField(this,"data");__publicField(this,"analyser");__publicField(this,"options");__publicField(this,"logPrefix",createLogPrefix("FrequencyAnalyzer"));this.options=__spreadValues(__spreadValues({},defaultFrequencyAnalyzerOptions),options);this.analyser=this.audioContext.createAnalyser();this.analyser.fftSize=this.options.fftSize;this.analyser.connect(this.audioContext.destination);this.data=new Float32Array(this.analyser.frequencyBinCount);this.source.connect(this.analyser)}/**
|
|
1736
1736
|
* Estimates the frequency of the current frame window.
|
|
1737
1737
|
*
|
|
1738
1738
|
* The frequency estimate is the frequency of the highest decibel bin within the frame window. The number of
|
|
@@ -1741,9 +1741,9 @@ function _unlockMediaElement(){_unlockMediaElement=_asyncToGenerator(/*#__PURE__
|
|
|
1741
1741
|
* Asserts that the next samples of audio plays at its expected frequency.
|
|
1742
1742
|
*/},{key:"assertFrequency",value:(function(){var _assertFrequency=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee60(){var timeout2,media,startTime,mediaStartTime,playbackTime2,maxDifference,estimatedTime,diff,elapsed,percentFormatter,_args60=arguments;return _regenerator().w(function(_context60){while(1)switch(_context60.n){case 0:timeout2=_args60.length>0&&_args60[0]!==undefined?_args60[0]:10;this.analyser.disconnect();this.analyser.connect(this.audioContext.destination);media=this.source.mediaElement;if(isNaN(media.duration))fail("media is not loaded");if(media.paused)fail("media is paused");startTime=Date.now();mediaStartTime=media.currentTime;playbackTime2=0.25;maxDifference=media.duration*TIME_ESTIMATE_TOLERANCE;if(!(media.currentTime+playbackTime2>=media.duration)){_context60.n=1;break}logDebug(this,"Ignoring assertFrequency, currentTime is at duration");return _context60.a(2);case 1:if(!(Date.now()-startTime>timeout2*1e3)){_context60.n=2;break}throw new TimeoutError("Frequency data could not be filled, media is not playing.");case 2:elapsed=media.currentTime-mediaStartTime;estimatedTime=this.estimatedTime;diff=Math.abs(estimatedTime-media.currentTime);_context60.n=3;return _sleep(playbackTime2);case 3:if(elapsed<playbackTime2&&diff>maxDifference){_context60.n=1;break}case 4:logDebug(this,"time from frequency:",estimatedTime.toFixed(2),"actual time:",media.currentTime.toFixed(2));if(diff>maxDifference){percentFormatter=new Intl.NumberFormat("en-US",{style:"percent"});fail("The measured frequency at time ".concat(media.currentTime.toFixed(2)," was measured to be ").concat(this.frequency.toFixed(2),"Hz. The expected time is ").concat(estimatedTime.toFixed(2),", the actual time is ").concat(media.currentTime.toFixed(2),", for a difference of ").concat(percentFormatter.format(diff/media.duration)," track duration. (Tolerance is ").concat(percentFormatter.format(TIME_ESTIMATE_TOLERANCE),")"))}case 5:return _context60.a(2)}},_callee60,this)}));function assertFrequency(){return _assertFrequency.apply(this,arguments)}return assertFrequency}())}])}();var _a2;var shouldCheckAudio=parseBoolean(((_a2=getSearchParams().get("checkAudio"))!=null?_a2:"0").toLowerCase());var frequencyAnalyzer=null;function assertFrequency(){var _a3;return(_a3=frequencyAnalyzer==null?void 0:frequencyAnalyzer.assertFrequency())!=null?_a3:Promise.resolve()}function initializeFrequencyAnalyzer(){if(shouldCheckAudio){setNextTestTimeout(300);beforeAll(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee61(){var media,audioContext,source;return _regenerator().w(function(_context61){while(1)switch(_context61.n){case 0:media=mediaRef.value;media.crossOrigin="anonymous";media.muted=false;media.volume=0.01;_context61.n=1;return requireUserInteraction();case 1:audioContext=getAudioContext();_context61.n=2;return unlockMediaElement();case 2:if(audioContext){source=audioContext.createMediaElementSource(mediaRef.value);frequencyAnalyzer=new FrequencyAnalyzer(audioContext,source)}else{console.warn("AudioContext not supported")}case 3:return _context61.a(2)}},_callee61)})))}}// test/vinylTestUtil/util/playback/expectTrackPlaysUntil.ts
|
|
1743
1743
|
var sleepInterval=1;var affordanceBefore=1;var affordanceAfter=3;function expectTrackPlaysUntil(_x73,_x74){return _expectTrackPlaysUntil.apply(this,arguments)}// test/vinylTestUtil/util/playback/expectTrackPlays.ts
|
|
1744
|
-
function _expectTrackPlaysUntil(){_expectTrackPlaysUntil=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1745
|
-
function _expectPlaylistPlays(){_expectPlaylistPlays=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1746
|
-
function _expectTrackCanSeekTo(){_expectTrackCanSeekTo=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1744
|
+
function _expectTrackPlaysUntil(){_expectTrackPlaysUntil=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee573(player,endTime){var timeout2,elapsed,maxTime,_args573=arguments;return _regenerator().w(function(_context573){while(1)switch(_context573.n){case 0:timeout2=_args573.length>2&&_args573[2]!==undefined?_args573[2]:10;_context573.n=1;return onPlaying(player);case 1:_context573.n=2;return onTimeUpdate(player);case 2:expect(player.currentTime).withContext("currentTime must be less than endTime").toBeLessThan(endTime);_context573.n=3;return assertFrequency();case 3:elapsed=0;maxTime=endTime-player.currentTime+timeout2;case 4:if(!(!player.ended&&player.currentTime<endTime&&elapsed<maxTime)){_context573.n=6;break}_context573.n=5;return _sleep(sleepInterval);case 5:elapsed+=sleepInterval;_context573.n=4;break;case 6:expect(player.currentTime).withContext("currentTime").toBeGreaterThanOrEqual(endTime-affordanceBefore);expect(player.currentTime).withContext("currentTime").toBeLessThan(endTime+affordanceAfter);case 7:return _context573.a(2)}},_callee573)}));return _expectTrackPlaysUntil.apply(this,arguments)}var PLAYBACK_DURATION=6;function expectTrackPlays(_x75){return _expectTrackPlays.apply(this,arguments)}function _expectTrackPlays(){_expectTrackPlays=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee574(player){var _createDisposer9,dispose,add,ended,timeUpdate,duration,_time2;return _regenerator().w(function(_context574){while(1)switch(_context574.n){case 0:_createDisposer9=createDisposer(),dispose=_createDisposer9.dispose,add=_createDisposer9.add;ended=add(createEventSpy(player,"ended"));timeUpdate=add(createEventSpy(player,"timeUpdate"));expect(player.currentTime).withContext("currentTime starts near the beginning").toBeLessThan(1);_context574.n=1;return onDuration(player);case 1:duration=player.duration;expect(duration).withContext("duration should be non-zero").toBeGreaterThan(0);if(!(player.duration>PLAYBACK_DURATION)){_context574.n=3;break}_context574.n=2;return expectTrackPlaysUntil(player,player.currentTime+PLAYBACK_DURATION/2);case 2:_time2=player.duration-PLAYBACK_DURATION/2;_context574.n=3;return player.seekTo(_time2);case 3:_context574.n=4;return ended.next(PLAYBACK_DURATION+10);case 4:expect(player.currentTime).toBeCloseToWithin(duration,3);expect(player.ended).withContext("ended").toBeTrue();expect(timeUpdate.calls.count()).toBeGreaterThanOrEqual(Math.floor(PLAYBACK_DURATION));dispose();case 5:return _context574.a(2)}},_callee574)}));return _expectTrackPlays.apply(this,arguments)}function expectPlaylistPlays(_x76,_x77){return _expectPlaylistPlays.apply(this,arguments)}// test/vinylTestUtil/util/playback/expectTrackCanSeek.ts
|
|
1745
|
+
function _expectPlaylistPlays(){_expectPlaylistPlays=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee575(player,playlist){var _a3,_createDisposer0,dispose,add,trackTimeout,queueEnded,queueChange,trackChange,assertQueueChangeCount,i,isLastTrack,nextTrack;return _regenerator().w(function(_context575){while(1)switch(_context575.n){case 0:assertQueueChangeCount=function _assertQueueChangeCou(count){expect(queueChange).toHaveBeenCalledTimes(count);queueChange.calls.reset()};_createDisposer0=createDisposer(),dispose=_createDisposer0.dispose,add=_createDisposer0.add;trackTimeout=PLAYBACK_DURATION+60;queueEnded=add(createEventSpy(player,"queueEnded"));queueChange=add(createEventSpy(player,"queueChange"));trackChange=add(createEventSpy(player,"currentTrackChange"));player.load.apply(player,_toConsumableArray(playlist));assertQueueChangeCount(1);_context575.n=1;return player.play();case 1:i=0;case 2:if(!(i<playlist.length)){_context575.n=6;break}isLastTrack=i===playlist.length-1;expect((_a3=player.currentTrack)==null?void 0:_a3.uri).withContext("currentTrack uri").toBe(playlist[i].uri);nextTrack=isLastTrack?queueEnded.next(trackTimeout):trackChange.next(trackTimeout);_context575.n=3;return expectTrackPlays(player);case 3:_context575.n=4;return nextTrack;case 4:assertQueueChangeCount(isLastTrack?0:1);case 5:i++;_context575.n=2;break;case 6:dispose();case 7:return _context575.a(2)}},_callee575)}));return _expectPlaylistPlays.apply(this,arguments)}function expectTrackCanSeekTo(_x78,_x79){return _expectTrackCanSeekTo.apply(this,arguments)}// test/vinylTestUtil/player/createVinylSuite.ts
|
|
1746
|
+
function _expectTrackCanSeekTo(){_expectTrackCanSeekTo=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee576(player,time){var tolerance,_createDisposer1,dispose,add,playedSpy,seekingSpy,seekedSpy,wasPaused,expectNoop,expectedTime;return _regenerator().w(function(_context576){while(1)switch(_context576.n){case 0:tolerance=0.5;_createDisposer1=createDisposer(),dispose=_createDisposer1.dispose,add=_createDisposer1.add;playedSpy=add(createEventSpy(player,"played"));seekingSpy=add(createEventSpy(player,"seeking"));seekedSpy=add(createEventSpy(player,"seeked"));wasPaused=player.paused;if(player.playing){seekingSpy.next().then(function(){expect(playedSpy).toHaveBeenCalledBefore(seekingSpy)})["catch"](noop)}expectNoop=closeTo(player.currentTime,time,tolerance);_context576.n=1;return player.seekTo(time,tolerance);case 1:expectedTime=clamp(time,0,player.duration-getMinSeekableBufferDefault());expect(player.currentTime).toBeCloseToWithin(expectedTime,1);if(!expectNoop){_context576.n=2;break}expect(seekingSpy).not.toHaveBeenCalled();expect(seekedSpy).not.toHaveBeenCalled();_context576.n=6;break;case 2:expect(seekingSpy).toHaveBeenCalledBefore(seekedSpy);expect(player.paused).withContext("paused").toBe(wasPaused);if(!wasPaused){_context576.n=4;break}expectPausedState(player);_context576.n=3;return expectTimeDoesNotElapse(player);case 3:_context576.n=6;break;case 4:_context576.n=5;return onPlaying(player);case 5:expectPlayingState(player);_context576.n=6;return assertFrequency();case 6:dispose();case 7:return _context576.a(2)}},_callee576)}));return _expectTrackCanSeekTo.apply(this,arguments)}var VinylSuite=/*#__PURE__*/function(){function VinylSuite(playerFactory,options){_classCallCheck(this,VinylSuite);__publicField(this,"playerFactory",playerFactory);__publicField(this,"options",options);__publicField(this,"logPrefix",createLogPrefix(this));__publicField(this,"_player",null);__publicField(this,"visibilityChangeHandler",function(){if(document.visibilityState==="hidden"){fail("The window must remain visible during the tests.")}})}return _createClass(VinylSuite,[{key:Symbol.toStringTag,get:function get(){return"VinylSuite"}},{key:"player",get:function get(){if(!this._player)throw new IllegalStateError("player cannot be accessed outside of a test");return this._player}/**
|
|
1747
1747
|
* Initializes jasmine test setup.
|
|
1748
1748
|
*/},{key:"init",value:function init(){var _this125=this;var _a3,_b;var playerErrorSub=null;setTestTimeout((_b=(_a3=this.options)==null?void 0:_a3.timeout)!=null?_b:60);beforeEach(function(){var _a4;document.addEventListener("visibilitychange",_this125.visibilityChangeHandler);_this125._player=_this125.playerFactory();if(((_a4=_this125.options)==null?void 0:_a4.failOnError)!==false){playerErrorSub=_this125._player.on("error",function(e){fail(e)})}});afterEach(function(){var _a4;logDebug(_this125,"disposing");if(playerErrorSub)playerErrorSub();(_a4=_this125._player)==null?void 0:_a4.dispose();_this125._player=null;document.removeEventListener("visibilitychange",_this125.visibilityChangeHandler);getGlobalRegistry().reset()})}}])}();function createVinylSuite(playerDependencyOptions,options){var suite=new VinylSuite(function(){return createVinylPlayer(__spreadProps(__spreadValues({},playerDependencyOptions),{media:mediaRef.value}))},options);suite.init();return suite}// test/vinylTestUtil/mock/track/MockTrackFactory.ts
|
|
1749
1749
|
var MockTrackFactory=/*#__PURE__*/_createClass(function MockTrackFactory(){_classCallCheck(this,MockTrackFactory);__publicField(this,"spyFactory",createSpyFactory());__publicField(this,"validate",this.spyFactory("validate"));__publicField(this,"createTrack",this.spyFactory("createTrack"))});// test/vinylTestUtil/mock/track/MockTrackController.ts
|
|
@@ -1793,7 +1793,7 @@ var mimeCodec="audio/mp4;codecs=\"mp4a.40.5\"";var ControlledMediaSource=/*#__PU
|
|
|
1793
1793
|
* This promise resolves when all assets are ready.
|
|
1794
1794
|
* Note: in Firefox, you must set this object url on the element immediately. Creating the
|
|
1795
1795
|
* URL and setting it later can cause errors.
|
|
1796
|
-
*/)},{key:"getMediaSource",value:(function(){var _getMediaSource=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee63(){return _regenerator().w(function(_context63){while(1)switch(_context63.n){case 0:_context63.n=1;return this.getSegments();case 1:this.segments=_context63.v;return _context63.a(2,this.mediaSource)}},_callee63,this)}));function getMediaSource(){return _getMediaSource.apply(this,arguments)}return getMediaSource}())},{key:"appendNext",value:function(){var _appendNext2=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee64(){var sourceBuffer,buff,updateEnd;return _regenerator().w(function(_context64){while(1)switch(_context64.n){case 0:if(this.segments){_context64.n=1;break}throw new IllegalStateError("cannot append before getMediaSource");case 1:_context64.n=2;return this.sourceBufferPromise;case 2:sourceBuffer=_context64.v;if(!(this._currentIndex>=this.length)){_context64.n=3;break}throw new Error("Only ".concat(this.length," segments"));case 3:buff=this.segments[this._currentIndex++];_context64.n=4;return onSourceBufferReady(sourceBuffer);case 4:updateEnd=onUpdateEnd(sourceBuffer);sourceBuffer.appendBuffer(buff);_context64.n=5;return updateEnd;case 5:if(this._currentIndex===this.length){this.mediaSource.endOfStream()}case 6:return _context64.a(2)}},_callee64,this)}));function appendNext(){return _appendNext2.apply(this,arguments)}return appendNext}()}])}();function onSourceBufferReady(_x80){return _onSourceBufferReady.apply(this,arguments)}function _onSourceBufferReady(){_onSourceBufferReady=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1796
|
+
*/)},{key:"getMediaSource",value:(function(){var _getMediaSource=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee63(){return _regenerator().w(function(_context63){while(1)switch(_context63.n){case 0:_context63.n=1;return this.getSegments();case 1:this.segments=_context63.v;return _context63.a(2,this.mediaSource)}},_callee63,this)}));function getMediaSource(){return _getMediaSource.apply(this,arguments)}return getMediaSource}())},{key:"appendNext",value:function(){var _appendNext2=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee64(){var sourceBuffer,buff,updateEnd;return _regenerator().w(function(_context64){while(1)switch(_context64.n){case 0:if(this.segments){_context64.n=1;break}throw new IllegalStateError("cannot append before getMediaSource");case 1:_context64.n=2;return this.sourceBufferPromise;case 2:sourceBuffer=_context64.v;if(!(this._currentIndex>=this.length)){_context64.n=3;break}throw new Error("Only ".concat(this.length," segments"));case 3:buff=this.segments[this._currentIndex++];_context64.n=4;return onSourceBufferReady(sourceBuffer);case 4:updateEnd=onUpdateEnd(sourceBuffer);sourceBuffer.appendBuffer(buff);_context64.n=5;return updateEnd;case 5:if(this._currentIndex===this.length){this.mediaSource.endOfStream()}case 6:return _context64.a(2)}},_callee64,this)}));function appendNext(){return _appendNext2.apply(this,arguments)}return appendNext}()}])}();function onSourceBufferReady(_x80){return _onSourceBufferReady.apply(this,arguments)}function _onSourceBufferReady(){_onSourceBufferReady=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee577(sourceBuffer){return _regenerator().w(function(_context577){while(1)switch(_context577.n){case 0:if(sourceBuffer.updating){_context577.n=1;break}return _context577.a(2);case 1:_context577.n=2;return onUpdateEnd(sourceBuffer);case 2:return _context577.a(2,onSourceBufferReady(sourceBuffer))}},_callee577)}));return _onSourceBufferReady.apply(this,arguments)}function onUpdateEnd(sourceBuffer){return new Promise(function(resolve){sourceBuffer.addEventListener("updateend",function(){resolve(void 0)},{once:true})})}// test/vinylTestUtil/assets/dash_segmentList.ts
|
|
1797
1797
|
var dash_segmentList="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<MPD minBufferTime=\"PT10S\" type=\"static\" mediaPresentationDuration=\"PT2M59.515S\" profiles=\"urn:mpeg:dash:profile:isoff-live:2011\" xmlns=\"urn:mpeg:dash:schema:mpd:2011\" xmlns:amz-music=\"urn:amazon:music:drm:2019\" xmlns:cenc=\"urn:mpeg:cenc:2013\" xmlns:mspr=\"urn:microsoft:playready\">\n <Period>\n <AdaptationSet segmentAlignment=\"true\" mimeType=\"audio/mp4\" startWithSAP=\"1\">\n <ContentProtection schemeIdUri=\"urn:mpeg:dash:mp4protection:2011\" cenc:default_KID=\"5e2905f0-1f87-1c2a-cdc9-a698b13460a0\" value=\"cenc\"/>\n <ContentProtection schemeIdUri=\"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95\" value=\"2.0\">\n <mspr:pro>gAIAAAEAAQB2AjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOABBAFUAcABYAG8AYwBmAEsAaAB6AE4AeQBhAGEAWQBzAFQAUgBnAG8AQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBvAHYAQwA0AFQAaQA0AFgAOQBRADAAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBtAHUAcwBpAGMALgBhAG0AYQB6AG8AbgAuAGMAbwBtAC8AZABtAGwAcwAvAGEAYwBxAHUAaQByAGUATABpAGMAZQBuAHMAZQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>\n <cenc:pssh>AAACoHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAoCAAgAAAQABAHYCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA4AEEAVQBwAFgAbwBjAGYASwBoAHoATgB5AGEAYQBZAHMAVABSAGcAbwBBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AG8AdgBDADQAVABpADQAWAA5AFEAMAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAG0AdQBzAGkAYwAuAGEAbQBhAHoAbwBuAC4AYwBvAG0ALwBkAG0AbABzAC8AYQBjAHEAdQBpAHIAZQBMAGkAYwBlAG4AcwBlADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>\n </ContentProtection>\n <ContentProtection schemeIdUri=\"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed\">\n <cenc:pssh>AAAAZnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEYIARIQXikF8B+HHCrNyaaYsTRgoBoLQW1hem9uTXVzaWMiHGNpZDpYaWtGOEIrSEhDck55YWFZc1RSZ29BPT0qBUFVRElP</cenc:pssh>\n </ContentProtection>\n <Representation id=\"48kbps\" bitrate=\"48\" codecs=\"mp4a.40.5\" audioSamplingRate=\"44100\" bandwidth=\"49207\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <SegmentList timescale=\"1000\" duration=\"9999\">\n <Initialization sourceURL=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/e995b206-11e7-3b45-97c2-b6a3547d2f4e.mp4?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/7074f18b-9540-330a-afe2-219d0ce7833c.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/5f820f1c-2afc-3131-bed4-fb5bdef897f0.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/cd6c620a-04de-3782-92b2-c662b6c1072f.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/f7f821c5-5e35-3add-ad3a-9bbe0dbb1e3e.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/9746d8ad-cff5-3494-9496-81f4f55e1ef6.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/5f3f7a43-ab6d-3c3a-911b-eead57689bd6.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/fd21ca6a-2754-33ea-8880-6b5ef5b20ee4.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/d12751c0-7376-3f3e-93d4-aaa2e0604a27.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/deb6a2fe-cf1c-3cd3-b0c0-14605b19b6f7.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/b4f7e818-9b5d-3961-a30a-efb5662b4266.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/44654895-2ecc-3a8d-8314-b38554bd7cab.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/8bdf4924-bd51-376f-93f5-1a681f67b5f0.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/d376f5de-404a-3ec6-9c9b-ec4f1a0bb396.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/1cb253cb-53e0-3ce0-899e-66ab521b243e.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/5189c800-ada3-3851-af3f-1eb221eb1e46.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/aaba2b17-fb35-34ef-9e02-f5d4751537af.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/7c91714e-b106-3738-88b6-a6de127876ab.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/181177ec-f49d-3adf-9e54-54bc8829a4aa.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n </SegmentList>\n </Representation>\n <Representation id=\"128kbps\" bitrate=\"128\" codecs=\"mp4a.40.5\" audioSamplingRate=\"44100\" bandwidth=\"128940\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <SegmentList timescale=\"1000\" duration=\"9999\">\n <Initialization sourceURL=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/48ad8390-8f20-3375-ad88-a6b9e30443c9.mp4?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/b60dac8a-6ef4-3831-a94a-1c45fcee6b2d.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/657d1268-facc-3395-88e9-27c5c126ce48.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/5195eaa4-b1fe-35db-a6a2-f44b2f5c5ab3.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/4c03a31b-a7df-348f-85ba-849be71d8429.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/892c0d03-6f0a-3816-bab9-f086b1cc58ca.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/47997981-1b94-33a6-a49b-f213625515c0.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/4363a296-1ee3-386a-b866-bbc3209a70af.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/1080dd32-1782-3329-aa25-9f70425726f6.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/2afd08bd-9018-365e-a7ca-215ec749d5f4.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/db3c6e55-4dcd-32f4-9d86-d699760e37c9.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/38bc1afd-2930-3e41-809c-1c2472b2f7e2.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/df6643b3-5b9e-31cf-a3fa-e271e9f70040.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/6e833e36-ed37-3d57-8d2c-dbe058e04b9d.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/ec9caaf6-2205-3ef9-b456-b91fdea6991e.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/f1b8ccdf-9848-3b00-9d12-bab2ca18f857.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/da935cc3-be5e-3b3e-b1eb-7f91bd507a90.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/dbbae462-fd17-38d3-9b2a-ce25d1e67583.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/75b367ea-5dc3-3c95-8ff1-e727723ca423.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n </SegmentList>\n </Representation>\n </AdaptationSet>\n <AdaptationSet segmentAlignment=\"true\" mimeType=\"audio/mp4\" startWithSAP=\"1\">\n <ContentProtection schemeIdUri=\"urn:mpeg:dash:mp4protection:2011\" cenc:default_KID=\"5e2905f0-1f87-1c2a-cdc9-a698b13460a0\" value=\"cenc\"/>\n <ContentProtection schemeIdUri=\"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95\" value=\"2.0\">\n <mspr:pro>gAIAAAEAAQB2AjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOABBAFUAcABYAG8AYwBmAEsAaAB6AE4AeQBhAGEAWQBzAFQAUgBnAG8AQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBvAHYAQwA0AFQAaQA0AFgAOQBRADAAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBtAHUAcwBpAGMALgBhAG0AYQB6AG8AbgAuAGMAbwBtAC8AZABtAGwAcwAvAGEAYwBxAHUAaQByAGUATABpAGMAZQBuAHMAZQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>\n <cenc:pssh>AAACoHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAoCAAgAAAQABAHYCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA4AEEAVQBwAFgAbwBjAGYASwBoAHoATgB5AGEAYQBZAHMAVABSAGcAbwBBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AG8AdgBDADQAVABpADQAWAA5AFEAMAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAG0AdQBzAGkAYwAuAGEAbQBhAHoAbwBuAC4AYwBvAG0ALwBkAG0AbABzAC8AYQBjAHEAdQBpAHIAZQBMAGkAYwBlAG4AcwBlADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>\n </ContentProtection>\n <ContentProtection schemeIdUri=\"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed\">\n <cenc:pssh>AAAAZnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEYIARIQXikF8B+HHCrNyaaYsTRgoBoLQW1hem9uTXVzaWMiHGNpZDpYaWtGOEIrSEhDck55YWFZc1RSZ29BPT0qBUFVRElP</cenc:pssh>\n </ContentProtection>\n <Representation id=\"256kbps\" bitrate=\"256\" codecs=\"mp4a.40.2\" audioSamplingRate=\"44100\" bandwidth=\"257571\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <SegmentList timescale=\"1000\" duration=\"10001\">\n <Initialization sourceURL=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/491172b7-47c7-3c85-8d21-d1b5932f17a2.mp4?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/826bac71-7b31-3a24-9d49-37847e2a6729.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/388d5f9e-91a8-3f11-af1a-ae4a05f97ec9.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/a33b04dd-497b-32a8-8d79-185c3ff64abc.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/5177f418-6081-3d74-962e-a22103b0bd9b.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/21130156-4c73-34e4-8d9f-3bb4835907f5.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/e38d0c76-959c-3ea2-9194-a909b79dcb2e.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/280aa567-f6e5-355b-910e-86dd3d877058.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/a00d6c29-4f5d-3fec-a925-238376fccb23.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/547acecd-34c8-308d-afa7-4cabfa08828a.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/dade48dd-b7b7-3584-8282-d485b4dcb4ac.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/06a7b39c-bf4c-3a84-8c3a-3130cf8d8796.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/e23e7877-351f-3907-bc21-5ad52e79bea3.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/8bd58682-d178-31e8-9158-647294632481.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/9940b7d6-a080-36e9-bc74-701bc86f1d04.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/d3f0bf8f-c7bb-390f-a69f-6c5f76fea173.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/85d1acbe-8bdb-3eb9-a6f1-dabbd39dcac7.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/55329bcb-7009-36c2-acc5-38100b7e7299.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n <SegmentURL media=\"https://dfqzuzzcqflbd.cloudfront.net/4b931ac5-5bcb-4200000551204497/d12a306c-2d45-3e5b-8240-8ebea0437442.m4s?r=1ded475a-27b5-4a3d-848b-8e430140b3ed&rs=NA&mt=US\"/>\n </SegmentList>\n </Representation>\n </AdaptationSet>\n </Period>\n</MPD>\n";// test/vinylTestUtil/assets/dash_segmentBase.ts
|
|
1798
1798
|
var dash_segmentBase="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--Generated with https://github.com/google/shaka-packager version v2.6.1-634af65-release-->\n<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\" minBufferTime=\"PT2S\" type=\"static\" mediaPresentationDuration=\"PT60S\">\n <Period id=\"0\">\n <AdaptationSet id=\"0\" contentType=\"audio\" subsegmentAlignment=\"true\">\n <SupplementalProperty schemeIdUri=\"urn:mpeg:dash:adaptation-set-switching:2016\" value=\"1,2\"/>\n <Representation id=\"0\" bandwidth=\"51160\" codecs=\"mp4a.40.2\" mimeType=\"audio/mp4\" audioSamplingRate=\"44100\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/aac_60s_2ch_16bit_44100Hz_48kbps.mp4</BaseURL>\n <SegmentBase indexRange=\"826-929\" timescale=\"44100\">\n <Initialization range=\"0-825\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"14\" bandwidth=\"124766\" codecs=\"mp4a.40.2\" mimeType=\"audio/mp4\" audioSamplingRate=\"44100\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/aac_60s_2ch_16bit_44100Hz_256kbps.mp4</BaseURL>\n <SegmentBase indexRange=\"826-929\" timescale=\"44100\">\n <Initialization range=\"0-825\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"15\" bandwidth=\"114639\" codecs=\"mp4a.40.2\" mimeType=\"audio/mp4\" audioSamplingRate=\"44100\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/aac_60s_2ch_16bit_44100Hz_128kbps.mp4</BaseURL>\n <SegmentBase indexRange=\"826-929\" timescale=\"44100\">\n <Initialization range=\"0-825\"/>\n </SegmentBase>\n </Representation>\n </AdaptationSet>\n <AdaptationSet id=\"1\" contentType=\"audio\">\n <SupplementalProperty schemeIdUri=\"urn:mpeg:dash:adaptation-set-switching:2016\" value=\"0,2\"/>\n <Representation id=\"1\" bandwidth=\"141719\" codecs=\"flac\" mimeType=\"audio/mp4\" audioSamplingRate=\"44100\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/flac_60s_2ch_16bit_44100Hz.mp4</BaseURL>\n <SegmentBase indexRange=\"772-875\" timescale=\"44100\">\n <Initialization range=\"0-771\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"3\" bandwidth=\"541361\" codecs=\"flac\" mimeType=\"audio/mp4\" audioSamplingRate=\"48000\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/flac_60s_2ch_24bit_48000Hz.mp4</BaseURL>\n <SegmentBase indexRange=\"772-875\" timescale=\"48000\">\n <Initialization range=\"0-771\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"4\" bandwidth=\"470315\" codecs=\"flac\" mimeType=\"audio/mp4\" audioSamplingRate=\"0\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/flac_60s_2ch_16bit_192000Hz.mp4</BaseURL>\n <SegmentBase indexRange=\"772-875\" timescale=\"192000\">\n <Initialization range=\"0-771\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"6\" bandwidth=\"2192360\" codecs=\"flac\" mimeType=\"audio/mp4\" audioSamplingRate=\"0\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/flac_60s_2ch_24bit_192000Hz.mp4</BaseURL>\n <SegmentBase indexRange=\"772-875\" timescale=\"192000\">\n <Initialization range=\"0-771\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"8\" bandwidth=\"153326\" codecs=\"flac\" mimeType=\"audio/mp4\" audioSamplingRate=\"48000\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/flac_60s_2ch_16bit_48000Hz.mp4</BaseURL>\n <SegmentBase indexRange=\"772-875\" timescale=\"48000\">\n <Initialization range=\"0-771\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"10\" bandwidth=\"257514\" codecs=\"flac\" mimeType=\"audio/mp4\" audioSamplingRate=\"0\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/flac_60s_2ch_16bit_96000Hz.mp4</BaseURL>\n <SegmentBase indexRange=\"772-875\" timescale=\"96000\">\n <Initialization range=\"0-771\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"11\" bandwidth=\"495381\" codecs=\"flac\" mimeType=\"audio/mp4\" audioSamplingRate=\"44100\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/flac_60s_2ch_24bit_44100Hz.mp4</BaseURL>\n <SegmentBase indexRange=\"772-875\" timescale=\"44100\">\n <Initialization range=\"0-771\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"16\" bandwidth=\"1074424\" codecs=\"flac\" mimeType=\"audio/mp4\" audioSamplingRate=\"0\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/flac_60s_2ch_24bit_96000Hz.mp4</BaseURL>\n <SegmentBase indexRange=\"772-875\" timescale=\"96000\">\n <Initialization range=\"0-771\"/>\n </SegmentBase>\n </Representation>\n </AdaptationSet>\n <AdaptationSet id=\"2\" contentType=\"audio\" subsegmentAlignment=\"true\">\n <SupplementalProperty schemeIdUri=\"urn:mpeg:dash:adaptation-set-switching:2016\" value=\"0,1\"/>\n <Representation id=\"2\" bandwidth=\"322671\" codecs=\"opus\" mimeType=\"audio/mp4\" audioSamplingRate=\"48000\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/opus_60s_2ch_16bit_44100Hz_320kbps.mp4</BaseURL>\n <SegmentBase indexRange=\"803-906\" timescale=\"48000\">\n <Initialization range=\"0-802\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"5\" bandwidth=\"50194\" codecs=\"opus\" mimeType=\"audio/mp4\" audioSamplingRate=\"48000\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/opus_60s_2ch_16bit_44100Hz_48kbps.mp4</BaseURL>\n <SegmentBase indexRange=\"803-906\" timescale=\"48000\">\n <Initialization range=\"0-802\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"7\" bandwidth=\"50194\" codecs=\"opus\" mimeType=\"audio/mp4\" audioSamplingRate=\"48000\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/opus_60s_2ch_16bit_192000Hz_48kbps.mp4</BaseURL>\n <SegmentBase indexRange=\"803-906\" timescale=\"48000\">\n <Initialization range=\"0-802\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"9\" bandwidth=\"162390\" codecs=\"opus\" mimeType=\"audio/mp4\" audioSamplingRate=\"48000\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/opus_60s_2ch_16bit_192000Hz_160kbps.mp4</BaseURL>\n <SegmentBase indexRange=\"803-906\" timescale=\"48000\">\n <Initialization range=\"0-802\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"12\" bandwidth=\"322671\" codecs=\"opus\" mimeType=\"audio/mp4\" audioSamplingRate=\"48000\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/opus_60s_2ch_16bit_192000Hz_320kbps.mp4</BaseURL>\n <SegmentBase indexRange=\"803-906\" timescale=\"48000\">\n <Initialization range=\"0-802\"/>\n </SegmentBase>\n </Representation>\n <Representation id=\"13\" bandwidth=\"162390\" codecs=\"opus\" mimeType=\"audio/mp4\" audioSamplingRate=\"48000\">\n <AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"2\"/>\n <BaseURL>representations/opus_60s_2ch_16bit_44100Hz_160kbps.mp4</BaseURL>\n <SegmentBase indexRange=\"803-906\" timescale=\"48000\">\n <Initialization range=\"0-802\"/>\n </SegmentBase>\n </Representation>\n </AdaptationSet>\n </Period>\n</MPD>\n";// test/unit/setup.ts
|
|
1799
1799
|
addCustomMatchers();setGlobalRefDebug(true);jasmine.getEnv().configure({stopOnSpecFailure:true,stopSpecOnExpectationFailure:true,failSpecWithNoExpectations:true});jasmine.getEnv().addReporter(new ConsoleReporter);RestApiReporter.installFromSearchParam();initializeFrequencyAnalyzer();afterEach(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee65(){return _regenerator().w(function(_context65){while(1)switch(_context65.n){case 0:_context65.n=1;return flushPromises();case 1:getGlobalRegistry().reset();case 2:return _context65.a(2)}},_callee65)})));// test/unit/vinylTestUtil/util/playback/createEventSpy.test.ts
|
|
@@ -1933,47 +1933,47 @@ describe("PlayerRegistryImpl",function(){describe("addPlayer",function(){var log
|
|
|
1933
1933
|
var createSpy29=jasmine.createSpy;describe("createChangeEventTrigger",function(){it("returns a function that calls an inner function with a change event",function(){var o={value:1};var spy=createSpy29("valueChanged");var trigger=createChangeEventTrigger(function(){return o.value},spy);expect(spy).not.toHaveBeenCalled();o.value=2;trigger();expect(spy).toHaveBeenCalledOnceWith({previous:1,current:2});spy.calls.reset();o.value=3;trigger();expect(spy).toHaveBeenCalledOnceWith({previous:2,current:3})})});// test/unit/drm/DrmKeySystemResolver.test.ts
|
|
1934
1934
|
describe("defaultDrmKeySystemResolver",function(){it("returns the matching DrmKeySystem from the ContentProtection schemeIdUri",function(){expect(defaultDrmKeySystemResolver(ContentProtectionScheme.WIDEVINE)).toEqual(["com.widevine.alpha"/* WIDEVINE */]);expect(defaultDrmKeySystemResolver(ContentProtectionScheme.FAIR_PLAY)).toEqual(["com.apple.fps"/* FAIR_PLAY */,"com.apple.fps.1_0"/* FAIR_PLAY_1_0 */]);expect(defaultDrmKeySystemResolver(ContentProtectionScheme.CENC)).toEqual([])})});// test/unit/drm/DrmKeySystem.test.ts
|
|
1935
1935
|
describe("isPlayReady",function(){it("returns true if key system is one of PlayReady key systems",function(){expect(isPlayReady("com.microsoft.playready"/* PLAY_READY */)).toBeTrue();expect(isPlayReady("com.chromecast.playready"/* PLAY_READY_CHROMECAST */)).toBeTrue();expect(isPlayReady("com.microsoft.playready.recommendation"/* PLAY_READY_RECOMMENDATION */)).toBeTrue();expect(isPlayReady("com.microsoft.playready.recommendation.3000"/* PLAY_READY_3000 */)).toBeTrue();expect(isPlayReady("com.widevine.alpha"/* WIDEVINE */)).toBeFalse();expect(isPlayReady("com.apple.fps.1_0"/* FAIR_PLAY_1_0 */)).toBeFalse()})});describe("isFairPlay",function(){it("returns true if key system is one of FairPlay key systems",function(){expect(isFairPlay("com.apple.fps"/* FAIR_PLAY */)).toBeTrue();expect(isFairPlay("com.apple.fps.1_0"/* FAIR_PLAY_1_0 */)).toBeTrue();expect(isFairPlay("com.microsoft.playready.recommendation.3000"/* PLAY_READY_3000 */)).toBeFalse();expect(isFairPlay("com.widevine.alpha"/* WIDEVINE */)).toBeFalse()})});// test/unit/drm/DrmControllerImpl.test.ts
|
|
1936
|
-
var createSpy30=jasmine.createSpy;var objectContaining22=jasmine.objectContaining;var any27=jasmine.any;describe("DrmControllerImpl",function(){var logger=useMockLogger();var activeSessions=0;function createMockSession(mimeType,initDataType,initData){activeSessions++;var session=new MockCommonMediaKeySession;session.mimeType=mimeType;session.initDataType=initDataType;session.initData=initData;session.dispose.and.callFake(function(){return activeSessions--});return session}var deps;var media;var commonEme;var mediaKeys;var access;var licenseProvider;var drmController;var errorSpy;var clock=useMockTime();var drmInfo={contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */},{keySystem:"com.microsoft.playready"/* PLAY_READY */}],mimeType:"audio/mp4",contentType:"audio",encryptionScheme:"cenc",initDataType:"cenc"};beforeEach(function(){activeSessions=0;media=new MockHTMLAudioElement;commonEme=new MockCommonEme;licenseProvider=createSpy30("LicenseProvider");implementEventFakes(media);mediaKeys=new MockCommonMediaKeys;mediaKeys.keySystem="com.widevine.alpha"/* WIDEVINE */;mediaKeys.createSession.and.callFake(createMockSession);mediaKeys.clearFromElement.and.resolveTo(void 0);access=new MockCommonMediaKeySystemAccess("com.widevine.alpha"/* WIDEVINE */);access.createMediaKeys.and.resolveTo(mediaKeys);access.keySystem="com.widevine.alpha"/* WIDEVINE */;commonEme.requestMediaKeySystemAccess.and.resolveTo(access);deps={media:media,commonEme:commonEme};drmController=new DrmControllerImpl(deps,{licenseProvider:licenseProvider});errorSpy=createEventSpy(drmController,"error")});afterEach(function(){if(!drmController.disposed)drmController.dispose();expectNoErrors()});function expectNoErrors(){expect(errorSpy).not.toHaveBeenCalled()}function expectError(message){expect(errorSpy).toHaveBeenCalledTimes(1);var error=errorSpy.calls.mostRecent().args[0].error;expect(error.message).toEqual(message);errorSpy.calls.reset()}function emitEncrypted(){return _emitEncrypted.apply(this,arguments)}function _emitEncrypted(){_emitEncrypted=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1936
|
+
var createSpy30=jasmine.createSpy;var objectContaining22=jasmine.objectContaining;var any27=jasmine.any;describe("DrmControllerImpl",function(){var logger=useMockLogger();var activeSessions=0;function createMockSession(mimeType,initDataType,initData){activeSessions++;var session=new MockCommonMediaKeySession;session.mimeType=mimeType;session.initDataType=initDataType;session.initData=initData;session.dispose.and.callFake(function(){return activeSessions--});return session}var deps;var media;var commonEme;var mediaKeys;var access;var licenseProvider;var drmController;var errorSpy;var clock=useMockTime();var drmInfo={contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */},{keySystem:"com.microsoft.playready"/* PLAY_READY */}],mimeType:"audio/mp4",contentType:"audio",encryptionScheme:"cenc",initDataType:"cenc"};beforeEach(function(){activeSessions=0;media=new MockHTMLAudioElement;commonEme=new MockCommonEme;licenseProvider=createSpy30("LicenseProvider");implementEventFakes(media);mediaKeys=new MockCommonMediaKeys;mediaKeys.keySystem="com.widevine.alpha"/* WIDEVINE */;mediaKeys.createSession.and.callFake(createMockSession);mediaKeys.clearFromElement.and.resolveTo(void 0);access=new MockCommonMediaKeySystemAccess("com.widevine.alpha"/* WIDEVINE */);access.createMediaKeys.and.resolveTo(mediaKeys);access.keySystem="com.widevine.alpha"/* WIDEVINE */;commonEme.requestMediaKeySystemAccess.and.resolveTo(access);deps={media:media,commonEme:commonEme};drmController=new DrmControllerImpl(deps,{licenseProvider:licenseProvider});errorSpy=createEventSpy(drmController,"error")});afterEach(function(){if(!drmController.disposed)drmController.dispose();expectNoErrors()});function expectNoErrors(){expect(errorSpy).not.toHaveBeenCalled()}function expectError(message){expect(errorSpy).toHaveBeenCalledTimes(1);var error=errorSpy.calls.mostRecent().args[0].error;expect(error.message).toEqual(message);errorSpy.calls.reset()}function emitEncrypted(){return _emitEncrypted.apply(this,arguments)}function _emitEncrypted(){_emitEncrypted=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee485(){var initData,initDataType,encryptedCb,_args485=arguments;return _regenerator().w(function(_context485){while(1)switch(_context485.n){case 0:initData=_args485.length>0&&_args485[0]!==undefined?_args485[0]:new Uint8Array(0);initDataType=_args485.length>1&&_args485[1]!==undefined?_args485[1]:"cenc";encryptedCb=commonEme.addEncryptedListener.calls.mostRecent().args[1];encryptedCb({initData:initData,initDataType:initDataType});_context485.n=1;return flushPromises();case 1:return _context485.a(2)}},_callee485)}));return _emitEncrypted.apply(this,arguments)}function getSession(index){return mediaKeys.createSession.calls.all()[index].returnValue}function emitMessage(){return _emitMessage.apply(this,arguments)}function _emitMessage(){_emitMessage=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee486(){var index,message,_args486=arguments;return _regenerator().w(function(_context486){while(1)switch(_context486.n){case 0:index=_args486.length>0&&_args486[0]!==undefined?_args486[0]:0;message=_args486.length>1&&_args486[1]!==undefined?_args486[1]:new ArrayBuffer(0);getSession(index).dispatch("message",{message:message});_context486.n=1;return flushPromises();case 1:return _context486.a(2)}},_callee486)}));return _emitMessage.apply(this,arguments)}function getKeySystemsRequested(){return commonEme.requestMediaKeySystemAccess.calls.all().map(function(call){return call.args[0]})}describe("initializeForPlayback",function(){describe("when drmInfo has content encryption",function(){describe("and commonEme is null",function(){it("emits an error event",function(){drmController=new DrmControllerImpl(__spreadProps(__spreadValues({},deps),{commonEme:null}),{licenseProvider:licenseProvider});errorSpy=createEventSpy(drmController,"error");drmController.initializeForPlayback(null);expectNoErrors();drmController.initializeForPlayback(createEmptyMediaQualityMetadata());expectNoErrors();drmController.initializeForPlayback(drmInfo);expectError("DRM not supported.")})})});it("sorts content protections by priority",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee432(){var mediaKeysSetSpy,sessionCreateSpy;return _regenerator().w(function(_context432){while(1)switch(_context432.n){case 0:commonEme.requestMediaKeySystemAccess.and.callFake(function(keySystem){return keySystem==="com.widevine.alpha"/* WIDEVINE */?Promise.resolve(access):Promise.reject(new Error("not supported"))});drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{priority:1// lowest priority
|
|
1937
1937
|
}),"com.microsoft.playready"/* PLAY_READY */,{licenseServer:{url:"https://example.com/playready"},priority:2}),"com.microsoft.playready.recommendation.3000"/* PLAY_READY_3000 */,{priority:3}),"com.apple.fps"/* FAIR_PLAY */,{priority:4}),"com.apple.fps.1_0"/* FAIR_PLAY_1_0 */,{// equal priorities will prefer key systems with licenseServer configuration:
|
|
1938
1938
|
licenseServer:{url:"https://example.com/fps"},priority:4// highest priority
|
|
1939
1939
|
}),licenseProvider:licenseProvider});mediaKeysSetSpy=createEventSpy(drmController,"mediaKeysSet");sessionCreateSpy=createEventSpy(drmController,"sessionCreate");drmController.initializeForPlayback(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */,pssh:"123"},{keySystem:"com.apple.fps"/* FAIR_PLAY */,pssh:"123"},{keySystem:"com.microsoft.playready"/* PLAY_READY */,pssh:"123"}]}));_context432.n=1;return flushPromises();case 1:expect(mediaKeysSetSpy).toHaveBeenCalledTimes(1);expect(sessionCreateSpy).toHaveBeenCalledTimes(1);expect(mediaKeys.createSession).toHaveBeenCalledTimes(1);expect(getKeySystemsRequested()).toEqual(["com.apple.fps"/* FAIR_PLAY */,"com.microsoft.playready"/* PLAY_READY */,"com.widevine.alpha"/* WIDEVINE */]);case 2:return _context432.a(2)}},_callee432)})));describe("when drmInfo is missing mimeType",function(){it("emits an error event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee433(){return _regenerator().w(function(_context433){while(1)switch(_context433.n){case 0:drmController.initializeForPlayback(__spreadProps(__spreadValues({},drmInfo),{mimeType:null,contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */,pssh:"123"}]}));_context433.n=1;return errorSpy.next();case 1:expectError("Encrypted content must have a mimeType.");case 2:return _context433.a(2)}},_callee433)})))});describe("when drmInfo does not contain the current key system",function(){it("throws",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee434(){return _regenerator().w(function(_context434){while(1)switch(_context434.n){case 0:drmController.initializeForPlayback(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */,pssh:"123"}]}));_context434.n=1;return nextEventAsPromise(drmController,"mediaKeysSet");case 1:drmController.initializeForPlayback(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.microsoft.playready"/* PLAY_READY */,pssh:"123"}]}));_context434.n=2;return errorSpy.next();case 2:expectError("Encrypted content does not support set keySystem: 'com.widevine.alpha'.");case 3:return _context434.a(2)}},_callee434)})))});describe("when drmInfo does not have initDataType",function(){it("defaults to cenc",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee435(){var sessionCreateSpy,keySessionEvent;return _regenerator().w(function(_context435){while(1)switch(_context435.n){case 0:sessionCreateSpy=createEventSpy(drmController,"sessionCreate");drmController.initializeForPlayback(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */,pssh:"123"}],initDataType:null}));_context435.n=1;return sessionCreateSpy.next();case 1:keySessionEvent=_context435.v;expect(keySessionEvent).toEqual({initDataType:"cenc",mimeType:"audio/mp4"});case 2:return _context435.a(2)}},_callee435)})))});describe("when drmInfo does not have contentType",function(){it("creates a session with default configuration",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee436(){var sessionCreateSpy;return _regenerator().w(function(_context436){while(1)switch(_context436.n){case 0:drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:{url:"license-server"}}),licenseProvider:licenseProvider});sessionCreateSpy=createEventSpy(drmController,"sessionCreate");drmController.initializeForPlayback(__spreadProps(__spreadValues({},drmInfo),{contentType:null,contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */,pssh:"123"}]}));_context436.n=1;return sessionCreateSpy.next();case 1:expect(commonEme.requestMediaKeySystemAccess).toHaveBeenCalledOnceWith("com.widevine.alpha"/* WIDEVINE */,[{initDataTypes:["cenc"]}]);case 2:return _context436.a(2)}},_callee436)})))})});describe("setBufferingDrmInfo",function(){it("resets error event gate",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee437(){var error;return _regenerator().w(function(_context437){while(1)switch(_context437.n){case 0:commonEme.requestMediaKeySystemAccess.and.rejectWith(new DrmError("expected"));_context437.n=1;return emitEncrypted();case 1:_context437.n=2;return emitEncrypted();case 2:_context437.n=3;return emitEncrypted();case 3:expectError("Encrypted content not configured with content protections.");drmController.setBufferingDrmInfo(drmInfo);_context437.n=4;return emitEncrypted();case 4:_context437.n=5;return emitEncrypted();case 5:_context437.n=6;return emitEncrypted();case 6:expect(errorSpy).toHaveBeenCalledTimes(1);error=errorSpy.calls.mostRecent().args[0].error;expect(error.toJSON()).toEqual(objectContaining22({message:"No keySystem supported",extra:{contentProtections:any27(Object),attemptedKeySystems:["com.widevine.alpha"/* WIDEVINE */,"com.microsoft.playready"/* PLAY_READY */]}}));errorSpy.calls.reset();case 7:return _context437.a(2)}},_callee437)})));describe("and the passed abort ref is aborted",function(){it("closes sessions created with passed abort ref",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee438(){var abort1,abort2,sessions;return _regenerator().w(function(_context438){while(1)switch(_context438.n){case 0:abort1=new Abort;drmController.setBufferingDrmInfo(drmInfo,abort1);_context438.n=1;return emitEncrypted(new Uint8Array([1]));case 1:_context438.n=2;return emitEncrypted(new Uint8Array([2]));case 2:_context438.n=3;return emitEncrypted(new Uint8Array([3]));case 3:abort2=new Abort;drmController.setBufferingDrmInfo(drmInfo,abort2);_context438.n=4;return emitEncrypted(new Uint8Array([4]));case 4:_context438.n=5;return emitEncrypted(new Uint8Array([5]));case 5:_context438.n=6;return emitEncrypted(new Uint8Array([6]));case 6:sessions=mediaKeys.createSession.calls.all().map(function(call){return call.returnValue});expect(sessions.length).withContext("total sessions").toEqual(6);abort1.abort();expect(sessions.map(function(session){return session.dispose.calls.count()})).toEqual([1,1,1,0,0,0]);expect(drmController.activeSessions).toEqual(3);abort2.abort();expect(sessions.map(function(session){return session.dispose.calls.count()})).toEqual([1,1,1,1,1,1]);expect(drmController.activeSessions).toEqual(0);case 7:return _context438.a(2)}},_callee438)})))})});describe("when an encrypted event is observed",function(){it("throws error if contentProtections are not set",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee439(){return _regenerator().w(function(_context439){while(1)switch(_context439.n){case 0:_context439.n=1;return emitEncrypted();case 1:expectError("Encrypted content not configured with content protections.");case 2:return _context439.a(2)}},_callee439)})));describe("and the drm controller is disposed",function(){it("does nothing",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee440(){return _regenerator().w(function(_context440){while(1)switch(_context440.n){case 0:drmController.dispose();_context440.n=1;return emitEncrypted();case 1:expect(errorSpy).not.toHaveBeenCalled();case 2:return _context440.a(2)}},_callee440)})))});describe("when media keys have not been created",function(){it("creates and sets media keys, then creates a session",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee441(){var sessionCreatSpy;return _regenerator().w(function(_context441){while(1)switch(_context441.n){case 0:sessionCreatSpy=createEventSpy(drmController,"sessionCreate");drmController.setBufferingDrmInfo(drmInfo);_context441.n=1;return emitEncrypted();case 1:expect(commonEme.requestMediaKeySystemAccess).toHaveBeenCalledTimes(1);expect(access.createMediaKeys).toHaveBeenCalledTimes(1);expect(mediaKeys.setOnElement).toHaveBeenCalledOnceWith(media);expect(mediaKeys.createSession).toHaveBeenCalledTimes(1);expect(sessionCreatSpy).toHaveBeenCalledOnceWith({mimeType:"audio/mp4",initDataType:"cenc"});case 2:return _context441.a(2)}},_callee441)})));it("picks the first supported keySystem",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee442(){return _regenerator().w(function(_context442){while(1)switch(_context442.n){case 0:drmController.setBufferingDrmInfo(drmInfo);commonEme.requestMediaKeySystemAccess.and.returnValues(Promise.reject(new DrmError("not supported")),Promise.resolve(access));_context442.n=1;return emitEncrypted();case 1:expect(getKeySystemsRequested()).toEqual(["com.widevine.alpha"/* WIDEVINE */,"com.microsoft.playready"/* PLAY_READY */]);case 2:return _context442.a(2)}},_callee442)})));it("creates key system access from content protection configuration and robustness options for video",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee443(){var initData;return _regenerator().w(function(_context443){while(1)switch(_context443.n){case 0:drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:{url:"license-server"},video:{robustness:"HW_SECURE_DECODE"/* HW_SECURE_DECODE */}}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentType:"video",mimeType:"video/mp4"}));initData=new Uint8Array(0);_context443.n=1;return emitEncrypted(initData,"webm");case 1:expect(commonEme.requestMediaKeySystemAccess).toHaveBeenCalledOnceWith("com.widevine.alpha"/* WIDEVINE */,[{initDataTypes:["cenc"],videoCapabilities:[{contentType:"video/mp4",encryptionScheme:"cenc",robustness:"HW_SECURE_DECODE"/* HW_SECURE_DECODE */}]}]);case 2:return _context443.a(2)}},_callee443)})));it("creates key system access from content protection configuration and robustness options for audio",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee444(){var initData;return _regenerator().w(function(_context444){while(1)switch(_context444.n){case 0:drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.microsoft.playready"/* PLAY_READY */,{licenseServer:{url:"license-server"},audio:{robustness:"SW_SECURE_DECODE"/* SW_SECURE_DECODE */}}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.microsoft.playready"/* PLAY_READY */}],contentType:"audio",mimeType:"audio/mp4"}));initData=new Uint8Array(0);_context444.n=1;return emitEncrypted(initData,"cenc");case 1:expect(commonEme.requestMediaKeySystemAccess).toHaveBeenCalledOnceWith("com.microsoft.playready"/* PLAY_READY */,[{initDataTypes:["cenc"],audioCapabilities:[{contentType:"audio/mp4",encryptionScheme:"cenc",robustness:"SW_SECURE_DECODE"/* SW_SECURE_DECODE */}]}]);case 2:return _context444.a(2)}},_callee444)})));it("uses SW_SECURE_CRYPTO as default robustness",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee445(){return _regenerator().w(function(_context445){while(1)switch(_context445.n){case 0:drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */}],contentType:"audio",mimeType:"audio/mp4"}));_context445.n=1;return emitEncrypted();case 1:expect(commonEme.requestMediaKeySystemAccess).toHaveBeenCalledOnceWith("com.widevine.alpha"/* WIDEVINE */,[{initDataTypes:["cenc"],audioCapabilities:[{contentType:"audio/mp4",encryptionScheme:"cenc",robustness:"SW_SECURE_CRYPTO"/* SW_SECURE_CRYPTO */}]}]);case 2:return _context445.a(2)}},_callee445)})));describe("when media key initialization fails",function(){describe("and the error is silent",function(){beforeEach(function(){access.createMediaKeys.and.rejectWith(new ReportableError("",ErrorOrigin.INTERNAL,"silent"/* SILENT */))});it("does not emit an error event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee446(){return _regenerator().w(function(_context446){while(1)switch(_context446.n){case 0:drmController.setBufferingDrmInfo(drmInfo);_context446.n=1;return emitEncrypted();case 1:expect(errorSpy).not.toHaveBeenCalled();case 2:return _context446.a(2)}},_callee446)})))});describe("and the error is not silent",function(){beforeEach(function(){access.createMediaKeys.and.rejectWith(new Error)});it("emits an error event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee447(){return _regenerator().w(function(_context447){while(1)switch(_context447.n){case 0:drmController.setBufferingDrmInfo(drmInfo);_context447.n=1;return emitEncrypted();case 1:expect(errorSpy).toHaveBeenCalledTimes(1);errorSpy.calls.reset();case 2:return _context447.a(2)}},_callee447)})))})});describe("when drmController is disposed",function(){it("does not create a session",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee448(){var licenseServerDeferred;return _regenerator().w(function(_context448){while(1)switch(_context448.n){case 0:licenseServerDeferred=new Deferred;drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:function licenseServer(){return licenseServerDeferred}})});drmController.setBufferingDrmInfo(drmInfo);_context448.n=1;return emitEncrypted();case 1:expect(drmController.activeSessions).toBe(0);drmController.dispose();licenseServerDeferred.resolve({serverCertificate:"cert"});_context448.n=2;return flushPromises();case 2:expect(drmController.activeSessions).toBe(0);case 3:return _context448.a(2)}},_callee448)})))})});describe("when initData is nullish",function(){it("emits an error event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee449(){return _regenerator().w(function(_context449){while(1)switch(_context449.n){case 0:logger.value.debug.calls.reset();drmController.setBufferingDrmInfo(drmInfo);_context449.n=1;return emitEncrypted(null);case 1:expectError("encrypted event provided null initData. Check CORS policies.");expect(mediaKeys.createSession).not.toHaveBeenCalled();case 2:return _context449.a(2)}},_callee449)})))});it("reuses sessions with matching initialization data",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee450(){return _regenerator().w(function(_context450){while(1)switch(_context450.n){case 0:drmController.setBufferingDrmInfo(drmInfo);_context450.n=1;return emitEncrypted(new Uint8Array([1,2,3]));case 1:expect(mediaKeys.createSession).toHaveBeenCalledTimes(1);mediaKeys.createSession.calls.reset();_context450.n=2;return emitEncrypted(new Uint8Array([1,2,3]));case 2:expect(mediaKeys.createSession).not.toHaveBeenCalled();_context450.n=3;return emitEncrypted(new Uint8Array([4,5,6]));case 3:expect(mediaKeys.createSession).toHaveBeenCalledTimes(1);case 4:return _context450.a(2)}},_callee450)})))});describe("when a session error event is observed",function(){it("redispatches the event when first",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee451(){var session;return _regenerator().w(function(_context451){while(1)switch(_context451.n){case 0:drmController.setBufferingDrmInfo(drmInfo);_context451.n=1;return emitEncrypted();case 1:session=getSession(0);expect(errorSpy).not.toHaveBeenCalled();session.dispatch("error",{target:drmController,error:new Error("expected")});expect(errorSpy).toHaveBeenCalledOnceWith({target:drmController,error:new Error("expected")});errorSpy.calls.reset();session.dispatch("error",{target:drmController,error:new Error("expected")});expect(errorSpy).not.toHaveBeenCalled();drmController.setBufferingDrmInfo(drmInfo);session.dispatch("error",{target:drmController,error:new Error("expected2")});expect(errorSpy).toHaveBeenCalledOnceWith({target:drmController,error:new Error("expected2")});errorSpy.calls.reset();case 2:return _context451.a(2)}},_callee451)})))});describe("when a session message event is observed",function(){it("calls the licenseProvider with resolved licenseServer options",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee452(){var message;return _regenerator().w(function(_context452){while(1)switch(_context452.n){case 0:drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty(_defineProperty(_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:function licenseServer(){return Promise.resolve({url:"http://example.com/widevine"})}}),"com.microsoft.playready"/* PLAY_READY */,{licenseServer:function licenseServer(){return{url:"http://example.com/playready"}}}),"com.apple.fps"/* FAIR_PLAY */,{licenseServer:{url:"http://example.com/fairplay"}}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(drmInfo);_context452.n=1;return emitEncrypted(new Uint8Array([1,2,3]),"cenc");case 1:message=new ArrayBuffer(1);_context452.n=2;return emitMessage(0,message);case 2:expect(licenseProvider).toHaveBeenCalledOnceWith("com.widevine.alpha"/* WIDEVINE */,{url:"http://example.com/widevine"},message);licenseProvider.calls.reset();mediaKeys.keySystem="com.microsoft.playready"/* PLAY_READY */;_context452.n=3;return emitMessage(0,message);case 3:expect(licenseProvider).toHaveBeenCalledOnceWith("com.microsoft.playready"/* PLAY_READY */,{url:"http://example.com/playready",init:{headers:any27(Object)}},message);licenseProvider.calls.reset();mediaKeys.keySystem="com.apple.fps"/* FAIR_PLAY */;_context452.n=4;return emitMessage(0,message);case 4:expect(licenseProvider).toHaveBeenCalledOnceWith("com.apple.fps"/* FAIR_PLAY */,{url:"http://example.com/fairplay"},message);case 5:return _context452.a(2)}},_callee452)})));describe("when license takes too long to resolve",function(){it("emits an error event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee453(){var message;return _regenerator().w(function(_context453){while(1)switch(_context453.n){case 0:drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:{url:"http://example.com/widevine"}}),licenseProvider:function licenseProvider(){return never}});errorSpy=createEventSpy(drmController,"error");drmController.setBufferingDrmInfo(drmInfo);_context453.n=1;return emitEncrypted(new Uint8Array([1,2,3]),"cenc");case 1:message=new ArrayBuffer(1);_context453.n=2;return emitMessage(0,message);case 2:_context453.n=3;return clock.tick(LICENSE_TIMEOUT);case 3:expectError("License provider timed out after 90s");case 4:return _context453.a(2)}},_callee453)})))});describe("when the key system is PlayReady",function(){it("calls the licenseProvider with unpacked license server options",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee454(){var setPlayReady,message,challenge,xml,_message;return _regenerator().w(function(_context454){while(1)switch(_context454.n){case 0:setPlayReady=function _setPlayReady(){drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.microsoft.playready"/* PLAY_READY */}]}));mediaKeys.keySystem="com.microsoft.playready"/* PLAY_READY */};drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.microsoft.playready"/* PLAY_READY */,{licenseServer:function licenseServer(){return{url:"http://example.com/playready",init:{headers:[["HeaderA","ValueA"]]}}}}),licenseProvider:licenseProvider});message=new ArrayBuffer(1);setPlayReady();_context454.n=1;return emitEncrypted();case 1:_context454.n=2;return emitMessage(0,message);case 2:expect(licenseProvider).toHaveBeenCalledOnceWith("com.microsoft.playready"/* PLAY_READY */,{url:"http://example.com/playready",init:{headers:{HeaderA:"ValueA","Content-Type":"text/xml; charset=utf-8"}}},message);licenseProvider.calls.reset();drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.microsoft.playready"/* PLAY_READY */,{licenseServer:function licenseServer(){return{url:"http://example.com/playready"}}}),licenseProvider:licenseProvider});challenge=new Uint8Array([1,2,3,4,5,6]).buffer;xml="<PlayReadyKeyMessage type=\"LicenseAcquisition\">\n <LicenseAcquisition Version=\"1\">\n <Challenge encoding=\"base64encoded\">".concat(bufferToBase64(challenge),"</Challenge>\n <HttpHeaders>\n <HttpHeader>\n <name>HeaderA</name>\n <value>ValueA</value>\n </HttpHeader>\n <HttpHeader>\n <name>HeaderB</name>\n <value>ValueB</value>\n </HttpHeader>\n </HttpHeaders>\n </LicenseAcquisition>\n </PlayReadyKeyMessage>");_message=utf16ToUint16Array(xml);setPlayReady();_context454.n=3;return emitEncrypted();case 3:_context454.n=4;return emitMessage(0,_message.buffer);case 4:expect(licenseProvider).toHaveBeenCalledOnceWith("com.microsoft.playready"/* PLAY_READY */,{url:"http://example.com/playready",init:{headers:{HeaderA:"ValueA",HeaderB:"ValueB"}}},challenge);case 5:return _context454.a(2)}},_callee454)})))});it("updates the respective session with the license response",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee455(){var message1,message2,licenseResponsePromise1,licenseResponsePromise2,licenseResponse1,licenseResponse2;return _regenerator().w(function(_context455){while(1)switch(_context455.n){case 0:drmController.setBufferingDrmInfo(drmInfo);_context455.n=1;return emitEncrypted(new Uint8Array([1,2,3]),"cenc");case 1:_context455.n=2;return emitEncrypted(new Uint8Array([4,5,6]),"cenc");case 2:_context455.n=3;return emitEncrypted(new Uint8Array([4,5,6]),"cenc");case 3:expect(activeSessions).toBe(2);expect(drmController.activeSessions).toBe(2);message1=new ArrayBuffer(1);message2=new ArrayBuffer(2);licenseResponsePromise1=new Deferred;licenseResponsePromise2=new Deferred;licenseProvider.and.returnValues(licenseResponsePromise1,licenseResponsePromise2);_context455.n=4;return emitMessage(0,message1);case 4:expect(licenseProvider).toHaveBeenCalledOnceWith("com.widevine.alpha"/* WIDEVINE */,{},message1);licenseProvider.calls.reset();_context455.n=5;return emitMessage(1,message2);case 5:expect(licenseProvider).toHaveBeenCalledOnceWith("com.widevine.alpha"/* WIDEVINE */,{},message2);licenseResponse1=new Uint8Array(1);licenseResponse2=new Uint8Array(2);licenseResponsePromise1.resolve(licenseResponse1.buffer);licenseResponsePromise2.resolve(licenseResponse2.buffer);_context455.n=6;return flushPromises();case 6:expect(getSession(0).update).toHaveBeenCalledOnceWith(licenseResponse1.buffer);expect(getSession(1).update).toHaveBeenCalledOnceWith(licenseResponse2.buffer);case 7:return _context455.a(2)}},_callee455)})));describe("when the session is closed",function(){it("removes the closed session",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee456(){var sessionCloseSpy;return _regenerator().w(function(_context456){while(1)switch(_context456.n){case 0:drmController.setBufferingDrmInfo(drmInfo);_context456.n=1;return emitEncrypted(new Uint8Array([1,2,3]),"cenc");case 1:sessionCloseSpy=createEventSpy(drmController,"sessionClose");expect(drmController.activeSessions).toBe(1);getSession(0).dispatch("closed",{reason:"closed-by-application"});_context456.n=2;return flushPromises();case 2:expect(drmController.activeSessions).toBe(0);expect(sessionCloseSpy).toHaveBeenCalledTimes(1);case 3:return _context456.a(2)}},_callee456)})))});describe("when the session is disposed",function(){it("does not update the closed session",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee457(){var licenseResponsePromise,session;return _regenerator().w(function(_context457){while(1)switch(_context457.n){case 0:drmController.setBufferingDrmInfo(drmInfo);_context457.n=1;return emitEncrypted(new Uint8Array(0),"cenc");case 1:licenseResponsePromise=new Deferred;licenseProvider.and.returnValue(licenseResponsePromise);session=getSession(0);_context457.n=2;return emitMessage();case 2:session.disposed=true;licenseResponsePromise.resolve(new Uint8Array(1).buffer);_context457.n=3;return licenseResponsePromise;case 3:expect(session.update).not.toHaveBeenCalled();case 4:return _context457.a(2)}},_callee457)})))});describe("when the license provider rejects",function(){it("emits an error event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee458(){var initData,error;return _regenerator().w(function(_context458){while(1)switch(_context458.n){case 0:initData=new Uint8Array(0);drmController.setBufferingDrmInfo(drmInfo);_context458.n=1;return emitEncrypted(initData,"cenc");case 1:error=new Error("expected license error");licenseProvider.and.rejectWith(error);expect(errorSpy).not.toHaveBeenCalled();_context458.n=2;return emitMessage();case 2:expectError("expected license error");case 3:return _context458.a(2)}},_callee458)})))});describe("when message is not an ArrayBuffer",function(){it("emits an error event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee459(){var initData;return _regenerator().w(function(_context459){while(1)switch(_context459.n){case 0:drmController.setBufferingDrmInfo(drmInfo);initData=new Uint8Array(0);_context459.n=1;return emitEncrypted(initData,"cenc");case 1:_context459.n=2;return emitMessage(0,// @ts-expect-error Expected ArrayBuffer
|
|
1940
1940
|
null);case 2:expectError("Expected: instance of ArrayBuffer, but was: null. At: message");case 3:return _context459.a(2)}},_callee459)})))})});describe("serverCertificate",function(){describe("when keySystem is FAIR_PLAY_1_0",function(){it("initializes sessions using createFairPlaySessionInitData",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee460(){var initData,certBase64,expected;return _regenerator().w(function(_context460){while(1)switch(_context460.n){case 0:initData=base64ToByteArray("VAAAAHMAawBkADoALwAvADAAYgA1ADYAOAA5AGIAYgAtADQAMQA3ADEALQA5ADcAZQA1AC0AYwAyADgAMAAtADkAOQBmADcAYQBiAGUANAAwADAANABmAA==");certBase64="MIIE1TCCA72gAwIBAgIIFW3qWt9NdaQwDQYJKoZIhvcNAQEFBQAwfzELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MTMwMQYDVQQDDCpBcHBsZSBLZXkgU2VydmljZXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwODI3MTcwMjI3WhcNMTYwODI3MTcwMjI3WjBuMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQW1hem9uLmNvbTEWMBQGA1UECwwNRGlnaXRhbCBWaWRlbzEyMDAGA1UEAwwpRlBTIGZvciBBbWF6b24gSW5zdGFudCBWaWRlbyBhcHBsaWNhdGlvbnMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKTLDDVOTIYAGQO0nwblswQ3jjz4sc9tD7dYdxTgaAekFadAJdcsiOwCtudDLunhE3q4uNMQtAh4UExvzL9pUxhnzyeuAmHOTI8vUCCcVD2mt03w98EUFXpUU82s5EauWX8rrUI07FCdWdnD3ylj/eIVdbbQhKcvkvoipiCO4fedAgMBAAGjggHoMIIB5DAdBgNVHQ4EFgQUW+PdiCeqmpoNPwdJIng5MA465MYwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRj5EdUy4VxWUYsg6zMRDFkZwMsvjCB4gYDVR0gBIHaMIHXMIHUBgkqhkiG92NkBQEwgcYwgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5hcHBsZS5jb20va2V5c2VydmljZXMuY3JsMA4GA1UdDwEB/wQEAwIFIDAuBgsqhkiG92NkBg0BAwEB/wQcAXA1O2DFgVbri+9ptKoYMZ/p8CQpC6dMjuxHqzA4BgsqhkiG92NkBg0BBAEB/wQmASf94c8MkzPOIrjZGeyjlFaiDcQlWfRzqMe/ZMSbmtmEEWv/xP4wDQYJKoZIhvcNAQEFBQADggEBAIKRz+hZDC2v99OCaqJY/6+L1EUJscv2hP6MC5yKSte0rkwuJUYIFbzBUlmyq39Osli5ma+5afrCgTy0Rtw3QVPeZDI47zWfBVNQrgwh+eQ9Gg1pGM6V5MXP4SVsC6MkuygPfQr4fz0WDewfBBU6V13LZr7Y0jZ2AMmrit5W+i11uvL/6oKtA6AYsdX/MWt+IgBkt2prRwxf2S2w0rp41Azzg1a7lXeTqJ5uI22NkjmsjLw0PjnjOKyc0FR96iHW2VbCa+ev1fejVcCJolgVEPd/rZNrRomKvfkEjy1hbVtoxc2W9ndvLt7fU6I5MRCFIWGEHQfK5iYyZLuaX5CmGxg=";drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.apple.fps.1_0"/* FAIR_PLAY_1_0 */,{licenseServer:{serverCertificate:certBase64}}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.apple.fps"/* FAIR_PLAY */}]}));mediaKeys.keySystem="com.apple.fps.1_0"/* FAIR_PLAY_1_0 */;_context460.n=1;return emitEncrypted(initData,"cenc");case 1:expected="VAAAAHMAawBkADoALwAvADAAYgA1ADYAOAA5AGIAYgAtADQAMQA3ADEALQA5ADcAZQA1AC0AYwAyADgAMAAtADkAOQBmADcAYQBiAGUANAAwADAANABmAEgAAAAwAGIANQA2ADgAOQBiAGIALQA0ADEANwAxAC0AOQA3AGUANQAtAGMAMgA4ADAALQA5ADkAZgA3AGEAYgBlADQAMAAwADQAZgDZBAAAMIIE1TCCA72gAwIBAgIIFW3qWt9NdaQwDQYJKoZIhvcNAQEFBQAwfzELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MTMwMQYDVQQDDCpBcHBsZSBLZXkgU2VydmljZXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwODI3MTcwMjI3WhcNMTYwODI3MTcwMjI3WjBuMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQW1hem9uLmNvbTEWMBQGA1UECwwNRGlnaXRhbCBWaWRlbzEyMDAGA1UEAwwpRlBTIGZvciBBbWF6b24gSW5zdGFudCBWaWRlbyBhcHBsaWNhdGlvbnMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKTLDDVOTIYAGQO0nwblswQ3jjz4sc9tD7dYdxTgaAekFadAJdcsiOwCtudDLunhE3q4uNMQtAh4UExvzL9pUxhnzyeuAmHOTI8vUCCcVD2mt03w98EUFXpUU82s5EauWX8rrUI07FCdWdnD3ylj/eIVdbbQhKcvkvoipiCO4fedAgMBAAGjggHoMIIB5DAdBgNVHQ4EFgQUW+PdiCeqmpoNPwdJIng5MA465MYwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRj5EdUy4VxWUYsg6zMRDFkZwMsvjCB4gYDVR0gBIHaMIHXMIHUBgkqhkiG92NkBQEwgcYwgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5hcHBsZS5jb20va2V5c2VydmljZXMuY3JsMA4GA1UdDwEB/wQEAwIFIDAuBgsqhkiG92NkBg0BAwEB/wQcAXA1O2DFgVbri+9ptKoYMZ/p8CQpC6dMjuxHqzA4BgsqhkiG92NkBg0BBAEB/wQmASf94c8MkzPOIrjZGeyjlFaiDcQlWfRzqMe/ZMSbmtmEEWv/xP4wDQYJKoZIhvcNAQEFBQADggEBAIKRz+hZDC2v99OCaqJY/6+L1EUJscv2hP6MC5yKSte0rkwuJUYIFbzBUlmyq39Osli5ma+5afrCgTy0Rtw3QVPeZDI47zWfBVNQrgwh+eQ9Gg1pGM6V5MXP4SVsC6MkuygPfQr4fz0WDewfBBU6V13LZr7Y0jZ2AMmrit5W+i11uvL/6oKtA6AYsdX/MWt+IgBkt2prRwxf2S2w0rp41Azzg1a7lXeTqJ5uI22NkjmsjLw0PjnjOKyc0FR96iHW2VbCa+ev1fejVcCJolgVEPd/rZNrRomKvfkEjy1hbVtoxc2W9ndvLt7fU6I5MRCFIWGEHQfK5iYyZLuaX5CmGxg=";expect(mediaKeys.createSession).toHaveBeenCalledOnceWith(drmInfo.mimeType,"cenc",base64ToByteArray(expected));case 2:return _context460.a(2)}},_callee460)})));it("accepts ArrayBuffer serverCertificate",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee461(){var initData,certBase64,certBuffer,expected;return _regenerator().w(function(_context461){while(1)switch(_context461.n){case 0:initData=base64ToByteArray("VAAAAHMAawBkADoALwAvADAAYgA1ADYAOAA5AGIAYgAtADQAMQA3ADEALQA5ADcAZQA1AC0AYwAyADgAMAAtADkAOQBmADcAYQBiAGUANAAwADAANABmAA==");certBase64="MIIE1TCCA72gAwIBAgIIFW3qWt9NdaQwDQYJKoZIhvcNAQEFBQAwfzELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MTMwMQYDVQQDDCpBcHBsZSBLZXkgU2VydmljZXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwODI3MTcwMjI3WhcNMTYwODI3MTcwMjI3WjBuMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQW1hem9uLmNvbTEWMBQGA1UECwwNRGlnaXRhbCBWaWRlbzEyMDAGA1UEAwwpRlBTIGZvciBBbWF6b24gSW5zdGFudCBWaWRlbyBhcHBsaWNhdGlvbnMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKTLDDVOTIYAGQO0nwblswQ3jjz4sc9tD7dYdxTgaAekFadAJdcsiOwCtudDLunhE3q4uNMQtAh4UExvzL9pUxhnzyeuAmHOTI8vUCCcVD2mt03w98EUFXpUU82s5EauWX8rrUI07FCdWdnD3ylj/eIVdbbQhKcvkvoipiCO4fedAgMBAAGjggHoMIIB5DAdBgNVHQ4EFgQUW+PdiCeqmpoNPwdJIng5MA465MYwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRj5EdUy4VxWUYsg6zMRDFkZwMsvjCB4gYDVR0gBIHaMIHXMIHUBgkqhkiG92NkBQEwgcYwgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5hcHBsZS5jb20va2V5c2VydmljZXMuY3JsMA4GA1UdDwEB/wQEAwIFIDAuBgsqhkiG92NkBg0BAwEB/wQcAXA1O2DFgVbri+9ptKoYMZ/p8CQpC6dMjuxHqzA4BgsqhkiG92NkBg0BBAEB/wQmASf94c8MkzPOIrjZGeyjlFaiDcQlWfRzqMe/ZMSbmtmEEWv/xP4wDQYJKoZIhvcNAQEFBQADggEBAIKRz+hZDC2v99OCaqJY/6+L1EUJscv2hP6MC5yKSte0rkwuJUYIFbzBUlmyq39Osli5ma+5afrCgTy0Rtw3QVPeZDI47zWfBVNQrgwh+eQ9Gg1pGM6V5MXP4SVsC6MkuygPfQr4fz0WDewfBBU6V13LZr7Y0jZ2AMmrit5W+i11uvL/6oKtA6AYsdX/MWt+IgBkt2prRwxf2S2w0rp41Azzg1a7lXeTqJ5uI22NkjmsjLw0PjnjOKyc0FR96iHW2VbCa+ev1fejVcCJolgVEPd/rZNrRomKvfkEjy1hbVtoxc2W9ndvLt7fU6I5MRCFIWGEHQfK5iYyZLuaX5CmGxg=";certBuffer=base64ToByteArray(certBase64);drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.apple.fps.1_0"/* FAIR_PLAY_1_0 */,{licenseServer:{serverCertificate:certBuffer.buffer}}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.apple.fps"/* FAIR_PLAY */}]}));mediaKeys.keySystem="com.apple.fps.1_0"/* FAIR_PLAY_1_0 */;_context461.n=1;return emitEncrypted(initData,"cenc");case 1:expected="VAAAAHMAawBkADoALwAvADAAYgA1ADYAOAA5AGIAYgAtADQAMQA3ADEALQA5ADcAZQA1AC0AYwAyADgAMAAtADkAOQBmADcAYQBiAGUANAAwADAANABmAEgAAAAwAGIANQA2ADgAOQBiAGIALQA0ADEANwAxAC0AOQA3AGUANQAtAGMAMgA4ADAALQA5ADkAZgA3AGEAYgBlADQAMAAwADQAZgDZBAAAMIIE1TCCA72gAwIBAgIIFW3qWt9NdaQwDQYJKoZIhvcNAQEFBQAwfzELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MTMwMQYDVQQDDCpBcHBsZSBLZXkgU2VydmljZXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwODI3MTcwMjI3WhcNMTYwODI3MTcwMjI3WjBuMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQW1hem9uLmNvbTEWMBQGA1UECwwNRGlnaXRhbCBWaWRlbzEyMDAGA1UEAwwpRlBTIGZvciBBbWF6b24gSW5zdGFudCBWaWRlbyBhcHBsaWNhdGlvbnMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKTLDDVOTIYAGQO0nwblswQ3jjz4sc9tD7dYdxTgaAekFadAJdcsiOwCtudDLunhE3q4uNMQtAh4UExvzL9pUxhnzyeuAmHOTI8vUCCcVD2mt03w98EUFXpUU82s5EauWX8rrUI07FCdWdnD3ylj/eIVdbbQhKcvkvoipiCO4fedAgMBAAGjggHoMIIB5DAdBgNVHQ4EFgQUW+PdiCeqmpoNPwdJIng5MA465MYwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRj5EdUy4VxWUYsg6zMRDFkZwMsvjCB4gYDVR0gBIHaMIHXMIHUBgkqhkiG92NkBQEwgcYwgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5hcHBsZS5jb20va2V5c2VydmljZXMuY3JsMA4GA1UdDwEB/wQEAwIFIDAuBgsqhkiG92NkBg0BAwEB/wQcAXA1O2DFgVbri+9ptKoYMZ/p8CQpC6dMjuxHqzA4BgsqhkiG92NkBg0BBAEB/wQmASf94c8MkzPOIrjZGeyjlFaiDcQlWfRzqMe/ZMSbmtmEEWv/xP4wDQYJKoZIhvcNAQEFBQADggEBAIKRz+hZDC2v99OCaqJY/6+L1EUJscv2hP6MC5yKSte0rkwuJUYIFbzBUlmyq39Osli5ma+5afrCgTy0Rtw3QVPeZDI47zWfBVNQrgwh+eQ9Gg1pGM6V5MXP4SVsC6MkuygPfQr4fz0WDewfBBU6V13LZr7Y0jZ2AMmrit5W+i11uvL/6oKtA6AYsdX/MWt+IgBkt2prRwxf2S2w0rp41Azzg1a7lXeTqJ5uI22NkjmsjLw0PjnjOKyc0FR96iHW2VbCa+ev1fejVcCJolgVEPd/rZNrRomKvfkEjy1hbVtoxc2W9ndvLt7fU6I5MRCFIWGEHQfK5iYyZLuaX5CmGxg=";expect(mediaKeys.createSession).toHaveBeenCalledOnceWith(drmInfo.mimeType,"cenc",base64ToByteArray(expected));case 2:return _context461.a(2)}},_callee461)})));describe("and certificate data was not configured",function(){it("emits an error event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee462(){var initData;return _regenerator().w(function(_context462){while(1)switch(_context462.n){case 0:initData=new Uint8Array(0);drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.apple.fps"/* FAIR_PLAY */}]}));mediaKeys.keySystem="com.apple.fps.1_0"/* FAIR_PLAY_1_0 */;_context462.n=1;return emitEncrypted(initData,"cenc");case 1:expectError("FairPlay requires certificate data");case 2:return _context462.a(2)}},_callee462)})))});describe("with initDataTransformer",function(){it("uses custom transform instead of default",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee463(){var initData,certBase64,customResult,transform;return _regenerator().w(function(_context463){while(1)switch(_context463.n){case 0:initData=base64ToByteArray("VAAAAHMAawBkADoALwAvADAAYgA1ADYAOAA5AGIAYgAtADQAMQA3ADEALQA5ADcAZQA1AC0AYwAyADgAMAAtADkAOQBmADcAYQBiAGUANAAwADAANABmAA==");certBase64="AQID";customResult=new Uint8Array([9,9,9]);transform=createSpy30("initDataTransformer").and.returnValue(customResult);drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.apple.fps.1_0"/* FAIR_PLAY_1_0 */,{licenseServer:{serverCertificate:certBase64},initDataTransformer:transform}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.apple.fps"/* FAIR_PLAY */}]}));mediaKeys.keySystem="com.apple.fps.1_0"/* FAIR_PLAY_1_0 */;_context463.n=1;return emitEncrypted(initData,"cenc");case 1:expect(transform).toHaveBeenCalledOnceWith(any27(Uint8Array),"cenc",objectContaining22({mimeType:drmInfo.mimeType}));expect(mediaKeys.createSession).toHaveBeenCalledOnceWith(drmInfo.mimeType,"cenc",customResult);case 2:return _context463.a(2)}},_callee463)})));it("uses custom transform with BufferSource certificate",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee464(){var initData,certBuffer,customResult,transform;return _regenerator().w(function(_context464){while(1)switch(_context464.n){case 0:initData=base64ToByteArray("VAAAAHMAawBkADoALwAvADAAYgA1ADYAOAA5AGIAYgAtADQAMQA3ADEALQA5ADcAZQA1AC0AYwAyADgAMAAtADkAOQBmADcAYQBiAGUANAAwADAANABmAA==");certBuffer=new Uint8Array([1,2,3]);customResult=new Uint8Array([9,9,9]);transform=createSpy30("initDataTransformer").and.returnValue(customResult);drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.apple.fps.1_0"/* FAIR_PLAY_1_0 */,{licenseServer:{serverCertificate:certBuffer.buffer},initDataTransformer:transform}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.apple.fps"/* FAIR_PLAY */}]}));mediaKeys.keySystem="com.apple.fps.1_0"/* FAIR_PLAY_1_0 */;_context464.n=1;return emitEncrypted(initData,"cenc");case 1:expect(transform).toHaveBeenCalledOnceWith(any27(Uint8Array),"cenc",objectContaining22({mimeType:drmInfo.mimeType}));expect(mediaKeys.createSession).toHaveBeenCalledOnceWith(drmInfo.mimeType,"cenc",customResult);case 2:return _context464.a(2)}},_callee464)})));it("uses custom transform with non-FairPlay key system",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee465(){var initData,customResult,transform;return _regenerator().w(function(_context465){while(1)switch(_context465.n){case 0:initData=new Uint8Array(16);customResult=new Uint8Array([7,7,7]);transform=createSpy30("initDataTransformer").and.returnValue(customResult);drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:{},initDataTransformer:transform}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(drmInfo);_context465.n=1;return emitEncrypted(initData);case 1:expect(transform).toHaveBeenCalledOnceWith(any27(Uint8Array),"cenc",objectContaining22({mimeType:drmInfo.mimeType}));expect(mediaKeys.createSession).toHaveBeenCalledOnceWith(drmInfo.mimeType,"cenc",customResult);case 2:return _context465.a(2)}},_callee465)})));it("uses default createFairPlaySessionInitData when initDataTransformer is not set",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee466(){var initData,certBase64,expected;return _regenerator().w(function(_context466){while(1)switch(_context466.n){case 0:initData=base64ToByteArray("VAAAAHMAawBkADoALwAvADAAYgA1ADYAOAA5AGIAYgAtADQAMQA3ADEALQA5ADcAZQA1AC0AYwAyADgAMAAtADkAOQBmADcAYQBiAGUANAAwADAANABmAA==");certBase64="MIIE1TCCA72gAwIBAgIIFW3qWt9NdaQwDQYJKoZIhvcNAQEFBQAwfzELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MTMwMQYDVQQDDCpBcHBsZSBLZXkgU2VydmljZXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwODI3MTcwMjI3WhcNMTYwODI3MTcwMjI3WjBuMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQW1hem9uLmNvbTEWMBQGA1UECwwNRGlnaXRhbCBWaWRlbzEyMDAGA1UEAwwpRlBTIGZvciBBbWF6b24gSW5zdGFudCBWaWRlbyBhcHBsaWNhdGlvbnMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKTLDDVOTIYAGQO0nwblswQ3jjz4sc9tD7dYdxTgaAekFadAJdcsiOwCtudDLunhE3q4uNMQtAh4UExvzL9pUxhnzyeuAmHOTI8vUCCcVD2mt03w98EUFXpUU82s5EauWX8rrUI07FCdWdnD3ylj/eIVdbbQhKcvkvoipiCO4fedAgMBAAGjggHoMIIB5DAdBgNVHQ4EFgQUW+PdiCeqmpoNPwdJIng5MA465MYwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRj5EdUy4VxWUYsg6zMRDFkZwMsvjCB4gYDVR0gBIHaMIHXMIHUBgkqhkiG92NkBQEwgcYwgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5hcHBsZS5jb20va2V5c2VydmljZXMuY3JsMA4GA1UdDwEB/wQEAwIFIDAuBgsqhkiG92NkBg0BAwEB/wQcAXA1O2DFgVbri+9ptKoYMZ/p8CQpC6dMjuxHqzA4BgsqhkiG92NkBg0BBAEB/wQmASf94c8MkzPOIrjZGeyjlFaiDcQlWfRzqMe/ZMSbmtmEEWv/xP4wDQYJKoZIhvcNAQEFBQADggEBAIKRz+hZDC2v99OCaqJY/6+L1EUJscv2hP6MC5yKSte0rkwuJUYIFbzBUlmyq39Osli5ma+5afrCgTy0Rtw3QVPeZDI47zWfBVNQrgwh+eQ9Gg1pGM6V5MXP4SVsC6MkuygPfQr4fz0WDewfBBU6V13LZr7Y0jZ2AMmrit5W+i11uvL/6oKtA6AYsdX/MWt+IgBkt2prRwxf2S2w0rp41Azzg1a7lXeTqJ5uI22NkjmsjLw0PjnjOKyc0FR96iHW2VbCa+ev1fejVcCJolgVEPd/rZNrRomKvfkEjy1hbVtoxc2W9ndvLt7fU6I5MRCFIWGEHQfK5iYyZLuaX5CmGxg=";drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.apple.fps.1_0"/* FAIR_PLAY_1_0 */,{licenseServer:{serverCertificate:certBase64}}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.apple.fps"/* FAIR_PLAY */}]}));mediaKeys.keySystem="com.apple.fps.1_0"/* FAIR_PLAY_1_0 */;_context466.n=1;return emitEncrypted(initData,"cenc");case 1:expected="VAAAAHMAawBkADoALwAvADAAYgA1ADYAOAA5AGIAYgAtADQAMQA3ADEALQA5ADcAZQA1AC0AYwAyADgAMAAtADkAOQBmADcAYQBiAGUANAAwADAANABmAEgAAAAwAGIANQA2ADgAOQBiAGIALQA0ADEANwAxAC0AOQA3AGUANQAtAGMAMgA4ADAALQA5ADkAZgA3AGEAYgBlADQAMAAwADQAZgDZBAAAMIIE1TCCA72gAwIBAgIIFW3qWt9NdaQwDQYJKoZIhvcNAQEFBQAwfzELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MTMwMQYDVQQDDCpBcHBsZSBLZXkgU2VydmljZXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwODI3MTcwMjI3WhcNMTYwODI3MTcwMjI3WjBuMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQW1hem9uLmNvbTEWMBQGA1UECwwNRGlnaXRhbCBWaWRlbzEyMDAGA1UEAwwpRlBTIGZvciBBbWF6b24gSW5zdGFudCBWaWRlbyBhcHBsaWNhdGlvbnMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKTLDDVOTIYAGQO0nwblswQ3jjz4sc9tD7dYdxTgaAekFadAJdcsiOwCtudDLunhE3q4uNMQtAh4UExvzL9pUxhnzyeuAmHOTI8vUCCcVD2mt03w98EUFXpUU82s5EauWX8rrUI07FCdWdnD3ylj/eIVdbbQhKcvkvoipiCO4fedAgMBAAGjggHoMIIB5DAdBgNVHQ4EFgQUW+PdiCeqmpoNPwdJIng5MA465MYwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRj5EdUy4VxWUYsg6zMRDFkZwMsvjCB4gYDVR0gBIHaMIHXMIHUBgkqhkiG92NkBQEwgcYwgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5hcHBsZS5jb20va2V5c2VydmljZXMuY3JsMA4GA1UdDwEB/wQEAwIFIDAuBgsqhkiG92NkBg0BAwEB/wQcAXA1O2DFgVbri+9ptKoYMZ/p8CQpC6dMjuxHqzA4BgsqhkiG92NkBg0BBAEB/wQmASf94c8MkzPOIrjZGeyjlFaiDcQlWfRzqMe/ZMSbmtmEEWv/xP4wDQYJKoZIhvcNAQEFBQADggEBAIKRz+hZDC2v99OCaqJY/6+L1EUJscv2hP6MC5yKSte0rkwuJUYIFbzBUlmyq39Osli5ma+5afrCgTy0Rtw3QVPeZDI47zWfBVNQrgwh+eQ9Gg1pGM6V5MXP4SVsC6MkuygPfQr4fz0WDewfBBU6V13LZr7Y0jZ2AMmrit5W+i11uvL/6oKtA6AYsdX/MWt+IgBkt2prRwxf2S2w0rp41Azzg1a7lXeTqJ5uI22NkjmsjLw0PjnjOKyc0FR96iHW2VbCa+ev1fejVcCJolgVEPd/rZNrRomKvfkEjy1hbVtoxc2W9ndvLt7fU6I5MRCFIWGEHQfK5iYyZLuaX5CmGxg=";expect(mediaKeys.createSession).toHaveBeenCalledOnceWith(drmInfo.mimeType,"cenc",base64ToByteArray(expected));case 2:return _context466.a(2)}},_callee466)})))})});describe("when keySystem is not FAIR_PLAY_1_0",function(){it("sets the server certificate on media keys from base64 string",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee467(){var initData,certBase64;return _regenerator().w(function(_context467){while(1)switch(_context467.n){case 0:initData=new Uint8Array(16);certBase64="AQID";drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:{serverCertificate:certBase64}}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(drmInfo);_context467.n=1;return emitEncrypted(initData);case 1:expect(mediaKeys.setServerCertificate).toHaveBeenCalledOnceWith(base64ToByteArray(certBase64));expect(mediaKeys.createSession).toHaveBeenCalledOnceWith(drmInfo.mimeType,"cenc",initData);case 2:return _context467.a(2)}},_callee467)})));it("sets the server certificate on media keys from ArrayBuffer",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee468(){var initData,certBuffer;return _regenerator().w(function(_context468){while(1)switch(_context468.n){case 0:initData=new Uint8Array(16);certBuffer=new Uint8Array([1,2,3]).buffer;drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:{serverCertificate:certBuffer}}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(drmInfo);_context468.n=1;return emitEncrypted(initData);case 1:expect(mediaKeys.setServerCertificate).toHaveBeenCalledOnceWith(new Uint8Array([1,2,3]));case 2:return _context468.a(2)}},_callee468)})))})});describe("isSupported",function(){it("resolves to true if key access can be created from the given DrmInfo",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee469(){return _regenerator().w(function(_context469){while(1)switch(_context469.n){case 0:_context469.n=1;return expectAsync(drmController.isSupported(drmInfo)).toBeResolvedTo({supported:true,persistentState:false});case 1:expect(commonEme.requestMediaKeySystemAccess).toHaveBeenCalledTimes(1);case 2:return _context469.a(2)}},_callee469)})));it("resolves to false if key access cannot be created from the given DrmInfo",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee470(){return _regenerator().w(function(_context470){while(1)switch(_context470.n){case 0:commonEme.requestMediaKeySystemAccess.and.rejectWith(new Error("not supported"));_context470.n=1;return expectAsync(drmController.isSupported(drmInfo)).toBeResolvedTo({supported:false,persistentState:false});case 1:expect(getKeySystemsRequested()).toEqual(["com.widevine.alpha"/* WIDEVINE */,"com.microsoft.playready"/* PLAY_READY */]);case 2:return _context470.a(2)}},_callee470)})))});describe("isEmeSupported",function(){it("returns true if commonEme dependency is provided",function(){expect(drmController.isEmeSupported()).toBeTrue();drmController=new DrmControllerImpl(__spreadProps(__spreadValues({},deps),{commonEme:null}),{licenseProvider:licenseProvider});expect(drmController.isEmeSupported()).toBeFalse()})});describe("closeSessions",function(){it("clears active sessions",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee471(){var sessionCloseSpy;return _regenerator().w(function(_context471){while(1)switch(_context471.n){case 0:sessionCloseSpy=createEventSpy(drmController,"sessionClose");expect(drmController.activeSessions).toBe(0);drmController.setBufferingDrmInfo(drmInfo);_context471.n=1;return emitEncrypted();case 1:expect(drmController.activeSessions).toBe(1);drmController.closeSessions();_context471.n=2;return flushPromises();case 2:expect(drmController.activeSessions).toBe(0);expect(activeSessions).toBe(0);expect(sessionCloseSpy).toHaveBeenCalledTimes(1);case 3:return _context471.a(2)}},_callee471)})))});describe("reset",function(){it("clears error state",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee472(){return _regenerator().w(function(_context472){while(1)switch(_context472.n){case 0:licenseProvider.and.rejectWith(new Error("test error"));drmController.setBufferingDrmInfo(drmInfo);_context472.n=1;return emitEncrypted();case 1:_context472.n=2;return emitMessage();case 2:expect(drmController.error).not.toBeNull();errorSpy.calls.reset();drmController.reset();expect(drmController.error).toBeNull();case 3:return _context472.a(2)}},_callee472)})));it("emits reset event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee473(){var resetSpy;return _regenerator().w(function(_context473){while(1)switch(_context473.n){case 0:resetSpy=jasmine.createSpy("reset");drmController.on("reset",resetSpy);licenseProvider.and.rejectWith(new Error("test error"));drmController.setBufferingDrmInfo(drmInfo);_context473.n=1;return emitEncrypted();case 1:_context473.n=2;return emitMessage();case 2:_context473.n=3;return flushPromises();case 3:errorSpy.calls.reset();drmController.reset();expect(resetSpy).toHaveBeenCalledOnceWith({});case 4:return _context473.a(2)}},_callee473)})));describe("when media is in a decoding error state",function(){it("does not attempt to retry license request",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee474(){var decodingError;return _regenerator().w(function(_context474){while(1)switch(_context474.n){case 0:licenseProvider.and.rejectWith(new Error("license failed"));drmController.setBufferingDrmInfo(drmInfo);_context474.n=1;return emitEncrypted();case 1:_context474.n=2;return emitMessage();case 2:_context474.n=3;return flushPromises();case 3:expectError("license failed");decodingError=new MockMediaError;decodingError.code=ReportableMediaError.MEDIA_ERR_DECODE;media.error=decodingError;licenseProvider.calls.reset();drmController.reset();_context474.n=4;return flushPromises();case 4:expect(licenseProvider).not.toHaveBeenCalled();case 5:return _context474.a(2)}},_callee474)})))});describe("when media is not in a decoding error state",function(){it("retries license request",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee475(){return _regenerator().w(function(_context475){while(1)switch(_context475.n){case 0:licenseProvider.and.rejectWith(new Error("license failed"));drmController.setBufferingDrmInfo(drmInfo);_context475.n=1;return emitEncrypted();case 1:_context475.n=2;return emitMessage();case 2:expectError("license failed");media.error=null;licenseProvider.and.resolveTo(new Uint8Array([1,2,3]).buffer);licenseProvider.calls.reset();drmController.reset();_context475.n=3;return flushPromises();case 3:expect(licenseProvider).toHaveBeenCalledTimes(1);case 4:return _context475.a(2)}},_callee475)})))})});describe("configure",function(){it("overrides base options provided from the constructor",function(){drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{priority:1,audio:{robustness:"SW_SECURE_CRYPTO"/* SW_SECURE_CRYPTO */}}),licenseProvider:licenseProvider});drmController.configure({keySystems:_defineProperty(_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{priority:2,video:{robustness:"HW_SECURE_DECODE"/* HW_SECURE_DECODE */}}),"com.microsoft.playready"/* PLAY_READY */,{priority:3})});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */},{keySystem:"com.microsoft.playready"/* PLAY_READY */}]}));commonEme.requestMediaKeySystemAccess.and.callFake(function(keySystem){return keySystem==="com.microsoft.playready"/* PLAY_READY */?Promise.resolve(access):Promise.reject(new Error("not supported"))});drmController.initializeForPlayback(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */,pssh:"123"},{keySystem:"com.microsoft.playready"/* PLAY_READY */,pssh:"456"}]}));expect(getKeySystemsRequested()[0]).toBe("com.microsoft.playready"/* PLAY_READY */)});it("merges keySystems with base options",function(){drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{priority:1,audio:{robustness:"SW_SECURE_CRYPTO"/* SW_SECURE_CRYPTO */}}),licenseProvider:licenseProvider});drmController.configure({keySystems:_defineProperty({},"com.microsoft.playready"/* PLAY_READY */,{priority:2})});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */},{keySystem:"com.microsoft.playready"/* PLAY_READY */}]}));commonEme.requestMediaKeySystemAccess.and.rejectWith(new Error("not supported"));drmController.initializeForPlayback(__spreadProps(__spreadValues({},drmInfo),{contentProtections:[{keySystem:"com.widevine.alpha"/* WIDEVINE */,pssh:"123"},{keySystem:"com.microsoft.playready"/* PLAY_READY */,pssh:"456"}]}));expect(getKeySystemsRequested()).toEqual(["com.microsoft.playready"/* PLAY_READY */// higher priority
|
|
1941
1941
|
])})});describe("wildcard key system configuration",function(){it("uses * as wildcard for key system configuration",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee476(){return _regenerator().w(function(_context476){while(1)switch(_context476.n){case 0:drmController=new DrmControllerImpl(deps,{keySystems:{"*":{audio:{robustness:"HW_SECURE_CRYPTO"/* HW_SECURE_CRYPTO */},video:{robustness:"HW_SECURE_DECODE"/* HW_SECURE_DECODE */}}},licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentType:"audio",mimeType:"audio/mp4"}));_context476.n=1;return emitEncrypted();case 1:expect(commonEme.requestMediaKeySystemAccess).toHaveBeenCalledWith("com.widevine.alpha"/* WIDEVINE */,[{initDataTypes:["cenc"],audioCapabilities:[{contentType:"audio/mp4",encryptionScheme:"cenc",robustness:"HW_SECURE_CRYPTO"/* HW_SECURE_CRYPTO */}]}]);case 2:return _context476.a(2)}},_callee476)})));it("prefers specific key system configuration over wildcard",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee477(){return _regenerator().w(function(_context477){while(1)switch(_context477.n){case 0:drmController=new DrmControllerImpl(deps,{keySystems:_defineProperty({"*":{audio:{robustness:"SW_SECURE_CRYPTO"/* SW_SECURE_CRYPTO */}}},"com.widevine.alpha"/* WIDEVINE */,{audio:{robustness:"HW_SECURE_DECODE"/* HW_SECURE_DECODE */}}),licenseProvider:licenseProvider});drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentType:"audio",mimeType:"audio/mp4"}));_context477.n=1;return emitEncrypted();case 1:expect(commonEme.requestMediaKeySystemAccess).toHaveBeenCalledWith("com.widevine.alpha"/* WIDEVINE */,[{initDataTypes:["cenc"],audioCapabilities:[{contentType:"audio/mp4",encryptionScheme:"cenc",robustness:"HW_SECURE_DECODE"/* HW_SECURE_DECODE */// specific config used
|
|
1942
|
-
}]}]);case 2:return _context477.a(2)}},_callee477)})))});describe("when a session has been created",function(){beforeEach(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1942
|
+
}]}]);case 2:return _context477.a(2)}},_callee477)})))});describe("ChromeOS verified media path",function(){var chromeOsUserAgent="Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36";var chromeUserAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36";it("adds avc1 video capabilities for audio content on ChromeOS",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee478(){return _regenerator().w(function(_context478){while(1)switch(_context478.n){case 0:setUserAgent(chromeOsUserAgent);drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentType:"audio",mimeType:"audio/mp4"}));_context478.n=1;return emitEncrypted();case 1:expect(commonEme.requestMediaKeySystemAccess).toHaveBeenCalledOnceWith("com.widevine.alpha"/* WIDEVINE */,[{initDataTypes:["cenc"],audioCapabilities:[{contentType:"audio/mp4",encryptionScheme:"cenc",robustness:"SW_SECURE_CRYPTO"/* SW_SECURE_CRYPTO */}],videoCapabilities:[{contentType:"video/mp4; codecs=\"avc1.4d401f\"",robustness:"SW_SECURE_DECODE"/* SW_SECURE_DECODE */}]}]);case 2:return _context478.a(2)}},_callee478)})));it("does not add video capabilities for audio content off ChromeOS",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee479(){var config;return _regenerator().w(function(_context479){while(1)switch(_context479.n){case 0:setUserAgent(chromeUserAgent);drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentType:"audio",mimeType:"audio/mp4"}));_context479.n=1;return emitEncrypted();case 1:config=commonEme.requestMediaKeySystemAccess.calls.mostRecent().args[1][0];expect(config.videoCapabilities).toBeUndefined();case 2:return _context479.a(2)}},_callee479)})));it("does not alter video content capabilities on ChromeOS",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee480(){var config;return _regenerator().w(function(_context480){while(1)switch(_context480.n){case 0:setUserAgent(chromeOsUserAgent);drmController.setBufferingDrmInfo(__spreadProps(__spreadValues({},drmInfo),{contentType:"video",mimeType:"video/mp4"}));_context480.n=1;return emitEncrypted();case 1:config=commonEme.requestMediaKeySystemAccess.calls.mostRecent().args[1][0];expect(config.videoCapabilities).toEqual([{contentType:"video/mp4",encryptionScheme:"cenc",robustness:"SW_SECURE_CRYPTO"/* SW_SECURE_CRYPTO */}]);expect(config.audioCapabilities).toBeUndefined();case 2:return _context480.a(2)}},_callee480)})))});describe("when a session has been created",function(){beforeEach(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee481(){return _regenerator().w(function(_context481){while(1)switch(_context481.n){case 0:drmController.setBufferingDrmInfo(drmInfo);_context481.n=1;return emitEncrypted();case 1:return _context481.a(2)}},_callee481)})));it("clears media keys from the element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee482(){return _regenerator().w(function(_context482){while(1)switch(_context482.n){case 0:drmController.dispose();_context482.n=1;return flushPromises();case 1:expect(mediaKeys.clearFromElement).toHaveBeenCalledOnceWith(media);case 2:return _context482.a(2)}},_callee482)})));it("closes all sessions",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee483(){return _regenerator().w(function(_context483){while(1)switch(_context483.n){case 0:_context483.n=1;return emitEncrypted(new Uint8Array([1,2,3]));case 1:_context483.n=2;return emitEncrypted(new Uint8Array([4,5,6]));case 2:expect(drmController.activeSessions).toBe(3);drmController.dispose();_context483.n=3;return flushPromises();case 3:expect(drmController.activeSessions).toBe(0);expect(activeSessions).toBe(0);case 4:return _context483.a(2)}},_callee483)})))});describe("dispose",function(){it("removes handlers",function(){drmController.on("error",function(){});expect(drmController.hasAnyListeners()).toBeTrue();drmController.dispose();expect(drmController.hasAnyListeners()).toBeFalse()})});describe("licenseProvider fallback",function(){it("uses defaultLicenseProvider when no licenseProvider is provided",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee484(){return _regenerator().w(function(_context484){while(1)switch(_context484.n){case 0:drmController=new DrmControllerImpl(deps,{});errorSpy=createEventSpy(drmController,"error");drmController.setBufferingDrmInfo(drmInfo);_context484.n=1;return emitEncrypted();case 1:_context484.n=2;return emitMessage();case 2:expectError("Missing licenseServer url in DRM configuration for keySystem: com.widevine.alpha");case 3:return _context484.a(2)}},_callee484)})))})});// test/unit/drm/CommonEmeFactory.test.ts
|
|
1943
1943
|
function useStandardMediaKeys(){var originalMediaKeys=globalThis.MediaKeys;beforeEach(function(){globalThis.MediaKeys={}});afterEach(function(){globalThis.MediaKeys=originalMediaKeys})}function useMsMediaKeys(){var originalMSMediaKeys=globalThis.MSMediaKeys;beforeEach(function(){;globalThis.MSMediaKeys=MockMSMediaKeys});afterEach(function(){;globalThis.MSMediaKeys=originalMSMediaKeys})}describe("CommonEmeFactory",function(){beforeEach(function(){if(!isNode())pending("Cannot mock EME API outside Node")});describe("when WebKit EME is supported",function(){useWebKitMediaKeys(true);it("returns WebKitCommonEme instance",function(){expect(commonEmeFactory()).toBeInstanceOf(WebKitCommonEme)});describe("and standard EME is supported",function(){useStandardMediaKeys();it("returns WebKitCommonEme instance",function(){expect(commonEmeFactory()).toBeInstanceOf(WebKitCommonEme)})})});describe("when standard EME is supported",function(){useStandardMediaKeys();it("returns StandardMediaKeys",function(){expect(commonEmeFactory()).toBeInstanceOf(StandardCommonEme)})});describe("when MS EME is supported",function(){useMsMediaKeys();it("returns MSCommonEme",function(){expect(commonEmeFactory()).toBeInstanceOf(MsCommonEme)});describe("and standard EME is supported",function(){useStandardMediaKeys();it("returns StandardCommonEme",function(){expect(commonEmeFactory()).toBeInstanceOf(StandardCommonEme)})})})});// test/unit/drm/CencEncryptionScheme.test.ts
|
|
1944
1944
|
describe("parseCencEncryptionScheme",function(){it("returns null for invalid values",function(){expect(parseCencEncryptionScheme(null)).toBeNull();expect(parseCencEncryptionScheme("asd")).toBeNull()});it("returns parsed encryption scheme and version",function(){expect(parseCencEncryptionScheme("cenc")).toEqual({scheme:"cenc",version:null});expect(parseCencEncryptionScheme("cbcs")).toEqual({scheme:"cbcs",version:null});expect(parseCencEncryptionScheme("cenc:4")).toEqual({scheme:"cenc",version:4});expect(parseCencEncryptionScheme("cbcs:f")).toEqual({scheme:"cbcs",version:15});expect(parseCencEncryptionScheme("test")).toBeNull()})});// test/unit/drm/util/unpackPlayReadyChallenge.test.ts
|
|
1945
1945
|
describe("unpackPlayReadyChallenge",function(){describe("when the challenge is not packed",function(){it("returns the challenge as is and returns a content type header",function(){{var challenge=new Uint8Array([1,2,3,4]).buffer;expect(unpackPlayReadyChallenge(challenge)).toEqual({challenge:challenge,headers:{"Content-Type":"text/xml; charset=utf-8"}})}{var _challenge=new Uint8Array([1,2,3]).buffer;expect(unpackPlayReadyChallenge(_challenge)).toEqual({challenge:_challenge,headers:{"Content-Type":"text/xml; charset=utf-8"}})}})});describe("when the challenge is packed",function(){it("returns the unpacked challenge with parsed headers",function(){var challenge=new Uint8Array([1,2,3,4,5,6]).buffer;var xml="<PlayReadyKeyMessage type=\"LicenseAcquisition\">\n <LicenseAcquisition Version=\"1\">\n <Challenge encoding=\"base64encoded\">".concat(bufferToBase64(challenge),"</Challenge>\n <HttpHeaders>\n <HttpHeader>\n <name>Content-Type</name>\n <value>text/xml; charset=utf-8</value>\n </HttpHeader>\n <HttpHeader>\n <name>SOAPAction</name>\n <value>http://schemas.microsoft.com/DRM/etc/etc</value>\n </HttpHeader>\n </HttpHeaders>\n </LicenseAcquisition>\n </PlayReadyKeyMessage>");expect(unpackPlayReadyChallenge(utf16ToUint16Array(xml))).toEqual({headers:{"Content-Type":"text/xml; charset=utf-8",SOAPAction:"http://schemas.microsoft.com/DRM/etc/etc"},challenge:challenge})})})});describe("parsePlayReadyKeyMessage",function(){it("returns a parsed PlayReadyKeyMessage",function(){var message=parsePlayReadyKeyMessage("<PlayReadyKeyMessage type=\"LicenseAcquisition\">\n <LicenseAcquisition Version=\"1\">\n <Challenge encoding=\"base64encoded\">aabbccdd</Challenge>\n <HttpHeaders>\n <HttpHeader>\n <name>Content-Type</name>\n <value>text/xml; charset=utf-8</value>\n </HttpHeader>\n <HttpHeader>\n <name>SOAPAction</name>\n <value>http://schemas.microsoft.com/DRM/etc/etc</value>\n </HttpHeader>\n </HttpHeaders>\n </LicenseAcquisition>\n </PlayReadyKeyMessage>\n ");expect(message.toJSON()).toEqual({PlayReadyKeyMessage:{type:"LicenseAcquisition",LicenseAcquisition:{Version:1,Challenge:{encoding:"base64encoded",_content:"aabbccdd"},HttpHeaders:{HttpHeader:[{name:{_content:"Content-Type"},value:{_content:"text/xml; charset=utf-8"}},{name:{_content:"SOAPAction"},value:{_content:"http://schemas.microsoft.com/DRM/etc/etc"}}]}}}})})});// test/unit/drm/util/extractContentId.test.ts
|
|
1946
1946
|
describe("extractContentId",function(){function createContentIdByteArray(str){var uint16Array=utf16ToUint16Array(str);return new Uint8Array(uint16Array.buffer)}describe("with match",function(){it("matches",function(){expect(extractContentId(createContentIdByteArray("skd://example0"))).toBe("example0")})});describe("without match",function(){it("throws ValidationError",function(){expect(function(){extractContentId(new Uint8Array)}).toThrowError(ValidationError,"No contentId match");expect(function(){expect(extractContentId(createContentIdByteArray("skd://"))).toBe("example0")}).toThrowError(ValidationError,"No contentId match")})})});// test/unit/drm/util/createFairPlaySessionInitData.test.ts
|
|
1947
1947
|
describe("createFairPlaySessionInitData",function(){it("returns correctly formed Uint8Array",function(){var initData="VAAAAHMAawBkADoALwAvADAAYgA1ADYAOAA5AGIAYgAtADQAMQA3ADEALQA5ADcAZQA1AC0AYwAyADgAMAAtADkAOQBmADcAYQBiAGUANAAwADAANABmAA==";var contentId="0b5689bb-4171-97e5-c280-99f7abe4004f";var certificateData="MIIE1TCCA72gAwIBAgIIFW3qWt9NdaQwDQYJKoZIhvcNAQEFBQAwfzELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MTMwMQYDVQQDDCpBcHBsZSBLZXkgU2VydmljZXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwODI3MTcwMjI3WhcNMTYwODI3MTcwMjI3WjBuMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQW1hem9uLmNvbTEWMBQGA1UECwwNRGlnaXRhbCBWaWRlbzEyMDAGA1UEAwwpRlBTIGZvciBBbWF6b24gSW5zdGFudCBWaWRlbyBhcHBsaWNhdGlvbnMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKTLDDVOTIYAGQO0nwblswQ3jjz4sc9tD7dYdxTgaAekFadAJdcsiOwCtudDLunhE3q4uNMQtAh4UExvzL9pUxhnzyeuAmHOTI8vUCCcVD2mt03w98EUFXpUU82s5EauWX8rrUI07FCdWdnD3ylj/eIVdbbQhKcvkvoipiCO4fedAgMBAAGjggHoMIIB5DAdBgNVHQ4EFgQUW+PdiCeqmpoNPwdJIng5MA465MYwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRj5EdUy4VxWUYsg6zMRDFkZwMsvjCB4gYDVR0gBIHaMIHXMIHUBgkqhkiG92NkBQEwgcYwgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5hcHBsZS5jb20va2V5c2VydmljZXMuY3JsMA4GA1UdDwEB/wQEAwIFIDAuBgsqhkiG92NkBg0BAwEB/wQcAXA1O2DFgVbri+9ptKoYMZ/p8CQpC6dMjuxHqzA4BgsqhkiG92NkBg0BBAEB/wQmASf94c8MkzPOIrjZGeyjlFaiDcQlWfRzqMe/ZMSbmtmEEWv/xP4wDQYJKoZIhvcNAQEFBQADggEBAIKRz+hZDC2v99OCaqJY/6+L1EUJscv2hP6MC5yKSte0rkwuJUYIFbzBUlmyq39Osli5ma+5afrCgTy0Rtw3QVPeZDI47zWfBVNQrgwh+eQ9Gg1pGM6V5MXP4SVsC6MkuygPfQr4fz0WDewfBBU6V13LZr7Y0jZ2AMmrit5W+i11uvL/6oKtA6AYsdX/MWt+IgBkt2prRwxf2S2w0rp41Azzg1a7lXeTqJ5uI22NkjmsjLw0PjnjOKyc0FR96iHW2VbCa+ev1fejVcCJolgVEPd/rZNrRomKvfkEjy1hbVtoxc2W9ndvLt7fU6I5MRCFIWGEHQfK5iYyZLuaX5CmGxg=";var result="VAAAAHMAawBkADoALwAvADAAYgA1ADYAOAA5AGIAYgAtADQAMQA3ADEALQA5ADcAZQA1AC0AYwAyADgAMAAtADkAOQBmADcAYQBiAGUANAAwADAANABmAEgAAAAwAGIANQA2ADgAOQBiAGIALQA0ADEANwAxAC0AOQA3AGUANQAtAGMAMgA4ADAALQA5ADkAZgA3AGEAYgBlADQAMAAwADQAZgDZBAAAMIIE1TCCA72gAwIBAgIIFW3qWt9NdaQwDQYJKoZIhvcNAQEFBQAwfzELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MTMwMQYDVQQDDCpBcHBsZSBLZXkgU2VydmljZXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwODI3MTcwMjI3WhcNMTYwODI3MTcwMjI3WjBuMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQW1hem9uLmNvbTEWMBQGA1UECwwNRGlnaXRhbCBWaWRlbzEyMDAGA1UEAwwpRlBTIGZvciBBbWF6b24gSW5zdGFudCBWaWRlbyBhcHBsaWNhdGlvbnMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKTLDDVOTIYAGQO0nwblswQ3jjz4sc9tD7dYdxTgaAekFadAJdcsiOwCtudDLunhE3q4uNMQtAh4UExvzL9pUxhnzyeuAmHOTI8vUCCcVD2mt03w98EUFXpUU82s5EauWX8rrUI07FCdWdnD3ylj/eIVdbbQhKcvkvoipiCO4fedAgMBAAGjggHoMIIB5DAdBgNVHQ4EFgQUW+PdiCeqmpoNPwdJIng5MA465MYwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRj5EdUy4VxWUYsg6zMRDFkZwMsvjCB4gYDVR0gBIHaMIHXMIHUBgkqhkiG92NkBQEwgcYwgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5hcHBsZS5jb20va2V5c2VydmljZXMuY3JsMA4GA1UdDwEB/wQEAwIFIDAuBgsqhkiG92NkBg0BAwEB/wQcAXA1O2DFgVbri+9ptKoYMZ/p8CQpC6dMjuxHqzA4BgsqhkiG92NkBg0BBAEB/wQmASf94c8MkzPOIrjZGeyjlFaiDcQlWfRzqMe/ZMSbmtmEEWv/xP4wDQYJKoZIhvcNAQEFBQADggEBAIKRz+hZDC2v99OCaqJY/6+L1EUJscv2hP6MC5yKSte0rkwuJUYIFbzBUlmyq39Osli5ma+5afrCgTy0Rtw3QVPeZDI47zWfBVNQrgwh+eQ9Gg1pGM6V5MXP4SVsC6MkuygPfQr4fz0WDewfBBU6V13LZr7Y0jZ2AMmrit5W+i11uvL/6oKtA6AYsdX/MWt+IgBkt2prRwxf2S2w0rp41Azzg1a7lXeTqJ5uI22NkjmsjLw0PjnjOKyc0FR96iHW2VbCa+ev1fejVcCJolgVEPd/rZNrRomKvfkEjy1hbVtoxc2W9ndvLt7fU6I5MRCFIWGEHQfK5iYyZLuaX5CmGxg=";expect(createFairPlaySessionInitData(base64ToByteArray(initData),contentId,base64ToByteArray(certificateData))).toEqual(base64ToByteArray(result))})});// test/unit/drm/licenseProvider/defaultLicenseProvider.test.ts
|
|
1948
|
-
var any28=jasmine.any;var objectContaining23=jasmine.objectContaining;describe("defaultLicenseProvider",function(){describe("when serverOptions url is undefined",function(){it("rejects with a ValidationError",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1948
|
+
var any28=jasmine.any;var objectContaining23=jasmine.objectContaining;describe("defaultLicenseProvider",function(){describe("when serverOptions url is undefined",function(){it("rejects with a ValidationError",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee487(){return _regenerator().w(function(_context487){while(1)switch(_context487.n){case 0:_context487.n=1;return expectAsync(defaultLicenseProvider("com.widevine.alpha"/* WIDEVINE */,{},new ArrayBuffer(0))).toBeRejectedWithError(ValidationError,"Missing licenseServer url in DRM configuration for keySystem: com.widevine.alpha");case 1:return _context487.a(2)}},_callee487)})))});describe("when provided a license server url",function(){var requesterOverride=overrideGlobalInit(requesterWithRetryRef,function(){return new MockRequester});var requestSpy;beforeEach(function(){requestSpy=requesterOverride.value.request});it("performs a request with the url, init options, and challenge",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee488(){var arrayBuffer,mockResponse,challenge;return _regenerator().w(function(_context488){while(1)switch(_context488.n){case 0:arrayBuffer=new ArrayBuffer(0);mockResponse=new Response(arrayBuffer);requestSpy.and.returnValue(Promise.resolve(mockResponse));challenge=new ArrayBuffer(0);_context488.n=1;return expectAsync(defaultLicenseProvider("com.widevine.alpha"/* WIDEVINE */,{url:"https://example.com",init:{headers:{foo:"bar"}}},challenge,new Abort)).toBeResolvedTo(arrayBuffer);case 1:expect(requestSpy).toHaveBeenCalledOnceWith("https://example.com",objectContaining23({headers:{foo:"bar"},body:challenge,method:"POST"}),objectContaining23({abort:any28(Abort)}));case 2:return _context488.a(2)}},_callee488)})))})});// test/unit/drm/error/DrmError.test.ts
|
|
1949
1949
|
var objectContaining24=jasmine.objectContaining;var any29=jasmine.any;describe("DrmError",function(){it("is an instance of Error and DrmError",function(){expectPrototype(function(){return new DrmError("")},DrmError,ReportableError,Error)});it("is fatal by default",function(){expect(new DrmError("").level).toBe("fatal"/* FATAL */);expect(new DrmError("",{},ErrorOrigin.UNCAUGHT,"warn"/* WARN */).level).toBe("warn"/* WARN */)});describe("toStringTag",function(){it("returns the name",function(){expect(new DrmError("")[Symbol.toStringTag]).toBe("DrmError")})});describe("toJSON",function(){it("provides a serializable representation",function(){expect(new DrmError("message",{keySystem:"myKeySystem"},ErrorOrigin.DRM,"silent"/* SILENT */).toJSON()).toEqual(objectContaining24({message:"message",extra:{keySystem:"myKeySystem"},stack:any29(String),origin:ErrorOrigin.DRM,level:"silent"/* SILENT */}))})})});// test/unit/drm/commonEme/createDrmErrorHandler.test.ts
|
|
1950
1950
|
var objectContaining25=jasmine.objectContaining;describe("createDrmErrorHandler",function(){it("returns a function to wrap a provided Error object in a DrmError",function(){var handler=createDrmErrorHandler();expect(function(){return handler(new Error("expected"))}).toThrowError(DrmError,"expected");expect(function(){return handler(new Error("expected"))}).toThrowMatching(function(drmError){expect(drmError.toJSON()).toEqual(objectContaining25({extra:{error:objectContaining25({message:"expected"})}}));return drmError.level==="fatal"/* FATAL */})})});// test/unit/drm/commonEme/WebKitCommonEme.test.ts
|
|
1951
|
-
var createSpy31=jasmine.createSpy;describe("WebkitCommonEme",function(){beforeEach(function(){if(!isNode())pending("Cannot mock WebKit outside Node");globalThis.WebKitMediaKeys=MockWebKitMediaKeys;globalThis.WebKitMediaKeySession=MockWebKitMediaKeySession;globalThis.WebKitMediaKeyError=MockWebKitMediaKeyError});afterEach(function(){delete globalThis.WebKitMediaKeys;delete globalThis.WebKitMediaKeySession;delete globalThis.WebKitMediaKeyError});describe("WebKitCommonEme",function(){var mockAudioElement;var mockAudioElementEventFakes;var webKitCommonEme;beforeEach(function(){mockAudioElement=new MockHTMLAudioElement;mockAudioElement.webkitSetMediaKeys=createSpy31("webkitSetMediaKeys");mockAudioElementEventFakes=implementEventFakes(mockAudioElement);webKitCommonEme=new WebKitCommonEme});describe("requestMediaKeySystemAccess",function(){describe("requests access",function(){var keySystem="com.widevine.alpha"/* WIDEVINE */;var supportedConfigurations=[{audioCapabilities:[{contentType:"test"}]}];describe("with configs",function(){describe("with audioCapabilities",function(){describe("when isTypeSupported() returns true",function(){beforeEach(function(){MockWebKitMediaKeys.isTypeSupported.and.returnValue(true)});it("returns system access object",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee486(){var access;return _regenerator().w(function(_context486){while(1)switch(_context486.n){case 0:_context486.n=1;return webKitCommonEme.requestMediaKeySystemAccess(keySystem,supportedConfigurations);case 1:access=_context486.v;expect(access).toBeInstanceOf(WebKitCommonMediaKeySystemAccess);expect(access.keySystem).toBe(keySystem);case 2:return _context486.a(2)}},_callee486)})))});describe("when isTypeSupported() returns false",function(){beforeEach(function(){MockWebKitMediaKeys.isTypeSupported.and.returnValue(false)});it("throws DrmError",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee487(){return _regenerator().w(function(_context487){while(1)switch(_context487.n){case 0:_context487.n=1;return expectAsync(webKitCommonEme.requestMediaKeySystemAccess(keySystem,supportedConfigurations)).toBeRejectedWithError(DrmError);case 1:return _context487.a(2)}},_callee487)})))})});describe("without audioCapabilities",function(){it("throws error",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee488(){return _regenerator().w(function(_context488){while(1)switch(_context488.n){case 0:_context488.n=1;return expectAsync(webKitCommonEme.requestMediaKeySystemAccess(keySystem,[{}])).toBeRejectedWithError(DrmError,"keySystem not supported: com.widevine.alpha");case 1:return _context488.a(2)}},_callee488)})))});describe("with videoCapabilities only",function(){var videoOnlyConfigurations=[{videoCapabilities:[{contentType:"video/mp4"}]}];describe("when isTypeSupported() returns true",function(){beforeEach(function(){MockWebKitMediaKeys.isTypeSupported.and.returnValue(true)});it("returns system access object",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee489(){var access;return _regenerator().w(function(_context489){while(1)switch(_context489.n){case 0:_context489.n=1;return webKitCommonEme.requestMediaKeySystemAccess(keySystem,videoOnlyConfigurations);case 1:access=_context489.v;expect(access).toBeInstanceOf(WebKitCommonMediaKeySystemAccess);expect(access.keySystem).toBe(keySystem);case 2:return _context489.a(2)}},_callee489)})))});describe("when isTypeSupported() returns false",function(){beforeEach(function(){MockWebKitMediaKeys.isTypeSupported.and.returnValue(false)});it("throws DrmError",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee490(){return _regenerator().w(function(_context490){while(1)switch(_context490.n){case 0:_context490.n=1;return expectAsync(webKitCommonEme.requestMediaKeySystemAccess(keySystem,videoOnlyConfigurations)).toBeRejectedWithError(DrmError);case 1:return _context490.a(2)}},_callee490)})))})});describe("with both audioCapabilities and videoCapabilities",function(){var bothConfigurations=[{audioCapabilities:[{contentType:"audio/mp4"}],videoCapabilities:[{contentType:"video/mp4"}]}];it("checks all capabilities",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee491(){return _regenerator().w(function(_context491){while(1)switch(_context491.n){case 0:MockWebKitMediaKeys.isTypeSupported.and.returnValue(true);_context491.n=1;return webKitCommonEme.requestMediaKeySystemAccess(keySystem,bothConfigurations);case 1:expect(MockWebKitMediaKeys.isTypeSupported).toHaveBeenCalledWith(keySystem,"audio/mp4");case 2:return _context491.a(2)}},_callee491)})));it("succeeds when only videoCapabilities is supported",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee492(){var access;return _regenerator().w(function(_context492){while(1)switch(_context492.n){case 0:MockWebKitMediaKeys.isTypeSupported.and.callFake(function(_ks,contentType2){return contentType2==="video/mp4"});_context492.n=1;return webKitCommonEme.requestMediaKeySystemAccess(keySystem,bothConfigurations);case 1:access=_context492.v;expect(access).toBeInstanceOf(WebKitCommonMediaKeySystemAccess);case 2:return _context492.a(2)}},_callee492)})))})});describe("without configs",function(){it("throws DrmError",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee493(){return _regenerator().w(function(_context493){while(1)switch(_context493.n){case 0:_context493.n=1;return expectAsync(webKitCommonEme.requestMediaKeySystemAccess(keySystem,[])).toBeRejectedWithError(DrmError);case 1:return _context493.a(2)}},_callee493)})))})})});describe("addEncryptedListener",function(){it("adds a listener and returns an Unsubscribe handle",function(){expect(mockAudioElementEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);var handler=jasmine.createSpy("handler");var encryptedSub=webKitCommonEme.addEncryptedListener(mockAudioElement,handler);expect(handler).not.toHaveBeenCalled();expectTypeEquals(true);var encryptedEvent=mockEvent("webkitneedkey");mockAudioElement.dispatchEvent(encryptedEvent);expect(handler).toHaveBeenCalledOnceWith(encryptedEvent);encryptedSub();expect(mockAudioElementEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false)})})});describe("WebKitCommonMediaKeySystemAccess",function(){var keySystem="com.widevine.alpha"/* WIDEVINE */;var webKitCommonMediaKeySystemAccess;beforeEach(function(){webKitCommonMediaKeySystemAccess=new WebKitCommonMediaKeySystemAccess(keySystem)});it("creates media keys",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee494(){var mediaKeys;return _regenerator().w(function(_context494){while(1)switch(_context494.n){case 0:_context494.n=1;return webKitCommonMediaKeySystemAccess.createMediaKeys();case 1:mediaKeys=_context494.v;expect(mediaKeys).withContext("mediaKeys instanceof WebKitCommonMediaKeys").toBeInstanceOf(WebKitCommonMediaKeys);expect(mediaKeys.keySystem).toBe(keySystem);case 2:return _context494.a(2)}},_callee494)})))});describe("WebKitCommonMediaKeys",function(){var mockAudioElement;var mockWebKitMediaKeys;var webKitCommonMediaKeys;beforeEach(function(){mockAudioElement=new MockHTMLAudioElement;mockAudioElement.webkitSetMediaKeys=createSpy31("webkitSetMediaKeys");mockWebKitMediaKeys=new MockWebKitMediaKeys("com.widevine.alpha"/* WIDEVINE */);webKitCommonMediaKeys=new WebKitCommonMediaKeys("com.widevine.alpha"/* WIDEVINE */,mockWebKitMediaKeys);mockWebKitMediaKeys.createSession.and.callFake(function(){return new MockWebKitMediaKeySession})});describe("setOnElement",function(){it("sets media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee495(){return _regenerator().w(function(_context495){while(1)switch(_context495.n){case 0:_context495.n=1;return webKitCommonMediaKeys.setOnElement(mockAudioElement);case 1:expect(mockAudioElement.webkitSetMediaKeys).toHaveBeenCalledOnceWith(mockWebKitMediaKeys);case 2:return _context495.a(2)}},_callee495)})))});describe("clearFromElement",function(){it("clears media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee496(){return _regenerator().w(function(_context496){while(1)switch(_context496.n){case 0:_context496.n=1;return webKitCommonMediaKeys.clearFromElement(mockAudioElement);case 1:expect(mockAudioElement.webkitSetMediaKeys).toHaveBeenCalledOnceWith(null);case 2:return _context496.a(2)}},_callee496)})))});describe("setServerCertificate",function(){it("resolves to false",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee497(){return _regenerator().w(function(_context497){while(1)switch(_context497.n){case 0:_context497.n=1;return expectAsync(webKitCommonMediaKeys.setServerCertificate(new Uint8Array([1,2,3]))).toBeResolvedTo(false);case 1:return _context497.a(2)}},_callee497)})))});describe("createSession",function(){var mimeType="mime";var uint16Array=utf16ToUint16Array("skd://example0");var uint8Array=new Uint8Array(uint16Array.buffer);it("creates session",function(){var session=webKitCommonMediaKeys.createSession(mimeType,"cenc",uint8Array);expect(mockWebKitMediaKeys.createSession).toHaveBeenCalledTimes(1);expect(session).toBeInstanceOf(WebKitCommonMediaKeySession)})})});describe("WebKitCommonMediaKeySession",function(){var mockWebKitMediaKeySession;var mockWebKitMediaKeySessionEventFakes;var webKitCommonMediaKeySession;var mockWebKitMediaKeyError;var mimeType="audio";var initDataType="cenc";var initData=new Uint8Array([1,2,3]);beforeEach(function(){mockWebKitMediaKeySession=new MockWebKitMediaKeySession;mockWebKitMediaKeySessionEventFakes=implementEventFakes(mockWebKitMediaKeySession);webKitCommonMediaKeySession=new WebKitCommonMediaKeySession(mockWebKitMediaKeySession,mimeType,initDataType,initData);mockWebKitMediaKeyError=new MockWebKitMediaKeyError});it("adds event listener on session for webkitkeymessage event",function(){expect(mockWebKitMediaKeySession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(webKitCommonMediaKeySession,"message");var messageEvent=new MockWebKitMediaKeyMessageEvent;mockWebKitMediaKeySession.dispatchEvent(messageEvent);expect(messageEventSpy).toHaveBeenCalledOnceWith({message:messageEvent.message.buffer})});describe("when an event listener is added for webkitkeyerror event",function(){describe("when session has error",function(){beforeEach(function(){mockWebKitMediaKeySession.error=new MockWebKitMediaKeyError});afterEach(function(){mockWebKitMediaKeySession.error=null});it("emits event",function(){expect(mockWebKitMediaKeySession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(webKitCommonMediaKeySession,"error");mockWebKitMediaKeySession.dispatchEvent(mockWebKitMediaKeyError);expect(messageEventSpy).toHaveBeenCalled()})});describe("when session has no error",function(){it("doesn't emit event",function(){var mockWebKitSession=new MockWebKitMediaKeySession;implementEventFakes(mockWebKitSession);var webkitCommonMediaKeySession=new WebKitCommonMediaKeySession(mockWebKitSession,mimeType,initDataType,initData);expect(mockWebKitSession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(webkitCommonMediaKeySession,"error");mockWebKitSession.dispatchEvent(mockWebKitMediaKeyError);expect(messageEventSpy).not.toHaveBeenCalled()})})});describe("update",function(){it("rejects update when disposed",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee498(){return _regenerator().w(function(_context498){while(1)switch(_context498.n){case 0:webKitCommonMediaKeySession.dispose();_context498.n=1;return expectAsync(webKitCommonMediaKeySession.update(new ArrayBuffer(0))).toBeRejectedWith(new DisposedError);case 1:return _context498.a(2)}},_callee498)})));it("updates media key session",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee499(){var arrayBuffer;return _regenerator().w(function(_context499){while(1)switch(_context499.n){case 0:arrayBuffer=new ArrayBuffer(0);_context499.n=1;return webKitCommonMediaKeySession.update(arrayBuffer);case 1:expect(mockWebKitMediaKeySession.update).toHaveBeenCalledOnceWith(new Uint8Array(arrayBuffer));case 2:return _context499.a(2)}},_callee499)})))});describe("dispose",function(){it("removes listeners and closes session",function(){expect(webKitCommonMediaKeySession.disposed).toBeFalse();webKitCommonMediaKeySession.dispose();expect(webKitCommonMediaKeySession.disposed).toBeTrue();expect(mockWebKitMediaKeySessionEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);expect(mockWebKitMediaKeySession.close).toHaveBeenCalledOnceWith()})})});describe("webkitErrorCodeToStr",function(){it("translates value correctly",function(){expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_CLIENT)).toBe("CLIENT"/* CLIENT */);expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_DOMAIN)).toBe("DOMAIN"/* DOMAIN */);expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_HARDWARECHANGE)).toBe("HARDWARECHANGE"/* HARDWARECHANGE */);expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_OUTPUT)).toBe("OUTPUT"/* OUTPUT */);expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_SERVICE)).toBe("SERVICE"/* SERVICE */);expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_UNKNOWN)).toBe("UNKNOWN"/* UNKNOWN */)})})});// test/unit/drm/commonEme/StandardCommonEme.test.ts
|
|
1952
|
-
var any30=jasmine.any;describe("StandardCommonEme",function(){var navigator2;var mediaKeySystemAccess;beforeEach(function(){navigator2=setMockNavigator();mediaKeySystemAccess=new MockMediaKeySystemAccess;mediaKeySystemAccess.createMediaKeys.and.resolveTo(new MockMediaKeys);navigator2.requestMediaKeySystemAccess.and.resolveTo(mediaKeySystemAccess)});describe("StandardCommonEme",function(){var audio;var standardCommonEme;var audioEventFakes;beforeEach(function(){audio=new MockHTMLAudioElement;audioEventFakes=implementEventFakes(audio);standardCommonEme=new StandardCommonEme});describe("requestMediaKeySystemAccess",function(){var supportedConfigurations=[{},{audioCapabilities:[{contentType:"test"}]}];describe("when navigator.requestMediaKeySystemAccess resolves",function(){it("returns StandardCommonMediaKeySystemAccess",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee500(){return _regenerator().w(function(_context500){while(1)switch(_context500.n){case 0:expect(navigator2.requestMediaKeySystemAccess).not.toHaveBeenCalled();_context500.n=1;return expectAsync(standardCommonEme.requestMediaKeySystemAccess("com.widevine.alpha"/* WIDEVINE */,supportedConfigurations)).toBeResolvedTo(any30(StandardCommonMediaKeySystemAccess));case 1:return _context500.a(2)}},_callee500)})))});describe("when navigator.requestMediaKeySystemAccess rejects",function(){beforeEach(function(){navigator2.requestMediaKeySystemAccess.and.rejectWith(new Error("expected"))});it("rejects with reason",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee501(){return _regenerator().w(function(_context501){while(1)switch(_context501.n){case 0:_context501.n=1;return expectAsync(standardCommonEme.requestMediaKeySystemAccess("com.widevine.alpha"/* WIDEVINE */,supportedConfigurations)).toBeRejectedWithError(Error,"expected");case 1:return _context501.a(2)}},_callee501)})))})});describe("addEncryptedListener",function(){it("adds a listener and returns an Unsubscribe handle",function(){expect(audioEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);var handler=jasmine.createSpy("handler");var encryptedSub=standardCommonEme.addEncryptedListener(audio,handler);expect(handler).not.toHaveBeenCalled();expectTypeEquals(true);var encryptedEvent=mockEvent("encrypted");audio.dispatchEvent(encryptedEvent);expect(handler).toHaveBeenCalledOnceWith(encryptedEvent);encryptedSub();expect(audioEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false)})})});describe("StandardCommonMediaKeySystemAccess",function(){var standardCommonMediaKeySystemAccess;beforeEach(function(){standardCommonMediaKeySystemAccess=new StandardCommonMediaKeySystemAccess("com.widevine.alpha"/* WIDEVINE */,mediaKeySystemAccess)});describe("createMediaKeys",function(){it("creates media keys",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee502(){var mediaKeys;return _regenerator().w(function(_context502){while(1)switch(_context502.n){case 0:expect(mediaKeySystemAccess.createMediaKeys).not.toHaveBeenCalled();_context502.n=1;return standardCommonMediaKeySystemAccess.createMediaKeys();case 1:mediaKeys=_context502.v;expect(mediaKeySystemAccess.createMediaKeys).toHaveBeenCalledTimes(1);expect(mediaKeys).toBeInstanceOf(StandardCommonMediaKeys);case 2:return _context502.a(2)}},_callee502)})))})});describe("StandardCommonMediaKeys",function(){var mockAudioElement;var mediaKeys;var standardCommonMediaKeys;beforeEach(function(){mockAudioElement=new MockHTMLAudioElement;mediaKeys=new MockMediaKeys;standardCommonMediaKeys=new StandardCommonMediaKeys("com.widevine.alpha"/* WIDEVINE */,mediaKeys)});describe("setOnElement",function(){it("sets media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee503(){return _regenerator().w(function(_context503){while(1)switch(_context503.n){case 0:expect(mockAudioElement.setMediaKeys).not.toHaveBeenCalled();_context503.n=1;return standardCommonMediaKeys.setOnElement(mockAudioElement);case 1:expect(mockAudioElement.setMediaKeys).toHaveBeenCalledOnceWith(mediaKeys);case 2:return _context503.a(2)}},_callee503)})))});describe("clearFromElement",function(){it("clears media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee504(){return _regenerator().w(function(_context504){while(1)switch(_context504.n){case 0:expect(mockAudioElement.setMediaKeys).not.toHaveBeenCalled();_context504.n=1;return standardCommonMediaKeys.clearFromElement(mockAudioElement);case 1:expect(mockAudioElement.setMediaKeys).toHaveBeenCalledOnceWith(null);case 2:return _context504.a(2)}},_callee504)})))});describe("setServerCertificate",function(){it("delegates to mediaKeys.setServerCertificate and returns the result",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee505(){var cert,result;return _regenerator().w(function(_context505){while(1)switch(_context505.n){case 0:cert=new Uint8Array([1,2,3]);mediaKeys.setServerCertificate.and.resolveTo(true);_context505.n=1;return standardCommonMediaKeys.setServerCertificate(cert);case 1:result=_context505.v;expect(result).toBeTrue();expect(mediaKeys.setServerCertificate).toHaveBeenCalledOnceWith(cert);case 2:return _context505.a(2)}},_callee505)})))});describe("createSession",function(){it("creates a session",function(){expect(mediaKeys.createSession).not.toHaveBeenCalled();var mediaKeySession=new MockMediaKeySession;mediaKeySession.closed=never;implementEventFakes(mediaKeySession);mediaKeySession.generateRequest.and.resolveTo(void 0);mediaKeys.createSession.and.returnValue(mediaKeySession);var mimeType="audio";var initData=new Uint8Array([1,2,3]);var session=standardCommonMediaKeys.createSession(mimeType,"cenc",initData);expect(mediaKeys.createSession).toHaveBeenCalledOnceWith("temporary");expect(session).toBeInstanceOf(StandardCommonMediaKeySession);expect(session.initData).toBe(initData);expect(session.mimeType).toBe(mimeType);expect(session.initDataType).toBe("cenc")})})});describe("StandardCommonMediaKeySession",function(){var mediaKeySession;var mediaKeySessionEventFakes;var standardCommonMediaKeySession;var mimeType="audio";var initData=new Uint8Array([1,2,3]);var closed;beforeEach(function(){mediaKeySession=new MockMediaKeySession;mediaKeySessionEventFakes=implementEventFakes(mediaKeySession);mediaKeySession.close.and.returnValue(Promise.resolve());mediaKeySession.generateRequest.and.resolveTo(void 0);closed=new Deferred;mediaKeySession.closed=closed;standardCommonMediaKeySession=new StandardCommonMediaKeySession(mediaKeySession,mimeType,"cenc",initData)});it("adds event listener on session for message event",function(){expect(mediaKeySession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(standardCommonMediaKeySession,"message");var event=new MockMediaKeyMessageEvent;event.type="message";mediaKeySession.dispatchEvent(event);expect(messageEventSpy).toHaveBeenCalledOnceWith({message:event.message})});describe("when created",function(){it("calls session.generateRequest() with the initData buffer",function(){expect(mediaKeySession.generateRequest).toHaveBeenCalledOnceWith("cenc",initData.buffer);mediaKeySession.generateRequest.calls.reset();var arrayBuffer=new ArrayBuffer(0);standardCommonMediaKeySession=new StandardCommonMediaKeySession(mediaKeySession,mimeType,"cenc",arrayBuffer);expect(mediaKeySession.generateRequest).toHaveBeenCalledOnceWith("cenc",arrayBuffer)});describe("when session.generateRequest rejects",function(){it("emits an error event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee506(){var errorSpy;return _regenerator().w(function(_context506){while(1)switch(_context506.n){case 0:mediaKeySession.generateRequest.and.rejectWith(new Error("expected"));standardCommonMediaKeySession=new StandardCommonMediaKeySession(mediaKeySession,mimeType,"cenc",initData);errorSpy=createEventSpy(standardCommonMediaKeySession,"error");_context506.n=1;return expectAsync(errorSpy.next()).toBeResolvedTo({target:standardCommonMediaKeySession,error:new Error("expected")});case 1:return _context506.a(2)}},_callee506)})))})});describe("update",function(){it("throws when disposed",function(){standardCommonMediaKeySession.dispose();expect(function(){return standardCommonMediaKeySession.update(new ArrayBuffer(0))}).toThrowError(DisposedError)});it("updates media key session",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee507(){var arrayBufferEmpty;return _regenerator().w(function(_context507){while(1)switch(_context507.n){case 0:arrayBufferEmpty=new ArrayBuffer(0);_context507.n=1;return standardCommonMediaKeySession.update(arrayBufferEmpty);case 1:expect(mediaKeySession.update).toHaveBeenCalledOnceWith(arrayBufferEmpty);case 2:return _context507.a(2)}},_callee507)})))});describe("closed event",function(){it("dispatches when the MediaKeySession closed resolves",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee508(){var closedSpy;return _regenerator().w(function(_context508){while(1)switch(_context508.n){case 0:closedSpy=createEventSpy(standardCommonMediaKeySession,"closed");closed.resolve("closed-by-application");_context508.n=1;return flushPromises();case 1:expect(closedSpy).toHaveBeenCalledOnceWith({reason:"closed-by-application"});case 2:return _context508.a(2)}},_callee508)})))});describe("when session.closed is nullish",function(){it("does not fail to create a session",function(){;mediaKeySession.closed=null;expect(function(){return new StandardCommonMediaKeySession(mediaKeySession,mimeType,"cenc",new ArrayBuffer(0))}).not.toThrow()})});describe("dispose",function(){it("removes listeners and closes session",function(){expect(standardCommonMediaKeySession.disposed).toBeFalse();standardCommonMediaKeySession.dispose();expect(standardCommonMediaKeySession.disposed).toBeTrue();expect(mediaKeySessionEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);expect(mediaKeySession.close).toHaveBeenCalledOnceWith()})})})});// test/unit/drm/commonEme/MsCommonEme.test.ts
|
|
1953
|
-
var createSpy32=jasmine.createSpy;describe("MsCommonEme",function(){beforeEach(function(){if(!isNode()){pending("Cannot mock MS outside Node");return};globalThis.MSMediaKeys=MockMSMediaKeys;globalThis.MSMediaKeySession=MockMSMediaKeySession;globalThis.MSMediaKeyError=MockMSMediaKeyError});afterEach(function(){delete globalThis.MSMediaKeys;delete globalThis.MSMediaKeySession;delete globalThis.MSMediaKeyError});describe("MsCommonEme",function(){var mockAudioElement;var mockAudioElementEvents;var msCommonEme;beforeEach(function(){mockAudioElement=new MockHTMLAudioElement;mockAudioElement.msSetMediaKeys=createSpy32("msSetMediaKeys");mockAudioElementEvents=implementEventFakes(mockAudioElement);msCommonEme=new MsCommonEme});describe("requestMediaKeySystemAccess",function(){describe("requests access",function(){var keySystem="com.widevine.alpha"/* WIDEVINE */;var supportedConfigurations=[{},{audioCapabilities:[{contentType:"test"}]}];describe("with configs",function(){describe("when isTypeSupported returns true",function(){beforeEach(function(){MockMSMediaKeys.isTypeSupported.and.returnValue(true)});it("returns system access object",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee509(){var access;return _regenerator().w(function(_context509){while(1)switch(_context509.n){case 0:_context509.n=1;return msCommonEme.requestMediaKeySystemAccess(keySystem,supportedConfigurations);case 1:access=_context509.v;expect(access).toBeInstanceOf(MsCommonMediaKeySystemAccess);expect(access.keySystem).toBe(keySystem);case 2:return _context509.a(2)}},_callee509)})))});describe("when isTypeSupported() returns false",function(){beforeEach(function(){MockMSMediaKeys.isTypeSupported.and.returnValue(false)});it("throws MediaKeySystemAccessError",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee510(){return _regenerator().w(function(_context510){while(1)switch(_context510.n){case 0:_context510.n=1;return expectAsync(msCommonEme.requestMediaKeySystemAccess(keySystem,supportedConfigurations)).toBeRejectedWithError(DrmError,"keySystem not supported: com.widevine.alpha");case 1:return _context510.a(2)}},_callee510)})))});describe("with videoCapabilities only",function(){var videoOnlyConfigurations=[{videoCapabilities:[{contentType:"video/mp4"}]}];it("returns system access object when supported",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee511(){var access;return _regenerator().w(function(_context511){while(1)switch(_context511.n){case 0:MockMSMediaKeys.isTypeSupported.and.returnValue(true);_context511.n=1;return msCommonEme.requestMediaKeySystemAccess(keySystem,videoOnlyConfigurations);case 1:access=_context511.v;expect(access).toBeInstanceOf(MsCommonMediaKeySystemAccess);case 2:return _context511.a(2)}},_callee511)})));it("throws DrmError when not supported",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee512(){return _regenerator().w(function(_context512){while(1)switch(_context512.n){case 0:MockMSMediaKeys.isTypeSupported.and.returnValue(false);_context512.n=1;return expectAsync(msCommonEme.requestMediaKeySystemAccess(keySystem,videoOnlyConfigurations)).toBeRejectedWithError(DrmError);case 1:return _context512.a(2)}},_callee512)})))})})})});describe("addEncryptedListener",function(){it("adds a listener and returns an Unsubscribe handle",function(){expect(mockAudioElementEvents.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);var handler=createSpy32("handler");var encryptedSub=msCommonEme.addEncryptedListener(mockAudioElement,handler);expect(handler).not.toHaveBeenCalled();expectTypeEquals(true);var encryptedEvent=mockEvent("msneedkey");mockAudioElement.dispatchEvent(encryptedEvent);expect(handler).toHaveBeenCalledOnceWith(encryptedEvent);encryptedSub();expect(mockAudioElementEvents.hasAnyListeners()).withContext("hasAnyListeners").toBe(false)})})});describe("MsCommonMediaKeySystemAccess",function(){var keySystem="com.widevine.alpha"/* WIDEVINE */;var msCommonMediaKeySystemAccess;beforeEach(function(){msCommonMediaKeySystemAccess=new MsCommonMediaKeySystemAccess(keySystem)});it("creates media keys",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee513(){var mediaKeys;return _regenerator().w(function(_context513){while(1)switch(_context513.n){case 0:_context513.n=1;return msCommonMediaKeySystemAccess.createMediaKeys();case 1:mediaKeys=_context513.v;expect(mediaKeys).withContext("mediaKeys instanceof MsCommonMediaKeys").toBeInstanceOf(MsCommonMediaKeys);expect(mediaKeys.keySystem).toBe(keySystem);case 2:return _context513.a(2)}},_callee513)})))});describe("MsCommonMediaKeys",function(){var mockAudioElement;var mockMsMediaKeys;var msCommonMediaKeys;beforeEach(function(){mockAudioElement=new MockHTMLAudioElement;mockAudioElement.msSetMediaKeys=createSpy32("msSetMediaKeys");mockMsMediaKeys=new MockMSMediaKeys("com.widevine.alpha"/* WIDEVINE */);msCommonMediaKeys=new MsCommonMediaKeys("com.widevine.alpha"/* WIDEVINE */,mockMsMediaKeys);mockMsMediaKeys.createSession.and.callFake(function(){return new MockMSMediaKeySession})});describe("setOnElement",function(){it("sets media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee514(){return _regenerator().w(function(_context514){while(1)switch(_context514.n){case 0:_context514.n=1;return msCommonMediaKeys.setOnElement(mockAudioElement);case 1:expect(mockAudioElement.msSetMediaKeys).toHaveBeenCalledOnceWith(mockMsMediaKeys);case 2:return _context514.a(2)}},_callee514)})))});describe("clearFromElement",function(){it("clears media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee515(){return _regenerator().w(function(_context515){while(1)switch(_context515.n){case 0:_context515.n=1;return msCommonMediaKeys.clearFromElement(mockAudioElement);case 1:expect(mockAudioElement.msSetMediaKeys).toHaveBeenCalledOnceWith(null);case 2:return _context515.a(2)}},_callee515)})))});describe("setServerCertificate",function(){it("resolves to false",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee516(){return _regenerator().w(function(_context516){while(1)switch(_context516.n){case 0:_context516.n=1;return expectAsync(msCommonMediaKeys.setServerCertificate(new Uint8Array([1,2,3]))).toBeResolvedTo(false);case 1:return _context516.a(2)}},_callee516)})))});describe("createSession",function(){var uint16Array=utf16ToUint16Array("skd://example0");var uint8Array=new Uint8Array(uint16Array.buffer);it("creates a session",function(){var session0=msCommonMediaKeys.createSession("audio/mp4; codecs=\"mp4a.40.2\"","cenc",uint8Array);expect(mockMsMediaKeys.createSession).toHaveBeenCalledOnceWith("audio/mp4; codecs=\"mp4a.40.2\"",uint8Array);expect(session0).toBeInstanceOf(MsCommonMediaKeySession)})})});describe("MsCommonMediaKeySession",function(){var mockMsMediaKeySession;var mockMsMediaKeySessionEvents;var msCommonMediaKeySession;var mockMsMediaKeyError;var mimeType="audio";var initDataType="cenc";var initData=new Uint8Array([1,2,3]);beforeEach(function(){mockMsMediaKeySession=new MockMSMediaKeySession;mockMsMediaKeySessionEvents=implementEventFakes(mockMsMediaKeySession);msCommonMediaKeySession=new MsCommonMediaKeySession(mockMsMediaKeySession,mimeType,initDataType,initData);mockMsMediaKeyError=new MockMSMediaKeyError});it("adds event listener on session for mskeymessage event",function(){expect(mockMsMediaKeySession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(msCommonMediaKeySession,"message");var messageEvent=new MockMSMediaKeyMessageEvent;mockMsMediaKeySession.dispatchEvent(messageEvent);expect(messageEventSpy).toHaveBeenCalledOnceWith({message:messageEvent.message.buffer})});describe("when an event listener is added for webkitkeyerror event",function(){describe("when session has error",function(){beforeEach(function(){mockMsMediaKeySession.error=new MSMediaKeyError});afterEach(function(){mockMsMediaKeySession.error=null});it("emits event",function(){expect(mockMsMediaKeySession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(msCommonMediaKeySession,"error");mockMsMediaKeySession.dispatchEvent(mockMsMediaKeyError);expect(messageEventSpy).toHaveBeenCalled()})});describe("when session has no error",function(){it("doesn't emit event",function(){var mockSession=new MockMSMediaKeySession;implementEventFakes(mockSession);var msCommonMediaKeySession2=new MsCommonMediaKeySession(mockSession,mimeType,initDataType,initData);expect(mockSession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(msCommonMediaKeySession2,"error");mockSession.dispatchEvent(mockMsMediaKeyError);expect(messageEventSpy).not.toHaveBeenCalled()})})});describe("update",function(){it("rejects update when disposed",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee517(){return _regenerator().w(function(_context517){while(1)switch(_context517.n){case 0:msCommonMediaKeySession.dispose();_context517.n=1;return expectAsync(msCommonMediaKeySession.update(new ArrayBuffer(0))).toBeRejectedWith(new DisposedError);case 1:return _context517.a(2)}},_callee517)})));it("updates media key session",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee518(){var arrayBufferEmpty;return _regenerator().w(function(_context518){while(1)switch(_context518.n){case 0:arrayBufferEmpty=new ArrayBuffer(0);_context518.n=1;return msCommonMediaKeySession.update(arrayBufferEmpty);case 1:expect(mockMsMediaKeySession.update).toHaveBeenCalledOnceWith(new Uint8Array(arrayBufferEmpty));case 2:return _context518.a(2)}},_callee518)})))});describe("dispose",function(){it("removes listeners and closes session",function(){expect(msCommonMediaKeySession.disposed).toBeFalse();msCommonMediaKeySession.dispose();expect(msCommonMediaKeySession.disposed).toBeTrue();expect(mockMsMediaKeySessionEvents.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);expect(mockMsMediaKeySession.close).toHaveBeenCalledOnceWith()})})});describe("msErrorCodeToStr",function(){it("translates value correctly",function(){expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_CLIENT)).toBe("CLIENT"/* CLIENT */);expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_DOMAIN)).toBe("DOMAIN"/* DOMAIN */);expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_HARDWARECHANGE)).toBe("HARDWARECHANGE"/* HARDWARECHANGE */);expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_OUTPUT)).toBe("OUTPUT"/* OUTPUT */);expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_SERVICE)).toBe("SERVICE"/* SERVICE */);expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_UNKNOWN)).toBe("UNKNOWN"/* UNKNOWN */)})})});// test/unit/drm/commonEme/CommonEme.test.ts
|
|
1951
|
+
var createSpy31=jasmine.createSpy;describe("WebkitCommonEme",function(){beforeEach(function(){if(!isNode())pending("Cannot mock WebKit outside Node");globalThis.WebKitMediaKeys=MockWebKitMediaKeys;globalThis.WebKitMediaKeySession=MockWebKitMediaKeySession;globalThis.WebKitMediaKeyError=MockWebKitMediaKeyError});afterEach(function(){delete globalThis.WebKitMediaKeys;delete globalThis.WebKitMediaKeySession;delete globalThis.WebKitMediaKeyError});describe("WebKitCommonEme",function(){var mockAudioElement;var mockAudioElementEventFakes;var webKitCommonEme;beforeEach(function(){mockAudioElement=new MockHTMLAudioElement;mockAudioElement.webkitSetMediaKeys=createSpy31("webkitSetMediaKeys");mockAudioElementEventFakes=implementEventFakes(mockAudioElement);webKitCommonEme=new WebKitCommonEme});describe("requestMediaKeySystemAccess",function(){describe("requests access",function(){var keySystem="com.widevine.alpha"/* WIDEVINE */;var supportedConfigurations=[{audioCapabilities:[{contentType:"test"}]}];describe("with configs",function(){describe("with audioCapabilities",function(){describe("when isTypeSupported() returns true",function(){beforeEach(function(){MockWebKitMediaKeys.isTypeSupported.and.returnValue(true)});it("returns system access object",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee489(){var access;return _regenerator().w(function(_context489){while(1)switch(_context489.n){case 0:_context489.n=1;return webKitCommonEme.requestMediaKeySystemAccess(keySystem,supportedConfigurations);case 1:access=_context489.v;expect(access).toBeInstanceOf(WebKitCommonMediaKeySystemAccess);expect(access.keySystem).toBe(keySystem);case 2:return _context489.a(2)}},_callee489)})))});describe("when isTypeSupported() returns false",function(){beforeEach(function(){MockWebKitMediaKeys.isTypeSupported.and.returnValue(false)});it("throws DrmError",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee490(){return _regenerator().w(function(_context490){while(1)switch(_context490.n){case 0:_context490.n=1;return expectAsync(webKitCommonEme.requestMediaKeySystemAccess(keySystem,supportedConfigurations)).toBeRejectedWithError(DrmError);case 1:return _context490.a(2)}},_callee490)})))})});describe("without audioCapabilities",function(){it("throws error",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee491(){return _regenerator().w(function(_context491){while(1)switch(_context491.n){case 0:_context491.n=1;return expectAsync(webKitCommonEme.requestMediaKeySystemAccess(keySystem,[{}])).toBeRejectedWithError(DrmError,"keySystem not supported: com.widevine.alpha");case 1:return _context491.a(2)}},_callee491)})))});describe("with videoCapabilities only",function(){var videoOnlyConfigurations=[{videoCapabilities:[{contentType:"video/mp4"}]}];describe("when isTypeSupported() returns true",function(){beforeEach(function(){MockWebKitMediaKeys.isTypeSupported.and.returnValue(true)});it("returns system access object",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee492(){var access;return _regenerator().w(function(_context492){while(1)switch(_context492.n){case 0:_context492.n=1;return webKitCommonEme.requestMediaKeySystemAccess(keySystem,videoOnlyConfigurations);case 1:access=_context492.v;expect(access).toBeInstanceOf(WebKitCommonMediaKeySystemAccess);expect(access.keySystem).toBe(keySystem);case 2:return _context492.a(2)}},_callee492)})))});describe("when isTypeSupported() returns false",function(){beforeEach(function(){MockWebKitMediaKeys.isTypeSupported.and.returnValue(false)});it("throws DrmError",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee493(){return _regenerator().w(function(_context493){while(1)switch(_context493.n){case 0:_context493.n=1;return expectAsync(webKitCommonEme.requestMediaKeySystemAccess(keySystem,videoOnlyConfigurations)).toBeRejectedWithError(DrmError);case 1:return _context493.a(2)}},_callee493)})))})});describe("with both audioCapabilities and videoCapabilities",function(){var bothConfigurations=[{audioCapabilities:[{contentType:"audio/mp4"}],videoCapabilities:[{contentType:"video/mp4"}]}];it("checks all capabilities",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee494(){return _regenerator().w(function(_context494){while(1)switch(_context494.n){case 0:MockWebKitMediaKeys.isTypeSupported.and.returnValue(true);_context494.n=1;return webKitCommonEme.requestMediaKeySystemAccess(keySystem,bothConfigurations);case 1:expect(MockWebKitMediaKeys.isTypeSupported).toHaveBeenCalledWith(keySystem,"audio/mp4");case 2:return _context494.a(2)}},_callee494)})));it("succeeds when only videoCapabilities is supported",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee495(){var access;return _regenerator().w(function(_context495){while(1)switch(_context495.n){case 0:MockWebKitMediaKeys.isTypeSupported.and.callFake(function(_ks,contentType2){return contentType2==="video/mp4"});_context495.n=1;return webKitCommonEme.requestMediaKeySystemAccess(keySystem,bothConfigurations);case 1:access=_context495.v;expect(access).toBeInstanceOf(WebKitCommonMediaKeySystemAccess);case 2:return _context495.a(2)}},_callee495)})))})});describe("without configs",function(){it("throws DrmError",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee496(){return _regenerator().w(function(_context496){while(1)switch(_context496.n){case 0:_context496.n=1;return expectAsync(webKitCommonEme.requestMediaKeySystemAccess(keySystem,[])).toBeRejectedWithError(DrmError);case 1:return _context496.a(2)}},_callee496)})))})})});describe("addEncryptedListener",function(){it("adds a listener and returns an Unsubscribe handle",function(){expect(mockAudioElementEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);var handler=jasmine.createSpy("handler");var encryptedSub=webKitCommonEme.addEncryptedListener(mockAudioElement,handler);expect(handler).not.toHaveBeenCalled();expectTypeEquals(true);var encryptedEvent=mockEvent("webkitneedkey");mockAudioElement.dispatchEvent(encryptedEvent);expect(handler).toHaveBeenCalledOnceWith(encryptedEvent);encryptedSub();expect(mockAudioElementEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false)})})});describe("WebKitCommonMediaKeySystemAccess",function(){var keySystem="com.widevine.alpha"/* WIDEVINE */;var webKitCommonMediaKeySystemAccess;beforeEach(function(){webKitCommonMediaKeySystemAccess=new WebKitCommonMediaKeySystemAccess(keySystem)});it("creates media keys",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee497(){var mediaKeys;return _regenerator().w(function(_context497){while(1)switch(_context497.n){case 0:_context497.n=1;return webKitCommonMediaKeySystemAccess.createMediaKeys();case 1:mediaKeys=_context497.v;expect(mediaKeys).withContext("mediaKeys instanceof WebKitCommonMediaKeys").toBeInstanceOf(WebKitCommonMediaKeys);expect(mediaKeys.keySystem).toBe(keySystem);case 2:return _context497.a(2)}},_callee497)})))});describe("WebKitCommonMediaKeys",function(){var mockAudioElement;var mockWebKitMediaKeys;var webKitCommonMediaKeys;beforeEach(function(){mockAudioElement=new MockHTMLAudioElement;mockAudioElement.webkitSetMediaKeys=createSpy31("webkitSetMediaKeys");mockWebKitMediaKeys=new MockWebKitMediaKeys("com.widevine.alpha"/* WIDEVINE */);webKitCommonMediaKeys=new WebKitCommonMediaKeys("com.widevine.alpha"/* WIDEVINE */,mockWebKitMediaKeys);mockWebKitMediaKeys.createSession.and.callFake(function(){return new MockWebKitMediaKeySession})});describe("setOnElement",function(){it("sets media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee498(){return _regenerator().w(function(_context498){while(1)switch(_context498.n){case 0:_context498.n=1;return webKitCommonMediaKeys.setOnElement(mockAudioElement);case 1:expect(mockAudioElement.webkitSetMediaKeys).toHaveBeenCalledOnceWith(mockWebKitMediaKeys);case 2:return _context498.a(2)}},_callee498)})))});describe("clearFromElement",function(){it("clears media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee499(){return _regenerator().w(function(_context499){while(1)switch(_context499.n){case 0:_context499.n=1;return webKitCommonMediaKeys.clearFromElement(mockAudioElement);case 1:expect(mockAudioElement.webkitSetMediaKeys).toHaveBeenCalledOnceWith(null);case 2:return _context499.a(2)}},_callee499)})))});describe("setServerCertificate",function(){it("resolves to false",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee500(){return _regenerator().w(function(_context500){while(1)switch(_context500.n){case 0:_context500.n=1;return expectAsync(webKitCommonMediaKeys.setServerCertificate(new Uint8Array([1,2,3]))).toBeResolvedTo(false);case 1:return _context500.a(2)}},_callee500)})))});describe("createSession",function(){var mimeType="mime";var uint16Array=utf16ToUint16Array("skd://example0");var uint8Array=new Uint8Array(uint16Array.buffer);it("creates session",function(){var session=webKitCommonMediaKeys.createSession(mimeType,"cenc",uint8Array);expect(mockWebKitMediaKeys.createSession).toHaveBeenCalledTimes(1);expect(session).toBeInstanceOf(WebKitCommonMediaKeySession)})})});describe("WebKitCommonMediaKeySession",function(){var mockWebKitMediaKeySession;var mockWebKitMediaKeySessionEventFakes;var webKitCommonMediaKeySession;var mockWebKitMediaKeyError;var mimeType="audio";var initDataType="cenc";var initData=new Uint8Array([1,2,3]);beforeEach(function(){mockWebKitMediaKeySession=new MockWebKitMediaKeySession;mockWebKitMediaKeySessionEventFakes=implementEventFakes(mockWebKitMediaKeySession);webKitCommonMediaKeySession=new WebKitCommonMediaKeySession(mockWebKitMediaKeySession,mimeType,initDataType,initData);mockWebKitMediaKeyError=new MockWebKitMediaKeyError});it("adds event listener on session for webkitkeymessage event",function(){expect(mockWebKitMediaKeySession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(webKitCommonMediaKeySession,"message");var messageEvent=new MockWebKitMediaKeyMessageEvent;mockWebKitMediaKeySession.dispatchEvent(messageEvent);expect(messageEventSpy).toHaveBeenCalledOnceWith({message:messageEvent.message.buffer})});describe("when an event listener is added for webkitkeyerror event",function(){describe("when session has error",function(){beforeEach(function(){mockWebKitMediaKeySession.error=new MockWebKitMediaKeyError});afterEach(function(){mockWebKitMediaKeySession.error=null});it("emits event",function(){expect(mockWebKitMediaKeySession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(webKitCommonMediaKeySession,"error");mockWebKitMediaKeySession.dispatchEvent(mockWebKitMediaKeyError);expect(messageEventSpy).toHaveBeenCalled()})});describe("when session has no error",function(){it("doesn't emit event",function(){var mockWebKitSession=new MockWebKitMediaKeySession;implementEventFakes(mockWebKitSession);var webkitCommonMediaKeySession=new WebKitCommonMediaKeySession(mockWebKitSession,mimeType,initDataType,initData);expect(mockWebKitSession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(webkitCommonMediaKeySession,"error");mockWebKitSession.dispatchEvent(mockWebKitMediaKeyError);expect(messageEventSpy).not.toHaveBeenCalled()})})});describe("update",function(){it("rejects update when disposed",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee501(){return _regenerator().w(function(_context501){while(1)switch(_context501.n){case 0:webKitCommonMediaKeySession.dispose();_context501.n=1;return expectAsync(webKitCommonMediaKeySession.update(new ArrayBuffer(0))).toBeRejectedWith(new DisposedError);case 1:return _context501.a(2)}},_callee501)})));it("updates media key session",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee502(){var arrayBuffer;return _regenerator().w(function(_context502){while(1)switch(_context502.n){case 0:arrayBuffer=new ArrayBuffer(0);_context502.n=1;return webKitCommonMediaKeySession.update(arrayBuffer);case 1:expect(mockWebKitMediaKeySession.update).toHaveBeenCalledOnceWith(new Uint8Array(arrayBuffer));case 2:return _context502.a(2)}},_callee502)})))});describe("dispose",function(){it("removes listeners and closes session",function(){expect(webKitCommonMediaKeySession.disposed).toBeFalse();webKitCommonMediaKeySession.dispose();expect(webKitCommonMediaKeySession.disposed).toBeTrue();expect(mockWebKitMediaKeySessionEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);expect(mockWebKitMediaKeySession.close).toHaveBeenCalledOnceWith()})})});describe("webkitErrorCodeToStr",function(){it("translates value correctly",function(){expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_CLIENT)).toBe("CLIENT"/* CLIENT */);expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_DOMAIN)).toBe("DOMAIN"/* DOMAIN */);expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_HARDWARECHANGE)).toBe("HARDWARECHANGE"/* HARDWARECHANGE */);expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_OUTPUT)).toBe("OUTPUT"/* OUTPUT */);expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_SERVICE)).toBe("SERVICE"/* SERVICE */);expect(webkitErrorCodeToStr(WebKitMediaKeyError.MEDIA_KEYERR_UNKNOWN)).toBe("UNKNOWN"/* UNKNOWN */)})})});// test/unit/drm/commonEme/StandardCommonEme.test.ts
|
|
1952
|
+
var any30=jasmine.any;describe("StandardCommonEme",function(){var navigator2;var mediaKeySystemAccess;beforeEach(function(){navigator2=setMockNavigator();mediaKeySystemAccess=new MockMediaKeySystemAccess;mediaKeySystemAccess.createMediaKeys.and.resolveTo(new MockMediaKeys);navigator2.requestMediaKeySystemAccess.and.resolveTo(mediaKeySystemAccess)});describe("StandardCommonEme",function(){var audio;var standardCommonEme;var audioEventFakes;beforeEach(function(){audio=new MockHTMLAudioElement;audioEventFakes=implementEventFakes(audio);standardCommonEme=new StandardCommonEme});describe("requestMediaKeySystemAccess",function(){var supportedConfigurations=[{},{audioCapabilities:[{contentType:"test"}]}];describe("when navigator.requestMediaKeySystemAccess resolves",function(){it("returns StandardCommonMediaKeySystemAccess",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee503(){return _regenerator().w(function(_context503){while(1)switch(_context503.n){case 0:expect(navigator2.requestMediaKeySystemAccess).not.toHaveBeenCalled();_context503.n=1;return expectAsync(standardCommonEme.requestMediaKeySystemAccess("com.widevine.alpha"/* WIDEVINE */,supportedConfigurations)).toBeResolvedTo(any30(StandardCommonMediaKeySystemAccess));case 1:return _context503.a(2)}},_callee503)})))});describe("when navigator.requestMediaKeySystemAccess rejects",function(){beforeEach(function(){navigator2.requestMediaKeySystemAccess.and.rejectWith(new Error("expected"))});it("rejects with reason",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee504(){return _regenerator().w(function(_context504){while(1)switch(_context504.n){case 0:_context504.n=1;return expectAsync(standardCommonEme.requestMediaKeySystemAccess("com.widevine.alpha"/* WIDEVINE */,supportedConfigurations)).toBeRejectedWithError(Error,"expected");case 1:return _context504.a(2)}},_callee504)})))})});describe("addEncryptedListener",function(){it("adds a listener and returns an Unsubscribe handle",function(){expect(audioEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);var handler=jasmine.createSpy("handler");var encryptedSub=standardCommonEme.addEncryptedListener(audio,handler);expect(handler).not.toHaveBeenCalled();expectTypeEquals(true);var encryptedEvent=mockEvent("encrypted");audio.dispatchEvent(encryptedEvent);expect(handler).toHaveBeenCalledOnceWith(encryptedEvent);encryptedSub();expect(audioEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false)})})});describe("StandardCommonMediaKeySystemAccess",function(){var standardCommonMediaKeySystemAccess;beforeEach(function(){standardCommonMediaKeySystemAccess=new StandardCommonMediaKeySystemAccess("com.widevine.alpha"/* WIDEVINE */,mediaKeySystemAccess)});describe("createMediaKeys",function(){it("creates media keys",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee505(){var mediaKeys;return _regenerator().w(function(_context505){while(1)switch(_context505.n){case 0:expect(mediaKeySystemAccess.createMediaKeys).not.toHaveBeenCalled();_context505.n=1;return standardCommonMediaKeySystemAccess.createMediaKeys();case 1:mediaKeys=_context505.v;expect(mediaKeySystemAccess.createMediaKeys).toHaveBeenCalledTimes(1);expect(mediaKeys).toBeInstanceOf(StandardCommonMediaKeys);case 2:return _context505.a(2)}},_callee505)})))})});describe("StandardCommonMediaKeys",function(){var mockAudioElement;var mediaKeys;var standardCommonMediaKeys;beforeEach(function(){mockAudioElement=new MockHTMLAudioElement;mediaKeys=new MockMediaKeys;standardCommonMediaKeys=new StandardCommonMediaKeys("com.widevine.alpha"/* WIDEVINE */,mediaKeys)});describe("setOnElement",function(){it("sets media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee506(){return _regenerator().w(function(_context506){while(1)switch(_context506.n){case 0:expect(mockAudioElement.setMediaKeys).not.toHaveBeenCalled();_context506.n=1;return standardCommonMediaKeys.setOnElement(mockAudioElement);case 1:expect(mockAudioElement.setMediaKeys).toHaveBeenCalledOnceWith(mediaKeys);case 2:return _context506.a(2)}},_callee506)})))});describe("clearFromElement",function(){it("clears media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee507(){return _regenerator().w(function(_context507){while(1)switch(_context507.n){case 0:expect(mockAudioElement.setMediaKeys).not.toHaveBeenCalled();_context507.n=1;return standardCommonMediaKeys.clearFromElement(mockAudioElement);case 1:expect(mockAudioElement.setMediaKeys).toHaveBeenCalledOnceWith(null);case 2:return _context507.a(2)}},_callee507)})))});describe("setServerCertificate",function(){it("delegates to mediaKeys.setServerCertificate and returns the result",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee508(){var cert,result;return _regenerator().w(function(_context508){while(1)switch(_context508.n){case 0:cert=new Uint8Array([1,2,3]);mediaKeys.setServerCertificate.and.resolveTo(true);_context508.n=1;return standardCommonMediaKeys.setServerCertificate(cert);case 1:result=_context508.v;expect(result).toBeTrue();expect(mediaKeys.setServerCertificate).toHaveBeenCalledOnceWith(cert);case 2:return _context508.a(2)}},_callee508)})))});describe("createSession",function(){it("creates a session",function(){expect(mediaKeys.createSession).not.toHaveBeenCalled();var mediaKeySession=new MockMediaKeySession;mediaKeySession.closed=never;implementEventFakes(mediaKeySession);mediaKeySession.generateRequest.and.resolveTo(void 0);mediaKeys.createSession.and.returnValue(mediaKeySession);var mimeType="audio";var initData=new Uint8Array([1,2,3]);var session=standardCommonMediaKeys.createSession(mimeType,"cenc",initData);expect(mediaKeys.createSession).toHaveBeenCalledOnceWith("temporary");expect(session).toBeInstanceOf(StandardCommonMediaKeySession);expect(session.initData).toBe(initData);expect(session.mimeType).toBe(mimeType);expect(session.initDataType).toBe("cenc")})})});describe("StandardCommonMediaKeySession",function(){var mediaKeySession;var mediaKeySessionEventFakes;var standardCommonMediaKeySession;var mimeType="audio";var initData=new Uint8Array([1,2,3]);var closed;beforeEach(function(){mediaKeySession=new MockMediaKeySession;mediaKeySessionEventFakes=implementEventFakes(mediaKeySession);mediaKeySession.close.and.returnValue(Promise.resolve());mediaKeySession.generateRequest.and.resolveTo(void 0);closed=new Deferred;mediaKeySession.closed=closed;standardCommonMediaKeySession=new StandardCommonMediaKeySession(mediaKeySession,mimeType,"cenc",initData)});it("adds event listener on session for message event",function(){expect(mediaKeySession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(standardCommonMediaKeySession,"message");var event=new MockMediaKeyMessageEvent;event.type="message";mediaKeySession.dispatchEvent(event);expect(messageEventSpy).toHaveBeenCalledOnceWith({message:event.message})});describe("when created",function(){it("calls session.generateRequest() with the initData buffer",function(){expect(mediaKeySession.generateRequest).toHaveBeenCalledOnceWith("cenc",initData.buffer);mediaKeySession.generateRequest.calls.reset();var arrayBuffer=new ArrayBuffer(0);standardCommonMediaKeySession=new StandardCommonMediaKeySession(mediaKeySession,mimeType,"cenc",arrayBuffer);expect(mediaKeySession.generateRequest).toHaveBeenCalledOnceWith("cenc",arrayBuffer)});describe("when session.generateRequest rejects",function(){it("emits an error event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee509(){var errorSpy;return _regenerator().w(function(_context509){while(1)switch(_context509.n){case 0:mediaKeySession.generateRequest.and.rejectWith(new Error("expected"));standardCommonMediaKeySession=new StandardCommonMediaKeySession(mediaKeySession,mimeType,"cenc",initData);errorSpy=createEventSpy(standardCommonMediaKeySession,"error");_context509.n=1;return expectAsync(errorSpy.next()).toBeResolvedTo({target:standardCommonMediaKeySession,error:new Error("expected")});case 1:return _context509.a(2)}},_callee509)})))})});describe("update",function(){it("throws when disposed",function(){standardCommonMediaKeySession.dispose();expect(function(){return standardCommonMediaKeySession.update(new ArrayBuffer(0))}).toThrowError(DisposedError)});it("updates media key session",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee510(){var arrayBufferEmpty;return _regenerator().w(function(_context510){while(1)switch(_context510.n){case 0:arrayBufferEmpty=new ArrayBuffer(0);_context510.n=1;return standardCommonMediaKeySession.update(arrayBufferEmpty);case 1:expect(mediaKeySession.update).toHaveBeenCalledOnceWith(arrayBufferEmpty);case 2:return _context510.a(2)}},_callee510)})))});describe("closed event",function(){it("dispatches when the MediaKeySession closed resolves",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee511(){var closedSpy;return _regenerator().w(function(_context511){while(1)switch(_context511.n){case 0:closedSpy=createEventSpy(standardCommonMediaKeySession,"closed");closed.resolve("closed-by-application");_context511.n=1;return flushPromises();case 1:expect(closedSpy).toHaveBeenCalledOnceWith({reason:"closed-by-application"});case 2:return _context511.a(2)}},_callee511)})))});describe("when session.closed is nullish",function(){it("does not fail to create a session",function(){;mediaKeySession.closed=null;expect(function(){return new StandardCommonMediaKeySession(mediaKeySession,mimeType,"cenc",new ArrayBuffer(0))}).not.toThrow()})});describe("dispose",function(){it("removes listeners and closes session",function(){expect(standardCommonMediaKeySession.disposed).toBeFalse();standardCommonMediaKeySession.dispose();expect(standardCommonMediaKeySession.disposed).toBeTrue();expect(mediaKeySessionEventFakes.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);expect(mediaKeySession.close).toHaveBeenCalledOnceWith()})})})});// test/unit/drm/commonEme/MsCommonEme.test.ts
|
|
1953
|
+
var createSpy32=jasmine.createSpy;describe("MsCommonEme",function(){beforeEach(function(){if(!isNode()){pending("Cannot mock MS outside Node");return};globalThis.MSMediaKeys=MockMSMediaKeys;globalThis.MSMediaKeySession=MockMSMediaKeySession;globalThis.MSMediaKeyError=MockMSMediaKeyError});afterEach(function(){delete globalThis.MSMediaKeys;delete globalThis.MSMediaKeySession;delete globalThis.MSMediaKeyError});describe("MsCommonEme",function(){var mockAudioElement;var mockAudioElementEvents;var msCommonEme;beforeEach(function(){mockAudioElement=new MockHTMLAudioElement;mockAudioElement.msSetMediaKeys=createSpy32("msSetMediaKeys");mockAudioElementEvents=implementEventFakes(mockAudioElement);msCommonEme=new MsCommonEme});describe("requestMediaKeySystemAccess",function(){describe("requests access",function(){var keySystem="com.widevine.alpha"/* WIDEVINE */;var supportedConfigurations=[{},{audioCapabilities:[{contentType:"test"}]}];describe("with configs",function(){describe("when isTypeSupported returns true",function(){beforeEach(function(){MockMSMediaKeys.isTypeSupported.and.returnValue(true)});it("returns system access object",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee512(){var access;return _regenerator().w(function(_context512){while(1)switch(_context512.n){case 0:_context512.n=1;return msCommonEme.requestMediaKeySystemAccess(keySystem,supportedConfigurations);case 1:access=_context512.v;expect(access).toBeInstanceOf(MsCommonMediaKeySystemAccess);expect(access.keySystem).toBe(keySystem);case 2:return _context512.a(2)}},_callee512)})))});describe("when isTypeSupported() returns false",function(){beforeEach(function(){MockMSMediaKeys.isTypeSupported.and.returnValue(false)});it("throws MediaKeySystemAccessError",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee513(){return _regenerator().w(function(_context513){while(1)switch(_context513.n){case 0:_context513.n=1;return expectAsync(msCommonEme.requestMediaKeySystemAccess(keySystem,supportedConfigurations)).toBeRejectedWithError(DrmError,"keySystem not supported: com.widevine.alpha");case 1:return _context513.a(2)}},_callee513)})))});describe("with videoCapabilities only",function(){var videoOnlyConfigurations=[{videoCapabilities:[{contentType:"video/mp4"}]}];it("returns system access object when supported",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee514(){var access;return _regenerator().w(function(_context514){while(1)switch(_context514.n){case 0:MockMSMediaKeys.isTypeSupported.and.returnValue(true);_context514.n=1;return msCommonEme.requestMediaKeySystemAccess(keySystem,videoOnlyConfigurations);case 1:access=_context514.v;expect(access).toBeInstanceOf(MsCommonMediaKeySystemAccess);case 2:return _context514.a(2)}},_callee514)})));it("throws DrmError when not supported",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee515(){return _regenerator().w(function(_context515){while(1)switch(_context515.n){case 0:MockMSMediaKeys.isTypeSupported.and.returnValue(false);_context515.n=1;return expectAsync(msCommonEme.requestMediaKeySystemAccess(keySystem,videoOnlyConfigurations)).toBeRejectedWithError(DrmError);case 1:return _context515.a(2)}},_callee515)})))})})})});describe("addEncryptedListener",function(){it("adds a listener and returns an Unsubscribe handle",function(){expect(mockAudioElementEvents.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);var handler=createSpy32("handler");var encryptedSub=msCommonEme.addEncryptedListener(mockAudioElement,handler);expect(handler).not.toHaveBeenCalled();expectTypeEquals(true);var encryptedEvent=mockEvent("msneedkey");mockAudioElement.dispatchEvent(encryptedEvent);expect(handler).toHaveBeenCalledOnceWith(encryptedEvent);encryptedSub();expect(mockAudioElementEvents.hasAnyListeners()).withContext("hasAnyListeners").toBe(false)})})});describe("MsCommonMediaKeySystemAccess",function(){var keySystem="com.widevine.alpha"/* WIDEVINE */;var msCommonMediaKeySystemAccess;beforeEach(function(){msCommonMediaKeySystemAccess=new MsCommonMediaKeySystemAccess(keySystem)});it("creates media keys",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee516(){var mediaKeys;return _regenerator().w(function(_context516){while(1)switch(_context516.n){case 0:_context516.n=1;return msCommonMediaKeySystemAccess.createMediaKeys();case 1:mediaKeys=_context516.v;expect(mediaKeys).withContext("mediaKeys instanceof MsCommonMediaKeys").toBeInstanceOf(MsCommonMediaKeys);expect(mediaKeys.keySystem).toBe(keySystem);case 2:return _context516.a(2)}},_callee516)})))});describe("MsCommonMediaKeys",function(){var mockAudioElement;var mockMsMediaKeys;var msCommonMediaKeys;beforeEach(function(){mockAudioElement=new MockHTMLAudioElement;mockAudioElement.msSetMediaKeys=createSpy32("msSetMediaKeys");mockMsMediaKeys=new MockMSMediaKeys("com.widevine.alpha"/* WIDEVINE */);msCommonMediaKeys=new MsCommonMediaKeys("com.widevine.alpha"/* WIDEVINE */,mockMsMediaKeys);mockMsMediaKeys.createSession.and.callFake(function(){return new MockMSMediaKeySession})});describe("setOnElement",function(){it("sets media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee517(){return _regenerator().w(function(_context517){while(1)switch(_context517.n){case 0:_context517.n=1;return msCommonMediaKeys.setOnElement(mockAudioElement);case 1:expect(mockAudioElement.msSetMediaKeys).toHaveBeenCalledOnceWith(mockMsMediaKeys);case 2:return _context517.a(2)}},_callee517)})))});describe("clearFromElement",function(){it("clears media keys on element",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee518(){return _regenerator().w(function(_context518){while(1)switch(_context518.n){case 0:_context518.n=1;return msCommonMediaKeys.clearFromElement(mockAudioElement);case 1:expect(mockAudioElement.msSetMediaKeys).toHaveBeenCalledOnceWith(null);case 2:return _context518.a(2)}},_callee518)})))});describe("setServerCertificate",function(){it("resolves to false",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee519(){return _regenerator().w(function(_context519){while(1)switch(_context519.n){case 0:_context519.n=1;return expectAsync(msCommonMediaKeys.setServerCertificate(new Uint8Array([1,2,3]))).toBeResolvedTo(false);case 1:return _context519.a(2)}},_callee519)})))});describe("createSession",function(){var uint16Array=utf16ToUint16Array("skd://example0");var uint8Array=new Uint8Array(uint16Array.buffer);it("creates a session",function(){var session0=msCommonMediaKeys.createSession("audio/mp4; codecs=\"mp4a.40.2\"","cenc",uint8Array);expect(mockMsMediaKeys.createSession).toHaveBeenCalledOnceWith("audio/mp4; codecs=\"mp4a.40.2\"",uint8Array);expect(session0).toBeInstanceOf(MsCommonMediaKeySession)})})});describe("MsCommonMediaKeySession",function(){var mockMsMediaKeySession;var mockMsMediaKeySessionEvents;var msCommonMediaKeySession;var mockMsMediaKeyError;var mimeType="audio";var initDataType="cenc";var initData=new Uint8Array([1,2,3]);beforeEach(function(){mockMsMediaKeySession=new MockMSMediaKeySession;mockMsMediaKeySessionEvents=implementEventFakes(mockMsMediaKeySession);msCommonMediaKeySession=new MsCommonMediaKeySession(mockMsMediaKeySession,mimeType,initDataType,initData);mockMsMediaKeyError=new MockMSMediaKeyError});it("adds event listener on session for mskeymessage event",function(){expect(mockMsMediaKeySession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(msCommonMediaKeySession,"message");var messageEvent=new MockMSMediaKeyMessageEvent;mockMsMediaKeySession.dispatchEvent(messageEvent);expect(messageEventSpy).toHaveBeenCalledOnceWith({message:messageEvent.message.buffer})});describe("when an event listener is added for webkitkeyerror event",function(){describe("when session has error",function(){beforeEach(function(){mockMsMediaKeySession.error=new MSMediaKeyError});afterEach(function(){mockMsMediaKeySession.error=null});it("emits event",function(){expect(mockMsMediaKeySession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(msCommonMediaKeySession,"error");mockMsMediaKeySession.dispatchEvent(mockMsMediaKeyError);expect(messageEventSpy).toHaveBeenCalled()})});describe("when session has no error",function(){it("doesn't emit event",function(){var mockSession=new MockMSMediaKeySession;implementEventFakes(mockSession);var msCommonMediaKeySession2=new MsCommonMediaKeySession(mockSession,mimeType,initDataType,initData);expect(mockSession.addEventListener).toHaveBeenCalled();var messageEventSpy=createEventSpy(msCommonMediaKeySession2,"error");mockSession.dispatchEvent(mockMsMediaKeyError);expect(messageEventSpy).not.toHaveBeenCalled()})})});describe("update",function(){it("rejects update when disposed",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee520(){return _regenerator().w(function(_context520){while(1)switch(_context520.n){case 0:msCommonMediaKeySession.dispose();_context520.n=1;return expectAsync(msCommonMediaKeySession.update(new ArrayBuffer(0))).toBeRejectedWith(new DisposedError);case 1:return _context520.a(2)}},_callee520)})));it("updates media key session",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee521(){var arrayBufferEmpty;return _regenerator().w(function(_context521){while(1)switch(_context521.n){case 0:arrayBufferEmpty=new ArrayBuffer(0);_context521.n=1;return msCommonMediaKeySession.update(arrayBufferEmpty);case 1:expect(mockMsMediaKeySession.update).toHaveBeenCalledOnceWith(new Uint8Array(arrayBufferEmpty));case 2:return _context521.a(2)}},_callee521)})))});describe("dispose",function(){it("removes listeners and closes session",function(){expect(msCommonMediaKeySession.disposed).toBeFalse();msCommonMediaKeySession.dispose();expect(msCommonMediaKeySession.disposed).toBeTrue();expect(mockMsMediaKeySessionEvents.hasAnyListeners()).withContext("hasAnyListeners").toBe(false);expect(mockMsMediaKeySession.close).toHaveBeenCalledOnceWith()})})});describe("msErrorCodeToStr",function(){it("translates value correctly",function(){expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_CLIENT)).toBe("CLIENT"/* CLIENT */);expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_DOMAIN)).toBe("DOMAIN"/* DOMAIN */);expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_HARDWARECHANGE)).toBe("HARDWARECHANGE"/* HARDWARECHANGE */);expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_OUTPUT)).toBe("OUTPUT"/* OUTPUT */);expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_SERVICE)).toBe("SERVICE"/* SERVICE */);expect(msErrorCodeToStr(MSMediaKeyError.MS_MEDIA_KEYERR_UNKNOWN)).toBe("UNKNOWN"/* UNKNOWN */)})})});// test/unit/drm/commonEme/CommonEme.test.ts
|
|
1954
1954
|
var any31=jasmine.any;describe("CommonEme",function(){describe("CommonMediaKeySessionError",function(){it("returns a serializable error representation",function(){var code=0;var systemCode=0;expect(new CommonMediaKeySessionError(code,"CLIENT"/* CLIENT */,systemCode,"CLIENT"/* CLIENT */).toJSON()).toEqual({name:"CommonMediaKeySessionError",origin:ErrorOrigin.DRM,level:"warn"/* WARN */,message:"CLIENT"/* CLIENT */,stack:any31(String),code:code,codeStr:"CLIENT"/* CLIENT */,systemCode:systemCode,systemCodeStr:"CLIENT"/* CLIENT */})})})});// test/unit/client/CapabilitiesImpl.test.ts
|
|
1955
|
-
describe("CapabilitiesImpl",function(){var media;var capabilities;var drmController;beforeEach(function(){media=new MockHTMLAudioElement;drmController=new MockDrmController;capabilities=new CapabilitiesImpl({media:media,drmController:drmController})});describe("mse",function(){it("returns supportsMse",function(){expect(capabilities.mse).toBe(supportsMse())})});describe("eme",function(){it("returns drmController.isEmeSupported",function(){drmController.isEmeSupported.and.returnValue(true);expect(capabilities.eme).toBeTrue();drmController.isEmeSupported.and.returnValue(false);expect(capabilities.eme).toBeFalse()})});describe("dash",function(){it("returns truthy result from canPlayType 'application/dash+xml'",function(){media.canPlayType.and.callFake(function(type){if(type==="application/dash+xml")return"probably";else return""});expect(capabilities.dash).toBe(true);media.canPlayType.and.returnValue("");expect(capabilities.dash).toBe(false)})});describe("hls",function(){it("returns truthy result from canPlayType 'application/vnd.apple.mpegurl'",function(){media.canPlayType.and.callFake(function(type){if(type==="application/vnd.apple.mpegurl")return"maybe";else return""});expect(capabilities.hls).toBe(true);media.canPlayType.and.returnValue("");expect(capabilities.hls).toBe(false)})});describe("sampleRate",function(){describe("when audio context is supported",function(){var mockAudioContextRef=overrideGlobalInit(audioContextRef,function(){return new MockAudioContext});it("resolves to the sampleRate reported by the audio context singleton",function(){var mockAudioContext=mockAudioContextRef.value;mockAudioContext.sampleRate=44100;expect(capabilities.sampleRate).toBe(44100);mockAudioContext.sampleRate=48e3;expect(capabilities.sampleRate).toBe(48e3)})});describe("when audio context is not supported",function(){overrideGlobalInit(audioContextRef,function(){return null});it("resolves to null",function(){expect(capabilities.sampleRate).toBe(null)})})});describe("canPlayType",function(){it("returns empty string if HTMLMediaElement.canPlayType is not defined ",function(){media.canPlayType=void 0;expect(capabilities.canPlayType("flac")).toBe("no"/* NO */)});describe("when media returns empty string",function(){it("returns CanPlayTypeResult.NO",function(){media.canPlayType.and.returnValue("");expect(capabilities.canPlayType("flac")).toBe("no"/* NO */)})});describe("when media returns 'probably'",function(){it("returns CanPlayTypeResult.PROBABLY",function(){media.canPlayType.and.returnValue("probably");expect(capabilities.canPlayType("")).toBe("probably"/* PROBABLY */)})});describe("when media returns 'maybe'",function(){it("returns CanPlayTypeResult.MAYBE",function(){media.canPlayType.and.returnValue("maybe");expect(capabilities.canPlayType("")).toBe("maybe"/* MAYBE */)})})});describe("canPlayTypeMse",function(){var originalMediaSource=globalThis.MediaSource;var originalManagedMediaSource=globalThis.ManagedMediaSource;beforeEach(function(){globalThis.MediaSource=MockMediaSourceGlobal;globalThis.ManagedMediaSource=void 0});afterEach(function(){globalThis.MediaSource=originalMediaSource;globalThis.ManagedMediaSource=originalManagedMediaSource;MockMediaSourceGlobal.isTypeSupported.calls.reset()});it("delegates to isTypeSupported",function(){MockMediaSourceGlobal.isTypeSupported.and.returnValues(true,false);expect(capabilities.canPlayTypeMse("flac")).toBeTrue();expect(capabilities.canPlayTypeMse("opus")).toBeFalse()})});describe("supportsKeySystem",function(){it("returns drmController.isSupported with common format and given key system",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1956
|
-
describe("progressive integ",function(){var suite=createVinylSuite();it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1957
|
-
describe("trackController integ",function(){function createLoadOptionsList(count){var loadOptions=[];for(var i=0;i<count;i++){loadOptions.push({type:"src",uri:"".concat(vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps,"?track=").concat(createShortUid(),"_").concat(i)})}return loadOptions}describe("load",function(){var suite=createVinylSuite({trackController:{preloadCapacity:1,trackPrefetchCount:3}});it("prefetches trackPrefetchCount tracks ahead",function(){var tracks=createLoadOptionsList(7);var player=suite.player;function expectCached(indices){for(var i=0;i<6;i++){var expected=indices.includes(i);expect(player.isTrackCached(tracks[i].uri)).withContext("track ".concat(i)).toBe(expected)}}player.load.apply(player,_toConsumableArray(tracks));expectCached([0,1,2,3]);player.next();expectCached([0,1,2,3,4]);player.next();expectCached([1,2,3,4,5]);player.next();expectCached([2,3,4,5,6]);player.next();expectCached([2,3,4,5,6])});it("moves to the next track on ended",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1958
|
-
describe("hls integ",function(){var playlist=[{type:"hls",uri:vinylTestAssets.hls.live_static_video_60s_2s_mpegts},{type:"hls",uri:vinylTestAssets.hls.live_static_video_audio_60s_4s_mpegts},{type:"hls",uri:vinylTestAssets.hls.live_static_aac_60s_mpegts},{type:"hls",uri:vinylTestAssets.hls.live_static_aac_opus_flac_60s}];var suite=createVinylSuite({},{timeout:180});beforeEach(function(){if(!supportsMse())pending("MSE not supported")});it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1959
|
-
var ART19_VIDEO_PODCAST="https://manifest.video-content.art19.com/v1/master/72cdbbd9feb362206e4a78c4cf329b96a870550b/art19-video/episodes/383bfc80-7df0-4927-b0f8-0fa2b9f74a7a/video_versions/e56fbc14-5430-4203-afe7-158b3d9ab044/s/ecc6db96-b528-5642-a083-3b4ebe3a879d/video/954bcfab-9317-4f9c-b7f5-ed4031e22a35.m3u8?playerParams.rss_browser=BAhJIgtBbWF6b24GOgZFVA%3D%3D--1c4f96a4b4fa601c7d329c970a4631ae9ec066f3&playerParams.asid=ecc6db96-b528-5642-a083-3b4ebe3a879d";describe("hls EXT-X-DEFINE integ",function(){var playlist=[{type:"hls",uri:ART19_VIDEO_PODCAST}];var suite=createVinylSuite({},{timeout:180});beforeEach(function(){if(!supportsMse())pending("MSE not supported")});it("plays a manifest whose URIs are EXT-X-DEFINE templates",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1960
|
-
describe("dash video with segmentTemplate integ",function(){var playlist=[{type:"dash",uri:vinylTestAssets.dash.live_static_video_audio_60s_2s_segmentTemplate}];var suite=createVinylSuite();beforeEach(function(){if(!supportsMse())pending("MSE not supported")});it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1961
|
-
describe("dash with segmentBase integ",function(){var playlist=[{type:"dash",uri:vinylTestAssets.dash.live_static_aac_opus_flac_60s_segmentBase}];var suite=createVinylSuite();beforeEach(function(){if(!supportsMse())pending("MSE not supported")});it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1962
|
-
describe("uhd integ",function(){var ForceUhdCapabilities=/*#__PURE__*/function(_CapabilitiesImpl){function ForceUhdCapabilities(){_classCallCheck(this,ForceUhdCapabilities);return _callSuper(this,ForceUhdCapabilities,arguments)}_inherits(ForceUhdCapabilities,_CapabilitiesImpl);return _createClass(ForceUhdCapabilities,[{key:"sampleRate",get:function get(){if(hasBrowser("Chromium"/* CHROMIUM */)){return Number.MAX_VALUE}else{return _superPropGet(ForceUhdCapabilities,"sampleRate",this,1)}}}])}(CapabilitiesImpl);var suite=new VinylSuite(function(){return createVinylPlayer({media:mediaRef.value},{capabilities:function capabilities(deps){return new ForceUhdCapabilities(deps)}})});suite.init();var playlist=[{type:"dash",uri:"https://assets.dev.vinyl.music.amazon.dev/dash/world___bpm85/manifest.mpd"}];beforeEach(function(){if(!suite.player.capabilities.canPlayTypeMse("flac")){pending("flac not supported")}});it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1963
|
-
describe("seeking integ",function(){var suite=createVinylSuite();var player;var trackSuites=[{description:"dash with segmentBase",track:{type:"dash",uri:vinylTestAssets.dash.live_static_aac_opus_flac_60s_segmentBase}}];function addWhenSeekingRapidlyTests(){describe("when seeking rapidly",function(){it("the last seek should be honored",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1964
|
-
var pendingIfWidevineNotSupported=memoize(/*#__PURE__*/function(){var
|
|
1965
|
-
var playbackTime=5;describe("reset integ",function(){overrideGlobalInit(requesterWithRetryRef,function(){var requester=createRequester({retryOptions:RetryStrategy.ONE_RETRY});var originalRequest=requester.request.bind(requester);spyOn(requester,"request").and.callFake(/*#__PURE__*/function(){var
|
|
1955
|
+
describe("CapabilitiesImpl",function(){var media;var capabilities;var drmController;beforeEach(function(){media=new MockHTMLAudioElement;drmController=new MockDrmController;capabilities=new CapabilitiesImpl({media:media,drmController:drmController})});describe("mse",function(){it("returns supportsMse",function(){expect(capabilities.mse).toBe(supportsMse())})});describe("eme",function(){it("returns drmController.isEmeSupported",function(){drmController.isEmeSupported.and.returnValue(true);expect(capabilities.eme).toBeTrue();drmController.isEmeSupported.and.returnValue(false);expect(capabilities.eme).toBeFalse()})});describe("dash",function(){it("returns truthy result from canPlayType 'application/dash+xml'",function(){media.canPlayType.and.callFake(function(type){if(type==="application/dash+xml")return"probably";else return""});expect(capabilities.dash).toBe(true);media.canPlayType.and.returnValue("");expect(capabilities.dash).toBe(false)})});describe("hls",function(){it("returns truthy result from canPlayType 'application/vnd.apple.mpegurl'",function(){media.canPlayType.and.callFake(function(type){if(type==="application/vnd.apple.mpegurl")return"maybe";else return""});expect(capabilities.hls).toBe(true);media.canPlayType.and.returnValue("");expect(capabilities.hls).toBe(false)})});describe("sampleRate",function(){describe("when audio context is supported",function(){var mockAudioContextRef=overrideGlobalInit(audioContextRef,function(){return new MockAudioContext});it("resolves to the sampleRate reported by the audio context singleton",function(){var mockAudioContext=mockAudioContextRef.value;mockAudioContext.sampleRate=44100;expect(capabilities.sampleRate).toBe(44100);mockAudioContext.sampleRate=48e3;expect(capabilities.sampleRate).toBe(48e3)})});describe("when audio context is not supported",function(){overrideGlobalInit(audioContextRef,function(){return null});it("resolves to null",function(){expect(capabilities.sampleRate).toBe(null)})})});describe("canPlayType",function(){it("returns empty string if HTMLMediaElement.canPlayType is not defined ",function(){media.canPlayType=void 0;expect(capabilities.canPlayType("flac")).toBe("no"/* NO */)});describe("when media returns empty string",function(){it("returns CanPlayTypeResult.NO",function(){media.canPlayType.and.returnValue("");expect(capabilities.canPlayType("flac")).toBe("no"/* NO */)})});describe("when media returns 'probably'",function(){it("returns CanPlayTypeResult.PROBABLY",function(){media.canPlayType.and.returnValue("probably");expect(capabilities.canPlayType("")).toBe("probably"/* PROBABLY */)})});describe("when media returns 'maybe'",function(){it("returns CanPlayTypeResult.MAYBE",function(){media.canPlayType.and.returnValue("maybe");expect(capabilities.canPlayType("")).toBe("maybe"/* MAYBE */)})})});describe("canPlayTypeMse",function(){var originalMediaSource=globalThis.MediaSource;var originalManagedMediaSource=globalThis.ManagedMediaSource;beforeEach(function(){globalThis.MediaSource=MockMediaSourceGlobal;globalThis.ManagedMediaSource=void 0});afterEach(function(){globalThis.MediaSource=originalMediaSource;globalThis.ManagedMediaSource=originalManagedMediaSource;MockMediaSourceGlobal.isTypeSupported.calls.reset()});it("delegates to isTypeSupported",function(){MockMediaSourceGlobal.isTypeSupported.and.returnValues(true,false);expect(capabilities.canPlayTypeMse("flac")).toBeTrue();expect(capabilities.canPlayTypeMse("opus")).toBeFalse()})});describe("supportsKeySystem",function(){it("returns drmController.isSupported with common format and given key system",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee522(){return _regenerator().w(function(_context522){while(1)switch(_context522.n){case 0:drmController.isSupported.and.resolveTo({supported:true,persistentState:false});_context522.n=1;return expectAsync(capabilities.supportsKeySystem("org.w3.clearkey"/* CLEAR_KEY */)).toBeResolvedTo({supported:true,persistentState:false});case 1:drmController.isSupported.and.resolveTo({supported:false,persistentState:false});_context522.n=2;return expectAsync(capabilities.supportsKeySystem("org.w3.clearkey"/* CLEAR_KEY */)).toBeResolvedTo({supported:false,persistentState:false});case 2:return _context522.a(2)}},_callee522)})))})});// test/integ/track/progressive.test.ts
|
|
1956
|
+
describe("progressive integ",function(){var suite=createVinylSuite();it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee523(){var player;return _regenerator().w(function(_context523){while(1)switch(_context523.n){case 0:player=suite.player;player.load({type:"src",uri:vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps});_context523.n=1;return player.play();case 1:_context523.n=2;return onDuration(player);case 2:_context523.n=3;return expectTrackPlaysUntil(player,player.currentTime+3);case 3:return _context523.a(2)}},_callee523)})));it("provides the extra property from load config for active track",function(){var _a3;var player=suite.player;player.load({type:"src",uri:vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps,config:{extra:1}});player.preload({type:"src",uri:vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps,config:{extra:2}});expect((_a3=player.currentTrack)==null?void 0:_a3.extra).toBe(1);player.load({type:"src",uri:vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps,config:{extra:2}});var track=player.currentTrack;expect(track==null?void 0:track.extra).toBe(2);player.unload();expect(track==null?void 0:track.extra).toBeNull()})});// test/integ/track/TrackController.test.ts
|
|
1957
|
+
describe("trackController integ",function(){function createLoadOptionsList(count){var loadOptions=[];for(var i=0;i<count;i++){loadOptions.push({type:"src",uri:"".concat(vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps,"?track=").concat(createShortUid(),"_").concat(i)})}return loadOptions}describe("load",function(){var suite=createVinylSuite({trackController:{preloadCapacity:1,trackPrefetchCount:3}});it("prefetches trackPrefetchCount tracks ahead",function(){var tracks=createLoadOptionsList(7);var player=suite.player;function expectCached(indices){for(var i=0;i<6;i++){var expected=indices.includes(i);expect(player.isTrackCached(tracks[i].uri)).withContext("track ".concat(i)).toBe(expected)}}player.load.apply(player,_toConsumableArray(tracks));expectCached([0,1,2,3]);player.next();expectCached([0,1,2,3,4]);player.next();expectCached([1,2,3,4,5]);player.next();expectCached([2,3,4,5,6]);player.next();expectCached([2,3,4,5,6])});it("moves to the next track on ended",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee524(){var _a3,_b,_c,count,tracks,duration,player,i,nextTrackChange,nextQueueEnded;return _regenerator().w(function(_context524){while(1)switch(_context524.n){case 0:count=3;tracks=createLoadOptionsList(count);duration=60;player=suite.player;player.load.apply(player,_toConsumableArray(tracks));expect((_a3=player.currentTrack)==null?void 0:_a3.uri).toEqual(tracks[0].uri);_context524.n=1;return player.play();case 1:i=0;case 2:if(!(i<count-1)){_context524.n=6;break}nextTrackChange=nextEventAsPromise(player,"currentTrackChange",{timeout:30,timeoutMessage:"currentTrackChange timed out in {time}s"});_context524.n=3;return player.seekTo(duration);case 3:_context524.n=4;return nextTrackChange;case 4:expect((_b=player.currentTrack)==null?void 0:_b.uri).toEqual(tracks[i+1].uri);case 5:i++;_context524.n=2;break;case 6:nextQueueEnded=nextEventAsPromise(player,"queueEnded",{timeout:30,timeoutMessage:"queueEnded timed out in 10s"});_context524.n=7;return player.seekTo(duration);case 7:_context524.n=8;return nextQueueEnded;case 8:expect((_c=player.currentTrack)==null?void 0:_c.uri).toEqual(tracks[count-1].uri);case 9:return _context524.a(2)}},_callee524)})))})});// test/integ/track/hls/hls.test.ts
|
|
1958
|
+
describe("hls integ",function(){var playlist=[{type:"hls",uri:vinylTestAssets.hls.live_static_video_60s_2s_mpegts},{type:"hls",uri:vinylTestAssets.hls.live_static_video_audio_60s_4s_mpegts},{type:"hls",uri:vinylTestAssets.hls.live_static_aac_60s_mpegts},{type:"hls",uri:vinylTestAssets.hls.live_static_aac_opus_flac_60s}];var suite=createVinylSuite({},{timeout:180});beforeEach(function(){if(!supportsMse())pending("MSE not supported")});it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee525(){return _regenerator().w(function(_context525){while(1)switch(_context525.n){case 0:_context525.n=1;return expectPlaylistPlays(suite.player,playlist);case 1:return _context525.a(2)}},_callee525)})))});// test/integ/track/hls/extXDefine.test.ts
|
|
1959
|
+
var ART19_VIDEO_PODCAST="https://manifest.video-content.art19.com/v1/master/72cdbbd9feb362206e4a78c4cf329b96a870550b/art19-video/episodes/383bfc80-7df0-4927-b0f8-0fa2b9f74a7a/video_versions/e56fbc14-5430-4203-afe7-158b3d9ab044/s/ecc6db96-b528-5642-a083-3b4ebe3a879d/video/954bcfab-9317-4f9c-b7f5-ed4031e22a35.m3u8?playerParams.rss_browser=BAhJIgtBbWF6b24GOgZFVA%3D%3D--1c4f96a4b4fa601c7d329c970a4631ae9ec066f3&playerParams.asid=ecc6db96-b528-5642-a083-3b4ebe3a879d";describe("hls EXT-X-DEFINE integ",function(){var playlist=[{type:"hls",uri:ART19_VIDEO_PODCAST}];var suite=createVinylSuite({},{timeout:180});beforeEach(function(){if(!supportsMse())pending("MSE not supported")});it("plays a manifest whose URIs are EXT-X-DEFINE templates",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee526(){return _regenerator().w(function(_context526){while(1)switch(_context526.n){case 0:_context526.n=1;return expectPlaylistPlays(suite.player,playlist);case 1:return _context526.a(2)}},_callee526)})))});// test/integ/track/dash/liveStaticSegmentTemplate.test.ts
|
|
1960
|
+
describe("dash video with segmentTemplate integ",function(){var playlist=[{type:"dash",uri:vinylTestAssets.dash.live_static_video_audio_60s_2s_segmentTemplate}];var suite=createVinylSuite();beforeEach(function(){if(!supportsMse())pending("MSE not supported")});it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee527(){return _regenerator().w(function(_context527){while(1)switch(_context527.n){case 0:_context527.n=1;return expectPlaylistPlays(suite.player,playlist);case 1:return _context527.a(2)}},_callee527)})))});// test/integ/track/dash/liveStaticSegmentBase.test.ts
|
|
1961
|
+
describe("dash with segmentBase integ",function(){var playlist=[{type:"dash",uri:vinylTestAssets.dash.live_static_aac_opus_flac_60s_segmentBase}];var suite=createVinylSuite();beforeEach(function(){if(!supportsMse())pending("MSE not supported")});it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee528(){return _regenerator().w(function(_context528){while(1)switch(_context528.n){case 0:_context528.n=1;return expectPlaylistPlays(suite.player,playlist);case 1:return _context528.a(2)}},_callee528)})))});// test/integ/track/dash/Uhd.test.ts
|
|
1962
|
+
describe("uhd integ",function(){var ForceUhdCapabilities=/*#__PURE__*/function(_CapabilitiesImpl){function ForceUhdCapabilities(){_classCallCheck(this,ForceUhdCapabilities);return _callSuper(this,ForceUhdCapabilities,arguments)}_inherits(ForceUhdCapabilities,_CapabilitiesImpl);return _createClass(ForceUhdCapabilities,[{key:"sampleRate",get:function get(){if(hasBrowser("Chromium"/* CHROMIUM */)){return Number.MAX_VALUE}else{return _superPropGet(ForceUhdCapabilities,"sampleRate",this,1)}}}])}(CapabilitiesImpl);var suite=new VinylSuite(function(){return createVinylPlayer({media:mediaRef.value},{capabilities:function capabilities(deps){return new ForceUhdCapabilities(deps)}})});suite.init();var playlist=[{type:"dash",uri:"https://assets.dev.vinyl.music.amazon.dev/dash/world___bpm85/manifest.mpd"}];beforeEach(function(){if(!suite.player.capabilities.canPlayTypeMse("flac")){pending("flac not supported")}});it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee529(){var _a3,player;return _regenerator().w(function(_context529){while(1)switch(_context529.n){case 0:player=suite.player;player.load.apply(player,playlist);_context529.n=1;return player.play();case 1:if(hasBrowser("Chromium"/* CHROMIUM */)){expect((_a3=player.getPlaybackQuality("audio"))==null?void 0:_a3.audioSamplingRate).toBe([192e3,192e3])}_context529.n=2;return _sleep(25);case 2:expect(player.currentTime).toBeGreaterThan(20);_context529.n=3;return player.seekTo(player.duration-3);case 3:_context529.n=4;return onEnded(player);case 4:expect(player.currentTime).withContext("currentTime ends near duration").toBeCloseToWithin(player.duration,3);case 5:return _context529.a(2)}},_callee529)})))});// test/integ/playback/seeking.test.ts
|
|
1963
|
+
describe("seeking integ",function(){var suite=createVinylSuite();var player;var trackSuites=[{description:"dash with segmentBase",track:{type:"dash",uri:vinylTestAssets.dash.live_static_aac_opus_flac_60s_segmentBase}}];function addWhenSeekingRapidlyTests(){describe("when seeking rapidly",function(){it("the last seek should be honored",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee530(){var promises,FINAL,TOLERANCE,finalPromise;return _regenerator().w(function(_context530){while(1)switch(_context530.n){case 0:promises=[];promises.push(player.seekTo(12));promises.push(player.seekTo(15));promises.push(player.seekTo(15.1));promises.push(player.seekTo(30));promises.push(player.seekTo(30.5));promises.push(player.seekTo(5));promises.push(player.seekTo(25));FINAL=50;TOLERANCE=1;finalPromise=player.seekTo(FINAL);_context530.n=1;return Promise.all(promises);case 1:_context530.n=2;return finalPromise;case 2:expect(player.currentTime).toBeCloseToWithin(FINAL,TOLERANCE);if(player.paused){_context530.n=3;break}_context530.n=3;return assertFrequency();case 3:return _context530.a(2)}},_callee530)})))})}beforeEach(function(){player=suite.player});var _loop14=function _loop14(){var trackSuite=_trackSuites[_i38];describe(trackSuite.description,function(){beforeEach(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee531(){var _t42;return _regenerator().w(function(_context531){while(1)switch(_context531.p=_context531.n){case 0:_context531.p=0;player.load(trackSuite.track);_context531.n=4;break;case 1:_context531.p=1;_t42=_context531.v;if(!(_t42 instanceof MediaUnsupportedError)){_context531.n=2;break}pending("Track type not supported");_context531.n=3;break;case 2:throw _t42;case 3:return _context531.a(2);case 4:_context531.n=5;return player.play();case 5:return _context531.a(2)}},_callee531,null,[[0,1]])})));describe("when playing",function(){it("can seek to a time",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee532(){return _regenerator().w(function(_context532){while(1)switch(_context532.n){case 0:expect(player.paused).withContext("paused").toBeFalse();expect(player.playing).withContext("playing").toBeTrue();_context532.n=1;return expectTrackCanSeekTo(player,10);case 1:_context532.n=2;return expectTrackCanSeekTo(player,20);case 2:_context532.n=3;return expectTrackCanSeekTo(player,5);case 3:_context532.n=4;return expectTrackCanSeekTo(player,0);case 4:return _context532.a(2)}},_callee532)})));it("clamps when seeking to beyond duration",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee533(){return _regenerator().w(function(_context533){while(1)switch(_context533.n){case 0:_context533.n=1;return expectTrackCanSeekTo(player,999);case 1:return _context533.a(2)}},_callee533)})));addWhenSeekingRapidlyTests()});describe("when paused",function(){beforeEach(function(){player.pause()});it("can seek to a time",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee534(){return _regenerator().w(function(_context534){while(1)switch(_context534.n){case 0:_context534.n=1;return expectTrackCanSeekTo(player,12);case 1:_context534.n=2;return expectTrackCanSeekTo(player,25);case 2:_context534.n=3;return expectTrackCanSeekTo(player,7);case 3:_context534.n=4;return expectTrackCanSeekTo(player,0);case 4:return _context534.a(2)}},_callee534)})));it("clamps when seeking to beyond duration",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee535(){return _regenerator().w(function(_context535){while(1)switch(_context535.n){case 0:_context535.n=1;return expectTrackCanSeekTo(player,999);case 1:return _context535.a(2)}},_callee535)})));addWhenSeekingRapidlyTests()});describe("when track is segmented",function(){beforeEach(function(){if(trackSuite.track.type!=="dash")pending("not segmented")});it("can seek close to end and start of segment boundaries",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee536(){return _regenerator().w(function(_context536){while(1)switch(_context536.n){case 0:_context536.n=1;return expectTrackCanSeekTo(player,39.9);case 1:_context536.n=2;return expectTrackCanSeekTo(player,59.99);case 2:_context536.n=3;return expectTrackCanSeekTo(player,30.01);case 3:_context536.n=4;return expectTrackCanSeekTo(player,9.999);case 4:return _context536.a(2)}},_callee536)})));it("no-ops seeks when time is close to currentTime",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee537(){return _regenerator().w(function(_context537){while(1)switch(_context537.n){case 0:_context537.n=1;return expectTrackCanSeekTo(player,39.9);case 1:_context537.n=2;return expectTrackCanSeekTo(player,40.1);case 2:_context537.n=3;return expectTrackCanSeekTo(player,40);case 3:return _context537.a(2)}},_callee537)})))});describe("after track ends",function(){it("can seek back to beginning",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee538(){var nextEnded;return _regenerator().w(function(_context538){while(1)switch(_context538.n){case 0:nextEnded=nextEventAsPromise(player,"ended");_context538.n=1;return expectTrackCanSeekTo(player,999);case 1:_context538.n=2;return nextEnded;case 2:_context538.n=3;return expectTrackCanSeekTo(player,0);case 3:_context538.n=4;return expectTrackCanSeekTo(player,5);case 4:return _context538.a(2)}},_callee538)})));it("can continue seeking",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee539(){var nextEnded;return _regenerator().w(function(_context539){while(1)switch(_context539.n){case 0:nextEnded=nextEventAsPromise(player,"ended");_context539.n=1;return expectTrackCanSeekTo(player,999);case 1:_context539.n=2;return nextEnded;case 2:_context539.n=3;return expectTrackCanSeekTo(player,0);case 3:_context539.n=4;return expectTrackCanSeekTo(player,5);case 4:_context539.n=5;return expectTrackCanSeekTo(player,15);case 5:_context539.n=6;return expectTrackCanSeekTo(player,35);case 6:_context539.n=7;return expectTrackCanSeekTo(player,999);case 7:_context539.n=8;return nextEnded;case 8:return _context539.a(2)}},_callee539)})))})})};for(var _i38=0,_trackSuites=trackSuites;_i38<_trackSuites.length;_i38++){_loop14()}});// test/integ/drm/pendingIfWidevineNotSupported.ts
|
|
1964
|
+
var pendingIfWidevineNotSupported=memoize(/*#__PURE__*/function(){var _ref497=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee540(player){var response,_t43;return _regenerator().w(function(_context540){while(1)switch(_context540.p=_context540.n){case 0:_context540.p=0;_context540.n=1;return fetch("https://cwip-shaka-proxy.appspot.com/no_auth",{method:"OPTIONS",mode:"cors"});case 1:response=_context540.v;if(response.ok){_context540.n=2;break}pending("shaka proxy rejected CORS");return _context540.a(2);case 2:_context540.n=4;break;case 3:_context540.p=3;_t43=_context540.v;pending("shaka proxy could not be reached");return _context540.a(2);case 4:if(!(location.hostname!=="localhost")){_context540.n=5;break}pending("shaka-proxy requires localhost");return _context540.a(2);case 5:if(window.isSecureContext){_context540.n=6;break}pending("requires a secure context");return _context540.a(2);case 6:_context540.n=7;return player.client.capabilities.supportsKeySystem("com.widevine.alpha"/* WIDEVINE */);case 7:if(_context540.v.supported){_context540.n=8;break}pending("requires Widevine");case 8:return _context540.a(2)}},_callee540,null,[[0,3]])}));return function(_x93){return _ref497.apply(this,arguments)}}(),function(){});// test/integ/playback/reset.test.ts
|
|
1965
|
+
var playbackTime=5;describe("reset integ",function(){overrideGlobalInit(requesterWithRetryRef,function(){var requester=createRequester({retryOptions:RetryStrategy.ONE_RETRY});var originalRequest=requester.request.bind(requester);spyOn(requester,"request").and.callFake(/*#__PURE__*/function(){var _ref498=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee541(input,init,requestOptions){return _regenerator().w(function(_context541){while(1)switch(_context541.n){case 0:if(requestGate(input,init,requestOptions)){_context541.n=2;break}_context541.n=1;return _sleep(0.1);case 1:throw new RequestError(null,{ok:false,type:"internal"/* INTERNAL */,willRetry:false,retryAfter:null,reason:null,timestamp:Date.now(),requestInfo:__spreadProps(__spreadValues({},emptyRequestInfo),{init:init!=null?init:emptyRequestInfo.init,input:input})});case 2:return _context541.a(2,originalRequest(input,init,requestOptions))}},_callee541)}));return function(_x94,_x95,_x96){return _ref498.apply(this,arguments)}}());return requester});var mockNetworkState;var mockNetworkStateRef=overrideGlobalInit(networkState,function(){return new MockNetworkState});var suite=createVinylSuite({drm:{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:{url:"https://cwip-shaka-proxy.appspot.com/no_auth"}})}},{// Do not fail the suite on caught errors, this suite tests failures
|
|
1966
1966
|
failOnError:false});var player;var errorSpy;var resetSpy;var fetchedRangesChangeSpy;var requestGate;var failNext;beforeEach(function(){mockNetworkState=mockNetworkStateRef.value;mockNetworkState.onLine=true;failNext=false;requestGate=function requestGate(){if(failNext){failNext=false;return false}return true};player=suite.player;errorSpy=createEventSpy(player,"error");resetSpy=createEventSpy(player,"reset");fetchedRangesChangeSpy=createEventSpy(player,"fetchedRangesChange");player.configure({abr:{// These tests aren't relevant to ABR, save bandwidth:
|
|
1967
|
-
strategy:"lowest"/* LOWEST */}})});describe("on dash tracks",function(){beforeEach(function(){if(!supportsMse()){pending("MSE not supported");return}});function loadDash(){player.load({type:"dash",uri:vinylTestAssets.dash.live_static_aac_opus_flac_60s_segmentBase})}it("recovers from failed segment prefetch",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1967
|
+
strategy:"lowest"/* LOWEST */}})});describe("on dash tracks",function(){beforeEach(function(){if(!supportsMse()){pending("MSE not supported");return}});function loadDash(){player.load({type:"dash",uri:vinylTestAssets.dash.live_static_aac_opus_flac_60s_segmentBase})}it("recovers from failed segment prefetch",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee542(){var playPromise,seekToTime;return _regenerator().w(function(_context542){while(1)switch(_context542.n){case 0:loadDash();playPromise=player.play();case 1:if(!(player.fetchedTime<29)){_context542.n=3;break}_context542.n=2;return fetchedRangesChangeSpy.next(15);case 2:_context542.n=1;break;case 3:failNext=true;_context542.n=4;return playPromise;case 4:_context542.n=5;return _sleep(3);case 5:expect(player.fetchedTime).toBeLessThan(31);seekToTime=32;player.seekTo(seekToTime)["catch"](noop);_context542.n=6;return expectTrackPlaysUntil(player,seekToTime+playbackTime);case 6:expect(errorSpy).withContext("prefetch failures should not cause player errors").not.toHaveBeenCalled();case 7:return _context542.a(2)}},_callee542)})));var requestOrderFailures=[{label:"manifest",contentLengthRange:void 0},{label:"sidx segment",contentLengthRange:[50,400]},{label:"index segment",contentLengthRange:[700,2e3]// ~1KiB
|
|
1968
1968
|
},{label:"media segment",contentLengthRange:[2e4,Infinity]// ~60KiB
|
|
1969
|
-
}];var _loop15=function _loop15(){var _requestOrderFailures=requestOrderFailures[i],label=_requestOrderFailures.label,contentLengthRange=_requestOrderFailures.contentLengthRange;it("recovers next onLine for ".concat(label," errors"),/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1970
|
-
describe("pause integ",function(){var suite=createVinylSuite();var player;var pauseSpy;var playSpy;var playRejectedSpy;var playingSpy;beforeEach(function(){player=suite.player;pauseSpy=createEventSpy(player,"pause");playSpy=createEventSpy(player,"play");playRejectedSpy=createEventSpy(player,"playRejected");playingSpy=createEventSpy(player,"playing")});function runPauseScenario(){return _runPauseScenario.apply(this,arguments)}function _runPauseScenario(){_runPauseScenario=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1971
|
-
describe("PlaybackControllerImpl integ",function(){var media;var controller;var originalMuted;setTestTimeout(25);beforeEach(function(){media=mediaRef.value;originalMuted=media.muted;if(!media.muted){media.muted=true}controller=new PlaybackControllerImpl({media:media,loudnessNormalizationController:new MockLoudnessNormalizationController})});afterEach(function(){media.muted=originalMuted;controller.dispose()});describe("mutedChange",function(){it("emits when muted value has changed",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1972
|
-
describe("requiresPreventCacheRangeRequestsPatch integ",function(){function canReproduce(_x97){return _canReproduce.apply(this,arguments)}function _canReproduce(){_canReproduce=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1973
|
-
describe("unreliablePlaybackEventsPatch integ",function(){setTestTimeout(25);function canReproduce(_x98){return _canReproduce2.apply(this,arguments)}function _canReproduce2(){_canReproduce2=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1974
|
-
describe("waiting integ",function(){beforeEach(function(){if(!supportsMse())pending("MSE not supported")});var suite=createVinylSuite();describe("when playback is stopped due to lack of data",function(){it("emits waiting event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1975
|
-
var any32=jasmine.any;var PLAYBACK_TIME=2;describe("integ playing and played events",function(){var suite=createVinylSuite();var player;var playingSpy;var playSpy;var playedSpy;beforeEach(function(){player=suite.player;playingSpy=createEventSpy(player,"playing");playSpy=createEventSpy(player,"play");playedSpy=createEventSpy(player,"played")});function play(){return _play.apply(this,arguments)}function _play(){_play=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1969
|
+
}];var _loop15=function _loop15(){var _requestOrderFailures=requestOrderFailures[i],label=_requestOrderFailures.label,contentLengthRange=_requestOrderFailures.contentLengthRange;it("recovers next onLine for ".concat(label," errors"),/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee545(){var nextError,playPromise,nextReset;return _regenerator().w(function(_context545){while(1)switch(_context545.n){case 0:requestGate=function requestGate(_,init){var _a3;var headers=normalizeHeadersInit((_a3=init==null?void 0:init.headers)!=null?_a3:{});var rangeHeader=headers.Range;if(!rangeHeader)return!!contentLengthRange;if(!contentLengthRange)return true;var _rangeHeader$slice$sp=rangeHeader.slice(6).split("-").map(Number),_rangeHeader$slice$sp2=_slicedToArray(_rangeHeader$slice$sp,2),start=_rangeHeader$slice$sp2[0],end=_rangeHeader$slice$sp2[1];var contentLength=end-start+1;return contentLength<contentLengthRange[0]||contentLength>contentLengthRange[1]};nextError=errorSpy.next(30);loadDash();playPromise=player.play();_context545.n=1;return nextError;case 1:requestGate=function requestGate(){return true};nextReset=resetSpy.next(1);mockNetworkState.dispatch("online",mockEvent("online"));_context545.n=2;return nextReset;case 2:_context545.n=3;return playPromise;case 3:_context545.n=4;return expectTrackPlaysUntil(player,playbackTime);case 4:return _context545.a(2)}},_callee545)})))};for(var i=0;i<requestOrderFailures.length;i++){_loop15()}describe("when encrypted",function(){beforeEach(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee543(){return _regenerator().w(function(_context543){while(1)switch(_context543.n){case 0:_context543.n=1;return pendingIfWidevineNotSupported(player);case 1:return _context543.a(2)}},_callee543)})));it("recovers from failed license requests",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee544(){var nextError,licenseAttempt,playPromise,nextReset;return _regenerator().w(function(_context544){while(1)switch(_context544.n){case 0:nextError=errorSpy.next(30);licenseAttempt=0;requestGate=function requestGate(input){if(typeof input==="string"&&input==="https://cwip-shaka-proxy.appspot.com/no_auth"){return licenseAttempt++>0}return true};player.load({type:"dash",uri:vinylTestAssets.dash.live_static_aac_opus_flac_60s_segmentBase_widevine});playPromise=player.play();_context544.n=1;return nextError;case 1:nextReset=resetSpy.next(1);mockNetworkState.dispatch("online",mockEvent("online"));_context544.n=2;return nextReset;case 2:_context544.n=3;return playPromise;case 3:_context544.n=4;return expectTrackPlaysUntil(player,playbackTime);case 4:return _context544.a(2)}},_callee544)})))})})});// test/integ/playback/pause.test.ts
|
|
1970
|
+
describe("pause integ",function(){var suite=createVinylSuite();var player;var pauseSpy;var playSpy;var playRejectedSpy;var playingSpy;beforeEach(function(){player=suite.player;pauseSpy=createEventSpy(player,"pause");playSpy=createEventSpy(player,"play");playRejectedSpy=createEventSpy(player,"playRejected");playingSpy=createEventSpy(player,"playing")});function runPauseScenario(){return _runPauseScenario.apply(this,arguments)}function _runPauseScenario(){_runPauseScenario=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee547(){var expectedEventPromise;return _regenerator().w(function(_context547){while(1)switch(_context547.n){case 0:expectedEventPromise=player.playIsPending?playRejectedSpy.next(1):pauseSpy.next(1);player.pause();_context547.n=1;return expectedEventPromise;case 1:expectPausedState(player);_context547.n=2;return expectTimeDoesNotElapse(player);case 2:return _context547.a(2)}},_callee547)}));return _runPauseScenario.apply(this,arguments)}function runPlayingScenario(){return _runPlayingScenario.apply(this,arguments)}function _runPlayingScenario(){_runPlayingScenario=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee548(){var nextPlay,nextPlaying,playPromise;return _regenerator().w(function(_context548){while(1)switch(_context548.n){case 0:nextPlay=playSpy.next(10);nextPlaying=playingSpy.next(10);playPromise=player.play();expectPendingPlaying(player);_context548.n=1;return nextPlay;case 1:_context548.n=2;return playPromise;case 2:_context548.n=3;return nextPlaying;case 3:expectPlayingState(player);_context548.n=4;return expectTimeElapses(player);case 4:return _context548.a(2)}},_callee548)}));return _runPlayingScenario.apply(this,arguments)}it("can pause when playing",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee546(){return _regenerator().w(function(_context546){while(1)switch(_context546.n){case 0:expect(player.paused).withContext("initial paused").toBeTrue();player.load({type:"src",uri:vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps});player.play()["catch"](noop);expectPendingPlaying(player);_context546.n=1;return runPauseScenario();case 1:_context546.n=2;return runPlayingScenario();case 2:_context546.n=3;return runPauseScenario();case 3:_context546.n=4;return runPlayingScenario();case 4:_context546.n=5;return runPauseScenario();case 5:return _context546.a(2)}},_callee546)})))});// test/integ/playback/PlaybackControllerImpl.test.ts
|
|
1971
|
+
describe("PlaybackControllerImpl integ",function(){var media;var controller;var originalMuted;setTestTimeout(25);beforeEach(function(){media=mediaRef.value;originalMuted=media.muted;if(!media.muted){media.muted=true}controller=new PlaybackControllerImpl({media:media,loudnessNormalizationController:new MockLoudnessNormalizationController})});afterEach(function(){media.muted=originalMuted;controller.dispose()});describe("mutedChange",function(){it("emits when muted value has changed",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee549(){var mutedChangeSpy,next;return _regenerator().w(function(_context549){while(1)switch(_context549.n){case 0:mutedChangeSpy=createEventSpy(controller,"mutedChange");media.src=vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps;_context549.n=1;return nextHasMetadata(controller);case 1:next=mutedChangeSpy.next();media.muted=false;_context549.n=2;return expectAsync(next).toBeResolvedTo({previous:true,current:false});case 2:next=mutedChangeSpy.next();media.muted=true;_context549.n=3;return expectAsync(next).toBeResolvedTo({previous:false,current:true});case 3:return _context549.a(2)}},_callee549)})))})});// test/integ/patch/network/fetch.test.ts
|
|
1972
|
+
describe("requiresPreventCacheRangeRequestsPatch integ",function(){function canReproduce(_x97){return _canReproduce.apply(this,arguments)}function _canReproduce(){_canReproduce=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee550(fetch2){var cacheBust,i,_i39,_arr5,range,_t44;return _regenerator().w(function(_context550){while(1)switch(_context550.p=_context550.n){case 0:cacheBust=createShortUid();i=0;case 1:if(!(i<2)){_context550.n=8;break}_i39=0,_arr5=["826-929","0-825","930-50160"];case 2:if(!(_i39<_arr5.length)){_context550.n=7;break}range=_arr5[_i39];_context550.p=3;_context550.n=4;return fetch2(vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps+"?cache=".concat(cacheBust),{headers:{Range:"bytes=".concat(range)}});case 4:_context550.n=6;break;case 5:_context550.p=5;_t44=_context550.v;if(!(_t44 instanceof TypeError)){_context550.n=6;break}return _context550.a(2,true);case 6:_i39++;_context550.n=2;break;case 7:i++;_context550.n=1;break;case 8:return _context550.a(2,false)}},_callee550,null,[[3,5]])}));return _canReproduce.apply(this,arguments)}addPatchTests("requiresPreventCacheRangeRequestsPatch","ensures range requests are reliable",function(){return{target:window.fetch,canReproduce:canReproduce,actualFlag:requiresPreventCacheRangeRequestsPatch(),patchedRef:{patched:patchFetch(window.fetch),eventFabricated:emptySignal,eventSquelched:emptySignal,dispose:function dispose(){}},allowFalseNegative:true}})});// test/integ/patch/media/patches/createUnreliablePlaybackEventsPatch.test.ts
|
|
1973
|
+
describe("unreliablePlaybackEventsPatch integ",function(){setTestTimeout(25);function canReproduce(_x98){return _canReproduce2.apply(this,arguments)}function _canReproduce2(){_canReproduce2=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee551(media){var domEvents,result,_t45;return _regenerator().w(function(_context551){while(1)switch(_context551.n){case 0:domEvents=new DomEventHost(media);_context551.n=1;return runWaitingScenarios(media,domEvents);case 1:_t45=_context551.v;if(_t45){_context551.n=3;break}_context551.n=2;return runPlayingScenarios(media,domEvents);case 2:_t45=_context551.v;case 3:result=_t45;domEvents.dispose();return _context551.a(2,result)}},_callee551)}));return _canReproduce2.apply(this,arguments)}function runWaitingScenarios(_x99,_x100){return _runWaitingScenarios.apply(this,arguments)}function _runWaitingScenarios(){_runWaitingScenarios=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee552(media,domEvents){var waitingSpy,nextWaiting,mediaSource,loadedMetadataSpy,nextLoadedMetadata,_t46;return _regenerator().w(function(_context552){while(1)switch(_context552.n){case 0:if(supportsMse()){_context552.n=1;break}return _context552.a(2,false);case 1:waitingSpy=createEventSpy(domEvents,"waiting");nextWaiting=waitingSpy.next(7)["catch"](noop);mediaSource=new ControlledMediaSource;loadedMetadataSpy=createEventSpy(domEvents,"loadedmetadata");nextLoadedMetadata=loadedMetadataSpy.next(10);_t46=URL;_context552.n=2;return mediaSource.getMediaSource();case 2:media.src=_t46.createObjectURL.call(_t46,_context552.v);_context552.n=3;return mediaSource.appendNext();case 3:_context552.n=4;return nextLoadedMetadata;case 4:void media.play();_context552.n=5;return nextWaiting;case 5:if(waitingSpy.calls.any()){_context552.n=6;break}return _context552.a(2,true);case 6:_context552.n=7;return mediaSource.appendNext();case 7:media.currentTime=7;_context552.n=8;return nextEventAsPromise(domEvents,"timeupdate",{filter:function filter(){return media.currentTime>9.5}});case 8:waitingSpy.calls.reset();_context552.n=9;return waitingSpy.next(5)["catch"](noop);case 9:if(waitingSpy.calls.any()){_context552.n=10;break}return _context552.a(2,true);case 10:waitingSpy.calls.reset();_context552.n=11;return mediaSource.appendNext();case 11:_context552.n=12;return nextEventAsPromise(domEvents,"timeupdate");case 12:expect(waitingSpy).not.toHaveBeenCalled();nextWaiting=waitingSpy.next(5)["catch"](noop);media.currentTime=40;_context552.n=13;return nextWaiting;case 13:media.removeAttribute("src");media.load();return _context552.a(2,!waitingSpy.calls.any())}},_callee552)}));return _runWaitingScenarios.apply(this,arguments)}function runPlayingScenarios(_x101,_x102){return _runPlayingScenarios.apply(this,arguments)}function _runPlayingScenarios(){_runPlayingScenarios=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee553(media,domEvents){var canReproduce2,_t47;return _regenerator().w(function(_context553){while(1)switch(_context553.p=_context553.n){case 0:media.src=vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps;_context553.n=1;return withTimeout(media.play(),10,"play timed out");case 1:media.currentTime=15;_context553.p=2;_context553.n=3;return nextEventAsPromise(domEvents,"playing",{timeout:10});case 3:canReproduce2=false;_context553.n=5;break;case 4:_context553.p=4;_t47=_context553.v;canReproduce2=true;case 5:media.removeAttribute("src");media.load();return _context553.a(2,canReproduce2)}},_callee553,null,[[2,4]])}));return _runPlayingScenarios.apply(this,arguments)}addPatchTests("unreliablePlaybackEvents","ensures waiting events are emitted when playback reaches end of buffer",function(){return{target:mediaRef.value,canReproduce:canReproduce,actualFlag:defaultMediaElementPatchOptions.value.unreliablePlaybackEvents,patchedRef:patchMediaElement(mediaRef.value,defaultMediaElementPatchOptions.value),allowFalseNegative:true}})});// test/integ/event/waiting.test.ts
|
|
1974
|
+
describe("waiting integ",function(){beforeEach(function(){if(!supportsMse())pending("MSE not supported")});var suite=createVinylSuite();describe("when playback is stopped due to lack of data",function(){it("emits waiting event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee554(){var player,waitingSpy,waitedSpy,playSpy,mediaSource,nextPlay,nextWaiting,nextWaited,seekPromise,_t48,_t49,_t50;return _regenerator().w(function(_context554){while(1)switch(_context554.n){case 0:player=suite.player;waitingSpy=createEventSpy(player,"waiting");waitedSpy=createEventSpy(player,"waited");playSpy=createEventSpy(player,"play");mediaSource=new ControlledMediaSource;_t48=player;_t49=URL;_context554.n=1;return mediaSource.getMediaSource();case 1:_t50=_t49.createObjectURL.call(_t49,_context554.v);_t48.load.call(_t48,{type:"src",uri:_t50});nextPlay=playSpy.next(5);void player.play();nextWaiting=waitingSpy.next(10,"waiting after play when not buffered");_context554.n=2;return mediaSource.appendNext();case 2:_context554.n=3;return nextPlay;case 3:_context554.n=4;return nextWaiting;case 4:expect(player.waiting).toBeTrue();nextWaited=waitedSpy.next(5,"waited 1 timeout after {timeout}s");_context554.n=5;return mediaSource.appendNext();case 5:_context554.n=6;return nextWaited;case 6:expect(player.waiting).withContext("waiting").toBeFalse();_context554.n=7;return player.seekTo(5);case 7:_context554.n=8;return waitingSpy.next(30,"waiting after hit end of buffer timed out after {timeout}s");case 8:nextWaited=waitedSpy.next(5,"waited after data buffered timed out after {timeout}s");_context554.n=9;return mediaSource.appendNext();case 9:_context554.n=10;return nextWaited;case 10:nextWaiting=nextEventAsPromise(player,"waiting",{timeout:5,timeoutMessage:"waiting after seek to unbuffered region timed out after {time}s"});seekPromise=player.seekTo(22);_context554.n=11;return nextWaiting;case 11:nextWaited=waitedSpy.next(5,"waited after data buffered 2 timed out after {timeout}s");_context554.n=12;return mediaSource.appendNext();case 12:_context554.n=13;return nextWaited;case 13:_context554.n=14;return seekPromise;case 14:return _context554.a(2)}},_callee554)})))})});// test/integ/event/playingAndPlayed.test.ts
|
|
1975
|
+
var any32=jasmine.any;var PLAYBACK_TIME=2;describe("integ playing and played events",function(){var suite=createVinylSuite();var player;var playingSpy;var playSpy;var playedSpy;beforeEach(function(){player=suite.player;playingSpy=createEventSpy(player,"playing");playSpy=createEventSpy(player,"play");playedSpy=createEventSpy(player,"played")});function play(){return _play.apply(this,arguments)}function _play(){_play=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee559(){return _regenerator().w(function(_context559){while(1)switch(_context559.n){case 0:player.load({type:"src",uri:vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps});_context559.n=1;return player.play();case 1:return _context559.a(2)}},_callee559)}));return _play.apply(this,arguments)}afterEach(function(){suite.player.defaultPlaybackRate=1});describe("when playback is started",function(){it("emits play then playing",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee555(){var nextPlay,nextPlaying;return _regenerator().w(function(_context555){while(1)switch(_context555.n){case 0:nextPlay=playSpy.next(10);nextPlaying=playingSpy.next(10);_context555.n=1;return play();case 1:_context555.n=2;return nextPlay;case 2:_context555.n=3;return nextPlaying;case 3:expect(playSpy).toHaveBeenCalledBefore(playingSpy);case 4:return _context555.a(2)}},_callee555)})));describe("then playback is paused",function(){it("emits played",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee556(){var expectedStarted,nextPlayed,playedEvent;return _regenerator().w(function(_context556){while(1)switch(_context556.n){case 0:player.defaultPlaybackRate=0.5;_context556.n=1;return play();case 1:expectedStarted=Date.now();_context556.n=2;return _sleep(PLAYBACK_TIME);case 2:playingSpy.calls.reset();playedSpy.calls.reset();nextPlayed=playedSpy.next(1);player.pause();_context556.n=3;return nextPlayed;case 3:playedEvent=_context556.v;expect(playedEvent).toEqual({started:any32(Number),reason:"pause"/* PAUSE */,ended:any32(Number),playbackTime:any32(Number),duration:any32(Number)});expect(playedEvent.started).withContext("started").toBeCloseToWithin(expectedStarted,1e3);expect(playedEvent.ended).withContext("ended").toBeCloseToWithin(expectedStarted+PLAYBACK_TIME*1e3,500);expect(playedEvent.duration).withContext("duration").toBeCloseToWithin(PLAYBACK_TIME,0.2);expect(playingSpy).not.toHaveBeenCalled();case 4:return _context556.a(2)}},_callee556)})))});describe("then a seek is requested",function(){it("emits played",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee557(){var nextPlayed,nextPlaying;return _regenerator().w(function(_context557){while(1)switch(_context557.n){case 0:_context557.n=1;return play();case 1:playedSpy.calls.reset();playingSpy.calls.reset();nextPlayed=playedSpy.next(15);nextPlaying=playingSpy.next(15);_context557.n=2;return player.seekTo(20);case 2:_context557.n=3;return expectAsync(nextPlayed).toBeResolvedTo({started:any32(Number),ended:any32(Number),duration:any32(Number),playbackTime:any32(Number),// Firefox may emit the 'waiting' event before the 'seeking'.
|
|
1976
1976
|
// While not ideal, not worth a patch.
|
|
1977
|
-
reason:any32(String)});case 3:
|
|
1978
|
-
describe("looped integ",function(){var suite=createVinylSuite();describe("when playback looped",function(){it("dispatches looped event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1979
|
-
describe("DrmControllerImpl integ",function(){var vinylSuite=createVinylSuite({drm:{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:{url:"https://cwip-shaka-proxy.appspot.com/no_auth"}})}});beforeEach(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
1977
|
+
reason:any32(String)});case 3:_context557.n=4;return expectAsync(nextPlaying).toBeResolved();case 4:expect(playedSpy).toHaveBeenCalledBefore(playingSpy);case 5:return _context557.a(2)}},_callee557)})))})});describe("when seeking while paused",function(){it("does not emit playing",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee558(){var nextPlayed;return _regenerator().w(function(_context558){while(1)switch(_context558.n){case 0:_context558.n=1;return play();case 1:nextPlayed=playedSpy.next();playingSpy.calls.reset();player.pause();_context558.n=2;return player.seekTo(25);case 2:_context558.n=3;return expectAsync(nextPlayed).toBeResolved();case 3:_context558.n=4;return _sleep(0.5);case 4:expect(playingSpy).not.toHaveBeenCalled();case 5:return _context558.a(2)}},_callee558)})))})});// test/integ/event/looped.test.ts
|
|
1978
|
+
describe("looped integ",function(){var suite=createVinylSuite();describe("when playback looped",function(){it("dispatches looped event",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee560(){var player,loopedSpy,endedSpy,nextEnded;return _regenerator().w(function(_context560){while(1)switch(_context560.n){case 0:player=suite.player;player.load({type:"dash",uri:vinylTestAssets.dash.live_static_aac_opus_flac_60s_segmentBase});_context560.n=1;return player.play();case 1:loopedSpy=createEventSpy(player,"looped");endedSpy=createEventSpy(player,"ended");player.loop=true;_context560.n=2;return player.seekTo(player.duration);case 2:expect(loopedSpy).not.toHaveBeenCalled();_context560.n=3;return loopedSpy.next(20,"looped 1 timed out in {timeout}s");case 3:expect(loopedSpy).toHaveBeenCalledTimes(1);loopedSpy.calls.reset();_context560.n=4;return player.seekTo(30);case 4:_context560.n=5;return player.seekTo(0);case 5:expect(loopedSpy).not.toHaveBeenCalled();_context560.n=6;return player.seekTo(player.duration);case 6:_context560.n=7;return loopedSpy.next(20,"looped 2 timed out in {timeout}s");case 7:expect(loopedSpy).toHaveBeenCalledTimes(1);loopedSpy.calls.reset();expect(player.currentTime).toBeLessThan(1);expect(endedSpy).not.toHaveBeenCalled();expect(player.ended).withContext("ended").toBeFalse();player.loop=false;nextEnded=endedSpy.next(20);_context560.n=8;return player.seekTo(player.duration);case 8:_context560.n=9;return expectAsync(nextEnded).toBeResolved();case 9:expect(player.currentTime).toBeGreaterThan(player.duration-0.5);expect(loopedSpy).not.toHaveBeenCalled();expect(player.ended).withContext("ended").toBeTrue();case 10:return _context560.a(2)}},_callee560)})))})});// test/integ/drm/DrmControllerImpl.test.ts
|
|
1979
|
+
describe("DrmControllerImpl integ",function(){var vinylSuite=createVinylSuite({drm:{keySystems:_defineProperty({},"com.widevine.alpha"/* WIDEVINE */,{licenseServer:{url:"https://cwip-shaka-proxy.appspot.com/no_auth"}})}});beforeEach(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee561(){return _regenerator().w(function(_context561){while(1)switch(_context561.n){case 0:_context561.n=1;return pendingIfWidevineNotSupported(vinylSuite.player);case 1:return _context561.a(2)}},_callee561)})));describe("when given dash widevine",function(){it("plays",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee562(){return _regenerator().w(function(_context562){while(1)switch(_context562.n){case 0:vinylSuite.player.load({type:"dash",uri:vinylTestAssets.dash.live_static_aac_opus_flac_60s_segmentBase_widevine});_context562.n=1;return vinylSuite.player.play();case 1:_context562.n=2;return expectTrackPlays(vinylSuite.player);case 2:return _context562.a(2)}},_callee562)})))})})})();
|