@amazon/vinyl 1.1.1 → 2.0.0
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 +9043 -6375
- package/dist/index.cjs.map +4 -4
- package/dist/index.js +9314 -6592
- package/dist/index.js.map +4 -4
- package/dist/test/benchmark.es5.js +298 -348
- package/dist/test/benchmark.js +2820 -3212
- package/dist/test/benchmark.js.map +4 -4
- package/dist/test/integ.es5.js +1621 -933
- package/dist/test/integ.js +49633 -36792
- package/dist/test/integ.js.map +4 -4
- package/dist/test/jasmineHtml.es5.js +8 -8
- package/dist/test/jasmineHtml.js +8 -4
- package/dist/test/jasmineHtml.js.map +3 -3
- 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/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/client/Capabilities.d.ts.map +1 -1
- package/dist/types/current/client/CapabilitiesImpl.d.ts.map +1 -1
- package/dist/types/current/drm/DrmController.d.ts +31 -6
- package/dist/types/current/drm/DrmController.d.ts.map +1 -1
- package/dist/types/current/drm/DrmControllerImpl.d.ts +15 -6
- package/dist/types/current/drm/DrmControllerImpl.d.ts.map +1 -1
- package/dist/types/current/drm/DrmControllerImpl.js +92 -21
- package/dist/types/current/drm/DrmKeySystemResolver.d.ts +1 -1
- package/dist/types/current/drm/DrmKeySystemResolver.d.ts.map +1 -1
- package/dist/types/current/drm/DrmKeySystemResolver.js +1 -1
- package/dist/types/current/drm/DrmOptions.d.ts +1 -1
- package/dist/types/current/drm/DrmOptions.d.ts.map +1 -1
- package/dist/types/current/drm/DrmOptions.js +1 -1
- package/dist/types/current/drm/commonEme/CommonEme.d.ts +2 -2
- package/dist/types/current/drm/commonEme/CommonEme.d.ts.map +1 -1
- package/dist/types/current/drm/commonEme/CommonEmeFactory.d.ts +1 -1
- package/dist/types/current/drm/commonEme/CommonEmeFactory.d.ts.map +1 -1
- package/dist/types/current/drm/commonEme/MsCommonEme.d.ts +1 -1
- package/dist/types/current/drm/commonEme/MsCommonEme.d.ts.map +1 -1
- package/dist/types/current/drm/commonEme/MsCommonEme.js +1 -1
- package/dist/types/current/drm/commonEme/StandardCommonEme.d.ts +1 -1
- package/dist/types/current/drm/commonEme/StandardCommonEme.d.ts.map +1 -1
- package/dist/types/current/drm/commonEme/WebKitCommonEme.d.ts +2 -2
- package/dist/types/current/drm/commonEme/WebKitCommonEme.d.ts.map +1 -1
- package/dist/types/current/drm/commonEme/WebKitCommonEme.js +1 -1
- package/dist/types/current/drm/commonEme/createDrmErrorHandler.js +1 -1
- package/dist/types/current/drm/licenseProvider/LicenseProvider.d.ts +1 -1
- package/dist/types/current/drm/licenseProvider/LicenseProvider.d.ts.map +1 -1
- package/dist/types/current/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
- package/dist/types/current/drm/util/unpackPlayReadyChallenge.d.ts.map +1 -1
- package/dist/types/current/drm/util/unpackPlayReadyChallenge.js +5 -0
- package/dist/types/current/global/environment.d.ts +6 -2
- package/dist/types/current/global/environment.d.ts.map +1 -1
- package/dist/types/current/global/environment.js +4 -3
- package/dist/types/current/global/initializeVinylGlobal.js +1 -1
- package/dist/types/current/index.d.ts +151 -126
- package/dist/types/current/index.d.ts.map +1 -1
- package/dist/types/current/index.js +151 -126
- package/dist/types/current/patch/media/MediaElementPatchOptions.js +1 -1
- package/dist/types/current/patch/media/patchMediaElement.js +1 -1
- package/dist/types/current/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
- package/dist/types/current/patch/media/patches/createPreventStallsPatch.d.ts.map +1 -1
- package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
- package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts.map +1 -1
- package/dist/types/current/playback/PlaybackControllerImpl.d.ts +2 -1
- package/dist/types/current/playback/PlaybackControllerImpl.d.ts.map +1 -1
- package/dist/types/current/playback/PlaybackControllerImpl.js +48 -9
- package/dist/types/current/playback/PlaybackSource.d.ts +1 -1
- package/dist/types/current/playback/ReadonlyPlaybackController.d.ts +6 -1
- package/dist/types/current/playback/ReadonlyPlaybackController.d.ts.map +1 -1
- package/dist/types/current/playback/ReadonlyPlaybackController.js +1 -0
- package/dist/types/current/playback/error/ReportableMediaError.js +1 -1
- package/dist/types/current/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
- package/dist/types/current/playback/logging/playbackStateLoggingHandler.d.ts.map +1 -1
- package/dist/types/current/playback/logging/playbackStateLoggingHandler.js +1 -1
- package/dist/types/current/playback/nextHasMetadata.d.ts +1 -1
- package/dist/types/current/playback/nextHasMetadata.d.ts.map +1 -1
- package/dist/types/current/streaming/ContentStream.d.ts +12 -5
- package/dist/types/current/streaming/ContentStream.d.ts.map +1 -1
- package/dist/types/current/streaming/ContentStream.js +19 -2
- package/dist/types/current/streaming/ContentStreamingOptions.d.ts +2 -2
- package/dist/types/current/streaming/ContentStreamingOptions.d.ts.map +1 -1
- 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/ManifestController.d.ts +16 -1
- package/dist/types/current/streaming/ManifestController.d.ts.map +1 -1
- 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/MediaQualityMetadata.d.ts +18 -2
- package/dist/types/current/streaming/MediaQualityMetadata.d.ts.map +1 -1
- package/dist/types/current/streaming/MediaQualityMetadata.js +7 -1
- package/dist/types/current/streaming/MediaTimeline.d.ts +12 -5
- package/dist/types/current/streaming/MediaTimeline.d.ts.map +1 -1
- package/dist/types/current/streaming/SegmentController.d.ts +7 -7
- package/dist/types/current/streaming/SegmentController.d.ts.map +1 -1
- package/dist/types/current/streaming/SegmentControllerImpl.d.ts +17 -6
- package/dist/types/current/streaming/SegmentControllerImpl.d.ts.map +1 -1
- package/dist/types/current/streaming/SegmentControllerImpl.js +72 -25
- package/dist/types/current/streaming/SegmentReference.d.ts +1 -1
- package/dist/types/current/streaming/SegmentReference.d.ts.map +1 -1
- package/dist/types/current/streaming/StreamingEventMap.d.ts +39 -2
- package/dist/types/current/streaming/StreamingEventMap.d.ts.map +1 -1
- package/dist/types/current/streaming/StreamingEventMap.js +4 -0
- package/dist/types/current/streaming/abr/QualitySelector.d.ts +1 -1
- package/dist/types/current/streaming/abr/QualitySelector.d.ts.map +1 -1
- package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts +46 -3
- package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts.map +1 -1
- package/dist/types/current/streaming/abr/QualitySelectorImpl.js +46 -5
- package/dist/types/current/streaming/buffering/BufferingController.d.ts +40 -13
- package/dist/types/current/streaming/buffering/BufferingController.d.ts.map +1 -1
- package/dist/types/current/streaming/buffering/BufferingController.js +80 -27
- package/dist/types/current/streaming/buffering/MediaSourceController.d.ts +52 -21
- package/dist/types/current/streaming/buffering/MediaSourceController.d.ts.map +1 -1
- package/dist/types/current/streaming/buffering/MediaSourceController.js +126 -44
- package/dist/types/current/streaming/buffering/SourceBufferController.d.ts +1 -1
- package/dist/types/current/streaming/buffering/SourceBufferController.d.ts.map +1 -1
- package/dist/types/current/streaming/buffering/SourceBufferController.js +5 -2
- 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/createDefaultMediaTimelineTransformer.d.ts +5 -2
- package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts.map +1 -1
- package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.js +34 -3
- 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/streaming/mediaTimelineFilter.d.ts +3 -3
- package/dist/types/current/streaming/mediaTimelineFilter.d.ts.map +1 -1
- package/dist/types/current/streaming/mediaTimelineFilter.js +1 -1
- package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts +25 -7
- package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts.map +1 -1
- package/dist/types/current/streaming/mediaTimelineLanguageFilter.js +61 -16
- package/dist/types/current/streaming/util/segment.d.ts +1 -1
- package/dist/types/current/streaming/util/segment.d.ts.map +1 -1
- package/dist/types/current/text/SidecarTextTrackController.d.ts +91 -0
- package/dist/types/current/text/SidecarTextTrackController.d.ts.map +1 -0
- package/dist/types/current/text/SidecarTextTrackController.js +237 -0
- package/dist/types/current/text/SidecarTextTrackLoader.d.ts +60 -0
- package/dist/types/current/text/SidecarTextTrackLoader.d.ts.map +1 -0
- package/dist/types/current/text/SidecarTextTrackLoader.js +144 -0
- package/dist/types/current/text/TextTrack.d.ts +125 -0
- package/dist/types/current/text/TextTrack.d.ts.map +1 -0
- package/dist/types/current/text/TextTrack.js +9 -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/parseWebVtt.d.ts +46 -0
- package/dist/types/current/text/parseWebVtt.d.ts.map +1 -0
- package/dist/types/current/text/parseWebVtt.js +120 -0
- package/dist/types/current/text/pickPreferredTextTrack.d.ts +14 -0
- package/dist/types/current/text/pickPreferredTextTrack.d.ts.map +1 -0
- package/dist/types/current/text/pickPreferredTextTrack.js +68 -0
- package/dist/types/current/track/AutoResetController.d.ts +37 -12
- package/dist/types/current/track/AutoResetController.d.ts.map +1 -1
- package/dist/types/current/track/AutoResetController.js +38 -28
- 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/Track.d.ts +50 -7
- package/dist/types/current/track/Track.d.ts.map +1 -1
- package/dist/types/current/track/TrackBase.d.ts +30 -29
- package/dist/types/current/track/TrackBase.d.ts.map +1 -1
- package/dist/types/current/track/TrackBase.js +68 -16
- package/dist/types/current/track/TrackController.d.ts +102 -38
- package/dist/types/current/track/TrackController.d.ts.map +1 -1
- package/dist/types/current/track/TrackController.js +368 -115
- package/dist/types/current/track/TrackFactory.d.ts +24 -4
- package/dist/types/current/track/TrackFactory.d.ts.map +1 -1
- package/dist/types/current/track/TrackFactory.js +9 -3
- package/dist/types/current/track/createSegmentDataProvider.d.ts.map +1 -1
- package/dist/types/current/track/createVinylTrackFactories.d.ts +5 -5
- package/dist/types/current/track/createVinylTrackFactories.d.ts.map +1 -1
- package/dist/types/current/track/createVinylTrackFactories.js +4 -4
- package/dist/types/current/track/dash/DashManifestController.d.ts +1 -40
- package/dist/types/current/track/dash/DashManifestController.d.ts.map +1 -1
- package/dist/types/current/track/dash/DashManifestController.js +1 -79
- package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.d.ts.map +1 -1
- package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.js +14 -1
- package/dist/types/current/track/dash/DashTrack.d.ts +6 -7
- package/dist/types/current/track/dash/DashTrack.d.ts.map +1 -1
- package/dist/types/current/track/dash/DashTrack.js +4 -6
- package/dist/types/current/track/dash/buildDashMediaTimeline.d.ts +2 -2
- package/dist/types/current/track/dash/buildDashMediaTimeline.d.ts.map +1 -1
- package/dist/types/current/track/dash/buildDashMediaTimeline.js +4 -3
- package/dist/types/current/track/dash/createDashContentStreamFactories.d.ts.map +1 -1
- package/dist/types/current/track/dash/createDashContentTypesValue.d.ts +2 -2
- package/dist/types/current/track/dash/createDashContentTypesValue.d.ts.map +1 -1
- package/dist/types/current/track/dash/createDashContentTypesValue.js +2 -2
- package/dist/types/current/track/dash/createDashFactories.d.ts +50 -23
- package/dist/types/current/track/dash/createDashFactories.d.ts.map +1 -1
- package/dist/types/current/track/dash/createDashFactories.js +40 -12
- package/dist/types/current/track/dash/createDashManifestProvider.d.ts +1 -1
- package/dist/types/current/track/dash/createDashManifestProvider.d.ts.map +1 -1
- package/dist/types/current/track/dash/createDashManifestProvider.js +1 -1
- package/dist/types/current/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
- package/dist/types/current/track/dash/createDefaultDashManifestTransformer.d.ts.map +1 -1
- package/dist/types/current/track/dash/createDefaultDashManifestTransformer.js +1 -1
- package/dist/types/current/track/dash/createSegmentControllerFactory.d.ts +0 -5
- package/dist/types/current/track/dash/createSegmentControllerFactory.d.ts.map +1 -1
- package/dist/types/current/track/dash/manifestTransformUtils.d.ts +1 -1
- package/dist/types/current/track/dash/manifestTransformUtils.d.ts.map +1 -1
- package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
- package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts.map +1 -1
- package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.js +5 -4
- package/dist/types/current/track/dash/urlDashManifestProvider.d.ts +1 -1
- package/dist/types/current/track/dash/urlDashManifestProvider.d.ts.map +1 -1
- package/dist/types/current/track/dash/util/mimeType.d.ts.map +1 -1
- package/dist/types/current/track/dash/util/mimeType.js +1 -1
- package/dist/types/current/track/dash/util/mpd.d.ts +13 -2
- package/dist/types/current/track/dash/util/mpd.d.ts.map +1 -1
- package/dist/types/current/track/dash/util/mpd.js +29 -3
- package/dist/types/current/track/dash/util/uriResolution.js +1 -1
- package/dist/types/current/track/filters/keySystemFilter.d.ts.map +1 -1
- package/dist/types/current/track/filters/resourceTypeFilter.d.ts.map +1 -1
- package/dist/types/current/track/filters/sampleRateFilter.d.ts.map +1 -1
- package/dist/types/current/track/hls/HlsManifestController.d.ts +1 -25
- package/dist/types/current/track/hls/HlsManifestController.d.ts.map +1 -1
- package/dist/types/current/track/hls/HlsManifestController.js +1 -68
- package/dist/types/{ts3.7/track/hls/HlsManifestProvider.d.ts → current/track/hls/HlsManifestData.d.ts} +4 -6
- 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/HlsMediaQualityMetadataResolver.js +9 -6
- package/dist/types/current/track/hls/HlsTrack.d.ts +5 -6
- package/dist/types/current/track/hls/HlsTrack.d.ts.map +1 -1
- package/dist/types/current/track/hls/HlsTrack.js +3 -5
- package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts +10 -3
- package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts.map +1 -1
- package/dist/types/current/track/hls/buildHlsMediaTimeline.js +150 -81
- package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
- package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts.map +1 -1
- package/dist/types/current/track/hls/createHlsContentStreamFactories.d.ts.map +1 -1
- package/dist/types/current/track/hls/createHlsContentTypesValue.d.ts +1 -1
- package/dist/types/current/track/hls/createHlsContentTypesValue.d.ts.map +1 -1
- package/dist/types/current/track/hls/createHlsFactories.d.ts +40 -13
- package/dist/types/current/track/hls/createHlsFactories.d.ts.map +1 -1
- package/dist/types/current/track/hls/createHlsFactories.js +35 -6
- 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/hls/createUrlHlsManifestProvider.d.ts +4 -4
- package/dist/types/current/track/hls/createUrlHlsManifestProvider.d.ts.map +1 -1
- package/dist/types/current/track/hls/createUrlHlsManifestProvider.js +22 -3
- package/dist/types/current/track/hls/index.d.ts +1 -1
- package/dist/types/current/track/hls/index.d.ts.map +1 -1
- package/dist/types/current/track/hls/index.js +1 -1
- package/dist/types/current/track/hls/util/hlsSegmentTime.d.ts +1 -1
- package/dist/types/current/track/hls/util/hlsSegmentTime.d.ts.map +1 -1
- package/dist/types/current/track/hls/util/hlsSegmentTime.js +1 -1
- 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/track/mse/MseTrack.d.ts +67 -9
- package/dist/types/current/track/mse/MseTrack.d.ts.map +1 -1
- package/dist/types/current/track/mse/MseTrack.js +216 -51
- package/dist/types/current/track/mse/codec.d.ts.map +1 -1
- package/dist/types/current/track/source/FixedPlaybackQuality.d.ts +1 -1
- package/dist/types/current/track/source/FixedPlaybackQuality.d.ts.map +1 -1
- package/dist/types/current/track/source/SourceObjectTrack.d.ts +5 -5
- package/dist/types/current/track/source/SourceObjectTrack.d.ts.map +1 -1
- package/dist/types/current/track/source/SourceObjectTrack.js +2 -2
- package/dist/types/current/track/source/SourceTrack.d.ts +5 -5
- package/dist/types/current/track/source/SourceTrack.d.ts.map +1 -1
- package/dist/types/current/track/source/SourceTrack.js +3 -4
- package/dist/types/current/track/source/SourceTrackBase.d.ts +8 -6
- package/dist/types/current/track/source/SourceTrackBase.d.ts.map +1 -1
- package/dist/types/current/track/source/SourceTrackBase.js +27 -10
- 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/mediaSource.d.ts +5 -0
- package/dist/types/current/util/media/mediaSource.d.ts.map +1 -1
- package/dist/types/current/util/media/mediaSource.js +6 -1
- package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
- package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylDeps.d.ts +6 -1
- package/dist/types/current/vinyl/VinylDeps.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylOptions.d.ts +68 -4
- package/dist/types/current/vinyl/VinylOptions.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylOptions.js +17 -2
- package/dist/types/current/vinyl/VinylPatchOptions.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylPlayer.d.ts +89 -6
- package/dist/types/current/vinyl/VinylPlayer.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylPlayer.js +234 -39
- package/dist/types/current/vinyl/createVinylFactories.d.ts +64 -23
- package/dist/types/current/vinyl/createVinylFactories.d.ts.map +1 -1
- package/dist/types/current/vinyl/createVinylFactories.js +6 -2
- 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/drm/DrmController.d.ts +31 -6
- package/dist/types/ts3.7/drm/DrmControllerImpl.d.ts +15 -6
- package/dist/types/ts3.7/drm/DrmKeySystemResolver.d.ts +1 -1
- package/dist/types/ts3.7/drm/DrmOptions.d.ts +1 -1
- package/dist/types/ts3.7/drm/commonEme/CommonEme.d.ts +2 -2
- package/dist/types/ts3.7/drm/commonEme/CommonEmeFactory.d.ts +1 -1
- package/dist/types/ts3.7/drm/commonEme/MsCommonEme.d.ts +1 -1
- package/dist/types/ts3.7/drm/commonEme/StandardCommonEme.d.ts +1 -1
- package/dist/types/ts3.7/drm/commonEme/WebKitCommonEme.d.ts +2 -2
- package/dist/types/ts3.7/drm/licenseProvider/LicenseProvider.d.ts +1 -1
- package/dist/types/ts3.7/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
- package/dist/types/ts3.7/global/environment.d.ts +6 -2
- package/dist/types/ts3.7/index.d.ts +151 -126
- package/dist/types/ts3.7/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
- package/dist/types/ts3.7/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
- package/dist/types/ts3.7/playback/PlaybackControllerImpl.d.ts +2 -1
- package/dist/types/ts3.7/playback/PlaybackSource.d.ts +1 -1
- package/dist/types/ts3.7/playback/ReadonlyPlaybackController.d.ts +6 -0
- package/dist/types/ts3.7/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
- package/dist/types/ts3.7/playback/nextHasMetadata.d.ts +1 -1
- package/dist/types/ts3.7/streaming/ContentStream.d.ts +12 -5
- package/dist/types/ts3.7/streaming/ContentStreamingOptions.d.ts +2 -2
- package/dist/types/ts3.7/streaming/LoadMetric.d.ts +58 -0
- package/dist/types/ts3.7/streaming/ManifestController.d.ts +16 -1
- package/dist/types/ts3.7/streaming/ManifestControllerImpl.d.ts +40 -0
- package/dist/types/ts3.7/streaming/MediaQualityMetadata.d.ts +21 -2
- package/dist/types/ts3.7/streaming/MediaTimeline.d.ts +12 -5
- package/dist/types/ts3.7/streaming/SegmentController.d.ts +7 -7
- package/dist/types/ts3.7/streaming/SegmentControllerImpl.d.ts +17 -6
- package/dist/types/ts3.7/streaming/SegmentReference.d.ts +1 -1
- package/dist/types/ts3.7/streaming/StreamingEventMap.d.ts +43 -2
- package/dist/types/ts3.7/streaming/abr/QualitySelector.d.ts +1 -1
- package/dist/types/ts3.7/streaming/abr/QualitySelectorImpl.d.ts +46 -3
- package/dist/types/ts3.7/streaming/buffering/BufferingController.d.ts +40 -13
- package/dist/types/ts3.7/streaming/buffering/MediaSourceController.d.ts +52 -21
- package/dist/types/ts3.7/streaming/buffering/SourceBufferController.d.ts +1 -1
- 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/createDefaultMediaTimelineTransformer.d.ts +5 -2
- package/dist/types/ts3.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
- package/dist/types/ts3.7/streaming/mediaTimelineFilter.d.ts +3 -3
- package/dist/types/ts3.7/streaming/mediaTimelineLanguageFilter.d.ts +25 -7
- package/dist/types/ts3.7/streaming/util/segment.d.ts +1 -1
- package/dist/types/ts3.7/text/SidecarTextTrackController.d.ts +91 -0
- package/dist/types/ts3.7/text/SidecarTextTrackLoader.d.ts +60 -0
- package/dist/types/ts3.7/text/TextTrack.d.ts +129 -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/parseWebVtt.d.ts +46 -0
- package/dist/types/ts3.7/text/pickPreferredTextTrack.d.ts +14 -0
- package/dist/types/ts3.7/track/AutoResetController.d.ts +37 -12
- package/dist/types/ts3.7/track/SeekRange.d.ts +9 -0
- package/dist/types/ts3.7/track/Track.d.ts +50 -7
- package/dist/types/ts3.7/track/TrackBase.d.ts +21 -29
- package/dist/types/ts3.7/track/TrackController.d.ts +104 -39
- package/dist/types/ts3.7/track/TrackFactory.d.ts +23 -3
- package/dist/types/ts3.7/track/createVinylTrackFactories.d.ts +5 -5
- package/dist/types/ts3.7/track/dash/DashManifestController.d.ts +1 -36
- package/dist/types/ts3.7/track/dash/DashTrack.d.ts +6 -7
- package/dist/types/ts3.7/track/dash/buildDashMediaTimeline.d.ts +2 -2
- package/dist/types/ts3.7/track/dash/createDashContentTypesValue.d.ts +2 -2
- package/dist/types/ts3.7/track/dash/createDashFactories.d.ts +50 -23
- package/dist/types/ts3.7/track/dash/createDashManifestProvider.d.ts +1 -1
- package/dist/types/ts3.7/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
- package/dist/types/ts3.7/track/dash/createSegmentControllerFactory.d.ts +0 -5
- package/dist/types/ts3.7/track/dash/manifestTransformUtils.d.ts +1 -1
- package/dist/types/ts3.7/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
- package/dist/types/ts3.7/track/dash/urlDashManifestProvider.d.ts +1 -1
- package/dist/types/ts3.7/track/dash/util/mpd.d.ts +13 -2
- package/dist/types/ts3.7/track/hls/HlsManifestController.d.ts +1 -22
- package/dist/types/{current/track/hls/HlsManifestProvider.d.ts → ts3.7/track/hls/HlsManifestData.d.ts} +4 -6
- package/dist/types/ts3.7/track/hls/HlsTrack.d.ts +5 -6
- package/dist/types/ts3.7/track/hls/buildHlsMediaTimeline.d.ts +10 -3
- package/dist/types/ts3.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
- package/dist/types/ts3.7/track/hls/createHlsContentTypesValue.d.ts +1 -1
- package/dist/types/ts3.7/track/hls/createHlsFactories.d.ts +40 -13
- package/dist/types/ts3.7/track/hls/createHlsManifestProvider.d.ts +6 -0
- package/dist/types/ts3.7/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
- package/dist/types/ts3.7/track/hls/index.d.ts +1 -1
- package/dist/types/ts3.7/track/hls/util/hlsSegmentTime.d.ts +1 -1
- package/dist/types/ts3.7/track/inferLoadOptionsFromUri.d.ts +15 -0
- package/dist/types/ts3.7/track/mse/MseTrack.d.ts +66 -8
- package/dist/types/ts3.7/track/source/FixedPlaybackQuality.d.ts +1 -1
- package/dist/types/ts3.7/track/source/SourceObjectTrack.d.ts +5 -5
- package/dist/types/ts3.7/track/source/SourceTrack.d.ts +5 -5
- package/dist/types/ts3.7/track/source/SourceTrackBase.d.ts +8 -6
- 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/mediaSource.d.ts +5 -0
- package/dist/types/ts3.7/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
- package/dist/types/ts3.7/vinyl/VinylDeps.d.ts +6 -1
- package/dist/types/ts3.7/vinyl/VinylOptions.d.ts +68 -4
- package/dist/types/ts3.7/vinyl/VinylPlayer.d.ts +51 -6
- package/dist/types/ts3.7/vinyl/createVinylFactories.d.ts +64 -23
- 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/drm/DrmController.d.ts +31 -6
- package/dist/types/ts4.1/drm/DrmControllerImpl.d.ts +15 -6
- package/dist/types/ts4.1/drm/DrmKeySystemResolver.d.ts +1 -1
- package/dist/types/ts4.1/drm/DrmOptions.d.ts +1 -1
- package/dist/types/ts4.1/drm/commonEme/CommonEme.d.ts +2 -2
- package/dist/types/ts4.1/drm/commonEme/CommonEmeFactory.d.ts +1 -1
- package/dist/types/ts4.1/drm/commonEme/MsCommonEme.d.ts +1 -1
- package/dist/types/ts4.1/drm/commonEme/StandardCommonEme.d.ts +1 -1
- package/dist/types/ts4.1/drm/commonEme/WebKitCommonEme.d.ts +2 -2
- package/dist/types/ts4.1/drm/licenseProvider/LicenseProvider.d.ts +1 -1
- package/dist/types/ts4.1/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
- package/dist/types/ts4.1/global/environment.d.ts +6 -2
- package/dist/types/ts4.1/index.d.ts +151 -126
- package/dist/types/ts4.1/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
- package/dist/types/ts4.1/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
- package/dist/types/ts4.1/playback/PlaybackControllerImpl.d.ts +2 -1
- package/dist/types/ts4.1/playback/PlaybackSource.d.ts +1 -1
- package/dist/types/ts4.1/playback/ReadonlyPlaybackController.d.ts +6 -0
- package/dist/types/ts4.1/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
- package/dist/types/ts4.1/playback/nextHasMetadata.d.ts +1 -1
- package/dist/types/ts4.1/streaming/ContentStream.d.ts +12 -5
- package/dist/types/ts4.1/streaming/ContentStreamingOptions.d.ts +2 -2
- package/dist/types/ts4.1/streaming/LoadMetric.d.ts +58 -0
- package/dist/types/ts4.1/streaming/ManifestController.d.ts +16 -1
- package/dist/types/ts4.1/streaming/ManifestControllerImpl.d.ts +40 -0
- package/dist/types/ts4.1/streaming/MediaQualityMetadata.d.ts +21 -2
- package/dist/types/ts4.1/streaming/MediaTimeline.d.ts +12 -5
- package/dist/types/ts4.1/streaming/SegmentController.d.ts +7 -7
- package/dist/types/ts4.1/streaming/SegmentControllerImpl.d.ts +17 -6
- package/dist/types/ts4.1/streaming/SegmentReference.d.ts +1 -1
- package/dist/types/ts4.1/streaming/StreamingEventMap.d.ts +43 -2
- package/dist/types/ts4.1/streaming/abr/QualitySelector.d.ts +1 -1
- package/dist/types/ts4.1/streaming/abr/QualitySelectorImpl.d.ts +46 -3
- package/dist/types/ts4.1/streaming/buffering/BufferingController.d.ts +40 -13
- package/dist/types/ts4.1/streaming/buffering/MediaSourceController.d.ts +52 -21
- package/dist/types/ts4.1/streaming/buffering/SourceBufferController.d.ts +1 -1
- 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/createDefaultMediaTimelineTransformer.d.ts +5 -2
- package/dist/types/ts4.1/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
- package/dist/types/ts4.1/streaming/mediaTimelineFilter.d.ts +3 -3
- package/dist/types/ts4.1/streaming/mediaTimelineLanguageFilter.d.ts +25 -7
- package/dist/types/ts4.1/streaming/util/segment.d.ts +1 -1
- package/dist/types/ts4.1/text/SidecarTextTrackController.d.ts +92 -0
- package/dist/types/ts4.1/text/SidecarTextTrackLoader.d.ts +60 -0
- package/dist/types/ts4.1/text/TextTrack.d.ts +129 -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/parseWebVtt.d.ts +46 -0
- package/dist/types/ts4.1/text/pickPreferredTextTrack.d.ts +14 -0
- package/dist/types/ts4.1/track/AutoResetController.d.ts +37 -12
- package/dist/types/ts4.1/track/SeekRange.d.ts +9 -0
- package/dist/types/ts4.1/track/Track.d.ts +50 -7
- package/dist/types/ts4.1/track/TrackBase.d.ts +21 -29
- package/dist/types/ts4.1/track/TrackController.d.ts +104 -39
- package/dist/types/ts4.1/track/TrackFactory.d.ts +23 -3
- package/dist/types/ts4.1/track/createVinylTrackFactories.d.ts +5 -5
- package/dist/types/ts4.1/track/dash/DashManifestController.d.ts +1 -36
- package/dist/types/ts4.1/track/dash/DashTrack.d.ts +6 -7
- package/dist/types/ts4.1/track/dash/buildDashMediaTimeline.d.ts +2 -2
- package/dist/types/ts4.1/track/dash/createDashContentTypesValue.d.ts +2 -2
- package/dist/types/ts4.1/track/dash/createDashFactories.d.ts +50 -23
- package/dist/types/ts4.1/track/dash/createDashManifestProvider.d.ts +1 -1
- package/dist/types/ts4.1/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
- package/dist/types/ts4.1/track/dash/createSegmentControllerFactory.d.ts +0 -5
- package/dist/types/ts4.1/track/dash/manifestTransformUtils.d.ts +1 -1
- package/dist/types/ts4.1/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
- package/dist/types/ts4.1/track/dash/urlDashManifestProvider.d.ts +1 -1
- package/dist/types/ts4.1/track/dash/util/mpd.d.ts +13 -2
- package/dist/types/ts4.1/track/hls/HlsManifestController.d.ts +1 -22
- package/dist/types/ts4.1/track/hls/{HlsManifestProvider.d.ts → HlsManifestData.d.ts} +4 -6
- package/dist/types/ts4.1/track/hls/HlsTrack.d.ts +5 -6
- package/dist/types/ts4.1/track/hls/buildHlsMediaTimeline.d.ts +10 -3
- package/dist/types/ts4.1/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
- package/dist/types/ts4.1/track/hls/createHlsContentTypesValue.d.ts +1 -1
- package/dist/types/ts4.1/track/hls/createHlsFactories.d.ts +41 -13
- package/dist/types/ts4.1/track/hls/createHlsManifestProvider.d.ts +6 -0
- package/dist/types/ts4.1/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
- package/dist/types/ts4.1/track/hls/index.d.ts +1 -1
- package/dist/types/ts4.1/track/hls/util/hlsSegmentTime.d.ts +1 -1
- package/dist/types/ts4.1/track/inferLoadOptionsFromUri.d.ts +15 -0
- package/dist/types/ts4.1/track/mse/MseTrack.d.ts +67 -9
- package/dist/types/ts4.1/track/source/FixedPlaybackQuality.d.ts +1 -1
- package/dist/types/ts4.1/track/source/SourceObjectTrack.d.ts +6 -6
- package/dist/types/ts4.1/track/source/SourceTrack.d.ts +6 -6
- package/dist/types/ts4.1/track/source/SourceTrackBase.d.ts +9 -7
- 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/mediaSource.d.ts +5 -0
- package/dist/types/ts4.1/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
- package/dist/types/ts4.1/vinyl/VinylDeps.d.ts +6 -1
- package/dist/types/ts4.1/vinyl/VinylOptions.d.ts +68 -4
- package/dist/types/ts4.1/vinyl/VinylPlayer.d.ts +51 -6
- package/dist/types/ts4.1/vinyl/createVinylFactories.d.ts +65 -23
- 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/drm/DrmController.d.ts +31 -6
- package/dist/types/ts4.7/drm/DrmControllerImpl.d.ts +15 -6
- package/dist/types/ts4.7/drm/DrmKeySystemResolver.d.ts +1 -1
- package/dist/types/ts4.7/drm/DrmOptions.d.ts +1 -1
- package/dist/types/ts4.7/drm/commonEme/CommonEme.d.ts +2 -2
- package/dist/types/ts4.7/drm/commonEme/CommonEmeFactory.d.ts +1 -1
- package/dist/types/ts4.7/drm/commonEme/MsCommonEme.d.ts +1 -1
- package/dist/types/ts4.7/drm/commonEme/StandardCommonEme.d.ts +1 -1
- package/dist/types/ts4.7/drm/commonEme/WebKitCommonEme.d.ts +2 -2
- package/dist/types/ts4.7/drm/licenseProvider/LicenseProvider.d.ts +1 -1
- package/dist/types/ts4.7/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
- package/dist/types/ts4.7/global/environment.d.ts +6 -2
- package/dist/types/ts4.7/index.d.ts +151 -126
- package/dist/types/ts4.7/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
- package/dist/types/ts4.7/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
- package/dist/types/ts4.7/playback/PlaybackControllerImpl.d.ts +2 -1
- package/dist/types/ts4.7/playback/PlaybackSource.d.ts +1 -1
- package/dist/types/ts4.7/playback/ReadonlyPlaybackController.d.ts +6 -0
- package/dist/types/ts4.7/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
- package/dist/types/ts4.7/playback/nextHasMetadata.d.ts +1 -1
- package/dist/types/ts4.7/streaming/ContentStream.d.ts +12 -5
- package/dist/types/ts4.7/streaming/ContentStreamingOptions.d.ts +2 -2
- package/dist/types/ts4.7/streaming/LoadMetric.d.ts +58 -0
- package/dist/types/ts4.7/streaming/ManifestController.d.ts +16 -1
- package/dist/types/ts4.7/streaming/ManifestControllerImpl.d.ts +43 -0
- package/dist/types/ts4.7/streaming/MediaQualityMetadata.d.ts +21 -2
- package/dist/types/ts4.7/streaming/MediaTimeline.d.ts +12 -5
- package/dist/types/ts4.7/streaming/SegmentController.d.ts +7 -7
- package/dist/types/ts4.7/streaming/SegmentControllerImpl.d.ts +17 -6
- package/dist/types/ts4.7/streaming/SegmentReference.d.ts +1 -1
- package/dist/types/ts4.7/streaming/StreamingEventMap.d.ts +43 -2
- package/dist/types/ts4.7/streaming/abr/QualitySelector.d.ts +1 -1
- package/dist/types/ts4.7/streaming/abr/QualitySelectorImpl.d.ts +46 -3
- package/dist/types/ts4.7/streaming/buffering/BufferingController.d.ts +40 -13
- package/dist/types/ts4.7/streaming/buffering/MediaSourceController.d.ts +52 -21
- package/dist/types/ts4.7/streaming/buffering/SourceBufferController.d.ts +1 -1
- 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/createDefaultMediaTimelineTransformer.d.ts +5 -2
- package/dist/types/ts4.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
- package/dist/types/ts4.7/streaming/mediaTimelineFilter.d.ts +3 -3
- package/dist/types/ts4.7/streaming/mediaTimelineLanguageFilter.d.ts +25 -7
- package/dist/types/ts4.7/streaming/util/segment.d.ts +1 -1
- package/dist/types/ts4.7/text/SidecarTextTrackController.d.ts +91 -0
- package/dist/types/ts4.7/text/SidecarTextTrackLoader.d.ts +60 -0
- package/dist/types/ts4.7/text/TextTrack.d.ts +129 -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/parseWebVtt.d.ts +46 -0
- package/dist/types/ts4.7/text/pickPreferredTextTrack.d.ts +14 -0
- package/dist/types/ts4.7/track/AutoResetController.d.ts +37 -12
- package/dist/types/ts4.7/track/SeekRange.d.ts +9 -0
- package/dist/types/ts4.7/track/Track.d.ts +50 -7
- package/dist/types/ts4.7/track/TrackBase.d.ts +30 -29
- package/dist/types/ts4.7/track/TrackController.d.ts +104 -39
- package/dist/types/ts4.7/track/TrackFactory.d.ts +24 -4
- package/dist/types/ts4.7/track/createVinylTrackFactories.d.ts +5 -5
- package/dist/types/ts4.7/track/dash/DashManifestController.d.ts +1 -40
- package/dist/types/ts4.7/track/dash/DashTrack.d.ts +6 -7
- package/dist/types/ts4.7/track/dash/buildDashMediaTimeline.d.ts +2 -2
- package/dist/types/ts4.7/track/dash/createDashContentTypesValue.d.ts +2 -2
- package/dist/types/ts4.7/track/dash/createDashFactories.d.ts +50 -23
- package/dist/types/ts4.7/track/dash/createDashManifestProvider.d.ts +1 -1
- package/dist/types/ts4.7/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
- package/dist/types/ts4.7/track/dash/createSegmentControllerFactory.d.ts +0 -5
- package/dist/types/ts4.7/track/dash/manifestTransformUtils.d.ts +1 -1
- package/dist/types/ts4.7/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
- package/dist/types/ts4.7/track/dash/urlDashManifestProvider.d.ts +1 -1
- package/dist/types/ts4.7/track/dash/util/mpd.d.ts +13 -2
- package/dist/types/ts4.7/track/hls/HlsManifestController.d.ts +1 -25
- package/dist/types/ts4.7/track/hls/{HlsManifestProvider.d.ts → HlsManifestData.d.ts} +4 -6
- package/dist/types/ts4.7/track/hls/HlsTrack.d.ts +5 -6
- package/dist/types/ts4.7/track/hls/buildHlsMediaTimeline.d.ts +10 -3
- package/dist/types/ts4.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
- package/dist/types/ts4.7/track/hls/createHlsContentTypesValue.d.ts +1 -1
- package/dist/types/ts4.7/track/hls/createHlsFactories.d.ts +40 -13
- package/dist/types/ts4.7/track/hls/createHlsManifestProvider.d.ts +6 -0
- package/dist/types/ts4.7/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
- package/dist/types/ts4.7/track/hls/index.d.ts +1 -1
- package/dist/types/ts4.7/track/hls/util/hlsSegmentTime.d.ts +1 -1
- package/dist/types/ts4.7/track/inferLoadOptionsFromUri.d.ts +15 -0
- package/dist/types/ts4.7/track/mse/MseTrack.d.ts +67 -9
- package/dist/types/ts4.7/track/source/FixedPlaybackQuality.d.ts +1 -1
- package/dist/types/ts4.7/track/source/SourceObjectTrack.d.ts +5 -5
- package/dist/types/ts4.7/track/source/SourceTrack.d.ts +5 -5
- package/dist/types/ts4.7/track/source/SourceTrackBase.d.ts +8 -6
- 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/mediaSource.d.ts +5 -0
- package/dist/types/ts4.7/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
- package/dist/types/ts4.7/vinyl/VinylDeps.d.ts +6 -1
- package/dist/types/ts4.7/vinyl/VinylOptions.d.ts +68 -4
- package/dist/types/ts4.7/vinyl/VinylPlayer.d.ts +89 -6
- package/dist/types/ts4.7/vinyl/createVinylFactories.d.ts +64 -23
- 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 +205 -4
- package/dist/unit/types/current/index.d.ts +117 -98
- package/dist/unit/types/current/index.d.ts.map +1 -1
- package/dist/unit/types/current/index.js +117 -98
- package/dist/unit/types/current/playback/PlaybackControllerImpl.test.js +92 -3
- package/dist/unit/types/current/streaming/ContentStream.test.js +11 -0
- 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/MediaTimeline.test.js +8 -1
- package/dist/unit/types/current/streaming/MseTrack.test.js +482 -14
- package/dist/unit/types/current/streaming/SegmentControllerImpl.test.js +69 -33
- package/dist/unit/types/current/streaming/StreamingEventMap.test.js +2 -2
- package/dist/unit/types/current/streaming/abr/QualitySelectorImpl.test.js +183 -0
- package/dist/unit/types/current/streaming/buffering/BufferingController.test.js +123 -61
- package/dist/unit/types/current/streaming/buffering/MediaSourceController.test.js +133 -26
- package/dist/unit/types/current/streaming/buffering/SourceBufferController.test.js +4 -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/createDefaultMediaTimelineTransformer.test.js +150 -2
- 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/streaming/mediaTimelineFilter.test.js +11 -0
- package/dist/unit/types/current/streaming/mediaTimelineLanguageFilter.test.js +99 -3
- 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 +587 -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 +336 -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/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 +212 -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 +67 -0
- package/dist/unit/types/current/track/AutoResetController.test.js +134 -22
- package/dist/unit/types/current/track/TrackBase.test.js +50 -5
- package/dist/unit/types/current/track/TrackController.test.js +712 -109
- package/dist/unit/types/current/track/TrackFactory.test.js +13 -25
- package/dist/unit/types/current/track/dash/createDashContentStreamFactories.test.js +6 -1
- package/dist/unit/types/current/track/dash/createDashFactories.test.js +63 -2
- package/dist/unit/types/current/track/dash/createSegmentControllerFactory.test.js +6 -1
- package/dist/unit/types/current/track/dash/util/mpd.test.js +53 -1
- package/dist/unit/types/current/track/hls/HlsManifestController.test.js +4 -4
- package/dist/unit/types/current/track/hls/HlsMediaQualityMetadataResolver.test.js +4 -2
- package/dist/unit/types/current/track/hls/buildHlsMediaTimeline.test.js +276 -22
- package/dist/unit/types/current/track/hls/createHlsContentStreamFactories.test.js +6 -1
- package/dist/unit/types/current/track/hls/createHlsFactories.test.js +182 -4
- package/dist/unit/types/current/track/hls/createUrlHlsManifestProvider.test.js +19 -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/track/source/SourceTrack.test.js +5 -0
- package/dist/unit/types/current/track/source/SourceTrackBase.test.js +24 -3
- 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/mediaSource.test.js +6 -0
- package/dist/unit/types/current/vinyl/VinylPlayer.test.js +212 -75
- 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 +263 -0
- package/dist/vinylTestUtil/index.js +2375 -2208
- package/dist/vinylTestUtil/index.js.map +4 -4
- package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts +14 -0
- package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.js +49 -30
- package/dist/vinylTestUtil/types/current/index.d.ts +53 -51
- package/dist/vinylTestUtil/types/current/index.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/index.js +53 -51
- package/dist/vinylTestUtil/types/current/media/FrequencyAnalyzer.js +1 -1
- package/dist/vinylTestUtil/types/current/mediaSource/ControlledMediaSource.d.ts.map +1 -1
- 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/MockDashManifestController.d.ts +8 -1
- package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.js +15 -0
- package/dist/vinylTestUtil/types/current/mock/dash/mockDashManifest.d.ts +24 -24
- package/dist/vinylTestUtil/types/current/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
- package/dist/vinylTestUtil/types/current/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
- package/dist/vinylTestUtil/types/current/mock/drm/MockDrmController.d.ts +2 -2
- package/dist/vinylTestUtil/types/current/mock/drm/MockDrmController.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.d.ts +7 -1
- package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.js +12 -0
- package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.d.ts +3 -3
- package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.js +1 -0
- package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts +14 -6
- package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.js +24 -8
- package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.d.ts +2 -1
- package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.js +1 -0
- package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.d.ts +0 -1
- package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.js +0 -1
- package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
- package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.js +1 -0
- package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -2
- package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.js +2 -2
- 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/mock/track/MockAutoResetController.d.ts +1 -0
- package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.js +1 -0
- package/dist/vinylTestUtil/types/current/mock/track/MockTrack.d.ts +13 -4
- package/dist/vinylTestUtil/types/current/mock/track/MockTrack.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/track/MockTrack.js +11 -0
- package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.d.ts +3 -2
- package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.js +2 -1
- package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts +11 -5
- package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.js +19 -8
- package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts +9 -5
- package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.js +17 -8
- package/dist/vinylTestUtil/types/current/player/createVinylSuite.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/player/createVinylSuite.js +19 -8
- package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/vinylTestUtil/types/current/util/playback/eventPromises.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/util/playback/eventPromises.js +1 -1
- package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.js +6 -3
- package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlays.js +5 -5
- package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.js +12 -9
- package/dist/vinylTestUtil/types/ts3.7/assets/vinylTestAssets.d.ts +14 -0
- package/dist/vinylTestUtil/types/ts3.7/index.d.ts +53 -51
- package/dist/vinylTestUtil/types/ts3.7/mock/ad/MockAdController.d.ts +15 -0
- package/dist/vinylTestUtil/types/ts3.7/mock/dash/MockDashManifestController.d.ts +8 -1
- package/dist/vinylTestUtil/types/ts3.7/mock/dash/mockDashManifest.d.ts +24 -24
- package/dist/vinylTestUtil/types/ts3.7/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts3.7/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts3.7/mock/drm/MockDrmController.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts3.7/mock/hls/MockHlsManifestController.d.ts +7 -1
- package/dist/vinylTestUtil/types/ts3.7/mock/hls/mockHlsManifest.d.ts +3 -3
- package/dist/vinylTestUtil/types/ts3.7/mock/player/MockVinylPlayerDependencies.d.ts +14 -6
- package/dist/vinylTestUtil/types/ts3.7/mock/streaming/MockContentStream.d.ts +2 -1
- package/dist/vinylTestUtil/types/ts3.7/mock/streaming/MockSegmentController.d.ts +0 -1
- package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
- package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts3.7/mock/text/MockTextTrackController.d.ts +10 -0
- package/dist/vinylTestUtil/types/ts3.7/mock/track/MockAutoResetController.d.ts +1 -0
- package/dist/vinylTestUtil/types/ts3.7/mock/track/MockTrack.d.ts +13 -4
- package/dist/vinylTestUtil/types/ts3.7/mock/track/MockTrackController.d.ts +3 -2
- package/dist/vinylTestUtil/types/ts3.7/mock/track/dash/createMockDashDependencies.d.ts +11 -5
- package/dist/vinylTestUtil/types/ts3.7/mock/track/hls/createMockHlsDependencies.d.ts +9 -5
- package/dist/vinylTestUtil/types/ts4.1/assets/vinylTestAssets.d.ts +14 -0
- package/dist/vinylTestUtil/types/ts4.1/index.d.ts +53 -51
- package/dist/vinylTestUtil/types/ts4.1/mock/ad/MockAdController.d.ts +15 -0
- package/dist/vinylTestUtil/types/ts4.1/mock/dash/MockDashManifestController.d.ts +8 -1
- package/dist/vinylTestUtil/types/ts4.1/mock/dash/mockDashManifest.d.ts +24 -24
- package/dist/vinylTestUtil/types/ts4.1/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts4.1/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts4.1/mock/drm/MockDrmController.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts4.1/mock/hls/MockHlsManifestController.d.ts +7 -1
- package/dist/vinylTestUtil/types/ts4.1/mock/hls/mockHlsManifest.d.ts +3 -3
- package/dist/vinylTestUtil/types/ts4.1/mock/player/MockVinylPlayerDependencies.d.ts +14 -6
- package/dist/vinylTestUtil/types/ts4.1/mock/streaming/MockContentStream.d.ts +2 -1
- package/dist/vinylTestUtil/types/ts4.1/mock/streaming/MockSegmentController.d.ts +0 -1
- package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
- package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts4.1/mock/text/MockTextTrackController.d.ts +10 -0
- package/dist/vinylTestUtil/types/ts4.1/mock/track/MockAutoResetController.d.ts +1 -0
- package/dist/vinylTestUtil/types/ts4.1/mock/track/MockTrack.d.ts +13 -4
- package/dist/vinylTestUtil/types/ts4.1/mock/track/MockTrackController.d.ts +3 -2
- package/dist/vinylTestUtil/types/ts4.1/mock/track/dash/createMockDashDependencies.d.ts +11 -5
- package/dist/vinylTestUtil/types/ts4.1/mock/track/hls/createMockHlsDependencies.d.ts +9 -5
- package/dist/vinylTestUtil/types/ts4.7/assets/vinylTestAssets.d.ts +14 -0
- package/dist/vinylTestUtil/types/ts4.7/index.d.ts +53 -51
- package/dist/vinylTestUtil/types/ts4.7/mock/ad/MockAdController.d.ts +15 -0
- package/dist/vinylTestUtil/types/ts4.7/mock/dash/MockDashManifestController.d.ts +8 -1
- package/dist/vinylTestUtil/types/ts4.7/mock/dash/mockDashManifest.d.ts +24 -24
- package/dist/vinylTestUtil/types/ts4.7/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts4.7/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts4.7/mock/drm/MockDrmController.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts4.7/mock/hls/MockHlsManifestController.d.ts +7 -1
- package/dist/vinylTestUtil/types/ts4.7/mock/hls/mockHlsManifest.d.ts +3 -3
- package/dist/vinylTestUtil/types/ts4.7/mock/player/MockVinylPlayerDependencies.d.ts +14 -6
- package/dist/vinylTestUtil/types/ts4.7/mock/streaming/MockContentStream.d.ts +2 -1
- package/dist/vinylTestUtil/types/ts4.7/mock/streaming/MockSegmentController.d.ts +0 -1
- package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
- package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -2
- package/dist/vinylTestUtil/types/ts4.7/mock/text/MockTextTrackController.d.ts +10 -0
- package/dist/vinylTestUtil/types/ts4.7/mock/track/MockAutoResetController.d.ts +1 -0
- package/dist/vinylTestUtil/types/ts4.7/mock/track/MockTrack.d.ts +13 -4
- package/dist/vinylTestUtil/types/ts4.7/mock/track/MockTrackController.d.ts +3 -2
- package/dist/vinylTestUtil/types/ts4.7/mock/track/dash/createMockDashDependencies.d.ts +11 -5
- package/dist/vinylTestUtil/types/ts4.7/mock/track/hls/createMockHlsDependencies.d.ts +9 -5
- package/docs/ADS.md +264 -0
- package/docs/USAGE.md +175 -9
- package/package.json +19 -21
- package/dist/types/current/track/hls/HlsManifestProvider.d.ts.map +0 -1
- package/dist/unit/types/current/track/dash/DashManifestController.test.d.ts +0 -2
- package/dist/unit/types/current/track/dash/DashManifestController.test.d.ts.map +0 -1
- package/dist/unit/types/current/track/dash/DashManifestController.test.js +0 -186
- /package/dist/types/current/{track/hls/HlsManifestProvider.js → ad/AdBreakInfo.js} +0 -0
|
@@ -19,2075 +19,6 @@ var __spreadValues = (a, b) => {
|
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
20
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
21
21
|
|
|
22
|
-
// test/vinylTestUtil/util/playback/playbackStateExpectations.ts
|
|
23
|
-
import { sleep } from "@amazon/vinyl-util";
|
|
24
|
-
import { nextEventAsPromise } from "@amazon/vinyl-util";
|
|
25
|
-
import { closeTo } from "@amazon/vinyl-util";
|
|
26
|
-
import { expectNothing } from "@amazon/vinyl-util/browserTestUtil";
|
|
27
|
-
async function expectTimeDoesNotElapse(player) {
|
|
28
|
-
const startTime = player.currentTime;
|
|
29
|
-
await sleep(0.5);
|
|
30
|
-
if (closeTo(player.currentTime, startTime, 0.1)) {
|
|
31
|
-
expectNothing();
|
|
32
|
-
} else {
|
|
33
|
-
await sleep(2);
|
|
34
|
-
expect(player.currentTime).withContext("expectTimeDoesNotElapse").toBeCloseToWithin(startTime, 0.3);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
async function expectTimeElapses(player) {
|
|
38
|
-
const minTimeDelta = 0.5;
|
|
39
|
-
const startTime = player.currentTime;
|
|
40
|
-
await nextEventAsPromise(player, "timeUpdate", {
|
|
41
|
-
filter: () => player.currentTime > startTime + minTimeDelta,
|
|
42
|
-
timeout: 4,
|
|
43
|
-
timeoutMessage: `currentTime did not progress at least ${minTimeDelta}s after {time} seconds.`
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
function expectPausedState(player) {
|
|
47
|
-
expect(player.paused).withContext("paused").toBeTrue();
|
|
48
|
-
expect(player.playing).withContext("not playing").toBeFalse();
|
|
49
|
-
}
|
|
50
|
-
function expectPlayingState(player) {
|
|
51
|
-
expect(player.playIsPending).withContext("not pending play").toBeFalse();
|
|
52
|
-
expect(player.paused).withContext("not paused").toBeFalse();
|
|
53
|
-
expect(player.playing).withContext("playing").toBeTrue();
|
|
54
|
-
}
|
|
55
|
-
function expectPendingPlaying(player) {
|
|
56
|
-
expect(player.playIsPending).withContext("pending play").toBeTrue();
|
|
57
|
-
expect(player.playing).withContext("pending, not playing").toBeFalse();
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// test/vinylTestUtil/util/playback/eventPromises.ts
|
|
61
|
-
import {
|
|
62
|
-
nextHasMetadata
|
|
63
|
-
} from "@amazon/vinyl";
|
|
64
|
-
import { nextEventAsPromise as nextEventAsPromise2 } from "@amazon/vinyl-util";
|
|
65
|
-
async function onPlaying(playbackController, timeout = 10) {
|
|
66
|
-
if (playbackController.playing) return Promise.resolve();
|
|
67
|
-
return nextEventAsPromise2(playbackController, "playing", {
|
|
68
|
-
timeout,
|
|
69
|
-
timeoutMessage: "playing timed out after {time}s"
|
|
70
|
-
}).then(() => void 0);
|
|
71
|
-
}
|
|
72
|
-
async function onCanPlayThrough(playbackController, timeout = 20) {
|
|
73
|
-
if (playbackController.canPlayThrough) return Promise.resolve();
|
|
74
|
-
return nextEventAsPromise2(playbackController, "canPlayThrough", {
|
|
75
|
-
timeout,
|
|
76
|
-
timeoutMessage: "canPlayThrough timed out after {time}s"
|
|
77
|
-
}).then(() => void 0);
|
|
78
|
-
}
|
|
79
|
-
async function onEnded(playbackController, timeout = 10, metadataTimeout = 10) {
|
|
80
|
-
if (playbackController.ended) return Promise.resolve();
|
|
81
|
-
await nextHasMetadata(playbackController, { timeout: metadataTimeout });
|
|
82
|
-
return nextEventAsPromise2(playbackController, "ended", {
|
|
83
|
-
// Set the timeout to be the remaining track duration plus a large margin of error for stalls and seek
|
|
84
|
-
// inaccuracy.
|
|
85
|
-
timeout: playbackController.duration - playbackController.currentTime + timeout,
|
|
86
|
-
timeoutMessage: "ended timed out after {time}s"
|
|
87
|
-
}).then(() => void 0);
|
|
88
|
-
}
|
|
89
|
-
function onTimeUpdate(playbackController, timeout = 5) {
|
|
90
|
-
return nextEventAsPromise2(playbackController, "timeUpdate", {
|
|
91
|
-
timeout,
|
|
92
|
-
timeoutMessage: "timeUpdate timed out after {time}s"
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
function onDuration(playbackController, timeout = 10) {
|
|
96
|
-
if (playbackController.duration > 0) return Promise.resolve();
|
|
97
|
-
return nextEventAsPromise2(playbackController, "durationChange", {
|
|
98
|
-
timeout,
|
|
99
|
-
timeoutMessage: "durationChange timed out after {time}s"
|
|
100
|
-
}).then(() => void 0);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// test/vinylTestUtil/media/FrequencyAnalyzer.ts
|
|
104
|
-
import { getAudioContext } from "@amazon/vinyl";
|
|
105
|
-
import { TimeoutError } from "@amazon/vinyl-util";
|
|
106
|
-
import { sleep as sleep2 } from "@amazon/vinyl-util";
|
|
107
|
-
import { parseBoolean } from "@amazon/vinyl-util";
|
|
108
|
-
import { logDebug } from "@amazon/vinyl-util";
|
|
109
|
-
import { getSearchParams } from "@amazon/vinyl-util";
|
|
110
|
-
import { createLogPrefix } from "@amazon/vinyl-util";
|
|
111
|
-
|
|
112
|
-
// test/vinylTestUtil/player/mediaRef.ts
|
|
113
|
-
import { lazy } from "@amazon/vinyl-util";
|
|
114
|
-
var mediaRef = lazy(() => {
|
|
115
|
-
const media = document.createElement("video");
|
|
116
|
-
media.muted = true;
|
|
117
|
-
media.playsInline = true;
|
|
118
|
-
media.disableRemotePlayback = true;
|
|
119
|
-
return media;
|
|
120
|
-
});
|
|
121
|
-
afterEach(() => {
|
|
122
|
-
if (mediaRef.constructed) {
|
|
123
|
-
const media = mediaRef.value;
|
|
124
|
-
media.removeAttribute("src");
|
|
125
|
-
media.load();
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
// test/vinylTestUtil/ui/requireUserInteraction.ts
|
|
130
|
-
async function requireUserInteraction() {
|
|
131
|
-
const audioPrompt = document.getElementById("unlockAudioPrompt");
|
|
132
|
-
audioPrompt.style.removeProperty("display");
|
|
133
|
-
const body = document.body;
|
|
134
|
-
body.focus();
|
|
135
|
-
await new Promise((resolve) => {
|
|
136
|
-
const done = () => {
|
|
137
|
-
body.removeEventListener("click", done);
|
|
138
|
-
body.removeEventListener("keypress", done);
|
|
139
|
-
body.removeEventListener("touchend", done);
|
|
140
|
-
return resolve(void 0);
|
|
141
|
-
};
|
|
142
|
-
body.addEventListener("click", done);
|
|
143
|
-
body.addEventListener("keypress", done);
|
|
144
|
-
body.addEventListener("touchend", done);
|
|
145
|
-
});
|
|
146
|
-
audioPrompt.style.display = "none";
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// test/vinylTestUtil/assets/vinylTestAssets.ts
|
|
150
|
-
var VINYL_ASSETS_HOST = "https://assets.dev.vinyl.music.amazon.dev";
|
|
151
|
-
var vinylTestAssets = {
|
|
152
|
-
prog: {
|
|
153
|
-
libmp3lame_60s_2ch_16bit_44100Hz_48kbps: `${VINYL_ASSETS_HOST}/prog/libmp3lame_60s_2ch_16bit_44100Hz_48kbps.mp3`,
|
|
154
|
-
libmp3lame_1800s_2ch_16bit_44100Hz_48kbps: `${VINYL_ASSETS_HOST}/prog/libmp3lame_1800s_2ch_16bit_44100Hz_48kbps.mp3`
|
|
155
|
-
},
|
|
156
|
-
dash: {
|
|
157
|
-
live_static_aac_opus_flac_60s_segmentTemplate: `${VINYL_ASSETS_HOST}/dash/live_static_aac_opus_flac_60s_segmentTemplate/manifest.mpd`,
|
|
158
|
-
live_static_aac_opus_flac_60s_segmentBase: `${VINYL_ASSETS_HOST}/dash/live_static_aac_opus_flac_60s_segmentBase/manifest.mpd`,
|
|
159
|
-
live_static_video_audio_60s_2s_segmentTemplate: `${VINYL_ASSETS_HOST}/dash/live_static_video_audio_60s_2s_segmentTemplate/manifest.mpd`,
|
|
160
|
-
live_static_video_audio_60s_4s_segmentTemplate: `${VINYL_ASSETS_HOST}/dash/live_static_video_audio_60s_4s_segmentTemplate/manifest.mpd`,
|
|
161
|
-
live_static_video_audio_60s_2s_segmentTemplate_widevine_cl10: `${VINYL_ASSETS_HOST}/dash/live_static_video_audio_60s_2s_segmentTemplate_widevine_cl10/manifest.mpd`,
|
|
162
|
-
live_static_video_audio_60s_4s_segmentTemplate_widevine_cl10: `${VINYL_ASSETS_HOST}/dash/live_static_video_audio_60s_4s_segmentTemplate_widevine_cl10/manifest.mpd`,
|
|
163
|
-
live_static_video_60s_2s_segmentTemplate: `${VINYL_ASSETS_HOST}/dash/live_static_video_60s_2s_segmentTemplate/manifest.mpd`,
|
|
164
|
-
live_static_video_60s_4s_segmentTemplate: `${VINYL_ASSETS_HOST}/dash/live_static_video_60s_4s_segmentTemplate/manifest.mpd`,
|
|
165
|
-
live_static_aac_opus_flac_60s_segmentBase_widevine_cl10: `${VINYL_ASSETS_HOST}/dash/live_static_aac_opus_flac_60s_segmentBase_widevine_cl10/manifest.mpd`,
|
|
166
|
-
live_static_aac_opus_flac_60s_segmentBase_widevine: `${VINYL_ASSETS_HOST}/dash/live_static_aac_opus_flac_60s_segmentBase_widevine/manifest.mpd`,
|
|
167
|
-
live_static_aac_1800s_segmentBase_widevine_cl30: `${VINYL_ASSETS_HOST}/dash/live_static_aac_1800s_segmentBase_widevine_cl30/manifest.mpd`
|
|
168
|
-
},
|
|
169
|
-
hls: {
|
|
170
|
-
live_static_video_audio_60s_2s: `${VINYL_ASSETS_HOST}/hls/live_static_video_audio_60s_2s/main.m3u8`,
|
|
171
|
-
live_static_video_audio_60s_4s: `${VINYL_ASSETS_HOST}/hls/live_static_video_audio_60s_4s/main.m3u8`,
|
|
172
|
-
live_static_aac_opus_flac_60s: `${VINYL_ASSETS_HOST}/hls/live_static_aac_opus_flac_60s/main.m3u8`,
|
|
173
|
-
live_static_aac_60s_mpegts: `${VINYL_ASSETS_HOST}/hls/live_static_aac_60s_mpegts/main.m3u8`,
|
|
174
|
-
live_static_video_60s_2s: `${VINYL_ASSETS_HOST}/hls/live_static_video_60s_2s/main.m3u8`,
|
|
175
|
-
live_static_video_60s_4s: `${VINYL_ASSETS_HOST}/hls/live_static_video_60s_4s/main.m3u8`,
|
|
176
|
-
live_static_video_60s_2s_mpegts: `${VINYL_ASSETS_HOST}/hls/live_static_video_60s_2s_mpegts/main.m3u8`,
|
|
177
|
-
live_static_video_60s_4s_mpegts: `${VINYL_ASSETS_HOST}/hls/live_static_video_60s_4s_mpegts/main.m3u8`,
|
|
178
|
-
live_static_video_audio_60s_2s_mpegts: `${VINYL_ASSETS_HOST}/hls/live_static_video_audio_60s_2s_mpegts/main.m3u8`,
|
|
179
|
-
live_static_video_audio_60s_4s_mpegts: `${VINYL_ASSETS_HOST}/hls/live_static_video_audio_60s_4s_mpegts/main.m3u8`
|
|
180
|
-
},
|
|
181
|
-
// Segmented streaming is added by hand, ControlledMediaSource provides a way to test
|
|
182
|
-
// Media source extensions without reading a dash manifest.
|
|
183
|
-
segmentedStreaming: {
|
|
184
|
-
aac_60s_2ch_16bit_44100Hz_48kbps: {
|
|
185
|
-
init: `${VINYL_ASSETS_HOST}/dash/live_static_aac_opus_flac_60s_segmentTemplate/segments/aac_60s_2ch_16bit_44100Hz_48kbps/sample.mp4`,
|
|
186
|
-
part: `${VINYL_ASSETS_HOST}/dash/live_static_aac_opus_flac_60s_segmentTemplate/segments/aac_60s_2ch_16bit_44100Hz_48kbps/part_{index}.m4s`,
|
|
187
|
-
numSegments: 6,
|
|
188
|
-
duration: 60
|
|
189
|
-
},
|
|
190
|
-
// For testing Widevine, use a ControlledMediaSource with this asset.
|
|
191
|
-
// EME requires using a media source, but DRM testing does not need to test buffering.
|
|
192
|
-
aac_60s_2ch_16bit_44100Hz_48kbps_widevine_cl10: {
|
|
193
|
-
init: `${VINYL_ASSETS_HOST}/dash/live_static_aac_opus_flac_segmentBase_widevine_60s_cl10/representations/aac_60s_2ch_16bit_44100Hz_48kbps.mp4`,
|
|
194
|
-
part: ``,
|
|
195
|
-
numSegments: 0,
|
|
196
|
-
duration: 60
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
// test/vinylTestUtil/media/unlockMediaElement.ts
|
|
202
|
-
import { noop } from "@amazon/vinyl-util";
|
|
203
|
-
async function unlockMediaElement() {
|
|
204
|
-
const media = mediaRef.value;
|
|
205
|
-
media.src = vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps;
|
|
206
|
-
await media.play().catch(noop);
|
|
207
|
-
media.pause();
|
|
208
|
-
media.removeAttribute("src");
|
|
209
|
-
media.load();
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// test/vinylTestUtil/media/FrequencyAnalyzer.ts
|
|
213
|
-
import { setNextTestTimeout } from "@amazon/vinyl-util/browserTestUtil";
|
|
214
|
-
var TIME_ESTIMATE_TOLERANCE = 0.02;
|
|
215
|
-
var defaultFrequencyAnalyzerOptions = {
|
|
216
|
-
startFrequency: 100,
|
|
217
|
-
endFrequency: 6e3,
|
|
218
|
-
fftSize: 4096
|
|
219
|
-
};
|
|
220
|
-
var FrequencyAnalyzer = class {
|
|
221
|
-
constructor(audioContext, source, options) {
|
|
222
|
-
this.audioContext = audioContext;
|
|
223
|
-
this.source = source;
|
|
224
|
-
__publicField(this, "data");
|
|
225
|
-
__publicField(this, "analyser");
|
|
226
|
-
__publicField(this, "options");
|
|
227
|
-
__publicField(this, "logPrefix", createLogPrefix("FrequencyAnalyzer"));
|
|
228
|
-
this.options = __spreadValues(__spreadValues({}, defaultFrequencyAnalyzerOptions), options);
|
|
229
|
-
this.analyser = this.audioContext.createAnalyser();
|
|
230
|
-
this.analyser.fftSize = this.options.fftSize;
|
|
231
|
-
this.analyser.connect(this.audioContext.destination);
|
|
232
|
-
this.data = new Float32Array(this.analyser.frequencyBinCount);
|
|
233
|
-
this.source.connect(this.analyser);
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Estimates the frequency of the current frame window.
|
|
237
|
-
*
|
|
238
|
-
* The frequency estimate is the frequency of the highest decibel bin within the frame window. The number of
|
|
239
|
-
* bins is 1/2 the fftSize.
|
|
240
|
-
*/
|
|
241
|
-
get frequency() {
|
|
242
|
-
const audioCtx = this.audioContext;
|
|
243
|
-
const analyser = this.analyser;
|
|
244
|
-
const data6 = this.data;
|
|
245
|
-
analyser.getFloatFrequencyData(data6);
|
|
246
|
-
const maxIndex = data6.reduce(
|
|
247
|
-
(iMax, x, i, arr) => x > arr[iMax] ? i : iMax,
|
|
248
|
-
0
|
|
249
|
-
);
|
|
250
|
-
return maxIndex * audioCtx.sampleRate / analyser.fftSize;
|
|
251
|
-
}
|
|
252
|
-
get estimatedTime() {
|
|
253
|
-
const frequency = this.frequency;
|
|
254
|
-
const start = this.options.startFrequency;
|
|
255
|
-
const end = this.options.endFrequency;
|
|
256
|
-
return (frequency - start) / (end - start) * this.source.mediaElement.duration;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Asserts that the next samples of audio plays at its expected frequency.
|
|
260
|
-
*/
|
|
261
|
-
async assertFrequency(timeout = 10) {
|
|
262
|
-
this.analyser.disconnect();
|
|
263
|
-
this.analyser.connect(this.audioContext.destination);
|
|
264
|
-
const media = this.source.mediaElement;
|
|
265
|
-
if (isNaN(media.duration)) fail("media is not loaded");
|
|
266
|
-
if (media.paused) fail("media is paused");
|
|
267
|
-
const startTime = Date.now();
|
|
268
|
-
const mediaStartTime = media.currentTime;
|
|
269
|
-
const playbackTime = 0.25;
|
|
270
|
-
const maxDifference = media.duration * TIME_ESTIMATE_TOLERANCE;
|
|
271
|
-
if (media.currentTime + playbackTime >= media.duration) {
|
|
272
|
-
logDebug(
|
|
273
|
-
this,
|
|
274
|
-
"Ignoring assertFrequency, currentTime is at duration"
|
|
275
|
-
);
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
let estimatedTime;
|
|
279
|
-
let diff;
|
|
280
|
-
let elapsed;
|
|
281
|
-
do {
|
|
282
|
-
if (Date.now() - startTime > timeout * 1e3) {
|
|
283
|
-
throw new TimeoutError(
|
|
284
|
-
"Frequency data could not be filled, media is not playing."
|
|
285
|
-
);
|
|
286
|
-
}
|
|
287
|
-
elapsed = media.currentTime - mediaStartTime;
|
|
288
|
-
estimatedTime = this.estimatedTime;
|
|
289
|
-
diff = Math.abs(estimatedTime - media.currentTime);
|
|
290
|
-
await sleep2(playbackTime);
|
|
291
|
-
} while (elapsed < playbackTime && diff > maxDifference);
|
|
292
|
-
logDebug(
|
|
293
|
-
this,
|
|
294
|
-
"time from frequency:",
|
|
295
|
-
estimatedTime.toFixed(2),
|
|
296
|
-
"actual time:",
|
|
297
|
-
media.currentTime.toFixed(2)
|
|
298
|
-
);
|
|
299
|
-
if (diff > maxDifference) {
|
|
300
|
-
const percentFormatter = new Intl.NumberFormat("en-US", {
|
|
301
|
-
style: "percent"
|
|
302
|
-
});
|
|
303
|
-
fail(
|
|
304
|
-
`The measured frequency at time ${media.currentTime.toFixed(2)} was measured to be ${this.frequency.toFixed(2)}Hz. The expected time is ${estimatedTime.toFixed(2)}, the actual time is ${media.currentTime.toFixed(2)}, for a difference of ${percentFormatter.format(
|
|
305
|
-
diff / media.duration
|
|
306
|
-
)} track duration. (Tolerance is ${percentFormatter.format(TIME_ESTIMATE_TOLERANCE)})`
|
|
307
|
-
);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
};
|
|
311
|
-
var _a;
|
|
312
|
-
var shouldCheckAudio = parseBoolean(
|
|
313
|
-
((_a = getSearchParams().get("checkAudio")) != null ? _a : "0").toLowerCase()
|
|
314
|
-
);
|
|
315
|
-
var frequencyAnalyzer = null;
|
|
316
|
-
function assertFrequency() {
|
|
317
|
-
var _a2;
|
|
318
|
-
return (_a2 = frequencyAnalyzer == null ? void 0 : frequencyAnalyzer.assertFrequency()) != null ? _a2 : Promise.resolve();
|
|
319
|
-
}
|
|
320
|
-
function initializeFrequencyAnalyzer() {
|
|
321
|
-
if (shouldCheckAudio) {
|
|
322
|
-
setNextTestTimeout(300);
|
|
323
|
-
beforeAll(async () => {
|
|
324
|
-
const media = mediaRef.value;
|
|
325
|
-
media.crossOrigin = "anonymous";
|
|
326
|
-
media.muted = false;
|
|
327
|
-
media.volume = 0.01;
|
|
328
|
-
await requireUserInteraction();
|
|
329
|
-
const audioContext = getAudioContext();
|
|
330
|
-
await unlockMediaElement();
|
|
331
|
-
if (audioContext) {
|
|
332
|
-
const source = audioContext.createMediaElementSource(
|
|
333
|
-
mediaRef.value
|
|
334
|
-
);
|
|
335
|
-
frequencyAnalyzer = new FrequencyAnalyzer(audioContext, source);
|
|
336
|
-
} else {
|
|
337
|
-
console.warn("AudioContext not supported");
|
|
338
|
-
}
|
|
339
|
-
});
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
// test/vinylTestUtil/util/playback/expectTrackPlaysUntil.ts
|
|
344
|
-
import { sleep as sleep3 } from "@amazon/vinyl-util";
|
|
345
|
-
var sleepInterval = 1;
|
|
346
|
-
var affordanceBefore = 1;
|
|
347
|
-
var affordanceAfter = 3;
|
|
348
|
-
async function expectTrackPlaysUntil(player, endTime, timeout = 10) {
|
|
349
|
-
await onPlaying(player);
|
|
350
|
-
await onCanPlayThrough(player);
|
|
351
|
-
await onTimeUpdate(player);
|
|
352
|
-
expect(player.currentTime).withContext("currentTime must be less than endTime").toBeLessThan(endTime);
|
|
353
|
-
await assertFrequency();
|
|
354
|
-
let elapsed = 0;
|
|
355
|
-
const maxTime = endTime - player.currentTime + timeout;
|
|
356
|
-
while (!player.ended && player.currentTime < endTime && elapsed < maxTime) {
|
|
357
|
-
await sleep3(sleepInterval);
|
|
358
|
-
elapsed += sleepInterval;
|
|
359
|
-
}
|
|
360
|
-
expect(player.currentTime).withContext("currentTime").toBeGreaterThanOrEqual(endTime - affordanceBefore);
|
|
361
|
-
expect(player.currentTime).withContext("currentTime").toBeLessThan(endTime + affordanceAfter);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
// test/vinylTestUtil/util/playback/expectTrackPlays.ts
|
|
365
|
-
import { createDisposer } from "@amazon/vinyl-util";
|
|
366
|
-
import { createEventSpy } from "@amazon/vinyl-util/testUtil";
|
|
367
|
-
var PLAYBACK_DURATION = 6;
|
|
368
|
-
async function expectTrackPlays(player) {
|
|
369
|
-
const { dispose, add } = createDisposer();
|
|
370
|
-
const ended = add(createEventSpy(player, "ended"));
|
|
371
|
-
const timeUpdate = add(createEventSpy(player, "timeUpdate"));
|
|
372
|
-
expect(player.currentTime).withContext("currentTime starts near the beginning").toBeLessThan(1);
|
|
373
|
-
await onDuration(player);
|
|
374
|
-
const duration = player.duration;
|
|
375
|
-
expect(duration).withContext("duration should be non-zero").toBeGreaterThan(0);
|
|
376
|
-
if (player.duration > PLAYBACK_DURATION) {
|
|
377
|
-
await expectTrackPlaysUntil(
|
|
378
|
-
player,
|
|
379
|
-
player.currentTime + PLAYBACK_DURATION / 2
|
|
380
|
-
);
|
|
381
|
-
const time = player.duration - PLAYBACK_DURATION / 2;
|
|
382
|
-
await player.seekTo(time);
|
|
383
|
-
}
|
|
384
|
-
await ended.next(PLAYBACK_DURATION + 10);
|
|
385
|
-
expect(player.currentTime).toBeCloseToWithin(duration, 3);
|
|
386
|
-
expect(player.ended).withContext("ended").toBeTrue();
|
|
387
|
-
expect(timeUpdate.calls.count()).toBeGreaterThanOrEqual(
|
|
388
|
-
Math.floor(PLAYBACK_DURATION)
|
|
389
|
-
);
|
|
390
|
-
dispose();
|
|
391
|
-
}
|
|
392
|
-
async function expectPlaylistPlays(player, playlist) {
|
|
393
|
-
var _a2;
|
|
394
|
-
const { dispose, add } = createDisposer();
|
|
395
|
-
const trackTimeout = PLAYBACK_DURATION + 30;
|
|
396
|
-
const queueEnded = add(createEventSpy(player, "queueEnded"));
|
|
397
|
-
const queueChange = add(createEventSpy(player, "queueChange"));
|
|
398
|
-
const trackChange = add(createEventSpy(player, "currentTrackChange"));
|
|
399
|
-
function assertQueueChangeCount(count) {
|
|
400
|
-
expect(queueChange).toHaveBeenCalledTimes(count);
|
|
401
|
-
queueChange.calls.reset();
|
|
402
|
-
}
|
|
403
|
-
player.load(...playlist);
|
|
404
|
-
assertQueueChangeCount(1);
|
|
405
|
-
await player.play();
|
|
406
|
-
for (let i = 0; i < playlist.length; i++) {
|
|
407
|
-
const isLastTrack = i === playlist.length - 1;
|
|
408
|
-
expect((_a2 = player.currentTrack) == null ? void 0 : _a2.uri).withContext("currentTrack uri").toBe(playlist[i].uri);
|
|
409
|
-
const nextTrack = isLastTrack ? queueEnded.next(trackTimeout) : trackChange.next(trackTimeout);
|
|
410
|
-
await expectTrackPlays(player);
|
|
411
|
-
await nextTrack;
|
|
412
|
-
assertQueueChangeCount(isLastTrack ? 0 : 1);
|
|
413
|
-
}
|
|
414
|
-
dispose();
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
// test/vinylTestUtil/util/playback/expectTrackCanSeek.ts
|
|
418
|
-
import { getMinSeekableBufferDefault } from "@amazon/vinyl";
|
|
419
|
-
import { noop as noop2 } from "@amazon/vinyl-util";
|
|
420
|
-
import { createDisposer as createDisposer2 } from "@amazon/vinyl-util";
|
|
421
|
-
import { closeTo as closeTo2 } from "@amazon/vinyl-util";
|
|
422
|
-
import { clamp } from "@amazon/vinyl-util";
|
|
423
|
-
import { createEventSpy as createEventSpy2 } from "@amazon/vinyl-util/testUtil";
|
|
424
|
-
async function expectTrackCanSeekTo(player, time) {
|
|
425
|
-
const tolerance = 0.5;
|
|
426
|
-
const { dispose, add } = createDisposer2();
|
|
427
|
-
const playedSpy = add(createEventSpy2(player, "played"));
|
|
428
|
-
const seekingSpy = add(createEventSpy2(player, "seeking"));
|
|
429
|
-
const seekedSpy = add(createEventSpy2(player, "seeked"));
|
|
430
|
-
const wasPaused = player.paused;
|
|
431
|
-
if (player.playing) {
|
|
432
|
-
seekingSpy.next().then(() => {
|
|
433
|
-
expect(playedSpy).toHaveBeenCalledBefore(seekingSpy);
|
|
434
|
-
}).catch(noop2);
|
|
435
|
-
}
|
|
436
|
-
const expectNoop = closeTo2(player.currentTime, time, tolerance);
|
|
437
|
-
await player.seekTo(time, tolerance);
|
|
438
|
-
const expectedTime = clamp(
|
|
439
|
-
time,
|
|
440
|
-
0,
|
|
441
|
-
player.duration - getMinSeekableBufferDefault()
|
|
442
|
-
);
|
|
443
|
-
expect(player.currentTime).toBeCloseToWithin(expectedTime, 1);
|
|
444
|
-
if (expectNoop) {
|
|
445
|
-
expect(seekingSpy).not.toHaveBeenCalled();
|
|
446
|
-
expect(seekedSpy).not.toHaveBeenCalled();
|
|
447
|
-
} else {
|
|
448
|
-
expect(seekingSpy).toHaveBeenCalledBefore(seekedSpy);
|
|
449
|
-
expect(player.paused).withContext("paused").toBe(wasPaused);
|
|
450
|
-
if (wasPaused) {
|
|
451
|
-
expectPausedState(player);
|
|
452
|
-
await expectTimeDoesNotElapse(player);
|
|
453
|
-
} else {
|
|
454
|
-
await onPlaying(player);
|
|
455
|
-
expectPlayingState(player);
|
|
456
|
-
await assertFrequency();
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
dispose();
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
// test/vinylTestUtil/player/createVinylSuite.ts
|
|
463
|
-
import {
|
|
464
|
-
createVinylPlayer
|
|
465
|
-
} from "@amazon/vinyl";
|
|
466
|
-
import {
|
|
467
|
-
createLogPrefix as createLogPrefix2,
|
|
468
|
-
getGlobalRegistry,
|
|
469
|
-
IllegalStateError,
|
|
470
|
-
logDebug as logDebug2
|
|
471
|
-
} from "@amazon/vinyl-util";
|
|
472
|
-
import { setTestTimeout } from "@amazon/vinyl-util/browserTestUtil";
|
|
473
|
-
var VinylSuite = class {
|
|
474
|
-
constructor(playerFactory, options) {
|
|
475
|
-
this.playerFactory = playerFactory;
|
|
476
|
-
this.options = options;
|
|
477
|
-
__publicField(this, "logPrefix", createLogPrefix2(this));
|
|
478
|
-
__publicField(this, "_player", null);
|
|
479
|
-
__publicField(this, "visibilityChangeHandler", () => {
|
|
480
|
-
if (document.visibilityState === "hidden") {
|
|
481
|
-
fail("The window must remain visible during the tests.");
|
|
482
|
-
}
|
|
483
|
-
});
|
|
484
|
-
}
|
|
485
|
-
get [Symbol.toStringTag]() {
|
|
486
|
-
return "VinylSuite";
|
|
487
|
-
}
|
|
488
|
-
get player() {
|
|
489
|
-
if (!this._player)
|
|
490
|
-
throw new IllegalStateError(
|
|
491
|
-
"player cannot be accessed outside of a test"
|
|
492
|
-
);
|
|
493
|
-
return this._player;
|
|
494
|
-
}
|
|
495
|
-
/**
|
|
496
|
-
* Initializes jasmine test setup.
|
|
497
|
-
*/
|
|
498
|
-
init() {
|
|
499
|
-
var _a2, _b;
|
|
500
|
-
let playerErrorSub = null;
|
|
501
|
-
setTestTimeout((_b = (_a2 = this.options) == null ? void 0 : _a2.timeout) != null ? _b : 60);
|
|
502
|
-
beforeEach(() => {
|
|
503
|
-
var _a3;
|
|
504
|
-
document.addEventListener(
|
|
505
|
-
"visibilitychange",
|
|
506
|
-
this.visibilityChangeHandler
|
|
507
|
-
);
|
|
508
|
-
this._player = this.playerFactory();
|
|
509
|
-
if (((_a3 = this.options) == null ? void 0 : _a3.failOnError) !== false) {
|
|
510
|
-
playerErrorSub = this._player.on("error", (e) => {
|
|
511
|
-
fail(e);
|
|
512
|
-
});
|
|
513
|
-
}
|
|
514
|
-
});
|
|
515
|
-
afterEach(() => {
|
|
516
|
-
var _a3;
|
|
517
|
-
logDebug2(this, "disposing");
|
|
518
|
-
if (playerErrorSub) playerErrorSub();
|
|
519
|
-
(_a3 = this._player) == null ? void 0 : _a3.dispose();
|
|
520
|
-
this._player = null;
|
|
521
|
-
document.removeEventListener(
|
|
522
|
-
"visibilitychange",
|
|
523
|
-
this.visibilityChangeHandler
|
|
524
|
-
);
|
|
525
|
-
getGlobalRegistry().reset();
|
|
526
|
-
});
|
|
527
|
-
}
|
|
528
|
-
};
|
|
529
|
-
function createVinylSuite(playerDependencyOptions, options) {
|
|
530
|
-
const suite = new VinylSuite(() => {
|
|
531
|
-
return createVinylPlayer(__spreadProps(__spreadValues({}, playerDependencyOptions), {
|
|
532
|
-
media: mediaRef.value
|
|
533
|
-
}));
|
|
534
|
-
}, options);
|
|
535
|
-
suite.init();
|
|
536
|
-
return suite;
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
// test/vinylTestUtil/mock/track/MockTrackFactory.ts
|
|
540
|
-
import { createSpyFactory } from "@amazon/vinyl-util/browserTestUtil";
|
|
541
|
-
var MockTrackFactory = class {
|
|
542
|
-
constructor() {
|
|
543
|
-
__publicField(this, "spyFactory", createSpyFactory());
|
|
544
|
-
__publicField(this, "validate", this.spyFactory("validate"));
|
|
545
|
-
__publicField(this, "createTrack", this.spyFactory("createTrack"));
|
|
546
|
-
}
|
|
547
|
-
};
|
|
548
|
-
|
|
549
|
-
// test/vinylTestUtil/mock/track/MockTrackController.ts
|
|
550
|
-
import { createSpyFactory as createSpyFactory2 } from "@amazon/vinyl-util/browserTestUtil";
|
|
551
|
-
import { MockEventHost } from "@amazon/vinyl-util/testUtil";
|
|
552
|
-
var spyFactory = createSpyFactory2();
|
|
553
|
-
var MockTrackController = class extends MockEventHost {
|
|
554
|
-
constructor() {
|
|
555
|
-
super(...arguments);
|
|
556
|
-
__publicField(this, "currentTrack", null);
|
|
557
|
-
__publicField(this, "queue", []);
|
|
558
|
-
__publicField(this, "clearPrefetch", spyFactory("clearPrefetch"));
|
|
559
|
-
__publicField(this, "clearQueue", spyFactory("clearQueue"));
|
|
560
|
-
__publicField(this, "clearTrackCache", spyFactory("clearTrackCache"));
|
|
561
|
-
__publicField(this, "enqueue", spyFactory("enqueue"));
|
|
562
|
-
__publicField(this, "getCachedTrack", spyFactory("getCachedTrack"));
|
|
563
|
-
__publicField(this, "getCachedTracks", spyFactory("getCachedTracks"));
|
|
564
|
-
__publicField(this, "hasNext", spyFactory("hasNext"));
|
|
565
|
-
__publicField(this, "isTrackCached", spyFactory("isTrackCached"));
|
|
566
|
-
__publicField(this, "load", spyFactory("load"));
|
|
567
|
-
__publicField(this, "next", spyFactory("next"));
|
|
568
|
-
__publicField(this, "preload", spyFactory("preload"));
|
|
569
|
-
__publicField(this, "unload", spyFactory("unload"));
|
|
570
|
-
__publicField(this, "reset", spyFactory("reset"));
|
|
571
|
-
}
|
|
572
|
-
};
|
|
573
|
-
|
|
574
|
-
// test/vinylTestUtil/mock/track/MockTrack.ts
|
|
575
|
-
import { RangesImpl } from "@amazon/vinyl-util";
|
|
576
|
-
import { createSpyFactory as createSpyFactory3 } from "@amazon/vinyl-util/browserTestUtil";
|
|
577
|
-
import { MockEventHost as MockEventHost2 } from "@amazon/vinyl-util/testUtil";
|
|
578
|
-
var spyFactory2 = createSpyFactory3();
|
|
579
|
-
var MockTrack = class extends MockEventHost2 {
|
|
580
|
-
constructor() {
|
|
581
|
-
super(...arguments);
|
|
582
|
-
__publicField(this, "uri", "");
|
|
583
|
-
__publicField(this, "type", "");
|
|
584
|
-
__publicField(this, "active", false);
|
|
585
|
-
__publicField(this, "fetchedRanges", new RangesImpl());
|
|
586
|
-
__publicField(this, "preload", spyFactory2("preload"));
|
|
587
|
-
__publicField(this, "contentTypes", /* @__PURE__ */ new Set());
|
|
588
|
-
__publicField(this, "qualities", null);
|
|
589
|
-
__publicField(this, "qualitiesUnfiltered", null);
|
|
590
|
-
__publicField(this, "getStreamingQuality", spyFactory2("getStreamingQuality"));
|
|
591
|
-
__publicField(this, "getBufferingQuality", spyFactory2("getBufferingQuality"));
|
|
592
|
-
__publicField(this, "getPlaybackQuality", spyFactory2("getPlaybackQuality"));
|
|
593
|
-
__publicField(this, "extra");
|
|
594
|
-
__publicField(this, "error", null);
|
|
595
|
-
__publicField(this, "activate", spyFactory2("activate"));
|
|
596
|
-
__publicField(this, "deactivate", spyFactory2("deactivate"));
|
|
597
|
-
__publicField(this, "clearPrefetch", spyFactory2("clearPrefetch"));
|
|
598
|
-
__publicField(this, "reset", spyFactory2("reset"));
|
|
599
|
-
__publicField(this, "disposed", false);
|
|
600
|
-
}
|
|
601
|
-
get [Symbol.toStringTag]() {
|
|
602
|
-
return `MockTrack(${this.uri})`;
|
|
603
|
-
}
|
|
604
|
-
/**
|
|
605
|
-
* Installs fakes for activate and deactivate to set active status.
|
|
606
|
-
*/
|
|
607
|
-
implementActivateFakes() {
|
|
608
|
-
this.activate.and.callFake(() => {
|
|
609
|
-
this.active = true;
|
|
610
|
-
});
|
|
611
|
-
this.deactivate.and.callFake(() => {
|
|
612
|
-
this.active = false;
|
|
613
|
-
});
|
|
614
|
-
}
|
|
615
|
-
};
|
|
616
|
-
|
|
617
|
-
// test/vinylTestUtil/mock/track/MockAutoResetController.ts
|
|
618
|
-
import { createSpyFactory as createSpyFactory4 } from "@amazon/vinyl-util/browserTestUtil";
|
|
619
|
-
import { MockEventHost as MockEventHost3 } from "@amazon/vinyl-util/testUtil";
|
|
620
|
-
var spyFactory3 = createSpyFactory4();
|
|
621
|
-
var MockAutoResetController = class extends MockEventHost3 {
|
|
622
|
-
constructor() {
|
|
623
|
-
super(...arguments);
|
|
624
|
-
__publicField(this, "setError", spyFactory3("setError"));
|
|
625
|
-
__publicField(this, "clear", spyFactory3("clear"));
|
|
626
|
-
}
|
|
627
|
-
};
|
|
628
|
-
|
|
629
|
-
// test/vinylTestUtil/mock/track/hls/createMockHlsDependencies.ts
|
|
630
|
-
import {
|
|
631
|
-
createEmptyMediaQualityMetadata
|
|
632
|
-
} from "@amazon/vinyl";
|
|
633
|
-
|
|
634
|
-
// test/vinylTestUtil/mock/hls/MockHlsManifestController.ts
|
|
635
|
-
import { createSpyFactory as createSpyFactory5 } from "@amazon/vinyl-util/browserTestUtil";
|
|
636
|
-
import { data } from "@amazon/vinyl-observable";
|
|
637
|
-
|
|
638
|
-
// test/vinylTestUtil/mock/hls/mockHlsManifest.ts
|
|
639
|
-
var mockMediaPlaylist = {
|
|
640
|
-
version: 7,
|
|
641
|
-
targetDuration: 6,
|
|
642
|
-
mediaSequence: 1,
|
|
643
|
-
playlistType: "VOD",
|
|
644
|
-
ended: true,
|
|
645
|
-
segments: [
|
|
646
|
-
{
|
|
647
|
-
uri: "segment0.mp4",
|
|
648
|
-
duration: 6,
|
|
649
|
-
sequenceNumber: 1,
|
|
650
|
-
discontinuity: false,
|
|
651
|
-
map: { uri: "init.mp4" }
|
|
652
|
-
},
|
|
653
|
-
{
|
|
654
|
-
uri: "segment1.mp4",
|
|
655
|
-
duration: 6,
|
|
656
|
-
sequenceNumber: 2,
|
|
657
|
-
discontinuity: false,
|
|
658
|
-
map: { uri: "init.mp4" }
|
|
659
|
-
}
|
|
660
|
-
]
|
|
661
|
-
};
|
|
662
|
-
var mockMainPlaylist = {
|
|
663
|
-
variants: [
|
|
664
|
-
{
|
|
665
|
-
bandwidth: 5e5,
|
|
666
|
-
uri: "low/prog_index.m3u8",
|
|
667
|
-
codecs: "avc1.640015,mp4a.40.2",
|
|
668
|
-
width: 480,
|
|
669
|
-
height: 270,
|
|
670
|
-
frameRate: 30,
|
|
671
|
-
audioGroup: "aud1"
|
|
672
|
-
},
|
|
673
|
-
{
|
|
674
|
-
bandwidth: 1e6,
|
|
675
|
-
uri: "high/prog_index.m3u8",
|
|
676
|
-
codecs: "avc1.64001e,mp4a.40.2",
|
|
677
|
-
width: 640,
|
|
678
|
-
height: 360,
|
|
679
|
-
frameRate: 30,
|
|
680
|
-
audioGroup: "aud1"
|
|
681
|
-
}
|
|
682
|
-
],
|
|
683
|
-
alternativeRenditions: [
|
|
684
|
-
{
|
|
685
|
-
type: "AUDIO",
|
|
686
|
-
groupId: "aud1",
|
|
687
|
-
name: "English",
|
|
688
|
-
uri: "audio/prog_index.m3u8",
|
|
689
|
-
language: "en",
|
|
690
|
-
default: true,
|
|
691
|
-
autoSelect: true
|
|
692
|
-
}
|
|
693
|
-
],
|
|
694
|
-
sessionData: []
|
|
695
|
-
};
|
|
696
|
-
var mockHlsManifestData = {
|
|
697
|
-
mainPlaylist: mockMainPlaylist,
|
|
698
|
-
baseUrl: "https://example.com/main.m3u8",
|
|
699
|
-
getMediaPlaylist: () => Promise.resolve(mockMediaPlaylist)
|
|
700
|
-
};
|
|
701
|
-
|
|
702
|
-
// test/vinylTestUtil/mock/hls/MockHlsManifestController.ts
|
|
703
|
-
var spyFactory4 = createSpyFactory5();
|
|
704
|
-
var MockHlsManifestController = class {
|
|
705
|
-
constructor() {
|
|
706
|
-
__publicField(this, "_data", data(
|
|
707
|
-
Promise.resolve(mockHlsManifestData)
|
|
708
|
-
));
|
|
709
|
-
__publicField(this, "refresh", spyFactory4("refresh"));
|
|
710
|
-
__publicField(this, "reset", spyFactory4("reset"));
|
|
711
|
-
}
|
|
712
|
-
get value() {
|
|
713
|
-
return this._data.value;
|
|
714
|
-
}
|
|
715
|
-
get changeId() {
|
|
716
|
-
return this._data.changeId;
|
|
717
|
-
}
|
|
718
|
-
getValue() {
|
|
719
|
-
return this._data.getValue();
|
|
720
|
-
}
|
|
721
|
-
onData(callback) {
|
|
722
|
-
return this._data.onData(callback);
|
|
723
|
-
}
|
|
724
|
-
map(transform) {
|
|
725
|
-
return this._data.map(transform);
|
|
726
|
-
}
|
|
727
|
-
pick(prop) {
|
|
728
|
-
return this._data.pick(prop);
|
|
729
|
-
}
|
|
730
|
-
setManifest(manifest) {
|
|
731
|
-
this._data.value = manifest;
|
|
732
|
-
}
|
|
733
|
-
};
|
|
734
|
-
|
|
735
|
-
// test/vinylTestUtil/mock/streaming/buffering/MockMediaSourceController.ts
|
|
736
|
-
import { createSpyFactory as createSpyFactory6 } from "@amazon/vinyl-util/browserTestUtil";
|
|
737
|
-
import { MockEventHost as MockEventHost4 } from "@amazon/vinyl-util/testUtil";
|
|
738
|
-
var spyFactory5 = createSpyFactory6();
|
|
739
|
-
var MockMediaSourceController = class extends MockEventHost4 {
|
|
740
|
-
constructor() {
|
|
741
|
-
super(...arguments);
|
|
742
|
-
__publicField(this, "duration", 0);
|
|
743
|
-
__publicField(this, "readyState", "closed");
|
|
744
|
-
__publicField(this, "createSourceBuffer", spyFactory5("createSourceBuffer"));
|
|
745
|
-
__publicField(this, "endOfStream", spyFactory5("endOfStream"));
|
|
746
|
-
__publicField(this, "createUrl", spyFactory5("createUrl"));
|
|
747
|
-
__publicField(this, "readyToAppend", false);
|
|
748
|
-
}
|
|
749
|
-
};
|
|
750
|
-
|
|
751
|
-
// test/vinylTestUtil/mock/playback/MockPlaybackSource.ts
|
|
752
|
-
import { createSpyFactory as createSpyFactory7 } from "@amazon/vinyl-util/browserTestUtil";
|
|
753
|
-
var spyFactory6 = createSpyFactory7();
|
|
754
|
-
var MockPlaybackSource = class {
|
|
755
|
-
constructor() {
|
|
756
|
-
__publicField(this, "crossOrigin", null);
|
|
757
|
-
__publicField(this, "currentSrc", "");
|
|
758
|
-
__publicField(this, "src", null);
|
|
759
|
-
__publicField(this, "srcObject", null);
|
|
760
|
-
__publicField(this, "disableRemotePlayback", false);
|
|
761
|
-
__publicField(this, "load", spyFactory6("load"));
|
|
762
|
-
}
|
|
763
|
-
};
|
|
764
|
-
|
|
765
|
-
// test/vinylTestUtil/mock/streaming/MockContentStream.ts
|
|
766
|
-
import { createSpyFactory as createSpyFactory8 } from "@amazon/vinyl-util/browserTestUtil";
|
|
767
|
-
import { MockEventHost as MockEventHost5 } from "@amazon/vinyl-util/testUtil";
|
|
768
|
-
import { RangesImpl as RangesImpl2 } from "@amazon/vinyl-util";
|
|
769
|
-
var spyFactory7 = createSpyFactory8();
|
|
770
|
-
var MockContentStream = class extends MockEventHost5 {
|
|
771
|
-
constructor() {
|
|
772
|
-
super(...arguments);
|
|
773
|
-
__publicField(this, "contentType", "audio");
|
|
774
|
-
__publicField(this, "bufferingQuality", null);
|
|
775
|
-
__publicField(this, "error", null);
|
|
776
|
-
__publicField(this, "fetchedRanges", new RangesImpl2());
|
|
777
|
-
__publicField(this, "playbackQuality", null);
|
|
778
|
-
__publicField(this, "streamingQuality", null);
|
|
779
|
-
__publicField(this, "bufferingEnded", false);
|
|
780
|
-
__publicField(this, "clearPrefetch", spyFactory7("clearPrefetch"));
|
|
781
|
-
__publicField(this, "activate", spyFactory7("activate"));
|
|
782
|
-
__publicField(this, "deactivate", spyFactory7("deactivate"));
|
|
783
|
-
__publicField(this, "preload", spyFactory7("preload"));
|
|
784
|
-
__publicField(this, "reset", spyFactory7("reset"));
|
|
785
|
-
}
|
|
786
|
-
};
|
|
787
|
-
|
|
788
|
-
// test/vinylTestUtil/mock/playback/MockPlaybackController.ts
|
|
789
|
-
import { PlaybackNetworkState, PlaybackReadyState } from "@amazon/vinyl";
|
|
790
|
-
import { RangesImpl as RangesImpl3 } from "@amazon/vinyl-util";
|
|
791
|
-
import { createSpyFactory as createSpyFactory9 } from "@amazon/vinyl-util/browserTestUtil";
|
|
792
|
-
import { MockEventHost as MockEventHost6 } from "@amazon/vinyl-util/testUtil";
|
|
793
|
-
var spyFactory8 = createSpyFactory9();
|
|
794
|
-
var MockPlaybackController = class extends MockEventHost6 {
|
|
795
|
-
constructor() {
|
|
796
|
-
super(...arguments);
|
|
797
|
-
__publicField(this, "buffered", new RangesImpl3());
|
|
798
|
-
__publicField(this, "canPlay", false);
|
|
799
|
-
__publicField(this, "canPlayThrough", false);
|
|
800
|
-
__publicField(this, "currentTime", 0);
|
|
801
|
-
__publicField(this, "currentTimePercent", 0);
|
|
802
|
-
__publicField(this, "defaultPlaybackRate", 0);
|
|
803
|
-
__publicField(this, "duration", 0);
|
|
804
|
-
__publicField(this, "ended", false);
|
|
805
|
-
__publicField(this, "error", null);
|
|
806
|
-
__publicField(this, "hasMetadata", false);
|
|
807
|
-
__publicField(this, "loop", false);
|
|
808
|
-
__publicField(this, "muted", false);
|
|
809
|
-
__publicField(this, "networkState", PlaybackNetworkState.NETWORK_IDLE);
|
|
810
|
-
__publicField(this, "pause", spyFactory8("pause"));
|
|
811
|
-
__publicField(this, "paused", false);
|
|
812
|
-
__publicField(this, "play", spyFactory8("play"));
|
|
813
|
-
__publicField(this, "playIsPending", false);
|
|
814
|
-
__publicField(this, "playbackRate", 0);
|
|
815
|
-
__publicField(this, "playing", false);
|
|
816
|
-
__publicField(this, "preservesPitch", true);
|
|
817
|
-
__publicField(this, "readyState", PlaybackReadyState.HAVE_NOTHING);
|
|
818
|
-
__publicField(this, "reset", spyFactory8("reset"));
|
|
819
|
-
__publicField(this, "seekTo", spyFactory8("seekTo"));
|
|
820
|
-
__publicField(this, "seekable", new RangesImpl3());
|
|
821
|
-
__publicField(this, "seeking", false);
|
|
822
|
-
__publicField(this, "volume", 0);
|
|
823
|
-
__publicField(this, "waiting", false);
|
|
824
|
-
}
|
|
825
|
-
};
|
|
826
|
-
|
|
827
|
-
// test/vinylTestUtil/mock/drm/MockDrmController.ts
|
|
828
|
-
import { createSpyFactory as createSpyFactory10 } from "@amazon/vinyl-util/browserTestUtil";
|
|
829
|
-
import { MockEventHost as MockEventHost7 } from "@amazon/vinyl-util/testUtil";
|
|
830
|
-
var spyFactory9 = createSpyFactory10();
|
|
831
|
-
var MockDrmController = class extends MockEventHost7 {
|
|
832
|
-
constructor() {
|
|
833
|
-
super(...arguments);
|
|
834
|
-
__publicField(this, "error", null);
|
|
835
|
-
__publicField(this, "configure", spyFactory9("configure"));
|
|
836
|
-
__publicField(this, "isEmeSupported", spyFactory9("isEmeSupported"));
|
|
837
|
-
__publicField(this, "isSupported", spyFactory9("isSupported"));
|
|
838
|
-
__publicField(this, "initializeForPlayback", spyFactory9("initializeForPlayback"));
|
|
839
|
-
__publicField(this, "setBufferingDrmInfo", spyFactory9("setBufferingDrmInfo"));
|
|
840
|
-
__publicField(this, "closeSessions", spyFactory9("closeSessions"));
|
|
841
|
-
__publicField(this, "reset", spyFactory9("reset"));
|
|
842
|
-
}
|
|
843
|
-
};
|
|
844
|
-
|
|
845
|
-
// test/vinylTestUtil/mock/track/hls/createMockHlsDependencies.ts
|
|
846
|
-
import { createSpyFactory as createSpyFactory11 } from "@amazon/vinyl-util/browserTestUtil";
|
|
847
|
-
import { data as data2 } from "@amazon/vinyl-observable";
|
|
848
|
-
var createSpy = jasmine.createSpy;
|
|
849
|
-
var emptyTimeline = { periods: [], minBufferTime: 0 };
|
|
850
|
-
var spyFactory10 = createSpyFactory11();
|
|
851
|
-
function createMockHlsDependencies() {
|
|
852
|
-
const playbackController = new MockPlaybackController();
|
|
853
|
-
playbackController.seekTo.and.resolveTo(void 0);
|
|
854
|
-
const manifestController = new MockHlsManifestController();
|
|
855
|
-
return {
|
|
856
|
-
contentTypesValue: data2(Promise.resolve(/* @__PURE__ */ new Set())),
|
|
857
|
-
contentStreamFactory: spyFactory10("contentStreamFactory").and.callFake(
|
|
858
|
-
(contentType) => {
|
|
859
|
-
const stream = new MockContentStream();
|
|
860
|
-
stream.contentType = contentType;
|
|
861
|
-
return stream;
|
|
862
|
-
}
|
|
863
|
-
),
|
|
864
|
-
manifestController,
|
|
865
|
-
manifestTransformed: manifestController.map((v) => v),
|
|
866
|
-
mediaTimeline: data2(Promise.resolve(emptyTimeline)),
|
|
867
|
-
mediaTimelineTransformed: data2(Promise.resolve(emptyTimeline)),
|
|
868
|
-
mediaSourceController: new MockMediaSourceController(),
|
|
869
|
-
playbackSource: new MockPlaybackSource(),
|
|
870
|
-
playbackController,
|
|
871
|
-
drmController: new MockDrmController(),
|
|
872
|
-
mediaQualityMetadataResolver: createSpy().and.callFake(
|
|
873
|
-
() => createEmptyMediaQualityMetadata()
|
|
874
|
-
)
|
|
875
|
-
};
|
|
876
|
-
}
|
|
877
|
-
|
|
878
|
-
// test/vinylTestUtil/mock/track/dash/createMockDashDependencies.ts
|
|
879
|
-
import {
|
|
880
|
-
createEmptyMediaQualityMetadata as createEmptyMediaQualityMetadata2
|
|
881
|
-
} from "@amazon/vinyl";
|
|
882
|
-
|
|
883
|
-
// test/vinylTestUtil/mock/dash/MockDashManifestController.ts
|
|
884
|
-
import { createSpyFactory as createSpyFactory12 } from "@amazon/vinyl-util/browserTestUtil";
|
|
885
|
-
import { data as data3 } from "@amazon/vinyl-observable";
|
|
886
|
-
|
|
887
|
-
// test/vinylTestUtil/mock/dash/mockDashManifest.ts
|
|
888
|
-
import { parseDashManifest } from "@amazon/vinyl-mpd-parser";
|
|
889
|
-
var mockDashManifest = parseDashManifest(
|
|
890
|
-
// language=XML
|
|
891
|
-
`<?xml version="1.0" ?>
|
|
892
|
-
<MPD profiles="" minBufferTime="PT0.0S" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011">
|
|
893
|
-
<Period>
|
|
894
|
-
<AdaptationSet>
|
|
895
|
-
<Representation id="0" bandwidth="0"/>
|
|
896
|
-
</AdaptationSet>
|
|
897
|
-
</Period>
|
|
898
|
-
</MPD>`
|
|
899
|
-
);
|
|
900
|
-
|
|
901
|
-
// test/vinylTestUtil/mock/dash/MockDashManifestController.ts
|
|
902
|
-
var spyFactory11 = createSpyFactory12();
|
|
903
|
-
var MockDashManifestController = class {
|
|
904
|
-
constructor() {
|
|
905
|
-
__publicField(this, "_data", data3(
|
|
906
|
-
Promise.resolve({
|
|
907
|
-
manifest: mockDashManifest,
|
|
908
|
-
baseUrl: "https://example.com"
|
|
909
|
-
})
|
|
910
|
-
));
|
|
911
|
-
__publicField(this, "refresh", spyFactory11("refresh"));
|
|
912
|
-
__publicField(this, "reset", spyFactory11("reset"));
|
|
913
|
-
}
|
|
914
|
-
get value() {
|
|
915
|
-
return this._data.value;
|
|
916
|
-
}
|
|
917
|
-
get changeId() {
|
|
918
|
-
return this._data.changeId;
|
|
919
|
-
}
|
|
920
|
-
getValue() {
|
|
921
|
-
return this._data.getValue();
|
|
922
|
-
}
|
|
923
|
-
onData(callback) {
|
|
924
|
-
return this._data.onData(callback);
|
|
925
|
-
}
|
|
926
|
-
map(transform) {
|
|
927
|
-
return this._data.map(transform);
|
|
928
|
-
}
|
|
929
|
-
pick(prop) {
|
|
930
|
-
return this._data.pick(prop);
|
|
931
|
-
}
|
|
932
|
-
setManifest(manifest) {
|
|
933
|
-
this._data.value = manifest;
|
|
934
|
-
}
|
|
935
|
-
};
|
|
936
|
-
|
|
937
|
-
// test/vinylTestUtil/mock/track/dash/createMockDashDependencies.ts
|
|
938
|
-
import { createSpyFactory as createSpyFactory13 } from "@amazon/vinyl-util/browserTestUtil";
|
|
939
|
-
import { data as data4 } from "@amazon/vinyl-observable";
|
|
940
|
-
var createSpy2 = jasmine.createSpy;
|
|
941
|
-
var emptyTimeline2 = { periods: [], minBufferTime: 0 };
|
|
942
|
-
var spyFactory12 = createSpyFactory13();
|
|
943
|
-
function createMockDashDependencies() {
|
|
944
|
-
const playbackController = new MockPlaybackController();
|
|
945
|
-
playbackController.seekTo.and.resolveTo(void 0);
|
|
946
|
-
const manifestController = new MockDashManifestController();
|
|
947
|
-
return {
|
|
948
|
-
contentTypesValue: data4(Promise.resolve(/* @__PURE__ */ new Set())),
|
|
949
|
-
contentStreamFactory: spyFactory12("contentStreamFactory").and.callFake(
|
|
950
|
-
(contentType) => {
|
|
951
|
-
const stream = new MockContentStream();
|
|
952
|
-
stream.contentType = contentType;
|
|
953
|
-
return stream;
|
|
954
|
-
}
|
|
955
|
-
),
|
|
956
|
-
manifestController,
|
|
957
|
-
manifestTransformed: manifestController,
|
|
958
|
-
mediaTimeline: data4(Promise.resolve(emptyTimeline2)),
|
|
959
|
-
mediaTimelineTransformed: data4(Promise.resolve(emptyTimeline2)),
|
|
960
|
-
mediaSourceController: new MockMediaSourceController(),
|
|
961
|
-
playbackSource: new MockPlaybackSource(),
|
|
962
|
-
playbackController,
|
|
963
|
-
drmController: new MockDrmController(),
|
|
964
|
-
mediaQualityMetadataResolver: createSpy2().and.callFake(
|
|
965
|
-
() => createEmptyMediaQualityMetadata2()
|
|
966
|
-
)
|
|
967
|
-
};
|
|
968
|
-
}
|
|
969
|
-
|
|
970
|
-
// test/vinylTestUtil/mock/streaming/MockSegmentController.ts
|
|
971
|
-
import { createSpyFactory as createSpyFactory14 } from "@amazon/vinyl-util/browserTestUtil";
|
|
972
|
-
import { emptyRanges } from "@amazon/vinyl-util";
|
|
973
|
-
import { MockEventHost as MockEventHost8 } from "@amazon/vinyl-util/testUtil";
|
|
974
|
-
var spyFactory13 = createSpyFactory14();
|
|
975
|
-
var MockSegmentController = class extends MockEventHost8 {
|
|
976
|
-
constructor() {
|
|
977
|
-
super(...arguments);
|
|
978
|
-
__publicField(this, "error", null);
|
|
979
|
-
__publicField(this, "getDuration", spyFactory13("getDuration"));
|
|
980
|
-
__publicField(this, "configure", spyFactory13("configure"));
|
|
981
|
-
__publicField(this, "fetchedRanges", emptyRanges);
|
|
982
|
-
__publicField(this, "activate", spyFactory13("activate"));
|
|
983
|
-
__publicField(this, "clear", spyFactory13("clear"));
|
|
984
|
-
__publicField(this, "deactivate", spyFactory13("deactivate"));
|
|
985
|
-
__publicField(this, "getSegment", spyFactory13("getSegment"));
|
|
986
|
-
__publicField(this, "streamingQuality", null);
|
|
987
|
-
__publicField(this, "reset", spyFactory13("reset"));
|
|
988
|
-
}
|
|
989
|
-
};
|
|
990
|
-
|
|
991
|
-
// test/vinylTestUtil/mock/streaming/buffering/MockSourceBufferController.ts
|
|
992
|
-
import { createSpyFactory as createSpyFactory15 } from "@amazon/vinyl-util/browserTestUtil";
|
|
993
|
-
import { RangesImpl as RangesImpl4 } from "@amazon/vinyl-util";
|
|
994
|
-
var spyFactory14 = createSpyFactory15();
|
|
995
|
-
var MockSourceBufferController = class {
|
|
996
|
-
constructor() {
|
|
997
|
-
__publicField(this, "buffered", new RangesImpl4());
|
|
998
|
-
__publicField(this, "append", spyFactory14("append"));
|
|
999
|
-
__publicField(this, "appendInit", spyFactory14("appendInit"));
|
|
1000
|
-
__publicField(this, "clear", spyFactory14("clear"));
|
|
1001
|
-
__publicField(this, "enqueue", spyFactory14("enqueue"));
|
|
1002
|
-
__publicField(this, "isBusy", spyFactory14("isBusy"));
|
|
1003
|
-
__publicField(this, "remove", spyFactory14("remove"));
|
|
1004
|
-
__publicField(this, "setAppendWindow", spyFactory14("setAppendWindow"));
|
|
1005
|
-
__publicField(this, "setTimestampOffset", spyFactory14("setTimestampOffset"));
|
|
1006
|
-
__publicField(this, "dispose", spyFactory14("dispose"));
|
|
1007
|
-
}
|
|
1008
|
-
};
|
|
1009
|
-
|
|
1010
|
-
// test/vinylTestUtil/mock/streaming/buffering/MockBufferingController.ts
|
|
1011
|
-
import { createSpyFactory as createSpyFactory16 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1012
|
-
import { MockEventHost as MockEventHost9 } from "@amazon/vinyl-util/testUtil";
|
|
1013
|
-
var spyFactory15 = createSpyFactory16();
|
|
1014
|
-
var MockBufferingController = class extends MockEventHost9 {
|
|
1015
|
-
constructor() {
|
|
1016
|
-
super(...arguments);
|
|
1017
|
-
__publicField(this, "error", null);
|
|
1018
|
-
__publicField(this, "active", false);
|
|
1019
|
-
__publicField(this, "bufferingEnded", false);
|
|
1020
|
-
__publicField(this, "playbackQuality", null);
|
|
1021
|
-
__publicField(this, "bufferingQuality", null);
|
|
1022
|
-
__publicField(this, "activate", spyFactory15("activate"));
|
|
1023
|
-
__publicField(this, "deactivate", spyFactory15("deactivate"));
|
|
1024
|
-
__publicField(this, "clear", spyFactory15("clear"));
|
|
1025
|
-
__publicField(this, "reset", spyFactory15("reset"));
|
|
1026
|
-
}
|
|
1027
|
-
};
|
|
1028
|
-
|
|
1029
|
-
// test/vinylTestUtil/mock/streaming/abr/MockQualitySelector.ts
|
|
1030
|
-
import { createSpyFactory as createSpyFactory17 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1031
|
-
var spyFactory16 = createSpyFactory17();
|
|
1032
|
-
var MockQualitySelector = class {
|
|
1033
|
-
constructor() {
|
|
1034
|
-
__publicField(this, "selectQuality", spyFactory16("selectQuality"));
|
|
1035
|
-
}
|
|
1036
|
-
};
|
|
1037
|
-
|
|
1038
|
-
// test/vinylTestUtil/mock/player/MockVinylPlayerDependencies.ts
|
|
1039
|
-
import {
|
|
1040
|
-
defaultVinylOptions
|
|
1041
|
-
} from "@amazon/vinyl";
|
|
1042
|
-
|
|
1043
|
-
// test/vinylTestUtil/mock/client/MockCapabilities.ts
|
|
1044
|
-
import { createSpyFactory as createSpyFactory18 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1045
|
-
var spyFactory17 = createSpyFactory18();
|
|
1046
|
-
var MockCapabilities = class {
|
|
1047
|
-
constructor() {
|
|
1048
|
-
__publicField(this, "sampleRate", null);
|
|
1049
|
-
__publicField(this, "dash", false);
|
|
1050
|
-
__publicField(this, "hls", false);
|
|
1051
|
-
__publicField(this, "mse", false);
|
|
1052
|
-
__publicField(this, "eme", false);
|
|
1053
|
-
__publicField(this, "canPlayType", spyFactory17("canPlayType"));
|
|
1054
|
-
__publicField(this, "canPlayTypeMse", spyFactory17("canPlayTypeMse"));
|
|
1055
|
-
__publicField(this, "supportsKeySystem", spyFactory17("supportsKeySystem"));
|
|
1056
|
-
}
|
|
1057
|
-
};
|
|
1058
|
-
|
|
1059
|
-
// test/vinylTestUtil/mock/player/MockVinylPlayerDependencies.ts
|
|
1060
|
-
import { externalDependencies } from "@amazon/vinyl-di";
|
|
1061
|
-
import { noop as noop3 } from "@amazon/vinyl-util";
|
|
1062
|
-
import { data as data5 } from "@amazon/vinyl-observable";
|
|
1063
|
-
var createSpy3 = jasmine.createSpy;
|
|
1064
|
-
function createMockVinylDependencies() {
|
|
1065
|
-
return {
|
|
1066
|
-
options: data5(defaultVinylOptions),
|
|
1067
|
-
trackController: new MockTrackController(),
|
|
1068
|
-
playbackSource: new MockPlaybackSource(),
|
|
1069
|
-
playbackController: new MockPlaybackController(),
|
|
1070
|
-
capabilities: new MockCapabilities(),
|
|
1071
|
-
drmController: new MockDrmController(),
|
|
1072
|
-
createDashFactories: (_loadOptions) => externalDependencies(createMockDashDependencies()),
|
|
1073
|
-
createHlsFactories: (_loadOptions) => externalDependencies(createMockDashDependencies()),
|
|
1074
|
-
autoResetController: new MockAutoResetController(),
|
|
1075
|
-
requestInterceptor: noop3,
|
|
1076
|
-
drmKeySystemResolver: createSpy3(
|
|
1077
|
-
"drmKeySystemResolver"
|
|
1078
|
-
).and.returnValue([])
|
|
1079
|
-
};
|
|
1080
|
-
}
|
|
1081
|
-
|
|
1082
|
-
// test/vinylTestUtil/mock/playback/MockLoudnessNormalizationController.ts
|
|
1083
|
-
import { createSpyFactory as createSpyFactory19 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1084
|
-
import { MockEventHost as MockEventHost10 } from "@amazon/vinyl-util/testUtil";
|
|
1085
|
-
var spyFactory18 = createSpyFactory19();
|
|
1086
|
-
var MockLoudnessNormalizationController = class extends MockEventHost10 {
|
|
1087
|
-
constructor() {
|
|
1088
|
-
super(...arguments);
|
|
1089
|
-
__publicField(this, "gain", 1);
|
|
1090
|
-
__publicField(this, "setTrackLoudness", spyFactory18("setTrackLoudness"));
|
|
1091
|
-
__publicField(this, "clear", spyFactory18("clear"));
|
|
1092
|
-
}
|
|
1093
|
-
};
|
|
1094
|
-
|
|
1095
|
-
// test/vinylTestUtil/mock/logging/MockHistoryLogHandler.ts
|
|
1096
|
-
import { LogLevel } from "@amazon/vinyl-util";
|
|
1097
|
-
import { createSpyFactory as createSpyFactory20 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1098
|
-
var spyFactory19 = createSpyFactory20();
|
|
1099
|
-
var MockHistoryLogHandler = class {
|
|
1100
|
-
constructor() {
|
|
1101
|
-
__publicField(this, "logLevel", LogLevel.DEBUG);
|
|
1102
|
-
__publicField(this, "maxHistorySize", 0);
|
|
1103
|
-
__publicField(this, "history", []);
|
|
1104
|
-
__publicField(this, "clear", spyFactory19("clear"));
|
|
1105
|
-
}
|
|
1106
|
-
};
|
|
1107
|
-
|
|
1108
|
-
// test/vinylTestUtil/mock/drm/MockCommonMediaKeys.ts
|
|
1109
|
-
import { DrmKeySystem } from "@amazon/vinyl";
|
|
1110
|
-
import { createSpyFactory as createSpyFactory21 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1111
|
-
var spyFactory20 = createSpyFactory21();
|
|
1112
|
-
var MockCommonMediaKeys = class {
|
|
1113
|
-
constructor() {
|
|
1114
|
-
__publicField(this, "keySystem", DrmKeySystem.CLEAR_KEY);
|
|
1115
|
-
__publicField(this, "clearFromElement", spyFactory20("clearFromElement"));
|
|
1116
|
-
__publicField(this, "createSession", spyFactory20("createSession"));
|
|
1117
|
-
__publicField(this, "setOnElement", spyFactory20("setOnElement"));
|
|
1118
|
-
__publicField(this, "setServerCertificate", spyFactory20("setServerCertificate"));
|
|
1119
|
-
}
|
|
1120
|
-
};
|
|
1121
|
-
|
|
1122
|
-
// test/vinylTestUtil/mock/drm/MockCommonMediaKeySystemAccess.ts
|
|
1123
|
-
import { createSpyFactory as createSpyFactory22 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1124
|
-
var spyFactory21 = createSpyFactory22();
|
|
1125
|
-
var MockCommonMediaKeySystemAccess = class {
|
|
1126
|
-
constructor(keySystem) {
|
|
1127
|
-
this.keySystem = keySystem;
|
|
1128
|
-
__publicField(this, "createMediaKeys", spyFactory21("createMediaKeys"));
|
|
1129
|
-
}
|
|
1130
|
-
};
|
|
1131
|
-
|
|
1132
|
-
// test/vinylTestUtil/mock/drm/MockCommonMediaKeySession.ts
|
|
1133
|
-
import { createSpyFactory as createSpyFactory23 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1134
|
-
import { MockEventHost as MockEventHost11 } from "@amazon/vinyl-util/testUtil";
|
|
1135
|
-
var spyFactory22 = createSpyFactory23();
|
|
1136
|
-
var MockCommonMediaKeySession = class extends MockEventHost11 {
|
|
1137
|
-
constructor() {
|
|
1138
|
-
super(...arguments);
|
|
1139
|
-
__publicField(this, "initData", new ArrayBuffer(0));
|
|
1140
|
-
__publicField(this, "initDataType", "cenc");
|
|
1141
|
-
__publicField(this, "mimeType", "");
|
|
1142
|
-
__publicField(this, "disposed", false);
|
|
1143
|
-
__publicField(this, "update", spyFactory22("update"));
|
|
1144
|
-
}
|
|
1145
|
-
};
|
|
1146
|
-
|
|
1147
|
-
// test/vinylTestUtil/mock/drm/MockCommonEme.ts
|
|
1148
|
-
import { createSpyFactory as createSpyFactory24 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1149
|
-
var spyFactory23 = createSpyFactory24();
|
|
1150
|
-
var MockCommonEme = class {
|
|
1151
|
-
constructor() {
|
|
1152
|
-
__publicField(this, "requestMediaKeySystemAccess", spyFactory23("requestMediaKeySystemAccess"));
|
|
1153
|
-
__publicField(this, "addEncryptedListener", spyFactory23("addEncryptedListener"));
|
|
1154
|
-
}
|
|
1155
|
-
};
|
|
1156
|
-
|
|
1157
|
-
// test/vinylTestUtil/mock/dom/webkit/useWebKitMediaKeys.ts
|
|
1158
|
-
import { overrideGlobalInit } from "@amazon/vinyl-util/testUtil";
|
|
1159
|
-
import { mediaKeySupportRef } from "@amazon/vinyl";
|
|
1160
|
-
function useWebKitMediaKeys(present) {
|
|
1161
|
-
overrideGlobalInit(mediaKeySupportRef, () => {
|
|
1162
|
-
return {
|
|
1163
|
-
webkitEme: present,
|
|
1164
|
-
standardEme: false,
|
|
1165
|
-
msEme: false
|
|
1166
|
-
};
|
|
1167
|
-
});
|
|
1168
|
-
}
|
|
1169
|
-
|
|
1170
|
-
// test/vinylTestUtil/mock/dom/webkit/MockWebKitMediaKeys.ts
|
|
1171
|
-
import { createSpyFactory as createSpyFactory25 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1172
|
-
var spyFactory24 = createSpyFactory25();
|
|
1173
|
-
var MockWebKitMediaKeys = class {
|
|
1174
|
-
constructor(keySystem) {
|
|
1175
|
-
this.keySystem = keySystem;
|
|
1176
|
-
__publicField(this, "createSession", spyFactory24("createSession"));
|
|
1177
|
-
}
|
|
1178
|
-
};
|
|
1179
|
-
__publicField(MockWebKitMediaKeys, "isTypeSupported", spyFactory24("isTypeSupported"));
|
|
1180
|
-
|
|
1181
|
-
// test/vinylTestUtil/mock/dom/webkit/MockWebKitMediaKeySession.ts
|
|
1182
|
-
import {
|
|
1183
|
-
MockEventTarget,
|
|
1184
|
-
createSpyFactory as createSpyFactory26
|
|
1185
|
-
} from "@amazon/vinyl-util/browserTestUtil";
|
|
1186
|
-
var spyFactory25 = createSpyFactory26();
|
|
1187
|
-
var MockWebKitMediaKeySession = class extends MockEventTarget {
|
|
1188
|
-
constructor() {
|
|
1189
|
-
super(...arguments);
|
|
1190
|
-
__publicField(this, "error", null);
|
|
1191
|
-
__publicField(this, "keySystem", "");
|
|
1192
|
-
__publicField(this, "onwebkitkeyadded", null);
|
|
1193
|
-
__publicField(this, "onwebkitkeyerror", null);
|
|
1194
|
-
__publicField(this, "onwebkitkeymessage", null);
|
|
1195
|
-
__publicField(this, "sessionId", "");
|
|
1196
|
-
__publicField(this, "close", spyFactory25("close"));
|
|
1197
|
-
__publicField(this, "update", spyFactory25("update"));
|
|
1198
|
-
__publicField(this, "addEventListener", spyFactory25("addEventListener"));
|
|
1199
|
-
__publicField(this, "dispatchEvent", spyFactory25("dispatchEvent"));
|
|
1200
|
-
__publicField(this, "removeEventListener", spyFactory25("removeEventListener"));
|
|
1201
|
-
}
|
|
1202
|
-
};
|
|
1203
|
-
|
|
1204
|
-
// test/vinylTestUtil/mock/dom/webkit/MockWebKitMediaKeyMessageEvent.ts
|
|
1205
|
-
import { MockEvent } from "@amazon/vinyl-util/browserTestUtil";
|
|
1206
|
-
var MockWebKitMediaKeyMessageEvent = class extends MockEvent {
|
|
1207
|
-
constructor() {
|
|
1208
|
-
super();
|
|
1209
|
-
__publicField(this, "message", new Uint8Array(0));
|
|
1210
|
-
this.type = "webkitkeymessage";
|
|
1211
|
-
}
|
|
1212
|
-
};
|
|
1213
|
-
|
|
1214
|
-
// test/vinylTestUtil/mock/dom/webkit/MockWebKitMediaKeyError.ts
|
|
1215
|
-
import { MockEvent as MockEvent2 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1216
|
-
var MockWebKitMediaKeyError = class extends MockEvent2 {
|
|
1217
|
-
constructor() {
|
|
1218
|
-
super();
|
|
1219
|
-
__publicField(this, "code", 0);
|
|
1220
|
-
__publicField(this, "systemCode", 0);
|
|
1221
|
-
this.type = "webkitkeyerror";
|
|
1222
|
-
}
|
|
1223
|
-
};
|
|
1224
|
-
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_UNKNOWN", 1);
|
|
1225
|
-
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_CLIENT", 2);
|
|
1226
|
-
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_SERVICE", 3);
|
|
1227
|
-
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_OUTPUT", 4);
|
|
1228
|
-
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_HARDWARECHANGE", 5);
|
|
1229
|
-
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_DOMAIN", 6);
|
|
1230
|
-
|
|
1231
|
-
// test/vinylTestUtil/mock/dom/ms/MockMSMediaKeys.ts
|
|
1232
|
-
import { createSpyFactory as createSpyFactory27 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1233
|
-
var spyFactory26 = createSpyFactory27();
|
|
1234
|
-
var MockMSMediaKeys = class {
|
|
1235
|
-
constructor(keySystem) {
|
|
1236
|
-
this.keySystem = keySystem;
|
|
1237
|
-
__publicField(this, "createSession", spyFactory26("createSession"));
|
|
1238
|
-
}
|
|
1239
|
-
};
|
|
1240
|
-
__publicField(MockMSMediaKeys, "isTypeSupported", spyFactory26("isTypeSupported"));
|
|
1241
|
-
|
|
1242
|
-
// test/vinylTestUtil/mock/dom/ms/MockMSMediaKeySession.ts
|
|
1243
|
-
import {
|
|
1244
|
-
createSpyFactory as createSpyFactory28,
|
|
1245
|
-
MockEventTarget as MockEventTarget2
|
|
1246
|
-
} from "@amazon/vinyl-util/browserTestUtil";
|
|
1247
|
-
var spyFactory27 = createSpyFactory28();
|
|
1248
|
-
var MockMSMediaKeySession = class extends MockEventTarget2 {
|
|
1249
|
-
constructor() {
|
|
1250
|
-
super(...arguments);
|
|
1251
|
-
__publicField(this, "error", null);
|
|
1252
|
-
__publicField(this, "keySystem", "");
|
|
1253
|
-
__publicField(this, "onmskeyadded", null);
|
|
1254
|
-
__publicField(this, "onmskeyerror", null);
|
|
1255
|
-
__publicField(this, "onmskeymessage", null);
|
|
1256
|
-
__publicField(this, "sessionId", "");
|
|
1257
|
-
__publicField(this, "close", spyFactory27("close"));
|
|
1258
|
-
__publicField(this, "update", spyFactory27("update"));
|
|
1259
|
-
__publicField(this, "addEventListener", spyFactory27("addEventListener"));
|
|
1260
|
-
__publicField(this, "dispatchEvent", spyFactory27("dispatchEvent"));
|
|
1261
|
-
__publicField(this, "removeEventListener", spyFactory27("removeEventListener"));
|
|
1262
|
-
}
|
|
1263
|
-
};
|
|
1264
|
-
|
|
1265
|
-
// test/vinylTestUtil/mock/dom/ms/MockMSMediaKeyMessageEvent.ts
|
|
1266
|
-
import { MockEvent as MockEvent3 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1267
|
-
var MockMSMediaKeyMessageEvent = class extends MockEvent3 {
|
|
1268
|
-
constructor() {
|
|
1269
|
-
super();
|
|
1270
|
-
__publicField(this, "message", new Uint8Array(0));
|
|
1271
|
-
this.type = "mskeymessage";
|
|
1272
|
-
}
|
|
1273
|
-
};
|
|
1274
|
-
|
|
1275
|
-
// test/vinylTestUtil/mock/dom/ms/MockMSMediaKeyError.ts
|
|
1276
|
-
import { MockEvent as MockEvent4 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1277
|
-
var MockMSMediaKeyError = class extends MockEvent4 {
|
|
1278
|
-
constructor() {
|
|
1279
|
-
super();
|
|
1280
|
-
__publicField(this, "code", 0);
|
|
1281
|
-
__publicField(this, "systemCode", 0);
|
|
1282
|
-
this.type = "mskeyerror";
|
|
1283
|
-
}
|
|
1284
|
-
};
|
|
1285
|
-
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_CLIENT", 1);
|
|
1286
|
-
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_DOMAIN", 2);
|
|
1287
|
-
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_HARDWARECHANGE", 3);
|
|
1288
|
-
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_OUTPUT", 4);
|
|
1289
|
-
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_SERVICE", 5);
|
|
1290
|
-
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_UNKNOWN", 6);
|
|
1291
|
-
|
|
1292
|
-
// test/vinylTestUtil/mock/client/MockClient.ts
|
|
1293
|
-
var MockClient = class {
|
|
1294
|
-
constructor() {
|
|
1295
|
-
__publicField(this, "capabilities", new MockCapabilities());
|
|
1296
|
-
}
|
|
1297
|
-
};
|
|
1298
|
-
|
|
1299
|
-
// test/vinylTestUtil/mediaSource/ControlledMediaSource.ts
|
|
1300
|
-
import { createMediaSource, isTypeSupported } from "@amazon/vinyl";
|
|
1301
|
-
import {
|
|
1302
|
-
IllegalStateError as IllegalStateError2,
|
|
1303
|
-
requestWithRetry,
|
|
1304
|
-
substitute
|
|
1305
|
-
} from "@amazon/vinyl-util";
|
|
1306
|
-
var mimeCodec = 'audio/mp4;codecs="mp4a.40.5"';
|
|
1307
|
-
var ControlledMediaSource = class {
|
|
1308
|
-
constructor(sourceAsset = vinylTestAssets.segmentedStreaming.aac_60s_2ch_16bit_44100Hz_48kbps) {
|
|
1309
|
-
this.sourceAsset = sourceAsset;
|
|
1310
|
-
__publicField(this, "length");
|
|
1311
|
-
__publicField(this, "_currentIndex", 0);
|
|
1312
|
-
__publicField(this, "mediaSource", createMediaSource());
|
|
1313
|
-
__publicField(this, "sourceBufferPromise");
|
|
1314
|
-
__publicField(this, "segments", null);
|
|
1315
|
-
this.length = sourceAsset.numSegments + 1;
|
|
1316
|
-
if (isTypeSupported(mimeCodec)) {
|
|
1317
|
-
this.sourceBufferPromise = new Promise((resolve) => {
|
|
1318
|
-
this.mediaSource.addEventListener(
|
|
1319
|
-
"sourceopen",
|
|
1320
|
-
() => {
|
|
1321
|
-
this.mediaSource.duration = sourceAsset.duration;
|
|
1322
|
-
const sourceBuffer = this.mediaSource.addSourceBuffer(mimeCodec);
|
|
1323
|
-
resolve(sourceBuffer);
|
|
1324
|
-
},
|
|
1325
|
-
{ once: true }
|
|
1326
|
-
);
|
|
1327
|
-
});
|
|
1328
|
-
} else {
|
|
1329
|
-
throw new Error(`Unsupported MIME type or codec: ${mimeCodec}`);
|
|
1330
|
-
}
|
|
1331
|
-
}
|
|
1332
|
-
/**
|
|
1333
|
-
* Gets the data for all segments.
|
|
1334
|
-
* All data is preloaded in order to have reproducible test conditions.
|
|
1335
|
-
*/
|
|
1336
|
-
async getSegments() {
|
|
1337
|
-
const segments = new Array(this.length);
|
|
1338
|
-
const initResponse = await requestWithRetry(this.sourceAsset.init);
|
|
1339
|
-
segments[0] = await initResponse.arrayBuffer();
|
|
1340
|
-
for (let i = 1; i <= this.sourceAsset.numSegments; i++) {
|
|
1341
|
-
const mediaResponse = await requestWithRetry(
|
|
1342
|
-
substitute(this.sourceAsset.part, { index: i })
|
|
1343
|
-
);
|
|
1344
|
-
segments[i] = await mediaResponse.arrayBuffer();
|
|
1345
|
-
}
|
|
1346
|
-
return segments;
|
|
1347
|
-
}
|
|
1348
|
-
/**
|
|
1349
|
-
* Gets the media source.
|
|
1350
|
-
* This promise resolves when all assets are ready.
|
|
1351
|
-
* Note: in Firefox, you must set this object url on the element immediately. Creating the
|
|
1352
|
-
* URL and setting it later can cause errors.
|
|
1353
|
-
*/
|
|
1354
|
-
async getMediaSource() {
|
|
1355
|
-
this.segments = await this.getSegments();
|
|
1356
|
-
return this.mediaSource;
|
|
1357
|
-
}
|
|
1358
|
-
async appendNext() {
|
|
1359
|
-
if (!this.segments)
|
|
1360
|
-
throw new IllegalStateError2("cannot append before getMediaSource");
|
|
1361
|
-
const sourceBuffer = await this.sourceBufferPromise;
|
|
1362
|
-
if (this._currentIndex >= this.length)
|
|
1363
|
-
throw new Error(`Only ${this.length} segments`);
|
|
1364
|
-
const buff = this.segments[this._currentIndex++];
|
|
1365
|
-
await onSourceBufferReady(sourceBuffer);
|
|
1366
|
-
const updateEnd = onUpdateEnd(sourceBuffer);
|
|
1367
|
-
sourceBuffer.appendBuffer(buff);
|
|
1368
|
-
await updateEnd;
|
|
1369
|
-
if (this._currentIndex === this.length) {
|
|
1370
|
-
this.mediaSource.endOfStream();
|
|
1371
|
-
}
|
|
1372
|
-
}
|
|
1373
|
-
};
|
|
1374
|
-
async function onSourceBufferReady(sourceBuffer) {
|
|
1375
|
-
if (!sourceBuffer.updating) return;
|
|
1376
|
-
await onUpdateEnd(sourceBuffer);
|
|
1377
|
-
return onSourceBufferReady(sourceBuffer);
|
|
1378
|
-
}
|
|
1379
|
-
function onUpdateEnd(sourceBuffer) {
|
|
1380
|
-
return new Promise((resolve) => {
|
|
1381
|
-
sourceBuffer.addEventListener(
|
|
1382
|
-
"updateend",
|
|
1383
|
-
() => {
|
|
1384
|
-
resolve(void 0);
|
|
1385
|
-
},
|
|
1386
|
-
{ once: true }
|
|
1387
|
-
);
|
|
1388
|
-
});
|
|
1389
|
-
}
|
|
1390
|
-
|
|
1391
|
-
// test/vinylTestUtil/assets/dash_segmentListMediaRange.ts
|
|
1392
|
-
var dash_segmentListMediaRange = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
1393
|
-
<MPD minBufferTime="PT2S" type="static" mediaPresentationDuration="PT400.0133056640625S" profiles="urn:mpeg:dash:profile:isoff-on-demand: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">
|
|
1394
|
-
<Period id="0">
|
|
1395
|
-
<AdaptationSet id="1" contentType="audio" selectionPriority="2000">
|
|
1396
|
-
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="53443d2c-a548-037d-dfca-b6873a3b16a7" value="cenc"/>
|
|
1397
|
-
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
1398
|
-
<cenc:pssh>AAAAXXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAD0SEFNEPSylSAN938q2hzo7FqcaC0FtYXpvbk11c2ljIhxjaWQ6VTBROUxLVklBMzNmeXJhSE9qc1dwdz09</cenc:pssh>
|
|
1399
|
-
</ContentProtection>
|
|
1400
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:ProgramLoudness" value="-13.5 LUFS"/>
|
|
1401
|
-
<SupplementalProperty schemeIdUri="amz-music:trackType" value="HD"/>
|
|
1402
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="2"/>
|
|
1403
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:AnchorLoudness" value="-11.7 LUFS"/>
|
|
1404
|
-
<Representation id="1" qualityRanking="4" codecs="flac" audioSamplingRate="44100" bandwidth="1021104" mimeType="audio/mp4">
|
|
1405
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1406
|
-
<SupplementalProperty schemeIdUri="amz-music:bitDepth" value="16"/>
|
|
1407
|
-
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/a3ce7553-e9a3-3ca6-8fda-8f354b8cee0f.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=HD_44&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1408
|
-
<SegmentList timescale="44100" duration="441000">
|
|
1409
|
-
<Initialization range="0-1067"/>
|
|
1410
|
-
<SegmentURL mediaRange="1580-1124387"/>
|
|
1411
|
-
<SegmentURL mediaRange="1124388-2301681"/>
|
|
1412
|
-
<SegmentURL mediaRange="2301682-3413884"/>
|
|
1413
|
-
<SegmentURL mediaRange="3413885-4563668"/>
|
|
1414
|
-
<SegmentURL mediaRange="4563669-5789595"/>
|
|
1415
|
-
<SegmentURL mediaRange="5789596-7027203"/>
|
|
1416
|
-
<SegmentURL mediaRange="7027204-8258589"/>
|
|
1417
|
-
<SegmentURL mediaRange="8258590-9476689"/>
|
|
1418
|
-
<SegmentURL mediaRange="9476690-10663879"/>
|
|
1419
|
-
<SegmentURL mediaRange="10663880-11801656"/>
|
|
1420
|
-
<SegmentURL mediaRange="11801657-13028295"/>
|
|
1421
|
-
<SegmentURL mediaRange="13028296-14259035"/>
|
|
1422
|
-
<SegmentURL mediaRange="14259036-15501034"/>
|
|
1423
|
-
<SegmentURL mediaRange="15501035-16715074"/>
|
|
1424
|
-
<SegmentURL mediaRange="16715075-17945696"/>
|
|
1425
|
-
<SegmentURL mediaRange="17945697-19181760"/>
|
|
1426
|
-
<SegmentURL mediaRange="19181761-20430664"/>
|
|
1427
|
-
<SegmentURL mediaRange="20430665-21668186"/>
|
|
1428
|
-
<SegmentURL mediaRange="21668187-22889588"/>
|
|
1429
|
-
<SegmentURL mediaRange="22889589-24105876"/>
|
|
1430
|
-
<SegmentURL mediaRange="24105877-25286931"/>
|
|
1431
|
-
<SegmentURL mediaRange="25286932-26474293"/>
|
|
1432
|
-
<SegmentURL mediaRange="26474294-27717336"/>
|
|
1433
|
-
<SegmentURL mediaRange="27717337-28944000"/>
|
|
1434
|
-
<SegmentURL mediaRange="28944001-30217943"/>
|
|
1435
|
-
<SegmentURL mediaRange="30217944-31494322"/>
|
|
1436
|
-
<SegmentURL mediaRange="31494323-32753722"/>
|
|
1437
|
-
<SegmentURL mediaRange="32753723-33819438"/>
|
|
1438
|
-
<SegmentURL mediaRange="33819439-34871800"/>
|
|
1439
|
-
<SegmentURL mediaRange="34871801-35987451"/>
|
|
1440
|
-
<SegmentURL mediaRange="35987452-37198633"/>
|
|
1441
|
-
<SegmentURL mediaRange="37198634-38400513"/>
|
|
1442
|
-
<SegmentURL mediaRange="38400514-39590378"/>
|
|
1443
|
-
<SegmentURL mediaRange="39590379-40775418"/>
|
|
1444
|
-
<SegmentURL mediaRange="40775419-42023162"/>
|
|
1445
|
-
<SegmentURL mediaRange="42023163-43262782"/>
|
|
1446
|
-
<SegmentURL mediaRange="43262783-44466388"/>
|
|
1447
|
-
<SegmentURL mediaRange="44466389-45664349"/>
|
|
1448
|
-
<SegmentURL mediaRange="45664350-46838625"/>
|
|
1449
|
-
<SegmentURL mediaRange="46838626-47421889"/>
|
|
1450
|
-
</SegmentList>
|
|
1451
|
-
</Representation>
|
|
1452
|
-
<Representation id="2" qualityRanking="3" codecs="flac" audioSamplingRate="48000" bandwidth="1855801" mimeType="audio/mp4">
|
|
1453
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1454
|
-
<SupplementalProperty schemeIdUri="amz-music:bitDepth" value="24"/>
|
|
1455
|
-
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/f5b706c9-5892-3a17-9d01-4da362cfad35.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=UHD_48&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1456
|
-
<SegmentList timescale="48000" duration="480000">
|
|
1457
|
-
<Initialization range="0-1067"/>
|
|
1458
|
-
<SegmentURL mediaRange="1580-2140301"/>
|
|
1459
|
-
<SegmentURL mediaRange="2140302-4352961"/>
|
|
1460
|
-
<SegmentURL mediaRange="4352962-6499834"/>
|
|
1461
|
-
<SegmentURL mediaRange="6499835-8687556"/>
|
|
1462
|
-
<SegmentURL mediaRange="8687557-10955471"/>
|
|
1463
|
-
<SegmentURL mediaRange="10955472-13235819"/>
|
|
1464
|
-
<SegmentURL mediaRange="13235820-15509496"/>
|
|
1465
|
-
<SegmentURL mediaRange="15509497-17768731"/>
|
|
1466
|
-
<SegmentURL mediaRange="17768732-19993372"/>
|
|
1467
|
-
<SegmentURL mediaRange="19993373-22167125"/>
|
|
1468
|
-
<SegmentURL mediaRange="22167126-24434254"/>
|
|
1469
|
-
<SegmentURL mediaRange="24434255-26706557"/>
|
|
1470
|
-
<SegmentURL mediaRange="26706558-28990196"/>
|
|
1471
|
-
<SegmentURL mediaRange="28990197-31245239"/>
|
|
1472
|
-
<SegmentURL mediaRange="31245240-33516976"/>
|
|
1473
|
-
<SegmentURL mediaRange="33516977-35793411"/>
|
|
1474
|
-
<SegmentURL mediaRange="35793412-38083225"/>
|
|
1475
|
-
<SegmentURL mediaRange="38083226-40361780"/>
|
|
1476
|
-
<SegmentURL mediaRange="40361781-42623154"/>
|
|
1477
|
-
<SegmentURL mediaRange="42623155-44879987"/>
|
|
1478
|
-
<SegmentURL mediaRange="44879988-47098315"/>
|
|
1479
|
-
<SegmentURL mediaRange="47098316-49322904"/>
|
|
1480
|
-
<SegmentURL mediaRange="49322905-51607367"/>
|
|
1481
|
-
<SegmentURL mediaRange="51607368-53874862"/>
|
|
1482
|
-
<SegmentURL mediaRange="53874863-56192866"/>
|
|
1483
|
-
<SegmentURL mediaRange="56192867-58512617"/>
|
|
1484
|
-
<SegmentURL mediaRange="58512618-60815181"/>
|
|
1485
|
-
<SegmentURL mediaRange="60815182-62914181"/>
|
|
1486
|
-
<SegmentURL mediaRange="62914182-65000611"/>
|
|
1487
|
-
<SegmentURL mediaRange="65000612-67150839"/>
|
|
1488
|
-
<SegmentURL mediaRange="67150840-69402495"/>
|
|
1489
|
-
<SegmentURL mediaRange="69402496-71643660"/>
|
|
1490
|
-
<SegmentURL mediaRange="71643661-73870974"/>
|
|
1491
|
-
<SegmentURL mediaRange="73870975-76093618"/>
|
|
1492
|
-
<SegmentURL mediaRange="76093619-78383457"/>
|
|
1493
|
-
<SegmentURL mediaRange="78383458-80665083"/>
|
|
1494
|
-
<SegmentURL mediaRange="80665084-82909593"/>
|
|
1495
|
-
<SegmentURL mediaRange="82909594-85145972"/>
|
|
1496
|
-
<SegmentURL mediaRange="85145973-87356513"/>
|
|
1497
|
-
<SegmentURL mediaRange="87356514-88804457"/>
|
|
1498
|
-
</SegmentList>
|
|
1499
|
-
</Representation>
|
|
1500
|
-
<Representation id="3" qualityRanking="2" codecs="flac" audioSamplingRate="96000" bandwidth="3278164" mimeType="audio/mp4">
|
|
1501
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1502
|
-
<SupplementalProperty schemeIdUri="amz-music:bitDepth" value="24"/>
|
|
1503
|
-
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/02b134c4-8144-3ab1-b125-5af2d0133d5b.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=UHD_96&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1504
|
-
<SegmentList timescale="96000" duration="960000">
|
|
1505
|
-
<Initialization range="0-1067"/>
|
|
1506
|
-
<SegmentURL mediaRange="1580-3813567"/>
|
|
1507
|
-
<SegmentURL mediaRange="3813568-7746339"/>
|
|
1508
|
-
<SegmentURL mediaRange="7746340-11599579"/>
|
|
1509
|
-
<SegmentURL mediaRange="11599580-15505023"/>
|
|
1510
|
-
<SegmentURL mediaRange="15505024-19519493"/>
|
|
1511
|
-
<SegmentURL mediaRange="19519494-23556777"/>
|
|
1512
|
-
<SegmentURL mediaRange="23556778-27581158"/>
|
|
1513
|
-
<SegmentURL mediaRange="27581159-31586807"/>
|
|
1514
|
-
<SegmentURL mediaRange="31586808-35549718"/>
|
|
1515
|
-
<SegmentURL mediaRange="35549719-39435585"/>
|
|
1516
|
-
<SegmentURL mediaRange="39435586-43443650"/>
|
|
1517
|
-
<SegmentURL mediaRange="43443651-47467685"/>
|
|
1518
|
-
<SegmentURL mediaRange="47467686-51498910"/>
|
|
1519
|
-
<SegmentURL mediaRange="51498911-55496614"/>
|
|
1520
|
-
<SegmentURL mediaRange="55496615-59513566"/>
|
|
1521
|
-
<SegmentURL mediaRange="59513567-63538385"/>
|
|
1522
|
-
<SegmentURL mediaRange="63538386-67582593"/>
|
|
1523
|
-
<SegmentURL mediaRange="67582594-71608871"/>
|
|
1524
|
-
<SegmentURL mediaRange="71608872-75612860"/>
|
|
1525
|
-
<SegmentURL mediaRange="75612861-79601033"/>
|
|
1526
|
-
<SegmentURL mediaRange="79601034-83549776"/>
|
|
1527
|
-
<SegmentURL mediaRange="83549777-87488907"/>
|
|
1528
|
-
<SegmentURL mediaRange="87488908-91534801"/>
|
|
1529
|
-
<SegmentURL mediaRange="91534802-95552040"/>
|
|
1530
|
-
<SegmentURL mediaRange="95552041-99649744"/>
|
|
1531
|
-
<SegmentURL mediaRange="99649745-103743373"/>
|
|
1532
|
-
<SegmentURL mediaRange="103743374-107815594"/>
|
|
1533
|
-
<SegmentURL mediaRange="107815595-111613915"/>
|
|
1534
|
-
<SegmentURL mediaRange="111613916-115390443"/>
|
|
1535
|
-
<SegmentURL mediaRange="115390444-119249732"/>
|
|
1536
|
-
<SegmentURL mediaRange="119249733-123233807"/>
|
|
1537
|
-
<SegmentURL mediaRange="123233808-127209398"/>
|
|
1538
|
-
<SegmentURL mediaRange="127209399-131167116"/>
|
|
1539
|
-
<SegmentURL mediaRange="131167117-135119879"/>
|
|
1540
|
-
<SegmentURL mediaRange="135119880-139163685"/>
|
|
1541
|
-
<SegmentURL mediaRange="139163686-143201079"/>
|
|
1542
|
-
<SegmentURL mediaRange="143201080-147195194"/>
|
|
1543
|
-
<SegmentURL mediaRange="147195195-151164220"/>
|
|
1544
|
-
<SegmentURL mediaRange="151164221-155096800"/>
|
|
1545
|
-
<SegmentURL mediaRange="155096801-157757393"/>
|
|
1546
|
-
</SegmentList>
|
|
1547
|
-
</Representation>
|
|
1548
|
-
<Representation id="4" qualityRanking="1" codecs="flac" audioSamplingRate="192000" bandwidth="5666448" mimeType="audio/mp4">
|
|
1549
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1550
|
-
<SupplementalProperty schemeIdUri="amz-music:bitDepth" value="24"/>
|
|
1551
|
-
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/edf9f9cb-46ce-33bd-96e1-8456547fbef4.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=UHD_192&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1552
|
-
<SegmentList timescale="192000" duration="1920000">
|
|
1553
|
-
<Initialization range="0-1067"/>
|
|
1554
|
-
<SegmentURL mediaRange="1580-6720450"/>
|
|
1555
|
-
<SegmentURL mediaRange="6720451-13610816"/>
|
|
1556
|
-
<SegmentURL mediaRange="13610817-20415282"/>
|
|
1557
|
-
<SegmentURL mediaRange="20415283-27272412"/>
|
|
1558
|
-
<SegmentURL mediaRange="27272413-34250251"/>
|
|
1559
|
-
<SegmentURL mediaRange="34250252-41260291"/>
|
|
1560
|
-
<SegmentURL mediaRange="41260292-48255248"/>
|
|
1561
|
-
<SegmentURL mediaRange="48255249-55224355"/>
|
|
1562
|
-
<SegmentURL mediaRange="55224356-62157463"/>
|
|
1563
|
-
<SegmentURL mediaRange="62157464-68996670"/>
|
|
1564
|
-
<SegmentURL mediaRange="68996671-75970335"/>
|
|
1565
|
-
<SegmentURL mediaRange="75970336-82964531"/>
|
|
1566
|
-
<SegmentURL mediaRange="82964532-89965755"/>
|
|
1567
|
-
<SegmentURL mediaRange="89965756-96928368"/>
|
|
1568
|
-
<SegmentURL mediaRange="96928369-103911265"/>
|
|
1569
|
-
<SegmentURL mediaRange="103911266-110903999"/>
|
|
1570
|
-
<SegmentURL mediaRange="110904000-117921608"/>
|
|
1571
|
-
<SegmentURL mediaRange="117921609-124920837"/>
|
|
1572
|
-
<SegmentURL mediaRange="124920838-131897214"/>
|
|
1573
|
-
<SegmentURL mediaRange="131897215-138848614"/>
|
|
1574
|
-
<SegmentURL mediaRange="138848615-145764349"/>
|
|
1575
|
-
<SegmentURL mediaRange="145764350-152655256"/>
|
|
1576
|
-
<SegmentURL mediaRange="152655257-159680382"/>
|
|
1577
|
-
<SegmentURL mediaRange="159680383-166667521"/>
|
|
1578
|
-
<SegmentURL mediaRange="166667522-173750581"/>
|
|
1579
|
-
<SegmentURL mediaRange="173750582-180827932"/>
|
|
1580
|
-
<SegmentURL mediaRange="180827933-187877145"/>
|
|
1581
|
-
<SegmentURL mediaRange="187877146-194626820"/>
|
|
1582
|
-
<SegmentURL mediaRange="194626821-201345524"/>
|
|
1583
|
-
<SegmentURL mediaRange="201345525-208145573"/>
|
|
1584
|
-
<SegmentURL mediaRange="208145574-215088653"/>
|
|
1585
|
-
<SegmentURL mediaRange="215088654-222022478"/>
|
|
1586
|
-
<SegmentURL mediaRange="222022479-228934595"/>
|
|
1587
|
-
<SegmentURL mediaRange="228934596-235844464"/>
|
|
1588
|
-
<SegmentURL mediaRange="235844465-242852767"/>
|
|
1589
|
-
<SegmentURL mediaRange="242852768-249863893"/>
|
|
1590
|
-
<SegmentURL mediaRange="249863894-256824103"/>
|
|
1591
|
-
<SegmentURL mediaRange="256824104-263749124"/>
|
|
1592
|
-
<SegmentURL mediaRange="263749125-270634182"/>
|
|
1593
|
-
<SegmentURL mediaRange="270634183-275673081"/>
|
|
1594
|
-
</SegmentList>
|
|
1595
|
-
</Representation>
|
|
1596
|
-
</AdaptationSet>
|
|
1597
|
-
<AdaptationSet id="2" contentType="audio" selectionPriority="1000">
|
|
1598
|
-
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="f65d52c1-4de5-e5b6-7296-2f48eddf7378" value="cenc"/>
|
|
1599
|
-
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
1600
|
-
<cenc:pssh>AAAAXXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAD0SEPZdUsFN5eW2cpYvSO3fc3gaC0FtYXpvbk11c2ljIhxjaWQ6OWwxU3dVM2w1Ylp5bGk5STdkOXplQT09</cenc:pssh>
|
|
1601
|
-
</ContentProtection>
|
|
1602
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:ProgramLoudness" value="-13.5 LUFS"/>
|
|
1603
|
-
<SupplementalProperty schemeIdUri="amz-music:trackType" value="SD"/>
|
|
1604
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="1"/>
|
|
1605
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:AnchorLoudness" value="-11.7 LUFS"/>
|
|
1606
|
-
<Representation id="5" qualityRanking="3" codecs="opus" audioSamplingRate="48000" bandwidth="52950" mimeType="audio/mp4">
|
|
1607
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1608
|
-
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/7e2d628d-7666-3ad5-a9df-8ba4e1c6391c.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=SD_LOW&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1609
|
-
<SegmentList timescale="48000" duration="480000">
|
|
1610
|
-
<Initialization range="0-1031"/>
|
|
1611
|
-
<SegmentURL mediaRange="1544-61799"/>
|
|
1612
|
-
<SegmentURL mediaRange="61800-121935"/>
|
|
1613
|
-
<SegmentURL mediaRange="121936-182071"/>
|
|
1614
|
-
<SegmentURL mediaRange="182072-246260"/>
|
|
1615
|
-
<SegmentURL mediaRange="246261-310449"/>
|
|
1616
|
-
<SegmentURL mediaRange="310450-374638"/>
|
|
1617
|
-
<SegmentURL mediaRange="374639-438827"/>
|
|
1618
|
-
<SegmentURL mediaRange="438828-503016"/>
|
|
1619
|
-
<SegmentURL mediaRange="503017-567205"/>
|
|
1620
|
-
<SegmentURL mediaRange="567206-631394"/>
|
|
1621
|
-
<SegmentURL mediaRange="631395-695583"/>
|
|
1622
|
-
<SegmentURL mediaRange="695584-759772"/>
|
|
1623
|
-
<SegmentURL mediaRange="759773-823961"/>
|
|
1624
|
-
<SegmentURL mediaRange="823962-888150"/>
|
|
1625
|
-
<SegmentURL mediaRange="888151-952339"/>
|
|
1626
|
-
<SegmentURL mediaRange="952340-1016528"/>
|
|
1627
|
-
<SegmentURL mediaRange="1016529-1080717"/>
|
|
1628
|
-
<SegmentURL mediaRange="1080718-1144906"/>
|
|
1629
|
-
<SegmentURL mediaRange="1144907-1209095"/>
|
|
1630
|
-
<SegmentURL mediaRange="1209096-1273284"/>
|
|
1631
|
-
<SegmentURL mediaRange="1273285-1337473"/>
|
|
1632
|
-
<SegmentURL mediaRange="1337474-1401662"/>
|
|
1633
|
-
<SegmentURL mediaRange="1401663-1465851"/>
|
|
1634
|
-
<SegmentURL mediaRange="1465852-1530040"/>
|
|
1635
|
-
<SegmentURL mediaRange="1530041-1594229"/>
|
|
1636
|
-
<SegmentURL mediaRange="1594230-1658418"/>
|
|
1637
|
-
<SegmentURL mediaRange="1658419-1722607"/>
|
|
1638
|
-
<SegmentURL mediaRange="1722608-1786796"/>
|
|
1639
|
-
<SegmentURL mediaRange="1786797-1850985"/>
|
|
1640
|
-
<SegmentURL mediaRange="1850986-1915174"/>
|
|
1641
|
-
<SegmentURL mediaRange="1915175-1979363"/>
|
|
1642
|
-
<SegmentURL mediaRange="1979364-2043552"/>
|
|
1643
|
-
<SegmentURL mediaRange="2043553-2107741"/>
|
|
1644
|
-
<SegmentURL mediaRange="2107742-2171930"/>
|
|
1645
|
-
<SegmentURL mediaRange="2171931-2236119"/>
|
|
1646
|
-
<SegmentURL mediaRange="2236120-2300308"/>
|
|
1647
|
-
<SegmentURL mediaRange="2300309-2364497"/>
|
|
1648
|
-
<SegmentURL mediaRange="2364498-2428686"/>
|
|
1649
|
-
<SegmentURL mediaRange="2428687-2492875"/>
|
|
1650
|
-
<SegmentURL mediaRange="2492876-2559060"/>
|
|
1651
|
-
</SegmentList>
|
|
1652
|
-
</Representation>
|
|
1653
|
-
<Representation id="6" qualityRanking="2" codecs="opus" audioSamplingRate="48000" bandwidth="196953" mimeType="audio/mp4">
|
|
1654
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1655
|
-
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/8e453bd1-9428-30fa-940f-fa85911368c2.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=SD_MEDIUM&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1656
|
-
<SegmentList timescale="48000" duration="480000">
|
|
1657
|
-
<Initialization range="0-1031"/>
|
|
1658
|
-
<SegmentURL mediaRange="1544-242159"/>
|
|
1659
|
-
<SegmentURL mediaRange="242160-482295"/>
|
|
1660
|
-
<SegmentURL mediaRange="482296-722431"/>
|
|
1661
|
-
<SegmentURL mediaRange="722432-966620"/>
|
|
1662
|
-
<SegmentURL mediaRange="966621-1210809"/>
|
|
1663
|
-
<SegmentURL mediaRange="1210810-1454998"/>
|
|
1664
|
-
<SegmentURL mediaRange="1454999-1699187"/>
|
|
1665
|
-
<SegmentURL mediaRange="1699188-1943376"/>
|
|
1666
|
-
<SegmentURL mediaRange="1943377-2187565"/>
|
|
1667
|
-
<SegmentURL mediaRange="2187566-2431754"/>
|
|
1668
|
-
<SegmentURL mediaRange="2431755-2675943"/>
|
|
1669
|
-
<SegmentURL mediaRange="2675944-2920132"/>
|
|
1670
|
-
<SegmentURL mediaRange="2920133-3164321"/>
|
|
1671
|
-
<SegmentURL mediaRange="3164322-3408510"/>
|
|
1672
|
-
<SegmentURL mediaRange="3408511-3652699"/>
|
|
1673
|
-
<SegmentURL mediaRange="3652700-3896888"/>
|
|
1674
|
-
<SegmentURL mediaRange="3896889-4141077"/>
|
|
1675
|
-
<SegmentURL mediaRange="4141078-4385266"/>
|
|
1676
|
-
<SegmentURL mediaRange="4385267-4629455"/>
|
|
1677
|
-
<SegmentURL mediaRange="4629456-4873644"/>
|
|
1678
|
-
<SegmentURL mediaRange="4873645-5117833"/>
|
|
1679
|
-
<SegmentURL mediaRange="5117834-5362022"/>
|
|
1680
|
-
<SegmentURL mediaRange="5362023-5606211"/>
|
|
1681
|
-
<SegmentURL mediaRange="5606212-5850400"/>
|
|
1682
|
-
<SegmentURL mediaRange="5850401-6094589"/>
|
|
1683
|
-
<SegmentURL mediaRange="6094590-6338778"/>
|
|
1684
|
-
<SegmentURL mediaRange="6338779-6582967"/>
|
|
1685
|
-
<SegmentURL mediaRange="6582968-6827156"/>
|
|
1686
|
-
<SegmentURL mediaRange="6827157-7071345"/>
|
|
1687
|
-
<SegmentURL mediaRange="7071346-7315534"/>
|
|
1688
|
-
<SegmentURL mediaRange="7315535-7559723"/>
|
|
1689
|
-
<SegmentURL mediaRange="7559724-7803912"/>
|
|
1690
|
-
<SegmentURL mediaRange="7803913-8048101"/>
|
|
1691
|
-
<SegmentURL mediaRange="8048102-8292290"/>
|
|
1692
|
-
<SegmentURL mediaRange="8292291-8536479"/>
|
|
1693
|
-
<SegmentURL mediaRange="8536480-8780668"/>
|
|
1694
|
-
<SegmentURL mediaRange="8780669-9024857"/>
|
|
1695
|
-
<SegmentURL mediaRange="9024858-9269046"/>
|
|
1696
|
-
<SegmentURL mediaRange="9269047-9513235"/>
|
|
1697
|
-
<SegmentURL mediaRange="9513236-9759420"/>
|
|
1698
|
-
</SegmentList>
|
|
1699
|
-
</Representation>
|
|
1700
|
-
<Representation id="7" qualityRanking="1" codecs="opus" audioSamplingRate="48000" bandwidth="324955" mimeType="audio/mp4">
|
|
1701
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1702
|
-
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/40ba3a06-d285-3130-838f-0c1508c1d18b.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=SD_HIGH&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1703
|
-
<SegmentList timescale="48000" duration="480000">
|
|
1704
|
-
<Initialization range="0-1031"/>
|
|
1705
|
-
<SegmentURL mediaRange="1544-402479"/>
|
|
1706
|
-
<SegmentURL mediaRange="402480-802615"/>
|
|
1707
|
-
<SegmentURL mediaRange="802616-1202751"/>
|
|
1708
|
-
<SegmentURL mediaRange="1202752-1606940"/>
|
|
1709
|
-
<SegmentURL mediaRange="1606941-2011129"/>
|
|
1710
|
-
<SegmentURL mediaRange="2011130-2415318"/>
|
|
1711
|
-
<SegmentURL mediaRange="2415319-2819507"/>
|
|
1712
|
-
<SegmentURL mediaRange="2819508-3223696"/>
|
|
1713
|
-
<SegmentURL mediaRange="3223697-3627885"/>
|
|
1714
|
-
<SegmentURL mediaRange="3627886-4032074"/>
|
|
1715
|
-
<SegmentURL mediaRange="4032075-4436263"/>
|
|
1716
|
-
<SegmentURL mediaRange="4436264-4840452"/>
|
|
1717
|
-
<SegmentURL mediaRange="4840453-5244641"/>
|
|
1718
|
-
<SegmentURL mediaRange="5244642-5648830"/>
|
|
1719
|
-
<SegmentURL mediaRange="5648831-6053019"/>
|
|
1720
|
-
<SegmentURL mediaRange="6053020-6457208"/>
|
|
1721
|
-
<SegmentURL mediaRange="6457209-6861397"/>
|
|
1722
|
-
<SegmentURL mediaRange="6861398-7265586"/>
|
|
1723
|
-
<SegmentURL mediaRange="7265587-7669775"/>
|
|
1724
|
-
<SegmentURL mediaRange="7669776-8073964"/>
|
|
1725
|
-
<SegmentURL mediaRange="8073965-8478153"/>
|
|
1726
|
-
<SegmentURL mediaRange="8478154-8882342"/>
|
|
1727
|
-
<SegmentURL mediaRange="8882343-9286531"/>
|
|
1728
|
-
<SegmentURL mediaRange="9286532-9690720"/>
|
|
1729
|
-
<SegmentURL mediaRange="9690721-10094909"/>
|
|
1730
|
-
<SegmentURL mediaRange="10094910-10499098"/>
|
|
1731
|
-
<SegmentURL mediaRange="10499099-10903287"/>
|
|
1732
|
-
<SegmentURL mediaRange="10903288-11307476"/>
|
|
1733
|
-
<SegmentURL mediaRange="11307477-11711665"/>
|
|
1734
|
-
<SegmentURL mediaRange="11711666-12115854"/>
|
|
1735
|
-
<SegmentURL mediaRange="12115855-12520043"/>
|
|
1736
|
-
<SegmentURL mediaRange="12520044-12924232"/>
|
|
1737
|
-
<SegmentURL mediaRange="12924233-13328421"/>
|
|
1738
|
-
<SegmentURL mediaRange="13328422-13732610"/>
|
|
1739
|
-
<SegmentURL mediaRange="13732611-14136799"/>
|
|
1740
|
-
<SegmentURL mediaRange="14136800-14540988"/>
|
|
1741
|
-
<SegmentURL mediaRange="14540989-14945177"/>
|
|
1742
|
-
<SegmentURL mediaRange="14945178-15349366"/>
|
|
1743
|
-
<SegmentURL mediaRange="15349367-15753555"/>
|
|
1744
|
-
<SegmentURL mediaRange="15753556-16159740"/>
|
|
1745
|
-
</SegmentList>
|
|
1746
|
-
</Representation>
|
|
1747
|
-
</AdaptationSet>
|
|
1748
|
-
<AdaptationSet id="3" contentType="audio" selectionPriority="500">
|
|
1749
|
-
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="4e4c6e3a-d760-ffd5-78b0-3824890da09d" value="cenc"/>
|
|
1750
|
-
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
1751
|
-
<cenc:pssh>AAAAXXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAD0SEE5MbjrXYP/VeLA4JIkNoJ0aC0FtYXpvbk11c2ljIhxjaWQ6VGt4dU90ZGcvOVY0c0Rna2lRMmduUT09</cenc:pssh>
|
|
1752
|
-
</ContentProtection>
|
|
1753
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:ProgramLoudness" value="-13.5 LUFS"/>
|
|
1754
|
-
<SupplementalProperty schemeIdUri="amz-music:trackType" value="LD"/>
|
|
1755
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:AnchorLoudness" value="-11.7 LUFS"/>
|
|
1756
|
-
<Representation id="8" qualityRanking="2000" codecs="opus" audioSamplingRate="48000" bandwidth="52950" mimeType="audio/mp4">
|
|
1757
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1758
|
-
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/748096ab-6991-368b-b9ca-5477bf90ba5a.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=LD_LOW&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1759
|
-
<SegmentList timescale="48000" duration="480000">
|
|
1760
|
-
<Initialization range="0-1031"/>
|
|
1761
|
-
<SegmentURL mediaRange="1544-61799"/>
|
|
1762
|
-
<SegmentURL mediaRange="61800-121935"/>
|
|
1763
|
-
<SegmentURL mediaRange="121936-182071"/>
|
|
1764
|
-
<SegmentURL mediaRange="182072-246260"/>
|
|
1765
|
-
<SegmentURL mediaRange="246261-310449"/>
|
|
1766
|
-
<SegmentURL mediaRange="310450-374638"/>
|
|
1767
|
-
<SegmentURL mediaRange="374639-438827"/>
|
|
1768
|
-
<SegmentURL mediaRange="438828-503016"/>
|
|
1769
|
-
<SegmentURL mediaRange="503017-567205"/>
|
|
1770
|
-
<SegmentURL mediaRange="567206-631394"/>
|
|
1771
|
-
<SegmentURL mediaRange="631395-695583"/>
|
|
1772
|
-
<SegmentURL mediaRange="695584-759772"/>
|
|
1773
|
-
<SegmentURL mediaRange="759773-823961"/>
|
|
1774
|
-
<SegmentURL mediaRange="823962-888150"/>
|
|
1775
|
-
<SegmentURL mediaRange="888151-952339"/>
|
|
1776
|
-
<SegmentURL mediaRange="952340-1016528"/>
|
|
1777
|
-
<SegmentURL mediaRange="1016529-1080717"/>
|
|
1778
|
-
<SegmentURL mediaRange="1080718-1144906"/>
|
|
1779
|
-
<SegmentURL mediaRange="1144907-1209095"/>
|
|
1780
|
-
<SegmentURL mediaRange="1209096-1273284"/>
|
|
1781
|
-
<SegmentURL mediaRange="1273285-1337473"/>
|
|
1782
|
-
<SegmentURL mediaRange="1337474-1401662"/>
|
|
1783
|
-
<SegmentURL mediaRange="1401663-1465851"/>
|
|
1784
|
-
<SegmentURL mediaRange="1465852-1530040"/>
|
|
1785
|
-
<SegmentURL mediaRange="1530041-1594229"/>
|
|
1786
|
-
<SegmentURL mediaRange="1594230-1658418"/>
|
|
1787
|
-
<SegmentURL mediaRange="1658419-1722607"/>
|
|
1788
|
-
<SegmentURL mediaRange="1722608-1786796"/>
|
|
1789
|
-
<SegmentURL mediaRange="1786797-1850985"/>
|
|
1790
|
-
<SegmentURL mediaRange="1850986-1915174"/>
|
|
1791
|
-
<SegmentURL mediaRange="1915175-1979363"/>
|
|
1792
|
-
<SegmentURL mediaRange="1979364-2043552"/>
|
|
1793
|
-
<SegmentURL mediaRange="2043553-2107741"/>
|
|
1794
|
-
<SegmentURL mediaRange="2107742-2171930"/>
|
|
1795
|
-
<SegmentURL mediaRange="2171931-2236119"/>
|
|
1796
|
-
<SegmentURL mediaRange="2236120-2300308"/>
|
|
1797
|
-
<SegmentURL mediaRange="2300309-2364497"/>
|
|
1798
|
-
<SegmentURL mediaRange="2364498-2428686"/>
|
|
1799
|
-
<SegmentURL mediaRange="2428687-2492875"/>
|
|
1800
|
-
<SegmentURL mediaRange="2492876-2559060"/>
|
|
1801
|
-
</SegmentList>
|
|
1802
|
-
</Representation>
|
|
1803
|
-
<Representation id="9" qualityRanking="1000" codecs="opus" audioSamplingRate="48000" bandwidth="164952" mimeType="audio/mp4">
|
|
1804
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1805
|
-
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/8be307d6-71ea-3111-a869-40720e08a6f9.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=LD_MEDIUM&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1806
|
-
<SegmentList timescale="48000" duration="480000">
|
|
1807
|
-
<Initialization range="0-1031"/>
|
|
1808
|
-
<SegmentURL mediaRange="1544-202079"/>
|
|
1809
|
-
<SegmentURL mediaRange="202080-402215"/>
|
|
1810
|
-
<SegmentURL mediaRange="402216-602351"/>
|
|
1811
|
-
<SegmentURL mediaRange="602352-806540"/>
|
|
1812
|
-
<SegmentURL mediaRange="806541-1010729"/>
|
|
1813
|
-
<SegmentURL mediaRange="1010730-1214918"/>
|
|
1814
|
-
<SegmentURL mediaRange="1214919-1419107"/>
|
|
1815
|
-
<SegmentURL mediaRange="1419108-1623296"/>
|
|
1816
|
-
<SegmentURL mediaRange="1623297-1827485"/>
|
|
1817
|
-
<SegmentURL mediaRange="1827486-2031674"/>
|
|
1818
|
-
<SegmentURL mediaRange="2031675-2235863"/>
|
|
1819
|
-
<SegmentURL mediaRange="2235864-2440052"/>
|
|
1820
|
-
<SegmentURL mediaRange="2440053-2644241"/>
|
|
1821
|
-
<SegmentURL mediaRange="2644242-2848430"/>
|
|
1822
|
-
<SegmentURL mediaRange="2848431-3052619"/>
|
|
1823
|
-
<SegmentURL mediaRange="3052620-3256808"/>
|
|
1824
|
-
<SegmentURL mediaRange="3256809-3460997"/>
|
|
1825
|
-
<SegmentURL mediaRange="3460998-3665186"/>
|
|
1826
|
-
<SegmentURL mediaRange="3665187-3869375"/>
|
|
1827
|
-
<SegmentURL mediaRange="3869376-4073564"/>
|
|
1828
|
-
<SegmentURL mediaRange="4073565-4277753"/>
|
|
1829
|
-
<SegmentURL mediaRange="4277754-4481942"/>
|
|
1830
|
-
<SegmentURL mediaRange="4481943-4686131"/>
|
|
1831
|
-
<SegmentURL mediaRange="4686132-4890320"/>
|
|
1832
|
-
<SegmentURL mediaRange="4890321-5094509"/>
|
|
1833
|
-
<SegmentURL mediaRange="5094510-5298698"/>
|
|
1834
|
-
<SegmentURL mediaRange="5298699-5502887"/>
|
|
1835
|
-
<SegmentURL mediaRange="5502888-5707076"/>
|
|
1836
|
-
<SegmentURL mediaRange="5707077-5911265"/>
|
|
1837
|
-
<SegmentURL mediaRange="5911266-6115454"/>
|
|
1838
|
-
<SegmentURL mediaRange="6115455-6319643"/>
|
|
1839
|
-
<SegmentURL mediaRange="6319644-6523832"/>
|
|
1840
|
-
<SegmentURL mediaRange="6523833-6728021"/>
|
|
1841
|
-
<SegmentURL mediaRange="6728022-6932210"/>
|
|
1842
|
-
<SegmentURL mediaRange="6932211-7136399"/>
|
|
1843
|
-
<SegmentURL mediaRange="7136400-7340588"/>
|
|
1844
|
-
<SegmentURL mediaRange="7340589-7544777"/>
|
|
1845
|
-
<SegmentURL mediaRange="7544778-7748966"/>
|
|
1846
|
-
<SegmentURL mediaRange="7748967-7953155"/>
|
|
1847
|
-
<SegmentURL mediaRange="7953156-8159340"/>
|
|
1848
|
-
</SegmentList>
|
|
1849
|
-
</Representation>
|
|
1850
|
-
</AdaptationSet>
|
|
1851
|
-
</Period>
|
|
1852
|
-
</MPD>`;
|
|
1853
|
-
|
|
1854
|
-
// test/vinylTestUtil/assets/dash_segmentList.ts
|
|
1855
|
-
var dash_segmentList = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
1856
|
-
<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">
|
|
1857
|
-
<Period>
|
|
1858
|
-
<AdaptationSet segmentAlignment="true" mimeType="audio/mp4" startWithSAP="1">
|
|
1859
|
-
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="5e2905f0-1f87-1c2a-cdc9-a698b13460a0" value="cenc"/>
|
|
1860
|
-
<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="2.0">
|
|
1861
|
-
<mspr:pro>gAIAAAEAAQB2AjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOABBAFUAcABYAG8AYwBmAEsAaAB6AE4AeQBhAGEAWQBzAFQAUgBnAG8AQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBvAHYAQwA0AFQAaQA0AFgAOQBRADAAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBtAHUAcwBpAGMALgBhAG0AYQB6AG8AbgAuAGMAbwBtAC8AZABtAGwAcwAvAGEAYwBxAHUAaQByAGUATABpAGMAZQBuAHMAZQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
|
|
1862
|
-
<cenc:pssh>AAACoHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAoCAAgAAAQABAHYCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA4AEEAVQBwAFgAbwBjAGYASwBoAHoATgB5AGEAYQBZAHMAVABSAGcAbwBBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AG8AdgBDADQAVABpADQAWAA5AFEAMAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAG0AdQBzAGkAYwAuAGEAbQBhAHoAbwBuAC4AYwBvAG0ALwBkAG0AbABzAC8AYQBjAHEAdQBpAHIAZQBMAGkAYwBlAG4AcwBlADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
|
|
1863
|
-
</ContentProtection>
|
|
1864
|
-
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
1865
|
-
<cenc:pssh>AAAAZnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEYIARIQXikF8B+HHCrNyaaYsTRgoBoLQW1hem9uTXVzaWMiHGNpZDpYaWtGOEIrSEhDck55YWFZc1RSZ29BPT0qBUFVRElP</cenc:pssh>
|
|
1866
|
-
</ContentProtection>
|
|
1867
|
-
<Representation id="48kbps" bitrate="48" codecs="mp4a.40.5" audioSamplingRate="44100" bandwidth="49207">
|
|
1868
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1869
|
-
<SegmentList timescale="1000" duration="9999">
|
|
1870
|
-
<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"/>
|
|
1871
|
-
<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"/>
|
|
1872
|
-
<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"/>
|
|
1873
|
-
<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"/>
|
|
1874
|
-
<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"/>
|
|
1875
|
-
<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"/>
|
|
1876
|
-
<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"/>
|
|
1877
|
-
<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"/>
|
|
1878
|
-
<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"/>
|
|
1879
|
-
<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"/>
|
|
1880
|
-
<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"/>
|
|
1881
|
-
<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"/>
|
|
1882
|
-
<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"/>
|
|
1883
|
-
<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"/>
|
|
1884
|
-
<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"/>
|
|
1885
|
-
<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"/>
|
|
1886
|
-
<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"/>
|
|
1887
|
-
<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"/>
|
|
1888
|
-
<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"/>
|
|
1889
|
-
</SegmentList>
|
|
1890
|
-
</Representation>
|
|
1891
|
-
<Representation id="128kbps" bitrate="128" codecs="mp4a.40.5" audioSamplingRate="44100" bandwidth="128940">
|
|
1892
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1893
|
-
<SegmentList timescale="1000" duration="9999">
|
|
1894
|
-
<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"/>
|
|
1895
|
-
<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"/>
|
|
1896
|
-
<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"/>
|
|
1897
|
-
<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"/>
|
|
1898
|
-
<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"/>
|
|
1899
|
-
<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"/>
|
|
1900
|
-
<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"/>
|
|
1901
|
-
<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"/>
|
|
1902
|
-
<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"/>
|
|
1903
|
-
<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"/>
|
|
1904
|
-
<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"/>
|
|
1905
|
-
<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"/>
|
|
1906
|
-
<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"/>
|
|
1907
|
-
<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"/>
|
|
1908
|
-
<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"/>
|
|
1909
|
-
<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"/>
|
|
1910
|
-
<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"/>
|
|
1911
|
-
<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"/>
|
|
1912
|
-
<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"/>
|
|
1913
|
-
</SegmentList>
|
|
1914
|
-
</Representation>
|
|
1915
|
-
</AdaptationSet>
|
|
1916
|
-
<AdaptationSet segmentAlignment="true" mimeType="audio/mp4" startWithSAP="1">
|
|
1917
|
-
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="5e2905f0-1f87-1c2a-cdc9-a698b13460a0" value="cenc"/>
|
|
1918
|
-
<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="2.0">
|
|
1919
|
-
<mspr:pro>gAIAAAEAAQB2AjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOABBAFUAcABYAG8AYwBmAEsAaAB6AE4AeQBhAGEAWQBzAFQAUgBnAG8AQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBvAHYAQwA0AFQAaQA0AFgAOQBRADAAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBtAHUAcwBpAGMALgBhAG0AYQB6AG8AbgAuAGMAbwBtAC8AZABtAGwAcwAvAGEAYwBxAHUAaQByAGUATABpAGMAZQBuAHMAZQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
|
|
1920
|
-
<cenc:pssh>AAACoHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAoCAAgAAAQABAHYCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA4AEEAVQBwAFgAbwBjAGYASwBoAHoATgB5AGEAYQBZAHMAVABSAGcAbwBBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AG8AdgBDADQAVABpADQAWAA5AFEAMAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAG0AdQBzAGkAYwAuAGEAbQBhAHoAbwBuAC4AYwBvAG0ALwBkAG0AbABzAC8AYQBjAHEAdQBpAHIAZQBMAGkAYwBlAG4AcwBlADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
|
|
1921
|
-
</ContentProtection>
|
|
1922
|
-
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
1923
|
-
<cenc:pssh>AAAAZnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEYIARIQXikF8B+HHCrNyaaYsTRgoBoLQW1hem9uTXVzaWMiHGNpZDpYaWtGOEIrSEhDck55YWFZc1RSZ29BPT0qBUFVRElP</cenc:pssh>
|
|
1924
|
-
</ContentProtection>
|
|
1925
|
-
<Representation id="256kbps" bitrate="256" codecs="mp4a.40.2" audioSamplingRate="44100" bandwidth="257571">
|
|
1926
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1927
|
-
<SegmentList timescale="1000" duration="10001">
|
|
1928
|
-
<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"/>
|
|
1929
|
-
<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"/>
|
|
1930
|
-
<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"/>
|
|
1931
|
-
<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"/>
|
|
1932
|
-
<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"/>
|
|
1933
|
-
<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"/>
|
|
1934
|
-
<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"/>
|
|
1935
|
-
<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"/>
|
|
1936
|
-
<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"/>
|
|
1937
|
-
<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"/>
|
|
1938
|
-
<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"/>
|
|
1939
|
-
<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"/>
|
|
1940
|
-
<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"/>
|
|
1941
|
-
<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"/>
|
|
1942
|
-
<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"/>
|
|
1943
|
-
<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"/>
|
|
1944
|
-
<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"/>
|
|
1945
|
-
<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"/>
|
|
1946
|
-
<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"/>
|
|
1947
|
-
</SegmentList>
|
|
1948
|
-
</Representation>
|
|
1949
|
-
</AdaptationSet>
|
|
1950
|
-
</Period>
|
|
1951
|
-
</MPD>
|
|
1952
|
-
`;
|
|
1953
|
-
|
|
1954
|
-
// test/vinylTestUtil/assets/dash_segmentBase.ts
|
|
1955
|
-
var dash_segmentBase = `<?xml version="1.0" encoding="UTF-8"?>
|
|
1956
|
-
<!--Generated with https://github.com/google/shaka-packager version v2.6.1-634af65-release-->
|
|
1957
|
-
<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">
|
|
1958
|
-
<Period id="0">
|
|
1959
|
-
<AdaptationSet id="0" contentType="audio" subsegmentAlignment="true">
|
|
1960
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="1,2"/>
|
|
1961
|
-
<Representation id="0" bandwidth="51160" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
|
1962
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1963
|
-
<BaseURL>representations/aac_60s_2ch_16bit_44100Hz_48kbps.mp4</BaseURL>
|
|
1964
|
-
<SegmentBase indexRange="826-929" timescale="44100">
|
|
1965
|
-
<Initialization range="0-825"/>
|
|
1966
|
-
</SegmentBase>
|
|
1967
|
-
</Representation>
|
|
1968
|
-
<Representation id="14" bandwidth="124766" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
|
1969
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1970
|
-
<BaseURL>representations/aac_60s_2ch_16bit_44100Hz_256kbps.mp4</BaseURL>
|
|
1971
|
-
<SegmentBase indexRange="826-929" timescale="44100">
|
|
1972
|
-
<Initialization range="0-825"/>
|
|
1973
|
-
</SegmentBase>
|
|
1974
|
-
</Representation>
|
|
1975
|
-
<Representation id="15" bandwidth="114639" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
|
1976
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1977
|
-
<BaseURL>representations/aac_60s_2ch_16bit_44100Hz_128kbps.mp4</BaseURL>
|
|
1978
|
-
<SegmentBase indexRange="826-929" timescale="44100">
|
|
1979
|
-
<Initialization range="0-825"/>
|
|
1980
|
-
</SegmentBase>
|
|
1981
|
-
</Representation>
|
|
1982
|
-
</AdaptationSet>
|
|
1983
|
-
<AdaptationSet id="1" contentType="audio">
|
|
1984
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="0,2"/>
|
|
1985
|
-
<Representation id="1" bandwidth="141719" codecs="flac" mimeType="audio/mp4" audioSamplingRate="44100">
|
|
1986
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1987
|
-
<BaseURL>representations/flac_60s_2ch_16bit_44100Hz.mp4</BaseURL>
|
|
1988
|
-
<SegmentBase indexRange="772-875" timescale="44100">
|
|
1989
|
-
<Initialization range="0-771"/>
|
|
1990
|
-
</SegmentBase>
|
|
1991
|
-
</Representation>
|
|
1992
|
-
<Representation id="3" bandwidth="541361" codecs="flac" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
1993
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1994
|
-
<BaseURL>representations/flac_60s_2ch_24bit_48000Hz.mp4</BaseURL>
|
|
1995
|
-
<SegmentBase indexRange="772-875" timescale="48000">
|
|
1996
|
-
<Initialization range="0-771"/>
|
|
1997
|
-
</SegmentBase>
|
|
1998
|
-
</Representation>
|
|
1999
|
-
<Representation id="4" bandwidth="470315" codecs="flac" mimeType="audio/mp4" audioSamplingRate="0">
|
|
2000
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2001
|
-
<BaseURL>representations/flac_60s_2ch_16bit_192000Hz.mp4</BaseURL>
|
|
2002
|
-
<SegmentBase indexRange="772-875" timescale="192000">
|
|
2003
|
-
<Initialization range="0-771"/>
|
|
2004
|
-
</SegmentBase>
|
|
2005
|
-
</Representation>
|
|
2006
|
-
<Representation id="6" bandwidth="2192360" codecs="flac" mimeType="audio/mp4" audioSamplingRate="0">
|
|
2007
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2008
|
-
<BaseURL>representations/flac_60s_2ch_24bit_192000Hz.mp4</BaseURL>
|
|
2009
|
-
<SegmentBase indexRange="772-875" timescale="192000">
|
|
2010
|
-
<Initialization range="0-771"/>
|
|
2011
|
-
</SegmentBase>
|
|
2012
|
-
</Representation>
|
|
2013
|
-
<Representation id="8" bandwidth="153326" codecs="flac" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
2014
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2015
|
-
<BaseURL>representations/flac_60s_2ch_16bit_48000Hz.mp4</BaseURL>
|
|
2016
|
-
<SegmentBase indexRange="772-875" timescale="48000">
|
|
2017
|
-
<Initialization range="0-771"/>
|
|
2018
|
-
</SegmentBase>
|
|
2019
|
-
</Representation>
|
|
2020
|
-
<Representation id="10" bandwidth="257514" codecs="flac" mimeType="audio/mp4" audioSamplingRate="0">
|
|
2021
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2022
|
-
<BaseURL>representations/flac_60s_2ch_16bit_96000Hz.mp4</BaseURL>
|
|
2023
|
-
<SegmentBase indexRange="772-875" timescale="96000">
|
|
2024
|
-
<Initialization range="0-771"/>
|
|
2025
|
-
</SegmentBase>
|
|
2026
|
-
</Representation>
|
|
2027
|
-
<Representation id="11" bandwidth="495381" codecs="flac" mimeType="audio/mp4" audioSamplingRate="44100">
|
|
2028
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2029
|
-
<BaseURL>representations/flac_60s_2ch_24bit_44100Hz.mp4</BaseURL>
|
|
2030
|
-
<SegmentBase indexRange="772-875" timescale="44100">
|
|
2031
|
-
<Initialization range="0-771"/>
|
|
2032
|
-
</SegmentBase>
|
|
2033
|
-
</Representation>
|
|
2034
|
-
<Representation id="16" bandwidth="1074424" codecs="flac" mimeType="audio/mp4" audioSamplingRate="0">
|
|
2035
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2036
|
-
<BaseURL>representations/flac_60s_2ch_24bit_96000Hz.mp4</BaseURL>
|
|
2037
|
-
<SegmentBase indexRange="772-875" timescale="96000">
|
|
2038
|
-
<Initialization range="0-771"/>
|
|
2039
|
-
</SegmentBase>
|
|
2040
|
-
</Representation>
|
|
2041
|
-
</AdaptationSet>
|
|
2042
|
-
<AdaptationSet id="2" contentType="audio" subsegmentAlignment="true">
|
|
2043
|
-
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="0,1"/>
|
|
2044
|
-
<Representation id="2" bandwidth="322671" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
2045
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2046
|
-
<BaseURL>representations/opus_60s_2ch_16bit_44100Hz_320kbps.mp4</BaseURL>
|
|
2047
|
-
<SegmentBase indexRange="803-906" timescale="48000">
|
|
2048
|
-
<Initialization range="0-802"/>
|
|
2049
|
-
</SegmentBase>
|
|
2050
|
-
</Representation>
|
|
2051
|
-
<Representation id="5" bandwidth="50194" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
2052
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2053
|
-
<BaseURL>representations/opus_60s_2ch_16bit_44100Hz_48kbps.mp4</BaseURL>
|
|
2054
|
-
<SegmentBase indexRange="803-906" timescale="48000">
|
|
2055
|
-
<Initialization range="0-802"/>
|
|
2056
|
-
</SegmentBase>
|
|
2057
|
-
</Representation>
|
|
2058
|
-
<Representation id="7" bandwidth="50194" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
2059
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2060
|
-
<BaseURL>representations/opus_60s_2ch_16bit_192000Hz_48kbps.mp4</BaseURL>
|
|
2061
|
-
<SegmentBase indexRange="803-906" timescale="48000">
|
|
2062
|
-
<Initialization range="0-802"/>
|
|
2063
|
-
</SegmentBase>
|
|
2064
|
-
</Representation>
|
|
2065
|
-
<Representation id="9" bandwidth="162390" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
2066
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2067
|
-
<BaseURL>representations/opus_60s_2ch_16bit_192000Hz_160kbps.mp4</BaseURL>
|
|
2068
|
-
<SegmentBase indexRange="803-906" timescale="48000">
|
|
2069
|
-
<Initialization range="0-802"/>
|
|
2070
|
-
</SegmentBase>
|
|
2071
|
-
</Representation>
|
|
2072
|
-
<Representation id="12" bandwidth="322671" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
2073
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2074
|
-
<BaseURL>representations/opus_60s_2ch_16bit_192000Hz_320kbps.mp4</BaseURL>
|
|
2075
|
-
<SegmentBase indexRange="803-906" timescale="48000">
|
|
2076
|
-
<Initialization range="0-802"/>
|
|
2077
|
-
</SegmentBase>
|
|
2078
|
-
</Representation>
|
|
2079
|
-
<Representation id="13" bandwidth="162390" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
2080
|
-
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
2081
|
-
<BaseURL>representations/opus_60s_2ch_16bit_44100Hz_160kbps.mp4</BaseURL>
|
|
2082
|
-
<SegmentBase indexRange="803-906" timescale="48000">
|
|
2083
|
-
<Initialization range="0-802"/>
|
|
2084
|
-
</SegmentBase>
|
|
2085
|
-
</Representation>
|
|
2086
|
-
</AdaptationSet>
|
|
2087
|
-
</Period>
|
|
2088
|
-
</MPD>
|
|
2089
|
-
`;
|
|
2090
|
-
|
|
2091
22
|
// test/vinylTestUtil/assets/dash_personalizedResponse.ts
|
|
2092
23
|
var dash_personalizedResponse = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2093
24
|
<MPD minBufferTime="PT10.00S" profiles="urn:mpeg:dash:profile:isoff-live:2011" xmlns="urn:mpeg:dash:schema:mpd:2011">
|
|
@@ -2739,16 +670,106 @@ var dash_personalizedResponse = `<?xml version="1.0" encoding="UTF-8" standalone
|
|
|
2739
670
|
</SegmentTimeline>
|
|
2740
671
|
</SegmentTemplate>
|
|
2741
672
|
</Representation>
|
|
2742
|
-
</AdaptationSet>
|
|
2743
|
-
</Period>
|
|
2744
|
-
<Period id="1550253000.0_1" start="PT430625H50M">
|
|
2745
|
-
<BaseURL>http://d2gh0tfpz97e4o.cloudfront.net/visitalps/</BaseURL>
|
|
2746
|
-
<AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true"
|
|
2747
|
-
startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
|
|
2748
|
-
<SegmentTemplate startNumber="1" timescale="90000"/>
|
|
2749
|
-
<Representation bandwidth="7500000" codecs="avc1.640028" height="1080" id="1" width="1920">
|
|
2750
|
-
<SegmentTemplate initialization="visitalps_1080p30_video_1080p_10init.mp4"
|
|
2751
|
-
media="visitalps_1080p30_video_1080p_10_$Number%09d$.mp4" startNumber="1"
|
|
673
|
+
</AdaptationSet>
|
|
674
|
+
</Period>
|
|
675
|
+
<Period id="1550253000.0_1" start="PT430625H50M">
|
|
676
|
+
<BaseURL>http://d2gh0tfpz97e4o.cloudfront.net/visitalps/</BaseURL>
|
|
677
|
+
<AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true"
|
|
678
|
+
startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
|
|
679
|
+
<SegmentTemplate startNumber="1" timescale="90000"/>
|
|
680
|
+
<Representation bandwidth="7500000" codecs="avc1.640028" height="1080" id="1" width="1920">
|
|
681
|
+
<SegmentTemplate initialization="visitalps_1080p30_video_1080p_10init.mp4"
|
|
682
|
+
media="visitalps_1080p30_video_1080p_10_$Number%09d$.mp4" startNumber="1"
|
|
683
|
+
timescale="90000">
|
|
684
|
+
<SegmentTimeline>
|
|
685
|
+
<S d="180000" r="6" t="0"/>
|
|
686
|
+
<S d="86940" t="1260000"/>
|
|
687
|
+
</SegmentTimeline>
|
|
688
|
+
</SegmentTemplate>
|
|
689
|
+
</Representation>
|
|
690
|
+
<Representation bandwidth="3000000" codecs="avc1.64001f" height="720" id="2" width="1280">
|
|
691
|
+
<SegmentTemplate initialization="visitalps_1080p30_video_720p_9init.mp4"
|
|
692
|
+
media="visitalps_1080p30_video_720p_9_$Number%09d$.mp4" startNumber="1"
|
|
693
|
+
timescale="90000">
|
|
694
|
+
<SegmentTimeline>
|
|
695
|
+
<S d="180000" r="6" t="0"/>
|
|
696
|
+
<S d="86940" t="1260000"/>
|
|
697
|
+
</SegmentTimeline>
|
|
698
|
+
</SegmentTemplate>
|
|
699
|
+
</Representation>
|
|
700
|
+
<Representation bandwidth="1875000" codecs="avc1.64001f" height="720" id="3" width="1280">
|
|
701
|
+
<SegmentTemplate initialization="visitalps_1080p30_video_720p_8init.mp4"
|
|
702
|
+
media="visitalps_1080p30_video_720p_8_$Number%09d$.mp4" startNumber="1"
|
|
703
|
+
timescale="90000">
|
|
704
|
+
<SegmentTimeline>
|
|
705
|
+
<S d="270000" r="3" t="0"/>
|
|
706
|
+
<S d="266940" t="1080000"/>
|
|
707
|
+
</SegmentTimeline>
|
|
708
|
+
</SegmentTemplate>
|
|
709
|
+
</Representation>
|
|
710
|
+
<Representation bandwidth="1500000" codecs="avc1.64001f" height="540" id="4" width="960">
|
|
711
|
+
<SegmentTemplate initialization="visitalps_1080p30_video_540p_7init.mp4"
|
|
712
|
+
media="visitalps_1080p30_video_540p_7_$Number%09d$.mp4" startNumber="1"
|
|
713
|
+
timescale="90000">
|
|
714
|
+
<SegmentTimeline>
|
|
715
|
+
<S d="360000" r="2" t="0"/>
|
|
716
|
+
<S d="266940" t="1080000"/>
|
|
717
|
+
</SegmentTimeline>
|
|
718
|
+
</SegmentTemplate>
|
|
719
|
+
</Representation>
|
|
720
|
+
<Representation bandwidth="1012500" codecs="avc1.64001e" height="396" id="5" width="704">
|
|
721
|
+
<SegmentTemplate initialization="visitalps_1080p30_video_396p_6init.mp4"
|
|
722
|
+
media="visitalps_1080p30_video_396p_6_$Number%09d$.mp4" startNumber="1"
|
|
723
|
+
timescale="90000">
|
|
724
|
+
<SegmentTimeline>
|
|
725
|
+
<S d="360000" r="2" t="0"/>
|
|
726
|
+
<S d="266940" t="1080000"/>
|
|
727
|
+
</SegmentTimeline>
|
|
728
|
+
</SegmentTemplate>
|
|
729
|
+
</Representation>
|
|
730
|
+
<Representation bandwidth="675000" codecs="avc1.64001e" height="396" id="6" width="704">
|
|
731
|
+
<SegmentTemplate initialization="visitalps_1080p30_video_396p_5init.mp4"
|
|
732
|
+
media="visitalps_1080p30_video_396p_5_$Number%09d$.mp4" startNumber="1"
|
|
733
|
+
timescale="90000">
|
|
734
|
+
<SegmentTimeline>
|
|
735
|
+
<S d="360000" r="2" t="0"/>
|
|
736
|
+
<S d="266940" t="1080000"/>
|
|
737
|
+
</SegmentTimeline>
|
|
738
|
+
</SegmentTemplate>
|
|
739
|
+
</Representation>
|
|
740
|
+
<Representation bandwidth="450000" codecs="avc1.64001e" height="396" id="7" width="704">
|
|
741
|
+
<SegmentTemplate initialization="visitalps_1080p30_video_396p_4init.mp4"
|
|
742
|
+
media="visitalps_1080p30_video_396p_4_$Number%09d$.mp4" startNumber="1"
|
|
743
|
+
timescale="90000">
|
|
744
|
+
<SegmentTimeline>
|
|
745
|
+
<S d="360000" r="2" t="0"/>
|
|
746
|
+
<S d="266940" t="1080000"/>
|
|
747
|
+
</SegmentTimeline>
|
|
748
|
+
</SegmentTemplate>
|
|
749
|
+
</Representation>
|
|
750
|
+
<Representation bandwidth="337500" codecs="avc1.640016" height="288" id="8" width="512">
|
|
751
|
+
<SegmentTemplate initialization="visitalps_1080p30_video_288p_3init.mp4"
|
|
752
|
+
media="visitalps_1080p30_video_288p_3_$Number%09d$.mp4" startNumber="1"
|
|
753
|
+
timescale="90000">
|
|
754
|
+
<SegmentTimeline>
|
|
755
|
+
<S d="360000" r="2" t="0"/>
|
|
756
|
+
<S d="266940" t="1080000"/>
|
|
757
|
+
</SegmentTimeline>
|
|
758
|
+
</SegmentTemplate>
|
|
759
|
+
</Representation>
|
|
760
|
+
<Representation bandwidth="225000" codecs="avc1.640016" height="288" id="9" width="512">
|
|
761
|
+
<SegmentTemplate initialization="visitalps_1080p30_video_288p_2init.mp4"
|
|
762
|
+
media="visitalps_1080p30_video_288p_2_$Number%09d$.mp4" startNumber="1"
|
|
763
|
+
timescale="90000">
|
|
764
|
+
<SegmentTimeline>
|
|
765
|
+
<S d="360000" r="2" t="0"/>
|
|
766
|
+
<S d="266940" t="1080000"/>
|
|
767
|
+
</SegmentTimeline>
|
|
768
|
+
</SegmentTemplate>
|
|
769
|
+
</Representation>
|
|
770
|
+
<Representation bandwidth="150000" codecs="avc1.640016" height="288" id="10" width="512">
|
|
771
|
+
<SegmentTemplate initialization="visitalps_1080p30_video_288p_1init.mp4"
|
|
772
|
+
media="visitalps_1080p30_video_288p_1_$Number%09d$.mp4" startNumber="1"
|
|
2752
773
|
timescale="90000">
|
|
2753
774
|
<SegmentTimeline>
|
|
2754
775
|
<S d="180000" r="6" t="0"/>
|
|
@@ -2756,164 +777,2309 @@ var dash_personalizedResponse = `<?xml version="1.0" encoding="UTF-8" standalone
|
|
|
2756
777
|
</SegmentTimeline>
|
|
2757
778
|
</SegmentTemplate>
|
|
2758
779
|
</Representation>
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
780
|
+
</AdaptationSet>
|
|
781
|
+
<AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
|
|
782
|
+
<SegmentTemplate initialization="visitalps_1080p30_audio_aac_128kinit.mp4"
|
|
783
|
+
media="visitalps_1080p30_audio_aac_128k_$Number%09d$.mp4" startNumber="1"
|
|
784
|
+
timescale="48000"/>
|
|
785
|
+
<Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="11">
|
|
786
|
+
<SegmentTemplate initialization="visitalps_1080p30_audio_aac_128kinit.mp4"
|
|
787
|
+
media="visitalps_1080p30_audio_aac_128k_$Number%09d$.mp4" startNumber="1"
|
|
788
|
+
timescale="48000">
|
|
2763
789
|
<SegmentTimeline>
|
|
2764
|
-
<S d="
|
|
2765
|
-
<S d="
|
|
790
|
+
<S d="96000" r="6" t="0"/>
|
|
791
|
+
<S d="46368" t="672000"/>
|
|
2766
792
|
</SegmentTimeline>
|
|
2767
793
|
</SegmentTemplate>
|
|
2768
794
|
</Representation>
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
795
|
+
</AdaptationSet>
|
|
796
|
+
</Period>
|
|
797
|
+
<Period id="1550253000.0" start="PT430625H50M14.966S">
|
|
798
|
+
<BaseURL>dash/</BaseURL>
|
|
799
|
+
<EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="1">
|
|
800
|
+
<Event duration="24" id="138" presentationTime="1550253000">
|
|
801
|
+
<Signal xmlns="http://www.scte.org/schemas/35/2016">
|
|
802
|
+
<Binary>/DAhAAAAAAAAAP/wEAUAAACKf+9/fgAg9YDAAAAAAADc+O1/</Binary>
|
|
803
|
+
</Signal>
|
|
804
|
+
</Event>
|
|
805
|
+
</EventStream>
|
|
806
|
+
<AdaptationSet audioSamplingRate="48000" codecs="mp4a.40.2" contentType="audio" group="1" id="1"
|
|
807
|
+
mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
|
|
808
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="1"/>
|
|
809
|
+
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
|
|
810
|
+
<Representation bandwidth="69000" id="audio=69000">
|
|
811
|
+
<SegmentTemplate initialization="scte35-$RepresentationID$.dash"
|
|
812
|
+
media="scte35-$RepresentationID$-$Time$.dash" presentationTimeOffset="74412144718368"
|
|
813
|
+
timescale="48000">
|
|
2773
814
|
<SegmentTimeline>
|
|
2774
|
-
<S d="
|
|
2775
|
-
<S d="
|
|
815
|
+
<S d="48128" t="74412144716544"/>
|
|
816
|
+
<S d="48127" t="74412144764672"/>
|
|
817
|
+
<S d="48129" t="74412144812799"/>
|
|
818
|
+
<S d="48128" t="74412144860928"/>
|
|
819
|
+
<S d="47104" t="74412144909056"/>
|
|
820
|
+
<S d="48128" t="74412144956160"/>
|
|
821
|
+
<S d="48127" t="74412145004288"/>
|
|
822
|
+
<S d="48129" t="74412145052415"/>
|
|
823
|
+
<S d="48128" t="74412145100544"/>
|
|
824
|
+
<S d="48127" t="74412145148672"/>
|
|
2776
825
|
</SegmentTimeline>
|
|
2777
826
|
</SegmentTemplate>
|
|
2778
827
|
</Representation>
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
828
|
+
</AdaptationSet>
|
|
829
|
+
<AdaptationSet codecs="avc1.64001F" contentType="video" group="2" height="720" id="2" mimeType="video/mp4"
|
|
830
|
+
par="16:9" sar="1:1" segmentAlignment="true" startWithSAP="1" width="1280">
|
|
831
|
+
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
|
|
832
|
+
<Representation bandwidth="700000" id="video=700000" scanType="progressive">
|
|
833
|
+
<SegmentTemplate initialization="scte35-$RepresentationID$.dash"
|
|
834
|
+
media="scte35-$RepresentationID$-$Time$.dash" presentationTimeOffset="139522771346940"
|
|
2782
835
|
timescale="90000">
|
|
2783
836
|
<SegmentTimeline>
|
|
2784
|
-
<S d="
|
|
2785
|
-
<S d="266940" t="1080000"/>
|
|
837
|
+
<S d="90000" r="9" t="139522771260000"/>
|
|
2786
838
|
</SegmentTimeline>
|
|
2787
839
|
</SegmentTemplate>
|
|
2788
840
|
</Representation>
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
841
|
+
</AdaptationSet>
|
|
842
|
+
</Period>
|
|
843
|
+
</MPD>
|
|
844
|
+
`;
|
|
845
|
+
|
|
846
|
+
// test/vinylTestUtil/assets/dash_segmentBase.ts
|
|
847
|
+
var dash_segmentBase = `<?xml version="1.0" encoding="UTF-8"?>
|
|
848
|
+
<!--Generated with https://github.com/google/shaka-packager version v2.6.1-634af65-release-->
|
|
849
|
+
<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">
|
|
850
|
+
<Period id="0">
|
|
851
|
+
<AdaptationSet id="0" contentType="audio" subsegmentAlignment="true">
|
|
852
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="1,2"/>
|
|
853
|
+
<Representation id="0" bandwidth="51160" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
|
854
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
855
|
+
<BaseURL>representations/aac_60s_2ch_16bit_44100Hz_48kbps.mp4</BaseURL>
|
|
856
|
+
<SegmentBase indexRange="826-929" timescale="44100">
|
|
857
|
+
<Initialization range="0-825"/>
|
|
858
|
+
</SegmentBase>
|
|
859
|
+
</Representation>
|
|
860
|
+
<Representation id="14" bandwidth="124766" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
|
861
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
862
|
+
<BaseURL>representations/aac_60s_2ch_16bit_44100Hz_256kbps.mp4</BaseURL>
|
|
863
|
+
<SegmentBase indexRange="826-929" timescale="44100">
|
|
864
|
+
<Initialization range="0-825"/>
|
|
865
|
+
</SegmentBase>
|
|
866
|
+
</Representation>
|
|
867
|
+
<Representation id="15" bandwidth="114639" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
|
868
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
869
|
+
<BaseURL>representations/aac_60s_2ch_16bit_44100Hz_128kbps.mp4</BaseURL>
|
|
870
|
+
<SegmentBase indexRange="826-929" timescale="44100">
|
|
871
|
+
<Initialization range="0-825"/>
|
|
872
|
+
</SegmentBase>
|
|
873
|
+
</Representation>
|
|
874
|
+
</AdaptationSet>
|
|
875
|
+
<AdaptationSet id="1" contentType="audio">
|
|
876
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="0,2"/>
|
|
877
|
+
<Representation id="1" bandwidth="141719" codecs="flac" mimeType="audio/mp4" audioSamplingRate="44100">
|
|
878
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
879
|
+
<BaseURL>representations/flac_60s_2ch_16bit_44100Hz.mp4</BaseURL>
|
|
880
|
+
<SegmentBase indexRange="772-875" timescale="44100">
|
|
881
|
+
<Initialization range="0-771"/>
|
|
882
|
+
</SegmentBase>
|
|
883
|
+
</Representation>
|
|
884
|
+
<Representation id="3" bandwidth="541361" codecs="flac" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
885
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
886
|
+
<BaseURL>representations/flac_60s_2ch_24bit_48000Hz.mp4</BaseURL>
|
|
887
|
+
<SegmentBase indexRange="772-875" timescale="48000">
|
|
888
|
+
<Initialization range="0-771"/>
|
|
889
|
+
</SegmentBase>
|
|
890
|
+
</Representation>
|
|
891
|
+
<Representation id="4" bandwidth="470315" codecs="flac" mimeType="audio/mp4" audioSamplingRate="0">
|
|
892
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
893
|
+
<BaseURL>representations/flac_60s_2ch_16bit_192000Hz.mp4</BaseURL>
|
|
894
|
+
<SegmentBase indexRange="772-875" timescale="192000">
|
|
895
|
+
<Initialization range="0-771"/>
|
|
896
|
+
</SegmentBase>
|
|
897
|
+
</Representation>
|
|
898
|
+
<Representation id="6" bandwidth="2192360" codecs="flac" mimeType="audio/mp4" audioSamplingRate="0">
|
|
899
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
900
|
+
<BaseURL>representations/flac_60s_2ch_24bit_192000Hz.mp4</BaseURL>
|
|
901
|
+
<SegmentBase indexRange="772-875" timescale="192000">
|
|
902
|
+
<Initialization range="0-771"/>
|
|
903
|
+
</SegmentBase>
|
|
904
|
+
</Representation>
|
|
905
|
+
<Representation id="8" bandwidth="153326" codecs="flac" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
906
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
907
|
+
<BaseURL>representations/flac_60s_2ch_16bit_48000Hz.mp4</BaseURL>
|
|
908
|
+
<SegmentBase indexRange="772-875" timescale="48000">
|
|
909
|
+
<Initialization range="0-771"/>
|
|
910
|
+
</SegmentBase>
|
|
911
|
+
</Representation>
|
|
912
|
+
<Representation id="10" bandwidth="257514" codecs="flac" mimeType="audio/mp4" audioSamplingRate="0">
|
|
913
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
914
|
+
<BaseURL>representations/flac_60s_2ch_16bit_96000Hz.mp4</BaseURL>
|
|
915
|
+
<SegmentBase indexRange="772-875" timescale="96000">
|
|
916
|
+
<Initialization range="0-771"/>
|
|
917
|
+
</SegmentBase>
|
|
918
|
+
</Representation>
|
|
919
|
+
<Representation id="11" bandwidth="495381" codecs="flac" mimeType="audio/mp4" audioSamplingRate="44100">
|
|
920
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
921
|
+
<BaseURL>representations/flac_60s_2ch_24bit_44100Hz.mp4</BaseURL>
|
|
922
|
+
<SegmentBase indexRange="772-875" timescale="44100">
|
|
923
|
+
<Initialization range="0-771"/>
|
|
924
|
+
</SegmentBase>
|
|
925
|
+
</Representation>
|
|
926
|
+
<Representation id="16" bandwidth="1074424" codecs="flac" mimeType="audio/mp4" audioSamplingRate="0">
|
|
927
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
928
|
+
<BaseURL>representations/flac_60s_2ch_24bit_96000Hz.mp4</BaseURL>
|
|
929
|
+
<SegmentBase indexRange="772-875" timescale="96000">
|
|
930
|
+
<Initialization range="0-771"/>
|
|
931
|
+
</SegmentBase>
|
|
932
|
+
</Representation>
|
|
933
|
+
</AdaptationSet>
|
|
934
|
+
<AdaptationSet id="2" contentType="audio" subsegmentAlignment="true">
|
|
935
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="0,1"/>
|
|
936
|
+
<Representation id="2" bandwidth="322671" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
937
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
938
|
+
<BaseURL>representations/opus_60s_2ch_16bit_44100Hz_320kbps.mp4</BaseURL>
|
|
939
|
+
<SegmentBase indexRange="803-906" timescale="48000">
|
|
940
|
+
<Initialization range="0-802"/>
|
|
941
|
+
</SegmentBase>
|
|
942
|
+
</Representation>
|
|
943
|
+
<Representation id="5" bandwidth="50194" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
944
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
945
|
+
<BaseURL>representations/opus_60s_2ch_16bit_44100Hz_48kbps.mp4</BaseURL>
|
|
946
|
+
<SegmentBase indexRange="803-906" timescale="48000">
|
|
947
|
+
<Initialization range="0-802"/>
|
|
948
|
+
</SegmentBase>
|
|
949
|
+
</Representation>
|
|
950
|
+
<Representation id="7" bandwidth="50194" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
951
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
952
|
+
<BaseURL>representations/opus_60s_2ch_16bit_192000Hz_48kbps.mp4</BaseURL>
|
|
953
|
+
<SegmentBase indexRange="803-906" timescale="48000">
|
|
954
|
+
<Initialization range="0-802"/>
|
|
955
|
+
</SegmentBase>
|
|
956
|
+
</Representation>
|
|
957
|
+
<Representation id="9" bandwidth="162390" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
958
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
959
|
+
<BaseURL>representations/opus_60s_2ch_16bit_192000Hz_160kbps.mp4</BaseURL>
|
|
960
|
+
<SegmentBase indexRange="803-906" timescale="48000">
|
|
961
|
+
<Initialization range="0-802"/>
|
|
962
|
+
</SegmentBase>
|
|
963
|
+
</Representation>
|
|
964
|
+
<Representation id="12" bandwidth="322671" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
965
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
966
|
+
<BaseURL>representations/opus_60s_2ch_16bit_192000Hz_320kbps.mp4</BaseURL>
|
|
967
|
+
<SegmentBase indexRange="803-906" timescale="48000">
|
|
968
|
+
<Initialization range="0-802"/>
|
|
969
|
+
</SegmentBase>
|
|
970
|
+
</Representation>
|
|
971
|
+
<Representation id="13" bandwidth="162390" codecs="opus" mimeType="audio/mp4" audioSamplingRate="48000">
|
|
972
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
973
|
+
<BaseURL>representations/opus_60s_2ch_16bit_44100Hz_160kbps.mp4</BaseURL>
|
|
974
|
+
<SegmentBase indexRange="803-906" timescale="48000">
|
|
975
|
+
<Initialization range="0-802"/>
|
|
976
|
+
</SegmentBase>
|
|
977
|
+
</Representation>
|
|
978
|
+
</AdaptationSet>
|
|
979
|
+
</Period>
|
|
980
|
+
</MPD>
|
|
981
|
+
`;
|
|
982
|
+
|
|
983
|
+
// test/vinylTestUtil/assets/dash_segmentList.ts
|
|
984
|
+
var dash_segmentList = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
985
|
+
<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">
|
|
986
|
+
<Period>
|
|
987
|
+
<AdaptationSet segmentAlignment="true" mimeType="audio/mp4" startWithSAP="1">
|
|
988
|
+
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="5e2905f0-1f87-1c2a-cdc9-a698b13460a0" value="cenc"/>
|
|
989
|
+
<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="2.0">
|
|
990
|
+
<mspr:pro>gAIAAAEAAQB2AjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOABBAFUAcABYAG8AYwBmAEsAaAB6AE4AeQBhAGEAWQBzAFQAUgBnAG8AQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBvAHYAQwA0AFQAaQA0AFgAOQBRADAAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBtAHUAcwBpAGMALgBhAG0AYQB6AG8AbgAuAGMAbwBtAC8AZABtAGwAcwAvAGEAYwBxAHUAaQByAGUATABpAGMAZQBuAHMAZQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
|
|
991
|
+
<cenc:pssh>AAACoHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAoCAAgAAAQABAHYCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA4AEEAVQBwAFgAbwBjAGYASwBoAHoATgB5AGEAYQBZAHMAVABSAGcAbwBBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AG8AdgBDADQAVABpADQAWAA5AFEAMAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAG0AdQBzAGkAYwAuAGEAbQBhAHoAbwBuAC4AYwBvAG0ALwBkAG0AbABzAC8AYQBjAHEAdQBpAHIAZQBMAGkAYwBlAG4AcwBlADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
|
|
992
|
+
</ContentProtection>
|
|
993
|
+
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
994
|
+
<cenc:pssh>AAAAZnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEYIARIQXikF8B+HHCrNyaaYsTRgoBoLQW1hem9uTXVzaWMiHGNpZDpYaWtGOEIrSEhDck55YWFZc1RSZ29BPT0qBUFVRElP</cenc:pssh>
|
|
995
|
+
</ContentProtection>
|
|
996
|
+
<Representation id="48kbps" bitrate="48" codecs="mp4a.40.5" audioSamplingRate="44100" bandwidth="49207">
|
|
997
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
998
|
+
<SegmentList timescale="1000" duration="9999">
|
|
999
|
+
<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"/>
|
|
1000
|
+
<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"/>
|
|
1001
|
+
<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"/>
|
|
1002
|
+
<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"/>
|
|
1003
|
+
<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"/>
|
|
1004
|
+
<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"/>
|
|
1005
|
+
<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"/>
|
|
1006
|
+
<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"/>
|
|
1007
|
+
<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"/>
|
|
1008
|
+
<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"/>
|
|
1009
|
+
<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"/>
|
|
1010
|
+
<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"/>
|
|
1011
|
+
<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"/>
|
|
1012
|
+
<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"/>
|
|
1013
|
+
<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"/>
|
|
1014
|
+
<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"/>
|
|
1015
|
+
<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"/>
|
|
1016
|
+
<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"/>
|
|
1017
|
+
<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"/>
|
|
1018
|
+
</SegmentList>
|
|
1019
|
+
</Representation>
|
|
1020
|
+
<Representation id="128kbps" bitrate="128" codecs="mp4a.40.5" audioSamplingRate="44100" bandwidth="128940">
|
|
1021
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1022
|
+
<SegmentList timescale="1000" duration="9999">
|
|
1023
|
+
<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"/>
|
|
1024
|
+
<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"/>
|
|
1025
|
+
<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"/>
|
|
1026
|
+
<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"/>
|
|
1027
|
+
<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"/>
|
|
1028
|
+
<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"/>
|
|
1029
|
+
<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"/>
|
|
1030
|
+
<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"/>
|
|
1031
|
+
<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"/>
|
|
1032
|
+
<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"/>
|
|
1033
|
+
<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"/>
|
|
1034
|
+
<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"/>
|
|
1035
|
+
<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"/>
|
|
1036
|
+
<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"/>
|
|
1037
|
+
<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"/>
|
|
1038
|
+
<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"/>
|
|
1039
|
+
<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"/>
|
|
1040
|
+
<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"/>
|
|
1041
|
+
<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"/>
|
|
1042
|
+
</SegmentList>
|
|
2798
1043
|
</Representation>
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
</
|
|
1044
|
+
</AdaptationSet>
|
|
1045
|
+
<AdaptationSet segmentAlignment="true" mimeType="audio/mp4" startWithSAP="1">
|
|
1046
|
+
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="5e2905f0-1f87-1c2a-cdc9-a698b13460a0" value="cenc"/>
|
|
1047
|
+
<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="2.0">
|
|
1048
|
+
<mspr:pro>gAIAAAEAAQB2AjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOABBAFUAcABYAG8AYwBmAEsAaAB6AE4AeQBhAGEAWQBzAFQAUgBnAG8AQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBvAHYAQwA0AFQAaQA0AFgAOQBRADAAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBtAHUAcwBpAGMALgBhAG0AYQB6AG8AbgAuAGMAbwBtAC8AZABtAGwAcwAvAGEAYwBxAHUAaQByAGUATABpAGMAZQBuAHMAZQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
|
|
1049
|
+
<cenc:pssh>AAACoHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAoCAAgAAAQABAHYCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA4AEEAVQBwAFgAbwBjAGYASwBoAHoATgB5AGEAYQBZAHMAVABSAGcAbwBBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AG8AdgBDADQAVABpADQAWAA5AFEAMAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAG0AdQBzAGkAYwAuAGEAbQBhAHoAbwBuAC4AYwBvAG0ALwBkAG0AbABzAC8AYQBjAHEAdQBpAHIAZQBMAGkAYwBlAG4AcwBlADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
|
|
1050
|
+
</ContentProtection>
|
|
1051
|
+
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
1052
|
+
<cenc:pssh>AAAAZnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEYIARIQXikF8B+HHCrNyaaYsTRgoBoLQW1hem9uTXVzaWMiHGNpZDpYaWtGOEIrSEhDck55YWFZc1RSZ29BPT0qBUFVRElP</cenc:pssh>
|
|
1053
|
+
</ContentProtection>
|
|
1054
|
+
<Representation id="256kbps" bitrate="256" codecs="mp4a.40.2" audioSamplingRate="44100" bandwidth="257571">
|
|
1055
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1056
|
+
<SegmentList timescale="1000" duration="10001">
|
|
1057
|
+
<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"/>
|
|
1058
|
+
<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"/>
|
|
1059
|
+
<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"/>
|
|
1060
|
+
<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"/>
|
|
1061
|
+
<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"/>
|
|
1062
|
+
<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"/>
|
|
1063
|
+
<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"/>
|
|
1064
|
+
<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"/>
|
|
1065
|
+
<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"/>
|
|
1066
|
+
<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"/>
|
|
1067
|
+
<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"/>
|
|
1068
|
+
<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"/>
|
|
1069
|
+
<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"/>
|
|
1070
|
+
<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"/>
|
|
1071
|
+
<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"/>
|
|
1072
|
+
<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"/>
|
|
1073
|
+
<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"/>
|
|
1074
|
+
<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"/>
|
|
1075
|
+
<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"/>
|
|
1076
|
+
</SegmentList>
|
|
2808
1077
|
</Representation>
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
1078
|
+
</AdaptationSet>
|
|
1079
|
+
</Period>
|
|
1080
|
+
</MPD>
|
|
1081
|
+
`;
|
|
1082
|
+
|
|
1083
|
+
// test/vinylTestUtil/assets/dash_segmentListMediaRange.ts
|
|
1084
|
+
var dash_segmentListMediaRange = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
1085
|
+
<MPD minBufferTime="PT2S" type="static" mediaPresentationDuration="PT400.0133056640625S" profiles="urn:mpeg:dash:profile:isoff-on-demand: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">
|
|
1086
|
+
<Period id="0">
|
|
1087
|
+
<AdaptationSet id="1" contentType="audio" selectionPriority="2000">
|
|
1088
|
+
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="53443d2c-a548-037d-dfca-b6873a3b16a7" value="cenc"/>
|
|
1089
|
+
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
1090
|
+
<cenc:pssh>AAAAXXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAD0SEFNEPSylSAN938q2hzo7FqcaC0FtYXpvbk11c2ljIhxjaWQ6VTBROUxLVklBMzNmeXJhSE9qc1dwdz09</cenc:pssh>
|
|
1091
|
+
</ContentProtection>
|
|
1092
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:ProgramLoudness" value="-13.5 LUFS"/>
|
|
1093
|
+
<SupplementalProperty schemeIdUri="amz-music:trackType" value="HD"/>
|
|
1094
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="2"/>
|
|
1095
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:AnchorLoudness" value="-11.7 LUFS"/>
|
|
1096
|
+
<Representation id="1" qualityRanking="4" codecs="flac" audioSamplingRate="44100" bandwidth="1021104" mimeType="audio/mp4">
|
|
1097
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1098
|
+
<SupplementalProperty schemeIdUri="amz-music:bitDepth" value="16"/>
|
|
1099
|
+
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/a3ce7553-e9a3-3ca6-8fda-8f354b8cee0f.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=HD_44&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1100
|
+
<SegmentList timescale="44100" duration="441000">
|
|
1101
|
+
<Initialization range="0-1067"/>
|
|
1102
|
+
<SegmentURL mediaRange="1580-1124387"/>
|
|
1103
|
+
<SegmentURL mediaRange="1124388-2301681"/>
|
|
1104
|
+
<SegmentURL mediaRange="2301682-3413884"/>
|
|
1105
|
+
<SegmentURL mediaRange="3413885-4563668"/>
|
|
1106
|
+
<SegmentURL mediaRange="4563669-5789595"/>
|
|
1107
|
+
<SegmentURL mediaRange="5789596-7027203"/>
|
|
1108
|
+
<SegmentURL mediaRange="7027204-8258589"/>
|
|
1109
|
+
<SegmentURL mediaRange="8258590-9476689"/>
|
|
1110
|
+
<SegmentURL mediaRange="9476690-10663879"/>
|
|
1111
|
+
<SegmentURL mediaRange="10663880-11801656"/>
|
|
1112
|
+
<SegmentURL mediaRange="11801657-13028295"/>
|
|
1113
|
+
<SegmentURL mediaRange="13028296-14259035"/>
|
|
1114
|
+
<SegmentURL mediaRange="14259036-15501034"/>
|
|
1115
|
+
<SegmentURL mediaRange="15501035-16715074"/>
|
|
1116
|
+
<SegmentURL mediaRange="16715075-17945696"/>
|
|
1117
|
+
<SegmentURL mediaRange="17945697-19181760"/>
|
|
1118
|
+
<SegmentURL mediaRange="19181761-20430664"/>
|
|
1119
|
+
<SegmentURL mediaRange="20430665-21668186"/>
|
|
1120
|
+
<SegmentURL mediaRange="21668187-22889588"/>
|
|
1121
|
+
<SegmentURL mediaRange="22889589-24105876"/>
|
|
1122
|
+
<SegmentURL mediaRange="24105877-25286931"/>
|
|
1123
|
+
<SegmentURL mediaRange="25286932-26474293"/>
|
|
1124
|
+
<SegmentURL mediaRange="26474294-27717336"/>
|
|
1125
|
+
<SegmentURL mediaRange="27717337-28944000"/>
|
|
1126
|
+
<SegmentURL mediaRange="28944001-30217943"/>
|
|
1127
|
+
<SegmentURL mediaRange="30217944-31494322"/>
|
|
1128
|
+
<SegmentURL mediaRange="31494323-32753722"/>
|
|
1129
|
+
<SegmentURL mediaRange="32753723-33819438"/>
|
|
1130
|
+
<SegmentURL mediaRange="33819439-34871800"/>
|
|
1131
|
+
<SegmentURL mediaRange="34871801-35987451"/>
|
|
1132
|
+
<SegmentURL mediaRange="35987452-37198633"/>
|
|
1133
|
+
<SegmentURL mediaRange="37198634-38400513"/>
|
|
1134
|
+
<SegmentURL mediaRange="38400514-39590378"/>
|
|
1135
|
+
<SegmentURL mediaRange="39590379-40775418"/>
|
|
1136
|
+
<SegmentURL mediaRange="40775419-42023162"/>
|
|
1137
|
+
<SegmentURL mediaRange="42023163-43262782"/>
|
|
1138
|
+
<SegmentURL mediaRange="43262783-44466388"/>
|
|
1139
|
+
<SegmentURL mediaRange="44466389-45664349"/>
|
|
1140
|
+
<SegmentURL mediaRange="45664350-46838625"/>
|
|
1141
|
+
<SegmentURL mediaRange="46838626-47421889"/>
|
|
1142
|
+
</SegmentList>
|
|
2818
1143
|
</Representation>
|
|
2819
|
-
<Representation
|
|
2820
|
-
<
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
1144
|
+
<Representation id="2" qualityRanking="3" codecs="flac" audioSamplingRate="48000" bandwidth="1855801" mimeType="audio/mp4">
|
|
1145
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1146
|
+
<SupplementalProperty schemeIdUri="amz-music:bitDepth" value="24"/>
|
|
1147
|
+
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/f5b706c9-5892-3a17-9d01-4da362cfad35.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=UHD_48&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1148
|
+
<SegmentList timescale="48000" duration="480000">
|
|
1149
|
+
<Initialization range="0-1067"/>
|
|
1150
|
+
<SegmentURL mediaRange="1580-2140301"/>
|
|
1151
|
+
<SegmentURL mediaRange="2140302-4352961"/>
|
|
1152
|
+
<SegmentURL mediaRange="4352962-6499834"/>
|
|
1153
|
+
<SegmentURL mediaRange="6499835-8687556"/>
|
|
1154
|
+
<SegmentURL mediaRange="8687557-10955471"/>
|
|
1155
|
+
<SegmentURL mediaRange="10955472-13235819"/>
|
|
1156
|
+
<SegmentURL mediaRange="13235820-15509496"/>
|
|
1157
|
+
<SegmentURL mediaRange="15509497-17768731"/>
|
|
1158
|
+
<SegmentURL mediaRange="17768732-19993372"/>
|
|
1159
|
+
<SegmentURL mediaRange="19993373-22167125"/>
|
|
1160
|
+
<SegmentURL mediaRange="22167126-24434254"/>
|
|
1161
|
+
<SegmentURL mediaRange="24434255-26706557"/>
|
|
1162
|
+
<SegmentURL mediaRange="26706558-28990196"/>
|
|
1163
|
+
<SegmentURL mediaRange="28990197-31245239"/>
|
|
1164
|
+
<SegmentURL mediaRange="31245240-33516976"/>
|
|
1165
|
+
<SegmentURL mediaRange="33516977-35793411"/>
|
|
1166
|
+
<SegmentURL mediaRange="35793412-38083225"/>
|
|
1167
|
+
<SegmentURL mediaRange="38083226-40361780"/>
|
|
1168
|
+
<SegmentURL mediaRange="40361781-42623154"/>
|
|
1169
|
+
<SegmentURL mediaRange="42623155-44879987"/>
|
|
1170
|
+
<SegmentURL mediaRange="44879988-47098315"/>
|
|
1171
|
+
<SegmentURL mediaRange="47098316-49322904"/>
|
|
1172
|
+
<SegmentURL mediaRange="49322905-51607367"/>
|
|
1173
|
+
<SegmentURL mediaRange="51607368-53874862"/>
|
|
1174
|
+
<SegmentURL mediaRange="53874863-56192866"/>
|
|
1175
|
+
<SegmentURL mediaRange="56192867-58512617"/>
|
|
1176
|
+
<SegmentURL mediaRange="58512618-60815181"/>
|
|
1177
|
+
<SegmentURL mediaRange="60815182-62914181"/>
|
|
1178
|
+
<SegmentURL mediaRange="62914182-65000611"/>
|
|
1179
|
+
<SegmentURL mediaRange="65000612-67150839"/>
|
|
1180
|
+
<SegmentURL mediaRange="67150840-69402495"/>
|
|
1181
|
+
<SegmentURL mediaRange="69402496-71643660"/>
|
|
1182
|
+
<SegmentURL mediaRange="71643661-73870974"/>
|
|
1183
|
+
<SegmentURL mediaRange="73870975-76093618"/>
|
|
1184
|
+
<SegmentURL mediaRange="76093619-78383457"/>
|
|
1185
|
+
<SegmentURL mediaRange="78383458-80665083"/>
|
|
1186
|
+
<SegmentURL mediaRange="80665084-82909593"/>
|
|
1187
|
+
<SegmentURL mediaRange="82909594-85145972"/>
|
|
1188
|
+
<SegmentURL mediaRange="85145973-87356513"/>
|
|
1189
|
+
<SegmentURL mediaRange="87356514-88804457"/>
|
|
1190
|
+
</SegmentList>
|
|
2828
1191
|
</Representation>
|
|
2829
|
-
<Representation
|
|
2830
|
-
<
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
1192
|
+
<Representation id="3" qualityRanking="2" codecs="flac" audioSamplingRate="96000" bandwidth="3278164" mimeType="audio/mp4">
|
|
1193
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1194
|
+
<SupplementalProperty schemeIdUri="amz-music:bitDepth" value="24"/>
|
|
1195
|
+
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/02b134c4-8144-3ab1-b125-5af2d0133d5b.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=UHD_96&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1196
|
+
<SegmentList timescale="96000" duration="960000">
|
|
1197
|
+
<Initialization range="0-1067"/>
|
|
1198
|
+
<SegmentURL mediaRange="1580-3813567"/>
|
|
1199
|
+
<SegmentURL mediaRange="3813568-7746339"/>
|
|
1200
|
+
<SegmentURL mediaRange="7746340-11599579"/>
|
|
1201
|
+
<SegmentURL mediaRange="11599580-15505023"/>
|
|
1202
|
+
<SegmentURL mediaRange="15505024-19519493"/>
|
|
1203
|
+
<SegmentURL mediaRange="19519494-23556777"/>
|
|
1204
|
+
<SegmentURL mediaRange="23556778-27581158"/>
|
|
1205
|
+
<SegmentURL mediaRange="27581159-31586807"/>
|
|
1206
|
+
<SegmentURL mediaRange="31586808-35549718"/>
|
|
1207
|
+
<SegmentURL mediaRange="35549719-39435585"/>
|
|
1208
|
+
<SegmentURL mediaRange="39435586-43443650"/>
|
|
1209
|
+
<SegmentURL mediaRange="43443651-47467685"/>
|
|
1210
|
+
<SegmentURL mediaRange="47467686-51498910"/>
|
|
1211
|
+
<SegmentURL mediaRange="51498911-55496614"/>
|
|
1212
|
+
<SegmentURL mediaRange="55496615-59513566"/>
|
|
1213
|
+
<SegmentURL mediaRange="59513567-63538385"/>
|
|
1214
|
+
<SegmentURL mediaRange="63538386-67582593"/>
|
|
1215
|
+
<SegmentURL mediaRange="67582594-71608871"/>
|
|
1216
|
+
<SegmentURL mediaRange="71608872-75612860"/>
|
|
1217
|
+
<SegmentURL mediaRange="75612861-79601033"/>
|
|
1218
|
+
<SegmentURL mediaRange="79601034-83549776"/>
|
|
1219
|
+
<SegmentURL mediaRange="83549777-87488907"/>
|
|
1220
|
+
<SegmentURL mediaRange="87488908-91534801"/>
|
|
1221
|
+
<SegmentURL mediaRange="91534802-95552040"/>
|
|
1222
|
+
<SegmentURL mediaRange="95552041-99649744"/>
|
|
1223
|
+
<SegmentURL mediaRange="99649745-103743373"/>
|
|
1224
|
+
<SegmentURL mediaRange="103743374-107815594"/>
|
|
1225
|
+
<SegmentURL mediaRange="107815595-111613915"/>
|
|
1226
|
+
<SegmentURL mediaRange="111613916-115390443"/>
|
|
1227
|
+
<SegmentURL mediaRange="115390444-119249732"/>
|
|
1228
|
+
<SegmentURL mediaRange="119249733-123233807"/>
|
|
1229
|
+
<SegmentURL mediaRange="123233808-127209398"/>
|
|
1230
|
+
<SegmentURL mediaRange="127209399-131167116"/>
|
|
1231
|
+
<SegmentURL mediaRange="131167117-135119879"/>
|
|
1232
|
+
<SegmentURL mediaRange="135119880-139163685"/>
|
|
1233
|
+
<SegmentURL mediaRange="139163686-143201079"/>
|
|
1234
|
+
<SegmentURL mediaRange="143201080-147195194"/>
|
|
1235
|
+
<SegmentURL mediaRange="147195195-151164220"/>
|
|
1236
|
+
<SegmentURL mediaRange="151164221-155096800"/>
|
|
1237
|
+
<SegmentURL mediaRange="155096801-157757393"/>
|
|
1238
|
+
</SegmentList>
|
|
2838
1239
|
</Representation>
|
|
2839
|
-
<Representation
|
|
2840
|
-
<
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
1240
|
+
<Representation id="4" qualityRanking="1" codecs="flac" audioSamplingRate="192000" bandwidth="5666448" mimeType="audio/mp4">
|
|
1241
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1242
|
+
<SupplementalProperty schemeIdUri="amz-music:bitDepth" value="24"/>
|
|
1243
|
+
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/edf9f9cb-46ce-33bd-96e1-8456547fbef4.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=UHD_192&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1244
|
+
<SegmentList timescale="192000" duration="1920000">
|
|
1245
|
+
<Initialization range="0-1067"/>
|
|
1246
|
+
<SegmentURL mediaRange="1580-6720450"/>
|
|
1247
|
+
<SegmentURL mediaRange="6720451-13610816"/>
|
|
1248
|
+
<SegmentURL mediaRange="13610817-20415282"/>
|
|
1249
|
+
<SegmentURL mediaRange="20415283-27272412"/>
|
|
1250
|
+
<SegmentURL mediaRange="27272413-34250251"/>
|
|
1251
|
+
<SegmentURL mediaRange="34250252-41260291"/>
|
|
1252
|
+
<SegmentURL mediaRange="41260292-48255248"/>
|
|
1253
|
+
<SegmentURL mediaRange="48255249-55224355"/>
|
|
1254
|
+
<SegmentURL mediaRange="55224356-62157463"/>
|
|
1255
|
+
<SegmentURL mediaRange="62157464-68996670"/>
|
|
1256
|
+
<SegmentURL mediaRange="68996671-75970335"/>
|
|
1257
|
+
<SegmentURL mediaRange="75970336-82964531"/>
|
|
1258
|
+
<SegmentURL mediaRange="82964532-89965755"/>
|
|
1259
|
+
<SegmentURL mediaRange="89965756-96928368"/>
|
|
1260
|
+
<SegmentURL mediaRange="96928369-103911265"/>
|
|
1261
|
+
<SegmentURL mediaRange="103911266-110903999"/>
|
|
1262
|
+
<SegmentURL mediaRange="110904000-117921608"/>
|
|
1263
|
+
<SegmentURL mediaRange="117921609-124920837"/>
|
|
1264
|
+
<SegmentURL mediaRange="124920838-131897214"/>
|
|
1265
|
+
<SegmentURL mediaRange="131897215-138848614"/>
|
|
1266
|
+
<SegmentURL mediaRange="138848615-145764349"/>
|
|
1267
|
+
<SegmentURL mediaRange="145764350-152655256"/>
|
|
1268
|
+
<SegmentURL mediaRange="152655257-159680382"/>
|
|
1269
|
+
<SegmentURL mediaRange="159680383-166667521"/>
|
|
1270
|
+
<SegmentURL mediaRange="166667522-173750581"/>
|
|
1271
|
+
<SegmentURL mediaRange="173750582-180827932"/>
|
|
1272
|
+
<SegmentURL mediaRange="180827933-187877145"/>
|
|
1273
|
+
<SegmentURL mediaRange="187877146-194626820"/>
|
|
1274
|
+
<SegmentURL mediaRange="194626821-201345524"/>
|
|
1275
|
+
<SegmentURL mediaRange="201345525-208145573"/>
|
|
1276
|
+
<SegmentURL mediaRange="208145574-215088653"/>
|
|
1277
|
+
<SegmentURL mediaRange="215088654-222022478"/>
|
|
1278
|
+
<SegmentURL mediaRange="222022479-228934595"/>
|
|
1279
|
+
<SegmentURL mediaRange="228934596-235844464"/>
|
|
1280
|
+
<SegmentURL mediaRange="235844465-242852767"/>
|
|
1281
|
+
<SegmentURL mediaRange="242852768-249863893"/>
|
|
1282
|
+
<SegmentURL mediaRange="249863894-256824103"/>
|
|
1283
|
+
<SegmentURL mediaRange="256824104-263749124"/>
|
|
1284
|
+
<SegmentURL mediaRange="263749125-270634182"/>
|
|
1285
|
+
<SegmentURL mediaRange="270634183-275673081"/>
|
|
1286
|
+
</SegmentList>
|
|
2848
1287
|
</Representation>
|
|
2849
1288
|
</AdaptationSet>
|
|
2850
|
-
<AdaptationSet
|
|
2851
|
-
<
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
1289
|
+
<AdaptationSet id="2" contentType="audio" selectionPriority="1000">
|
|
1290
|
+
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="f65d52c1-4de5-e5b6-7296-2f48eddf7378" value="cenc"/>
|
|
1291
|
+
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
1292
|
+
<cenc:pssh>AAAAXXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAD0SEPZdUsFN5eW2cpYvSO3fc3gaC0FtYXpvbk11c2ljIhxjaWQ6OWwxU3dVM2w1Ylp5bGk5STdkOXplQT09</cenc:pssh>
|
|
1293
|
+
</ContentProtection>
|
|
1294
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:ProgramLoudness" value="-13.5 LUFS"/>
|
|
1295
|
+
<SupplementalProperty schemeIdUri="amz-music:trackType" value="SD"/>
|
|
1296
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="1"/>
|
|
1297
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:AnchorLoudness" value="-11.7 LUFS"/>
|
|
1298
|
+
<Representation id="5" qualityRanking="3" codecs="opus" audioSamplingRate="48000" bandwidth="52950" mimeType="audio/mp4">
|
|
1299
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1300
|
+
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/7e2d628d-7666-3ad5-a9df-8ba4e1c6391c.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=SD_LOW&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1301
|
+
<SegmentList timescale="48000" duration="480000">
|
|
1302
|
+
<Initialization range="0-1031"/>
|
|
1303
|
+
<SegmentURL mediaRange="1544-61799"/>
|
|
1304
|
+
<SegmentURL mediaRange="61800-121935"/>
|
|
1305
|
+
<SegmentURL mediaRange="121936-182071"/>
|
|
1306
|
+
<SegmentURL mediaRange="182072-246260"/>
|
|
1307
|
+
<SegmentURL mediaRange="246261-310449"/>
|
|
1308
|
+
<SegmentURL mediaRange="310450-374638"/>
|
|
1309
|
+
<SegmentURL mediaRange="374639-438827"/>
|
|
1310
|
+
<SegmentURL mediaRange="438828-503016"/>
|
|
1311
|
+
<SegmentURL mediaRange="503017-567205"/>
|
|
1312
|
+
<SegmentURL mediaRange="567206-631394"/>
|
|
1313
|
+
<SegmentURL mediaRange="631395-695583"/>
|
|
1314
|
+
<SegmentURL mediaRange="695584-759772"/>
|
|
1315
|
+
<SegmentURL mediaRange="759773-823961"/>
|
|
1316
|
+
<SegmentURL mediaRange="823962-888150"/>
|
|
1317
|
+
<SegmentURL mediaRange="888151-952339"/>
|
|
1318
|
+
<SegmentURL mediaRange="952340-1016528"/>
|
|
1319
|
+
<SegmentURL mediaRange="1016529-1080717"/>
|
|
1320
|
+
<SegmentURL mediaRange="1080718-1144906"/>
|
|
1321
|
+
<SegmentURL mediaRange="1144907-1209095"/>
|
|
1322
|
+
<SegmentURL mediaRange="1209096-1273284"/>
|
|
1323
|
+
<SegmentURL mediaRange="1273285-1337473"/>
|
|
1324
|
+
<SegmentURL mediaRange="1337474-1401662"/>
|
|
1325
|
+
<SegmentURL mediaRange="1401663-1465851"/>
|
|
1326
|
+
<SegmentURL mediaRange="1465852-1530040"/>
|
|
1327
|
+
<SegmentURL mediaRange="1530041-1594229"/>
|
|
1328
|
+
<SegmentURL mediaRange="1594230-1658418"/>
|
|
1329
|
+
<SegmentURL mediaRange="1658419-1722607"/>
|
|
1330
|
+
<SegmentURL mediaRange="1722608-1786796"/>
|
|
1331
|
+
<SegmentURL mediaRange="1786797-1850985"/>
|
|
1332
|
+
<SegmentURL mediaRange="1850986-1915174"/>
|
|
1333
|
+
<SegmentURL mediaRange="1915175-1979363"/>
|
|
1334
|
+
<SegmentURL mediaRange="1979364-2043552"/>
|
|
1335
|
+
<SegmentURL mediaRange="2043553-2107741"/>
|
|
1336
|
+
<SegmentURL mediaRange="2107742-2171930"/>
|
|
1337
|
+
<SegmentURL mediaRange="2171931-2236119"/>
|
|
1338
|
+
<SegmentURL mediaRange="2236120-2300308"/>
|
|
1339
|
+
<SegmentURL mediaRange="2300309-2364497"/>
|
|
1340
|
+
<SegmentURL mediaRange="2364498-2428686"/>
|
|
1341
|
+
<SegmentURL mediaRange="2428687-2492875"/>
|
|
1342
|
+
<SegmentURL mediaRange="2492876-2559060"/>
|
|
1343
|
+
</SegmentList>
|
|
1344
|
+
</Representation>
|
|
1345
|
+
<Representation id="6" qualityRanking="2" codecs="opus" audioSamplingRate="48000" bandwidth="196953" mimeType="audio/mp4">
|
|
1346
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1347
|
+
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/8e453bd1-9428-30fa-940f-fa85911368c2.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=SD_MEDIUM&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1348
|
+
<SegmentList timescale="48000" duration="480000">
|
|
1349
|
+
<Initialization range="0-1031"/>
|
|
1350
|
+
<SegmentURL mediaRange="1544-242159"/>
|
|
1351
|
+
<SegmentURL mediaRange="242160-482295"/>
|
|
1352
|
+
<SegmentURL mediaRange="482296-722431"/>
|
|
1353
|
+
<SegmentURL mediaRange="722432-966620"/>
|
|
1354
|
+
<SegmentURL mediaRange="966621-1210809"/>
|
|
1355
|
+
<SegmentURL mediaRange="1210810-1454998"/>
|
|
1356
|
+
<SegmentURL mediaRange="1454999-1699187"/>
|
|
1357
|
+
<SegmentURL mediaRange="1699188-1943376"/>
|
|
1358
|
+
<SegmentURL mediaRange="1943377-2187565"/>
|
|
1359
|
+
<SegmentURL mediaRange="2187566-2431754"/>
|
|
1360
|
+
<SegmentURL mediaRange="2431755-2675943"/>
|
|
1361
|
+
<SegmentURL mediaRange="2675944-2920132"/>
|
|
1362
|
+
<SegmentURL mediaRange="2920133-3164321"/>
|
|
1363
|
+
<SegmentURL mediaRange="3164322-3408510"/>
|
|
1364
|
+
<SegmentURL mediaRange="3408511-3652699"/>
|
|
1365
|
+
<SegmentURL mediaRange="3652700-3896888"/>
|
|
1366
|
+
<SegmentURL mediaRange="3896889-4141077"/>
|
|
1367
|
+
<SegmentURL mediaRange="4141078-4385266"/>
|
|
1368
|
+
<SegmentURL mediaRange="4385267-4629455"/>
|
|
1369
|
+
<SegmentURL mediaRange="4629456-4873644"/>
|
|
1370
|
+
<SegmentURL mediaRange="4873645-5117833"/>
|
|
1371
|
+
<SegmentURL mediaRange="5117834-5362022"/>
|
|
1372
|
+
<SegmentURL mediaRange="5362023-5606211"/>
|
|
1373
|
+
<SegmentURL mediaRange="5606212-5850400"/>
|
|
1374
|
+
<SegmentURL mediaRange="5850401-6094589"/>
|
|
1375
|
+
<SegmentURL mediaRange="6094590-6338778"/>
|
|
1376
|
+
<SegmentURL mediaRange="6338779-6582967"/>
|
|
1377
|
+
<SegmentURL mediaRange="6582968-6827156"/>
|
|
1378
|
+
<SegmentURL mediaRange="6827157-7071345"/>
|
|
1379
|
+
<SegmentURL mediaRange="7071346-7315534"/>
|
|
1380
|
+
<SegmentURL mediaRange="7315535-7559723"/>
|
|
1381
|
+
<SegmentURL mediaRange="7559724-7803912"/>
|
|
1382
|
+
<SegmentURL mediaRange="7803913-8048101"/>
|
|
1383
|
+
<SegmentURL mediaRange="8048102-8292290"/>
|
|
1384
|
+
<SegmentURL mediaRange="8292291-8536479"/>
|
|
1385
|
+
<SegmentURL mediaRange="8536480-8780668"/>
|
|
1386
|
+
<SegmentURL mediaRange="8780669-9024857"/>
|
|
1387
|
+
<SegmentURL mediaRange="9024858-9269046"/>
|
|
1388
|
+
<SegmentURL mediaRange="9269047-9513235"/>
|
|
1389
|
+
<SegmentURL mediaRange="9513236-9759420"/>
|
|
1390
|
+
</SegmentList>
|
|
1391
|
+
</Representation>
|
|
1392
|
+
<Representation id="7" qualityRanking="1" codecs="opus" audioSamplingRate="48000" bandwidth="324955" mimeType="audio/mp4">
|
|
1393
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1394
|
+
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/40ba3a06-d285-3130-838f-0c1508c1d18b.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=SD_HIGH&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1395
|
+
<SegmentList timescale="48000" duration="480000">
|
|
1396
|
+
<Initialization range="0-1031"/>
|
|
1397
|
+
<SegmentURL mediaRange="1544-402479"/>
|
|
1398
|
+
<SegmentURL mediaRange="402480-802615"/>
|
|
1399
|
+
<SegmentURL mediaRange="802616-1202751"/>
|
|
1400
|
+
<SegmentURL mediaRange="1202752-1606940"/>
|
|
1401
|
+
<SegmentURL mediaRange="1606941-2011129"/>
|
|
1402
|
+
<SegmentURL mediaRange="2011130-2415318"/>
|
|
1403
|
+
<SegmentURL mediaRange="2415319-2819507"/>
|
|
1404
|
+
<SegmentURL mediaRange="2819508-3223696"/>
|
|
1405
|
+
<SegmentURL mediaRange="3223697-3627885"/>
|
|
1406
|
+
<SegmentURL mediaRange="3627886-4032074"/>
|
|
1407
|
+
<SegmentURL mediaRange="4032075-4436263"/>
|
|
1408
|
+
<SegmentURL mediaRange="4436264-4840452"/>
|
|
1409
|
+
<SegmentURL mediaRange="4840453-5244641"/>
|
|
1410
|
+
<SegmentURL mediaRange="5244642-5648830"/>
|
|
1411
|
+
<SegmentURL mediaRange="5648831-6053019"/>
|
|
1412
|
+
<SegmentURL mediaRange="6053020-6457208"/>
|
|
1413
|
+
<SegmentURL mediaRange="6457209-6861397"/>
|
|
1414
|
+
<SegmentURL mediaRange="6861398-7265586"/>
|
|
1415
|
+
<SegmentURL mediaRange="7265587-7669775"/>
|
|
1416
|
+
<SegmentURL mediaRange="7669776-8073964"/>
|
|
1417
|
+
<SegmentURL mediaRange="8073965-8478153"/>
|
|
1418
|
+
<SegmentURL mediaRange="8478154-8882342"/>
|
|
1419
|
+
<SegmentURL mediaRange="8882343-9286531"/>
|
|
1420
|
+
<SegmentURL mediaRange="9286532-9690720"/>
|
|
1421
|
+
<SegmentURL mediaRange="9690721-10094909"/>
|
|
1422
|
+
<SegmentURL mediaRange="10094910-10499098"/>
|
|
1423
|
+
<SegmentURL mediaRange="10499099-10903287"/>
|
|
1424
|
+
<SegmentURL mediaRange="10903288-11307476"/>
|
|
1425
|
+
<SegmentURL mediaRange="11307477-11711665"/>
|
|
1426
|
+
<SegmentURL mediaRange="11711666-12115854"/>
|
|
1427
|
+
<SegmentURL mediaRange="12115855-12520043"/>
|
|
1428
|
+
<SegmentURL mediaRange="12520044-12924232"/>
|
|
1429
|
+
<SegmentURL mediaRange="12924233-13328421"/>
|
|
1430
|
+
<SegmentURL mediaRange="13328422-13732610"/>
|
|
1431
|
+
<SegmentURL mediaRange="13732611-14136799"/>
|
|
1432
|
+
<SegmentURL mediaRange="14136800-14540988"/>
|
|
1433
|
+
<SegmentURL mediaRange="14540989-14945177"/>
|
|
1434
|
+
<SegmentURL mediaRange="14945178-15349366"/>
|
|
1435
|
+
<SegmentURL mediaRange="15349367-15753555"/>
|
|
1436
|
+
<SegmentURL mediaRange="15753556-16159740"/>
|
|
1437
|
+
</SegmentList>
|
|
2863
1438
|
</Representation>
|
|
2864
1439
|
</AdaptationSet>
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
<
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
1440
|
+
<AdaptationSet id="3" contentType="audio" selectionPriority="500">
|
|
1441
|
+
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="4e4c6e3a-d760-ffd5-78b0-3824890da09d" value="cenc"/>
|
|
1442
|
+
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
1443
|
+
<cenc:pssh>AAAAXXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAD0SEE5MbjrXYP/VeLA4JIkNoJ0aC0FtYXpvbk11c2ljIhxjaWQ6VGt4dU90ZGcvOVY0c0Rna2lRMmduUT09</cenc:pssh>
|
|
1444
|
+
</ContentProtection>
|
|
1445
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:ProgramLoudness" value="-13.5 LUFS"/>
|
|
1446
|
+
<SupplementalProperty schemeIdUri="amz-music:trackType" value="LD"/>
|
|
1447
|
+
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:AnchorLoudness" value="-11.7 LUFS"/>
|
|
1448
|
+
<Representation id="8" qualityRanking="2000" codecs="opus" audioSamplingRate="48000" bandwidth="52950" mimeType="audio/mp4">
|
|
1449
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1450
|
+
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/748096ab-6991-368b-b9ca-5477bf90ba5a.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=LD_LOW&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1451
|
+
<SegmentList timescale="48000" duration="480000">
|
|
1452
|
+
<Initialization range="0-1031"/>
|
|
1453
|
+
<SegmentURL mediaRange="1544-61799"/>
|
|
1454
|
+
<SegmentURL mediaRange="61800-121935"/>
|
|
1455
|
+
<SegmentURL mediaRange="121936-182071"/>
|
|
1456
|
+
<SegmentURL mediaRange="182072-246260"/>
|
|
1457
|
+
<SegmentURL mediaRange="246261-310449"/>
|
|
1458
|
+
<SegmentURL mediaRange="310450-374638"/>
|
|
1459
|
+
<SegmentURL mediaRange="374639-438827"/>
|
|
1460
|
+
<SegmentURL mediaRange="438828-503016"/>
|
|
1461
|
+
<SegmentURL mediaRange="503017-567205"/>
|
|
1462
|
+
<SegmentURL mediaRange="567206-631394"/>
|
|
1463
|
+
<SegmentURL mediaRange="631395-695583"/>
|
|
1464
|
+
<SegmentURL mediaRange="695584-759772"/>
|
|
1465
|
+
<SegmentURL mediaRange="759773-823961"/>
|
|
1466
|
+
<SegmentURL mediaRange="823962-888150"/>
|
|
1467
|
+
<SegmentURL mediaRange="888151-952339"/>
|
|
1468
|
+
<SegmentURL mediaRange="952340-1016528"/>
|
|
1469
|
+
<SegmentURL mediaRange="1016529-1080717"/>
|
|
1470
|
+
<SegmentURL mediaRange="1080718-1144906"/>
|
|
1471
|
+
<SegmentURL mediaRange="1144907-1209095"/>
|
|
1472
|
+
<SegmentURL mediaRange="1209096-1273284"/>
|
|
1473
|
+
<SegmentURL mediaRange="1273285-1337473"/>
|
|
1474
|
+
<SegmentURL mediaRange="1337474-1401662"/>
|
|
1475
|
+
<SegmentURL mediaRange="1401663-1465851"/>
|
|
1476
|
+
<SegmentURL mediaRange="1465852-1530040"/>
|
|
1477
|
+
<SegmentURL mediaRange="1530041-1594229"/>
|
|
1478
|
+
<SegmentURL mediaRange="1594230-1658418"/>
|
|
1479
|
+
<SegmentURL mediaRange="1658419-1722607"/>
|
|
1480
|
+
<SegmentURL mediaRange="1722608-1786796"/>
|
|
1481
|
+
<SegmentURL mediaRange="1786797-1850985"/>
|
|
1482
|
+
<SegmentURL mediaRange="1850986-1915174"/>
|
|
1483
|
+
<SegmentURL mediaRange="1915175-1979363"/>
|
|
1484
|
+
<SegmentURL mediaRange="1979364-2043552"/>
|
|
1485
|
+
<SegmentURL mediaRange="2043553-2107741"/>
|
|
1486
|
+
<SegmentURL mediaRange="2107742-2171930"/>
|
|
1487
|
+
<SegmentURL mediaRange="2171931-2236119"/>
|
|
1488
|
+
<SegmentURL mediaRange="2236120-2300308"/>
|
|
1489
|
+
<SegmentURL mediaRange="2300309-2364497"/>
|
|
1490
|
+
<SegmentURL mediaRange="2364498-2428686"/>
|
|
1491
|
+
<SegmentURL mediaRange="2428687-2492875"/>
|
|
1492
|
+
<SegmentURL mediaRange="2492876-2559060"/>
|
|
1493
|
+
</SegmentList>
|
|
2896
1494
|
</Representation>
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
<
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
1495
|
+
<Representation id="9" qualityRanking="1000" codecs="opus" audioSamplingRate="48000" bandwidth="164952" mimeType="audio/mp4">
|
|
1496
|
+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
1497
|
+
<BaseURL>https://d17vo8z6jop21h.cloudfront.net/94bd1ece-d200000391583662/8be307d6-71ea-3111-a869-40720e08a6f9.mp4?r=2e86bfd7-93aa-48a0-9d32-7bee6d2897a4&rs=NA&mt=US&ql=LD_MEDIUM&dtype=A16ZV8BU3SN1N3</BaseURL>
|
|
1498
|
+
<SegmentList timescale="48000" duration="480000">
|
|
1499
|
+
<Initialization range="0-1031"/>
|
|
1500
|
+
<SegmentURL mediaRange="1544-202079"/>
|
|
1501
|
+
<SegmentURL mediaRange="202080-402215"/>
|
|
1502
|
+
<SegmentURL mediaRange="402216-602351"/>
|
|
1503
|
+
<SegmentURL mediaRange="602352-806540"/>
|
|
1504
|
+
<SegmentURL mediaRange="806541-1010729"/>
|
|
1505
|
+
<SegmentURL mediaRange="1010730-1214918"/>
|
|
1506
|
+
<SegmentURL mediaRange="1214919-1419107"/>
|
|
1507
|
+
<SegmentURL mediaRange="1419108-1623296"/>
|
|
1508
|
+
<SegmentURL mediaRange="1623297-1827485"/>
|
|
1509
|
+
<SegmentURL mediaRange="1827486-2031674"/>
|
|
1510
|
+
<SegmentURL mediaRange="2031675-2235863"/>
|
|
1511
|
+
<SegmentURL mediaRange="2235864-2440052"/>
|
|
1512
|
+
<SegmentURL mediaRange="2440053-2644241"/>
|
|
1513
|
+
<SegmentURL mediaRange="2644242-2848430"/>
|
|
1514
|
+
<SegmentURL mediaRange="2848431-3052619"/>
|
|
1515
|
+
<SegmentURL mediaRange="3052620-3256808"/>
|
|
1516
|
+
<SegmentURL mediaRange="3256809-3460997"/>
|
|
1517
|
+
<SegmentURL mediaRange="3460998-3665186"/>
|
|
1518
|
+
<SegmentURL mediaRange="3665187-3869375"/>
|
|
1519
|
+
<SegmentURL mediaRange="3869376-4073564"/>
|
|
1520
|
+
<SegmentURL mediaRange="4073565-4277753"/>
|
|
1521
|
+
<SegmentURL mediaRange="4277754-4481942"/>
|
|
1522
|
+
<SegmentURL mediaRange="4481943-4686131"/>
|
|
1523
|
+
<SegmentURL mediaRange="4686132-4890320"/>
|
|
1524
|
+
<SegmentURL mediaRange="4890321-5094509"/>
|
|
1525
|
+
<SegmentURL mediaRange="5094510-5298698"/>
|
|
1526
|
+
<SegmentURL mediaRange="5298699-5502887"/>
|
|
1527
|
+
<SegmentURL mediaRange="5502888-5707076"/>
|
|
1528
|
+
<SegmentURL mediaRange="5707077-5911265"/>
|
|
1529
|
+
<SegmentURL mediaRange="5911266-6115454"/>
|
|
1530
|
+
<SegmentURL mediaRange="6115455-6319643"/>
|
|
1531
|
+
<SegmentURL mediaRange="6319644-6523832"/>
|
|
1532
|
+
<SegmentURL mediaRange="6523833-6728021"/>
|
|
1533
|
+
<SegmentURL mediaRange="6728022-6932210"/>
|
|
1534
|
+
<SegmentURL mediaRange="6932211-7136399"/>
|
|
1535
|
+
<SegmentURL mediaRange="7136400-7340588"/>
|
|
1536
|
+
<SegmentURL mediaRange="7340589-7544777"/>
|
|
1537
|
+
<SegmentURL mediaRange="7544778-7748966"/>
|
|
1538
|
+
<SegmentURL mediaRange="7748967-7953155"/>
|
|
1539
|
+
<SegmentURL mediaRange="7953156-8159340"/>
|
|
1540
|
+
</SegmentList>
|
|
2909
1541
|
</Representation>
|
|
2910
1542
|
</AdaptationSet>
|
|
2911
1543
|
</Period>
|
|
2912
|
-
</MPD
|
|
2913
|
-
|
|
1544
|
+
</MPD>`;
|
|
1545
|
+
|
|
1546
|
+
// test/vinylTestUtil/assets/vinylTestAssets.ts
|
|
1547
|
+
var vinylTestAssets = {
|
|
1548
|
+
prog: {
|
|
1549
|
+
libmp3lame_60s_2ch_16bit_44100Hz_48kbps: `https://assets.dev.vinyl.music.amazon.dev/prog/libmp3lame_60s_2ch_16bit_44100Hz_48kbps.mp3`,
|
|
1550
|
+
libmp3lame_1800s_2ch_16bit_44100Hz_48kbps: `https://assets.dev.vinyl.music.amazon.dev/prog/libmp3lame_1800s_2ch_16bit_44100Hz_48kbps.mp3`
|
|
1551
|
+
},
|
|
1552
|
+
dash: {
|
|
1553
|
+
live_static_aac_opus_flac_60s_segmentTemplate: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_opus_flac_60s_segmentTemplate/manifest.mpd`,
|
|
1554
|
+
live_static_aac_opus_flac_60s_segmentBase: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_opus_flac_60s_segmentBase/manifest.mpd`,
|
|
1555
|
+
live_static_video_audio_60s_2s_segmentTemplate: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_video_audio_60s_2s_segmentTemplate/manifest.mpd`,
|
|
1556
|
+
live_static_video_audio_60s_4s_segmentTemplate: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_video_audio_60s_4s_segmentTemplate/manifest.mpd`,
|
|
1557
|
+
live_static_video_audio_60s_2s_segmentTemplate_widevine_cl10: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_video_audio_60s_2s_segmentTemplate_widevine_cl10/manifest.mpd`,
|
|
1558
|
+
live_static_video_audio_60s_4s_segmentTemplate_widevine_cl10: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_video_audio_60s_4s_segmentTemplate_widevine_cl10/manifest.mpd`,
|
|
1559
|
+
live_static_video_60s_2s_segmentTemplate: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_video_60s_2s_segmentTemplate/manifest.mpd`,
|
|
1560
|
+
live_static_video_60s_4s_segmentTemplate: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_video_60s_4s_segmentTemplate/manifest.mpd`,
|
|
1561
|
+
live_static_aac_opus_flac_60s_segmentBase_widevine_cl10: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_opus_flac_60s_segmentBase_widevine_cl10/manifest.mpd`,
|
|
1562
|
+
live_static_aac_opus_flac_60s_segmentBase_widevine: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_opus_flac_60s_segmentBase_widevine/manifest.mpd`,
|
|
1563
|
+
live_static_aac_1800s_segmentBase_widevine_cl30: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_1800s_segmentBase_widevine_cl30/manifest.mpd`,
|
|
1564
|
+
// Ad-break assets (see DMTestAssetBuilder src/adBreaks): a ~3-min
|
|
1565
|
+
// labeled ABR ladder with five-language narration, full + forced
|
|
1566
|
+
// captions. Base content only — DASH ad-break scenarios are not
|
|
1567
|
+
// generated (Vinyl has no DASH ad support yet); the HLS variants below
|
|
1568
|
+
// carry the ad breaks.
|
|
1569
|
+
vinyl_ad_breaks_av: `https://assets.dev.vinyl.music.amazon.dev/dash/vinyl_ad_breaks_av/manifest.mpd`,
|
|
1570
|
+
vinyl_ad_breaks_audio: `https://assets.dev.vinyl.music.amazon.dev/dash/vinyl_ad_breaks_audio/manifest.mpd`
|
|
1571
|
+
},
|
|
1572
|
+
hls: {
|
|
1573
|
+
live_static_video_audio_60s_2s: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_audio_60s_2s/main.m3u8`,
|
|
1574
|
+
live_static_video_audio_60s_4s: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_audio_60s_4s/main.m3u8`,
|
|
1575
|
+
live_static_aac_opus_flac_60s: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_aac_opus_flac_60s/main.m3u8`,
|
|
1576
|
+
live_static_aac_60s_mpegts: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_aac_60s_mpegts/main.m3u8`,
|
|
1577
|
+
live_static_video_60s_2s: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_60s_2s/main.m3u8`,
|
|
1578
|
+
live_static_video_60s_4s: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_60s_4s/main.m3u8`,
|
|
1579
|
+
live_static_video_60s_2s_mpegts: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_60s_2s_mpegts/main.m3u8`,
|
|
1580
|
+
live_static_video_60s_4s_mpegts: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_60s_4s_mpegts/main.m3u8`,
|
|
1581
|
+
live_static_video_audio_60s_2s_mpegts: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_audio_60s_2s_mpegts/main.m3u8`,
|
|
1582
|
+
live_static_video_audio_60s_4s_mpegts: `https://assets.dev.vinyl.music.amazon.dev/hls/live_static_video_audio_60s_4s_mpegts/main.m3u8`,
|
|
1583
|
+
// Ad-break assets: base content + HLS Interstitial scenario variants.
|
|
1584
|
+
// `*_av` = video+audio, `*_audio` = audio-only; each `__<scenario>`
|
|
1585
|
+
// injects a different ad-break configuration. See DMTestAssetBuilder
|
|
1586
|
+
// docs/AD_BREAK_ASSETS.md for the "where to expect ads" table.
|
|
1587
|
+
vinyl_ad_breaks_av: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_av/main.m3u8`,
|
|
1588
|
+
vinyl_ad_breaks_audio: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_audio/main.m3u8`,
|
|
1589
|
+
vinyl_ad_breaks_av__single_uri_pre_mid_post: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_av/single_uri_pre_mid_post.m3u8`,
|
|
1590
|
+
vinyl_ad_breaks_av__asset_list_midroll: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_av/asset_list_midroll.m3u8`,
|
|
1591
|
+
vinyl_ad_breaks_av__empty_breaks_pre_mid_post: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_av/empty_breaks_pre_mid_post.m3u8`,
|
|
1592
|
+
vinyl_ad_breaks_av__cue_once_midroll: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_av/cue_once_midroll.m3u8`,
|
|
1593
|
+
vinyl_ad_breaks_av__restrict_skip_and_jump: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_av/restrict_skip_and_jump.m3u8`,
|
|
1594
|
+
vinyl_ad_breaks_av__long_preroll_early_midroll: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_av/long_preroll_early_midroll.m3u8`,
|
|
1595
|
+
vinyl_ad_breaks_av__resume_offset_and_playout_limit: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_av/resume_offset_and_playout_limit.m3u8`,
|
|
1596
|
+
vinyl_ad_breaks_audio__single_uri_pre_mid_post: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_audio/single_uri_pre_mid_post.m3u8`,
|
|
1597
|
+
vinyl_ad_breaks_audio__asset_list_midroll: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_audio/asset_list_midroll.m3u8`,
|
|
1598
|
+
vinyl_ad_breaks_audio__empty_breaks_pre_mid_post: `https://assets.dev.vinyl.music.amazon.dev/hls/vinyl_ad_breaks_audio/empty_breaks_pre_mid_post.m3u8`
|
|
1599
|
+
},
|
|
1600
|
+
// Segmented streaming is added by hand, ControlledMediaSource provides a way to test
|
|
1601
|
+
// Media source extensions without reading a dash manifest.
|
|
1602
|
+
segmentedStreaming: {
|
|
1603
|
+
aac_60s_2ch_16bit_44100Hz_48kbps: {
|
|
1604
|
+
init: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_opus_flac_60s_segmentTemplate/segments/aac_60s_2ch_16bit_44100Hz_48kbps/sample.mp4`,
|
|
1605
|
+
part: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_opus_flac_60s_segmentTemplate/segments/aac_60s_2ch_16bit_44100Hz_48kbps/part_{index}.m4s`,
|
|
1606
|
+
numSegments: 6,
|
|
1607
|
+
duration: 60
|
|
1608
|
+
},
|
|
1609
|
+
// For testing Widevine, use a ControlledMediaSource with this asset.
|
|
1610
|
+
// EME requires using a media source, but DRM testing does not need to test buffering.
|
|
1611
|
+
aac_60s_2ch_16bit_44100Hz_48kbps_widevine_cl10: {
|
|
1612
|
+
init: `https://assets.dev.vinyl.music.amazon.dev/dash/live_static_aac_opus_flac_segmentBase_widevine_60s_cl10/representations/aac_60s_2ch_16bit_44100Hz_48kbps.mp4`,
|
|
1613
|
+
part: ``,
|
|
1614
|
+
numSegments: 0,
|
|
1615
|
+
duration: 60
|
|
1616
|
+
}
|
|
1617
|
+
}
|
|
1618
|
+
};
|
|
1619
|
+
|
|
1620
|
+
// test/vinylTestUtil/media/FrequencyAnalyzer.ts
|
|
1621
|
+
import { getAudioContext } from "@amazon/vinyl";
|
|
1622
|
+
import { TimeoutError } from "@amazon/vinyl-util";
|
|
1623
|
+
import { sleep } from "@amazon/vinyl-util";
|
|
1624
|
+
import { parseBoolean } from "@amazon/vinyl-util";
|
|
1625
|
+
import { logDebug } from "@amazon/vinyl-util";
|
|
1626
|
+
import { getSearchParams } from "@amazon/vinyl-util";
|
|
1627
|
+
import { createLogPrefix } from "@amazon/vinyl-util";
|
|
1628
|
+
|
|
1629
|
+
// test/vinylTestUtil/player/mediaRef.ts
|
|
1630
|
+
import { lazy } from "@amazon/vinyl-util";
|
|
1631
|
+
var mediaRef = lazy(() => {
|
|
1632
|
+
const media = document.createElement("video");
|
|
1633
|
+
media.muted = true;
|
|
1634
|
+
media.playsInline = true;
|
|
1635
|
+
media.disableRemotePlayback = true;
|
|
1636
|
+
return media;
|
|
1637
|
+
});
|
|
1638
|
+
afterEach(() => {
|
|
1639
|
+
if (mediaRef.constructed) {
|
|
1640
|
+
const media = mediaRef.value;
|
|
1641
|
+
media.removeAttribute("src");
|
|
1642
|
+
media.load();
|
|
1643
|
+
}
|
|
1644
|
+
});
|
|
1645
|
+
|
|
1646
|
+
// test/vinylTestUtil/ui/requireUserInteraction.ts
|
|
1647
|
+
async function requireUserInteraction() {
|
|
1648
|
+
const audioPrompt = document.getElementById("unlockAudioPrompt");
|
|
1649
|
+
audioPrompt.style.removeProperty("display");
|
|
1650
|
+
const body = document.body;
|
|
1651
|
+
body.focus();
|
|
1652
|
+
await new Promise((resolve) => {
|
|
1653
|
+
const done = () => {
|
|
1654
|
+
body.removeEventListener("click", done);
|
|
1655
|
+
body.removeEventListener("keypress", done);
|
|
1656
|
+
body.removeEventListener("touchend", done);
|
|
1657
|
+
return resolve(void 0);
|
|
1658
|
+
};
|
|
1659
|
+
body.addEventListener("click", done);
|
|
1660
|
+
body.addEventListener("keypress", done);
|
|
1661
|
+
body.addEventListener("touchend", done);
|
|
1662
|
+
});
|
|
1663
|
+
audioPrompt.style.display = "none";
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1666
|
+
// test/vinylTestUtil/media/unlockMediaElement.ts
|
|
1667
|
+
import { noop } from "@amazon/vinyl-util";
|
|
1668
|
+
async function unlockMediaElement() {
|
|
1669
|
+
const media = mediaRef.value;
|
|
1670
|
+
media.src = vinylTestAssets.prog.libmp3lame_60s_2ch_16bit_44100Hz_48kbps;
|
|
1671
|
+
await media.play().catch(noop);
|
|
1672
|
+
media.pause();
|
|
1673
|
+
media.removeAttribute("src");
|
|
1674
|
+
media.load();
|
|
1675
|
+
}
|
|
1676
|
+
|
|
1677
|
+
// test/vinylTestUtil/media/FrequencyAnalyzer.ts
|
|
1678
|
+
import { setNextTestTimeout } from "@amazon/vinyl-util/browserTestUtil";
|
|
1679
|
+
var TIME_ESTIMATE_TOLERANCE = 0.02;
|
|
1680
|
+
var defaultFrequencyAnalyzerOptions = {
|
|
1681
|
+
startFrequency: 100,
|
|
1682
|
+
endFrequency: 6e3,
|
|
1683
|
+
fftSize: 4096
|
|
1684
|
+
};
|
|
1685
|
+
var FrequencyAnalyzer = class {
|
|
1686
|
+
constructor(audioContext, source, options) {
|
|
1687
|
+
__publicField(this, "audioContext", audioContext);
|
|
1688
|
+
__publicField(this, "source", source);
|
|
1689
|
+
__publicField(this, "data");
|
|
1690
|
+
__publicField(this, "analyser");
|
|
1691
|
+
__publicField(this, "options");
|
|
1692
|
+
__publicField(this, "logPrefix", createLogPrefix("FrequencyAnalyzer"));
|
|
1693
|
+
this.options = __spreadValues(__spreadValues({}, defaultFrequencyAnalyzerOptions), options);
|
|
1694
|
+
this.analyser = this.audioContext.createAnalyser();
|
|
1695
|
+
this.analyser.fftSize = this.options.fftSize;
|
|
1696
|
+
this.analyser.connect(this.audioContext.destination);
|
|
1697
|
+
this.data = new Float32Array(this.analyser.frequencyBinCount);
|
|
1698
|
+
this.source.connect(this.analyser);
|
|
1699
|
+
}
|
|
1700
|
+
/**
|
|
1701
|
+
* Estimates the frequency of the current frame window.
|
|
1702
|
+
*
|
|
1703
|
+
* The frequency estimate is the frequency of the highest decibel bin within the frame window. The number of
|
|
1704
|
+
* bins is 1/2 the fftSize.
|
|
1705
|
+
*/
|
|
1706
|
+
get frequency() {
|
|
1707
|
+
const audioCtx = this.audioContext;
|
|
1708
|
+
const analyser = this.analyser;
|
|
1709
|
+
const data6 = this.data;
|
|
1710
|
+
analyser.getFloatFrequencyData(data6);
|
|
1711
|
+
const maxIndex = data6.reduce(
|
|
1712
|
+
(iMax, x, i, arr) => x > arr[iMax] ? i : iMax,
|
|
1713
|
+
0
|
|
1714
|
+
);
|
|
1715
|
+
return maxIndex * audioCtx.sampleRate / analyser.fftSize;
|
|
1716
|
+
}
|
|
1717
|
+
get estimatedTime() {
|
|
1718
|
+
const frequency = this.frequency;
|
|
1719
|
+
const start = this.options.startFrequency;
|
|
1720
|
+
const end = this.options.endFrequency;
|
|
1721
|
+
return (frequency - start) / (end - start) * this.source.mediaElement.duration;
|
|
1722
|
+
}
|
|
1723
|
+
/**
|
|
1724
|
+
* Asserts that the next samples of audio plays at its expected frequency.
|
|
1725
|
+
*/
|
|
1726
|
+
async assertFrequency(timeout = 10) {
|
|
1727
|
+
this.analyser.disconnect();
|
|
1728
|
+
this.analyser.connect(this.audioContext.destination);
|
|
1729
|
+
const media = this.source.mediaElement;
|
|
1730
|
+
if (isNaN(media.duration)) fail("media is not loaded");
|
|
1731
|
+
if (media.paused) fail("media is paused");
|
|
1732
|
+
const startTime = Date.now();
|
|
1733
|
+
const mediaStartTime = media.currentTime;
|
|
1734
|
+
const playbackTime = 0.25;
|
|
1735
|
+
const maxDifference = media.duration * TIME_ESTIMATE_TOLERANCE;
|
|
1736
|
+
if (media.currentTime + playbackTime >= media.duration) {
|
|
1737
|
+
logDebug(
|
|
1738
|
+
this,
|
|
1739
|
+
"Ignoring assertFrequency, currentTime is at duration"
|
|
1740
|
+
);
|
|
1741
|
+
return;
|
|
1742
|
+
}
|
|
1743
|
+
let estimatedTime;
|
|
1744
|
+
let diff;
|
|
1745
|
+
let elapsed;
|
|
1746
|
+
do {
|
|
1747
|
+
if (Date.now() - startTime > timeout * 1e3) {
|
|
1748
|
+
throw new TimeoutError(
|
|
1749
|
+
"Frequency data could not be filled, media is not playing."
|
|
1750
|
+
);
|
|
1751
|
+
}
|
|
1752
|
+
elapsed = media.currentTime - mediaStartTime;
|
|
1753
|
+
estimatedTime = this.estimatedTime;
|
|
1754
|
+
diff = Math.abs(estimatedTime - media.currentTime);
|
|
1755
|
+
await sleep(playbackTime);
|
|
1756
|
+
} while (elapsed < playbackTime && diff > maxDifference);
|
|
1757
|
+
logDebug(
|
|
1758
|
+
this,
|
|
1759
|
+
"time from frequency:",
|
|
1760
|
+
estimatedTime.toFixed(2),
|
|
1761
|
+
"actual time:",
|
|
1762
|
+
media.currentTime.toFixed(2)
|
|
1763
|
+
);
|
|
1764
|
+
if (diff > maxDifference) {
|
|
1765
|
+
const percentFormatter = new Intl.NumberFormat("en-US", {
|
|
1766
|
+
style: "percent"
|
|
1767
|
+
});
|
|
1768
|
+
fail(
|
|
1769
|
+
`The measured frequency at time ${media.currentTime.toFixed(2)} was measured to be ${this.frequency.toFixed(2)}Hz. The expected time is ${estimatedTime.toFixed(2)}, the actual time is ${media.currentTime.toFixed(2)}, for a difference of ${percentFormatter.format(
|
|
1770
|
+
diff / media.duration
|
|
1771
|
+
)} track duration. (Tolerance is ${percentFormatter.format(TIME_ESTIMATE_TOLERANCE)})`
|
|
1772
|
+
);
|
|
1773
|
+
}
|
|
1774
|
+
}
|
|
1775
|
+
};
|
|
1776
|
+
var _a;
|
|
1777
|
+
var shouldCheckAudio = parseBoolean(
|
|
1778
|
+
((_a = getSearchParams().get("checkAudio")) != null ? _a : "0").toLowerCase()
|
|
1779
|
+
);
|
|
1780
|
+
var frequencyAnalyzer = null;
|
|
1781
|
+
function assertFrequency() {
|
|
1782
|
+
var _a2;
|
|
1783
|
+
return (_a2 = frequencyAnalyzer == null ? void 0 : frequencyAnalyzer.assertFrequency()) != null ? _a2 : Promise.resolve();
|
|
1784
|
+
}
|
|
1785
|
+
function initializeFrequencyAnalyzer() {
|
|
1786
|
+
if (shouldCheckAudio) {
|
|
1787
|
+
setNextTestTimeout(300);
|
|
1788
|
+
beforeAll(async () => {
|
|
1789
|
+
const media = mediaRef.value;
|
|
1790
|
+
media.crossOrigin = "anonymous";
|
|
1791
|
+
media.muted = false;
|
|
1792
|
+
media.volume = 0.01;
|
|
1793
|
+
await requireUserInteraction();
|
|
1794
|
+
const audioContext = getAudioContext();
|
|
1795
|
+
await unlockMediaElement();
|
|
1796
|
+
if (audioContext) {
|
|
1797
|
+
const source = audioContext.createMediaElementSource(
|
|
1798
|
+
mediaRef.value
|
|
1799
|
+
);
|
|
1800
|
+
frequencyAnalyzer = new FrequencyAnalyzer(audioContext, source);
|
|
1801
|
+
} else {
|
|
1802
|
+
console.warn("AudioContext not supported");
|
|
1803
|
+
}
|
|
1804
|
+
});
|
|
1805
|
+
}
|
|
1806
|
+
}
|
|
1807
|
+
|
|
1808
|
+
// test/vinylTestUtil/mediaSource/ControlledMediaSource.ts
|
|
1809
|
+
import { createMediaSource, isTypeSupported } from "@amazon/vinyl";
|
|
1810
|
+
import {
|
|
1811
|
+
IllegalStateError,
|
|
1812
|
+
requestWithRetry,
|
|
1813
|
+
substitute
|
|
1814
|
+
} from "@amazon/vinyl-util";
|
|
1815
|
+
var mimeCodec = 'audio/mp4;codecs="mp4a.40.5"';
|
|
1816
|
+
var ControlledMediaSource = class {
|
|
1817
|
+
constructor(sourceAsset = vinylTestAssets.segmentedStreaming.aac_60s_2ch_16bit_44100Hz_48kbps) {
|
|
1818
|
+
__publicField(this, "sourceAsset", sourceAsset);
|
|
1819
|
+
__publicField(this, "length");
|
|
1820
|
+
__publicField(this, "_currentIndex", 0);
|
|
1821
|
+
__publicField(this, "mediaSource", createMediaSource());
|
|
1822
|
+
__publicField(this, "sourceBufferPromise");
|
|
1823
|
+
__publicField(this, "segments", null);
|
|
1824
|
+
this.length = sourceAsset.numSegments + 1;
|
|
1825
|
+
if (isTypeSupported(mimeCodec)) {
|
|
1826
|
+
this.sourceBufferPromise = new Promise((resolve) => {
|
|
1827
|
+
this.mediaSource.addEventListener(
|
|
1828
|
+
"sourceopen",
|
|
1829
|
+
() => {
|
|
1830
|
+
this.mediaSource.duration = sourceAsset.duration;
|
|
1831
|
+
const sourceBuffer = this.mediaSource.addSourceBuffer(mimeCodec);
|
|
1832
|
+
resolve(sourceBuffer);
|
|
1833
|
+
},
|
|
1834
|
+
{ once: true }
|
|
1835
|
+
);
|
|
1836
|
+
});
|
|
1837
|
+
} else {
|
|
1838
|
+
throw new Error(`Unsupported MIME type or codec: ${mimeCodec}`);
|
|
1839
|
+
}
|
|
1840
|
+
}
|
|
1841
|
+
/**
|
|
1842
|
+
* Gets the data for all segments.
|
|
1843
|
+
* All data is preloaded in order to have reproducible test conditions.
|
|
1844
|
+
*/
|
|
1845
|
+
async getSegments() {
|
|
1846
|
+
const segments = new Array(this.length);
|
|
1847
|
+
const initResponse = await requestWithRetry(this.sourceAsset.init);
|
|
1848
|
+
segments[0] = await initResponse.arrayBuffer();
|
|
1849
|
+
for (let i = 1; i <= this.sourceAsset.numSegments; i++) {
|
|
1850
|
+
const mediaResponse = await requestWithRetry(
|
|
1851
|
+
substitute(this.sourceAsset.part, { index: i })
|
|
1852
|
+
);
|
|
1853
|
+
segments[i] = await mediaResponse.arrayBuffer();
|
|
1854
|
+
}
|
|
1855
|
+
return segments;
|
|
1856
|
+
}
|
|
1857
|
+
/**
|
|
1858
|
+
* Gets the media source.
|
|
1859
|
+
* This promise resolves when all assets are ready.
|
|
1860
|
+
* Note: in Firefox, you must set this object url on the element immediately. Creating the
|
|
1861
|
+
* URL and setting it later can cause errors.
|
|
1862
|
+
*/
|
|
1863
|
+
async getMediaSource() {
|
|
1864
|
+
this.segments = await this.getSegments();
|
|
1865
|
+
return this.mediaSource;
|
|
1866
|
+
}
|
|
1867
|
+
async appendNext() {
|
|
1868
|
+
if (!this.segments)
|
|
1869
|
+
throw new IllegalStateError("cannot append before getMediaSource");
|
|
1870
|
+
const sourceBuffer = await this.sourceBufferPromise;
|
|
1871
|
+
if (this._currentIndex >= this.length)
|
|
1872
|
+
throw new Error(`Only ${this.length} segments`);
|
|
1873
|
+
const buff = this.segments[this._currentIndex++];
|
|
1874
|
+
await onSourceBufferReady(sourceBuffer);
|
|
1875
|
+
const updateEnd = onUpdateEnd(sourceBuffer);
|
|
1876
|
+
sourceBuffer.appendBuffer(buff);
|
|
1877
|
+
await updateEnd;
|
|
1878
|
+
if (this._currentIndex === this.length) {
|
|
1879
|
+
this.mediaSource.endOfStream();
|
|
1880
|
+
}
|
|
1881
|
+
}
|
|
1882
|
+
};
|
|
1883
|
+
async function onSourceBufferReady(sourceBuffer) {
|
|
1884
|
+
if (!sourceBuffer.updating) return;
|
|
1885
|
+
await onUpdateEnd(sourceBuffer);
|
|
1886
|
+
return onSourceBufferReady(sourceBuffer);
|
|
1887
|
+
}
|
|
1888
|
+
function onUpdateEnd(sourceBuffer) {
|
|
1889
|
+
return new Promise((resolve) => {
|
|
1890
|
+
sourceBuffer.addEventListener(
|
|
1891
|
+
"updateend",
|
|
1892
|
+
() => {
|
|
1893
|
+
resolve(void 0);
|
|
1894
|
+
},
|
|
1895
|
+
{ once: true }
|
|
1896
|
+
);
|
|
1897
|
+
});
|
|
1898
|
+
}
|
|
1899
|
+
|
|
1900
|
+
// test/vinylTestUtil/mock/ad/MockAdController.ts
|
|
1901
|
+
import { MockEventHost } from "@amazon/vinyl-util/testUtil";
|
|
1902
|
+
import { createSpyFactory } from "@amazon/vinyl-util/browserTestUtil";
|
|
1903
|
+
var spyFactory = createSpyFactory();
|
|
1904
|
+
var MockAdController = class extends MockEventHost {
|
|
1905
|
+
constructor() {
|
|
1906
|
+
super();
|
|
1907
|
+
__publicField(this, "currentTrackAds", null);
|
|
1908
|
+
__publicField(this, "currentAd", null);
|
|
1909
|
+
__publicField(this, "currentAdBreak", null);
|
|
1910
|
+
__publicField(this, "setAdsProvider", spyFactory("setAdsProvider"));
|
|
1911
|
+
__publicField(this, "failAd", spyFactory("failAd"));
|
|
1912
|
+
__publicField(this, "skipAd", spyFactory("skipAd"));
|
|
1913
|
+
__publicField(this, "skipAdBreak", spyFactory("skipAdBreak"));
|
|
1914
|
+
__publicField(this, "enterPreroll", spyFactory("enterPreroll"));
|
|
1915
|
+
__publicField(this, "enterPostroll", spyFactory("enterPostroll"));
|
|
1916
|
+
this.enterPreroll.and.resolveTo(null);
|
|
1917
|
+
this.enterPostroll.and.resolveTo(null);
|
|
1918
|
+
}
|
|
1919
|
+
};
|
|
1920
|
+
|
|
1921
|
+
// test/vinylTestUtil/mock/client/MockCapabilities.ts
|
|
1922
|
+
import { createSpyFactory as createSpyFactory2 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1923
|
+
var spyFactory2 = createSpyFactory2();
|
|
1924
|
+
var MockCapabilities = class {
|
|
1925
|
+
constructor() {
|
|
1926
|
+
__publicField(this, "sampleRate", null);
|
|
1927
|
+
__publicField(this, "dash", false);
|
|
1928
|
+
__publicField(this, "hls", false);
|
|
1929
|
+
__publicField(this, "mse", false);
|
|
1930
|
+
__publicField(this, "eme", false);
|
|
1931
|
+
__publicField(this, "canPlayType", spyFactory2("canPlayType"));
|
|
1932
|
+
__publicField(this, "canPlayTypeMse", spyFactory2("canPlayTypeMse"));
|
|
1933
|
+
__publicField(this, "supportsKeySystem", spyFactory2("supportsKeySystem"));
|
|
1934
|
+
}
|
|
1935
|
+
};
|
|
1936
|
+
|
|
1937
|
+
// test/vinylTestUtil/mock/client/MockClient.ts
|
|
1938
|
+
var MockClient = class {
|
|
1939
|
+
constructor() {
|
|
1940
|
+
__publicField(this, "capabilities", new MockCapabilities());
|
|
1941
|
+
}
|
|
1942
|
+
};
|
|
1943
|
+
|
|
1944
|
+
// test/vinylTestUtil/mock/dash/mockDashManifest.ts
|
|
1945
|
+
import { parseDashManifest } from "@amazon/vinyl-mpd-parser";
|
|
1946
|
+
var mockDashManifest = parseDashManifest(
|
|
1947
|
+
// language=XML
|
|
1948
|
+
`<?xml version="1.0" ?>
|
|
1949
|
+
<MPD profiles="" minBufferTime="PT0.0S" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011">
|
|
1950
|
+
<Period>
|
|
1951
|
+
<AdaptationSet>
|
|
1952
|
+
<Representation id="0" bandwidth="0"/>
|
|
1953
|
+
</AdaptationSet>
|
|
1954
|
+
</Period>
|
|
1955
|
+
</MPD>`
|
|
1956
|
+
);
|
|
1957
|
+
|
|
1958
|
+
// test/vinylTestUtil/mock/dash/MockDashManifestController.ts
|
|
1959
|
+
import { createSpyFactory as createSpyFactory3 } from "@amazon/vinyl-util/browserTestUtil";
|
|
1960
|
+
import {
|
|
1961
|
+
EventHostImpl
|
|
1962
|
+
} from "@amazon/vinyl-util";
|
|
1963
|
+
import { data } from "@amazon/vinyl-observable";
|
|
1964
|
+
var spyFactory3 = createSpyFactory3();
|
|
1965
|
+
var MockDashManifestController = class {
|
|
1966
|
+
constructor() {
|
|
1967
|
+
__publicField(this, "_data", data(
|
|
1968
|
+
Promise.resolve({
|
|
1969
|
+
manifest: mockDashManifest,
|
|
1970
|
+
baseUrl: "https://example.com"
|
|
1971
|
+
})
|
|
1972
|
+
));
|
|
1973
|
+
__publicField(this, "events", new EventHostImpl());
|
|
1974
|
+
__publicField(this, "refresh", spyFactory3("refresh"));
|
|
1975
|
+
__publicField(this, "reset", spyFactory3("reset"));
|
|
1976
|
+
__publicField(this, "__eventMapType", this.events.__eventMapType);
|
|
1977
|
+
}
|
|
1978
|
+
on(type, handler, options) {
|
|
1979
|
+
return this.events.on(type, handler, options);
|
|
1980
|
+
}
|
|
1981
|
+
dispatch(type, event) {
|
|
1982
|
+
this.events.dispatch(type, event);
|
|
1983
|
+
}
|
|
1984
|
+
hasAnyListeners() {
|
|
1985
|
+
return this.events.hasAnyListeners();
|
|
1986
|
+
}
|
|
1987
|
+
hasListeners(type) {
|
|
1988
|
+
return this.events.hasListeners(type);
|
|
1989
|
+
}
|
|
1990
|
+
get value() {
|
|
1991
|
+
return this._data.value;
|
|
1992
|
+
}
|
|
1993
|
+
get changeId() {
|
|
1994
|
+
return this._data.changeId;
|
|
1995
|
+
}
|
|
1996
|
+
getValue() {
|
|
1997
|
+
return this._data.getValue();
|
|
1998
|
+
}
|
|
1999
|
+
onData(callback) {
|
|
2000
|
+
return this._data.onData(callback);
|
|
2001
|
+
}
|
|
2002
|
+
map(transform) {
|
|
2003
|
+
return this._data.map(transform);
|
|
2004
|
+
}
|
|
2005
|
+
pick(prop) {
|
|
2006
|
+
return this._data.pick(prop);
|
|
2007
|
+
}
|
|
2008
|
+
setManifest(manifest) {
|
|
2009
|
+
this._data.value = manifest;
|
|
2010
|
+
}
|
|
2011
|
+
};
|
|
2012
|
+
|
|
2013
|
+
// test/vinylTestUtil/mock/dom/ms/MockMSMediaKeyError.ts
|
|
2014
|
+
import { MockEvent } from "@amazon/vinyl-util/browserTestUtil";
|
|
2015
|
+
var MockMSMediaKeyError = class extends MockEvent {
|
|
2016
|
+
constructor() {
|
|
2017
|
+
super();
|
|
2018
|
+
__publicField(this, "code", 0);
|
|
2019
|
+
__publicField(this, "systemCode", 0);
|
|
2020
|
+
this.type = "mskeyerror";
|
|
2021
|
+
}
|
|
2022
|
+
};
|
|
2023
|
+
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_CLIENT", 1);
|
|
2024
|
+
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_DOMAIN", 2);
|
|
2025
|
+
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_HARDWARECHANGE", 3);
|
|
2026
|
+
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_OUTPUT", 4);
|
|
2027
|
+
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_SERVICE", 5);
|
|
2028
|
+
__publicField(MockMSMediaKeyError, "MS_MEDIA_KEYERR_UNKNOWN", 6);
|
|
2029
|
+
|
|
2030
|
+
// test/vinylTestUtil/mock/dom/ms/MockMSMediaKeyMessageEvent.ts
|
|
2031
|
+
import { MockEvent as MockEvent2 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2032
|
+
var MockMSMediaKeyMessageEvent = class extends MockEvent2 {
|
|
2033
|
+
constructor() {
|
|
2034
|
+
super();
|
|
2035
|
+
__publicField(this, "message", new Uint8Array(0));
|
|
2036
|
+
this.type = "mskeymessage";
|
|
2037
|
+
}
|
|
2038
|
+
};
|
|
2039
|
+
|
|
2040
|
+
// test/vinylTestUtil/mock/dom/ms/MockMSMediaKeys.ts
|
|
2041
|
+
import { createSpyFactory as createSpyFactory4 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2042
|
+
var spyFactory4 = createSpyFactory4();
|
|
2043
|
+
var MockMSMediaKeys = class {
|
|
2044
|
+
constructor(keySystem) {
|
|
2045
|
+
__publicField(this, "keySystem", keySystem);
|
|
2046
|
+
__publicField(this, "createSession", spyFactory4("createSession"));
|
|
2047
|
+
}
|
|
2048
|
+
};
|
|
2049
|
+
__publicField(MockMSMediaKeys, "isTypeSupported", spyFactory4("isTypeSupported"));
|
|
2050
|
+
|
|
2051
|
+
// test/vinylTestUtil/mock/dom/ms/MockMSMediaKeySession.ts
|
|
2052
|
+
import {
|
|
2053
|
+
createSpyFactory as createSpyFactory5,
|
|
2054
|
+
MockEventTarget
|
|
2055
|
+
} from "@amazon/vinyl-util/browserTestUtil";
|
|
2056
|
+
var spyFactory5 = createSpyFactory5();
|
|
2057
|
+
var MockMSMediaKeySession = class extends MockEventTarget {
|
|
2058
|
+
constructor() {
|
|
2059
|
+
super(...arguments);
|
|
2060
|
+
__publicField(this, "error", null);
|
|
2061
|
+
__publicField(this, "keySystem", "");
|
|
2062
|
+
__publicField(this, "onmskeyadded", null);
|
|
2063
|
+
__publicField(this, "onmskeyerror", null);
|
|
2064
|
+
__publicField(this, "onmskeymessage", null);
|
|
2065
|
+
__publicField(this, "sessionId", "");
|
|
2066
|
+
__publicField(this, "close", spyFactory5("close"));
|
|
2067
|
+
__publicField(this, "update", spyFactory5("update"));
|
|
2068
|
+
__publicField(this, "addEventListener", spyFactory5("addEventListener"));
|
|
2069
|
+
__publicField(this, "dispatchEvent", spyFactory5("dispatchEvent"));
|
|
2070
|
+
__publicField(this, "removeEventListener", spyFactory5("removeEventListener"));
|
|
2071
|
+
}
|
|
2072
|
+
};
|
|
2073
|
+
|
|
2074
|
+
// test/vinylTestUtil/mock/dom/webkit/MockWebKitMediaKeyError.ts
|
|
2075
|
+
import { MockEvent as MockEvent3 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2076
|
+
var MockWebKitMediaKeyError = class extends MockEvent3 {
|
|
2077
|
+
constructor() {
|
|
2078
|
+
super();
|
|
2079
|
+
__publicField(this, "code", 0);
|
|
2080
|
+
__publicField(this, "systemCode", 0);
|
|
2081
|
+
this.type = "webkitkeyerror";
|
|
2082
|
+
}
|
|
2083
|
+
};
|
|
2084
|
+
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_UNKNOWN", 1);
|
|
2085
|
+
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_CLIENT", 2);
|
|
2086
|
+
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_SERVICE", 3);
|
|
2087
|
+
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_OUTPUT", 4);
|
|
2088
|
+
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_HARDWARECHANGE", 5);
|
|
2089
|
+
__publicField(MockWebKitMediaKeyError, "MEDIA_KEYERR_DOMAIN", 6);
|
|
2090
|
+
|
|
2091
|
+
// test/vinylTestUtil/mock/dom/webkit/MockWebKitMediaKeyMessageEvent.ts
|
|
2092
|
+
import { MockEvent as MockEvent4 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2093
|
+
var MockWebKitMediaKeyMessageEvent = class extends MockEvent4 {
|
|
2094
|
+
constructor() {
|
|
2095
|
+
super();
|
|
2096
|
+
__publicField(this, "message", new Uint8Array(0));
|
|
2097
|
+
this.type = "webkitkeymessage";
|
|
2098
|
+
}
|
|
2099
|
+
};
|
|
2100
|
+
|
|
2101
|
+
// test/vinylTestUtil/mock/dom/webkit/MockWebKitMediaKeys.ts
|
|
2102
|
+
import { createSpyFactory as createSpyFactory6 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2103
|
+
var spyFactory6 = createSpyFactory6();
|
|
2104
|
+
var MockWebKitMediaKeys = class {
|
|
2105
|
+
constructor(keySystem) {
|
|
2106
|
+
__publicField(this, "keySystem", keySystem);
|
|
2107
|
+
__publicField(this, "createSession", spyFactory6("createSession"));
|
|
2108
|
+
}
|
|
2109
|
+
};
|
|
2110
|
+
__publicField(MockWebKitMediaKeys, "isTypeSupported", spyFactory6("isTypeSupported"));
|
|
2111
|
+
|
|
2112
|
+
// test/vinylTestUtil/mock/dom/webkit/MockWebKitMediaKeySession.ts
|
|
2113
|
+
import {
|
|
2114
|
+
MockEventTarget as MockEventTarget2,
|
|
2115
|
+
createSpyFactory as createSpyFactory7
|
|
2116
|
+
} from "@amazon/vinyl-util/browserTestUtil";
|
|
2117
|
+
var spyFactory7 = createSpyFactory7();
|
|
2118
|
+
var MockWebKitMediaKeySession = class extends MockEventTarget2 {
|
|
2119
|
+
constructor() {
|
|
2120
|
+
super(...arguments);
|
|
2121
|
+
__publicField(this, "error", null);
|
|
2122
|
+
__publicField(this, "keySystem", "");
|
|
2123
|
+
__publicField(this, "onwebkitkeyadded", null);
|
|
2124
|
+
__publicField(this, "onwebkitkeyerror", null);
|
|
2125
|
+
__publicField(this, "onwebkitkeymessage", null);
|
|
2126
|
+
__publicField(this, "sessionId", "");
|
|
2127
|
+
__publicField(this, "close", spyFactory7("close"));
|
|
2128
|
+
__publicField(this, "update", spyFactory7("update"));
|
|
2129
|
+
__publicField(this, "addEventListener", spyFactory7("addEventListener"));
|
|
2130
|
+
__publicField(this, "dispatchEvent", spyFactory7("dispatchEvent"));
|
|
2131
|
+
__publicField(this, "removeEventListener", spyFactory7("removeEventListener"));
|
|
2132
|
+
}
|
|
2133
|
+
};
|
|
2134
|
+
|
|
2135
|
+
// test/vinylTestUtil/mock/dom/webkit/useWebKitMediaKeys.ts
|
|
2136
|
+
import { overrideGlobalInit } from "@amazon/vinyl-util/testUtil";
|
|
2137
|
+
import { mediaKeySupportRef } from "@amazon/vinyl";
|
|
2138
|
+
function useWebKitMediaKeys(present) {
|
|
2139
|
+
overrideGlobalInit(mediaKeySupportRef, () => {
|
|
2140
|
+
return {
|
|
2141
|
+
webkitEme: present,
|
|
2142
|
+
standardEme: false,
|
|
2143
|
+
msEme: false
|
|
2144
|
+
};
|
|
2145
|
+
});
|
|
2146
|
+
}
|
|
2147
|
+
|
|
2148
|
+
// test/vinylTestUtil/mock/drm/MockCommonEme.ts
|
|
2149
|
+
import { createSpyFactory as createSpyFactory8 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2150
|
+
var spyFactory8 = createSpyFactory8();
|
|
2151
|
+
var MockCommonEme = class {
|
|
2152
|
+
constructor() {
|
|
2153
|
+
__publicField(this, "requestMediaKeySystemAccess", spyFactory8("requestMediaKeySystemAccess"));
|
|
2154
|
+
__publicField(this, "addEncryptedListener", spyFactory8("addEncryptedListener"));
|
|
2155
|
+
}
|
|
2156
|
+
};
|
|
2157
|
+
|
|
2158
|
+
// test/vinylTestUtil/mock/drm/MockCommonMediaKeys.ts
|
|
2159
|
+
import { DrmKeySystem } from "@amazon/vinyl";
|
|
2160
|
+
import { createSpyFactory as createSpyFactory9 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2161
|
+
var spyFactory9 = createSpyFactory9();
|
|
2162
|
+
var MockCommonMediaKeys = class {
|
|
2163
|
+
constructor() {
|
|
2164
|
+
__publicField(this, "keySystem", DrmKeySystem.CLEAR_KEY);
|
|
2165
|
+
__publicField(this, "clearFromElement", spyFactory9("clearFromElement"));
|
|
2166
|
+
__publicField(this, "createSession", spyFactory9("createSession"));
|
|
2167
|
+
__publicField(this, "setOnElement", spyFactory9("setOnElement"));
|
|
2168
|
+
__publicField(this, "setServerCertificate", spyFactory9("setServerCertificate"));
|
|
2169
|
+
}
|
|
2170
|
+
};
|
|
2171
|
+
|
|
2172
|
+
// test/vinylTestUtil/mock/drm/MockCommonMediaKeySession.ts
|
|
2173
|
+
import { createSpyFactory as createSpyFactory10 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2174
|
+
import { MockEventHost as MockEventHost2 } from "@amazon/vinyl-util/testUtil";
|
|
2175
|
+
var spyFactory10 = createSpyFactory10();
|
|
2176
|
+
var MockCommonMediaKeySession = class extends MockEventHost2 {
|
|
2177
|
+
constructor() {
|
|
2178
|
+
super(...arguments);
|
|
2179
|
+
__publicField(this, "initData", new ArrayBuffer(0));
|
|
2180
|
+
__publicField(this, "initDataType", "cenc");
|
|
2181
|
+
__publicField(this, "mimeType", "");
|
|
2182
|
+
__publicField(this, "disposed", false);
|
|
2183
|
+
__publicField(this, "update", spyFactory10("update"));
|
|
2184
|
+
}
|
|
2185
|
+
};
|
|
2186
|
+
|
|
2187
|
+
// test/vinylTestUtil/mock/drm/MockCommonMediaKeySystemAccess.ts
|
|
2188
|
+
import { createSpyFactory as createSpyFactory11 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2189
|
+
var spyFactory11 = createSpyFactory11();
|
|
2190
|
+
var MockCommonMediaKeySystemAccess = class {
|
|
2191
|
+
constructor(keySystem) {
|
|
2192
|
+
__publicField(this, "keySystem", keySystem);
|
|
2193
|
+
__publicField(this, "createMediaKeys", spyFactory11("createMediaKeys"));
|
|
2194
|
+
}
|
|
2195
|
+
};
|
|
2196
|
+
|
|
2197
|
+
// test/vinylTestUtil/mock/drm/MockDrmController.ts
|
|
2198
|
+
import { createSpyFactory as createSpyFactory12 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2199
|
+
import { MockEventHost as MockEventHost3 } from "@amazon/vinyl-util/testUtil";
|
|
2200
|
+
var spyFactory12 = createSpyFactory12();
|
|
2201
|
+
var MockDrmController = class extends MockEventHost3 {
|
|
2202
|
+
constructor() {
|
|
2203
|
+
super(...arguments);
|
|
2204
|
+
__publicField(this, "error", null);
|
|
2205
|
+
__publicField(this, "configure", spyFactory12("configure"));
|
|
2206
|
+
__publicField(this, "isEmeSupported", spyFactory12("isEmeSupported"));
|
|
2207
|
+
__publicField(this, "isSupported", spyFactory12("isSupported"));
|
|
2208
|
+
__publicField(this, "initializeForPlayback", spyFactory12("initializeForPlayback"));
|
|
2209
|
+
__publicField(this, "setBufferingDrmInfo", spyFactory12("setBufferingDrmInfo"));
|
|
2210
|
+
__publicField(this, "closeSessions", spyFactory12("closeSessions"));
|
|
2211
|
+
__publicField(this, "reset", spyFactory12("reset"));
|
|
2212
|
+
}
|
|
2213
|
+
};
|
|
2214
|
+
|
|
2215
|
+
// test/vinylTestUtil/mock/hls/mockHlsManifest.ts
|
|
2216
|
+
var mockMediaPlaylist = {
|
|
2217
|
+
version: 7,
|
|
2218
|
+
targetDuration: 6,
|
|
2219
|
+
mediaSequence: 1,
|
|
2220
|
+
playlistType: "VOD",
|
|
2221
|
+
ended: true,
|
|
2222
|
+
segments: [
|
|
2223
|
+
{
|
|
2224
|
+
uri: "segment0.mp4",
|
|
2225
|
+
duration: 6,
|
|
2226
|
+
sequenceNumber: 1,
|
|
2227
|
+
discontinuity: false,
|
|
2228
|
+
map: { uri: "init.mp4" }
|
|
2229
|
+
},
|
|
2230
|
+
{
|
|
2231
|
+
uri: "segment1.mp4",
|
|
2232
|
+
duration: 6,
|
|
2233
|
+
sequenceNumber: 2,
|
|
2234
|
+
discontinuity: false,
|
|
2235
|
+
map: { uri: "init.mp4" }
|
|
2236
|
+
}
|
|
2237
|
+
],
|
|
2238
|
+
dateRanges: []
|
|
2239
|
+
};
|
|
2240
|
+
var mockMainPlaylist = {
|
|
2241
|
+
variants: [
|
|
2242
|
+
{
|
|
2243
|
+
bandwidth: 5e5,
|
|
2244
|
+
uri: "low/prog_index.m3u8",
|
|
2245
|
+
codecs: "avc1.640015,mp4a.40.2",
|
|
2246
|
+
width: 480,
|
|
2247
|
+
height: 270,
|
|
2248
|
+
frameRate: 30,
|
|
2249
|
+
audioGroup: "aud1"
|
|
2250
|
+
},
|
|
2251
|
+
{
|
|
2252
|
+
bandwidth: 1e6,
|
|
2253
|
+
uri: "high/prog_index.m3u8",
|
|
2254
|
+
codecs: "avc1.64001e,mp4a.40.2",
|
|
2255
|
+
width: 640,
|
|
2256
|
+
height: 360,
|
|
2257
|
+
frameRate: 30,
|
|
2258
|
+
audioGroup: "aud1"
|
|
2259
|
+
}
|
|
2260
|
+
],
|
|
2261
|
+
alternativeRenditions: [
|
|
2262
|
+
{
|
|
2263
|
+
type: "AUDIO",
|
|
2264
|
+
groupId: "aud1",
|
|
2265
|
+
name: "English",
|
|
2266
|
+
uri: "audio/prog_index.m3u8",
|
|
2267
|
+
language: "en",
|
|
2268
|
+
default: true,
|
|
2269
|
+
autoSelect: true
|
|
2270
|
+
}
|
|
2271
|
+
],
|
|
2272
|
+
sessionData: []
|
|
2273
|
+
};
|
|
2274
|
+
var mockHlsManifestData = {
|
|
2275
|
+
mainPlaylist: mockMainPlaylist,
|
|
2276
|
+
baseUrl: "https://example.com/main.m3u8",
|
|
2277
|
+
getMediaPlaylist: () => Promise.resolve(mockMediaPlaylist)
|
|
2278
|
+
};
|
|
2279
|
+
|
|
2280
|
+
// test/vinylTestUtil/mock/hls/MockHlsManifestController.ts
|
|
2281
|
+
import { createSpyFactory as createSpyFactory13 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2282
|
+
import {
|
|
2283
|
+
EventHostImpl as EventHostImpl2
|
|
2284
|
+
} from "@amazon/vinyl-util";
|
|
2285
|
+
import { data as data2 } from "@amazon/vinyl-observable";
|
|
2286
|
+
var spyFactory13 = createSpyFactory13();
|
|
2287
|
+
var MockHlsManifestController = class {
|
|
2288
|
+
constructor() {
|
|
2289
|
+
__publicField(this, "_data", data2(
|
|
2290
|
+
Promise.resolve(mockHlsManifestData)
|
|
2291
|
+
));
|
|
2292
|
+
__publicField(this, "events", new EventHostImpl2());
|
|
2293
|
+
__publicField(this, "refresh", spyFactory13("refresh"));
|
|
2294
|
+
__publicField(this, "reset", spyFactory13("reset"));
|
|
2295
|
+
__publicField(this, "__eventMapType", this.events.__eventMapType);
|
|
2296
|
+
}
|
|
2297
|
+
on(type, handler, options) {
|
|
2298
|
+
return this.events.on(type, handler, options);
|
|
2299
|
+
}
|
|
2300
|
+
hasAnyListeners() {
|
|
2301
|
+
return this.events.hasAnyListeners();
|
|
2302
|
+
}
|
|
2303
|
+
hasListeners(type) {
|
|
2304
|
+
return this.events.hasListeners(type);
|
|
2305
|
+
}
|
|
2306
|
+
get value() {
|
|
2307
|
+
return this._data.value;
|
|
2308
|
+
}
|
|
2309
|
+
get changeId() {
|
|
2310
|
+
return this._data.changeId;
|
|
2311
|
+
}
|
|
2312
|
+
getValue() {
|
|
2313
|
+
return this._data.getValue();
|
|
2314
|
+
}
|
|
2315
|
+
onData(callback) {
|
|
2316
|
+
return this._data.onData(callback);
|
|
2317
|
+
}
|
|
2318
|
+
map(transform) {
|
|
2319
|
+
return this._data.map(transform);
|
|
2320
|
+
}
|
|
2321
|
+
pick(prop) {
|
|
2322
|
+
return this._data.pick(prop);
|
|
2323
|
+
}
|
|
2324
|
+
setManifest(manifest) {
|
|
2325
|
+
this._data.value = manifest;
|
|
2326
|
+
}
|
|
2327
|
+
};
|
|
2328
|
+
|
|
2329
|
+
// test/vinylTestUtil/mock/logging/MockHistoryLogHandler.ts
|
|
2330
|
+
import { LogLevel } from "@amazon/vinyl-util";
|
|
2331
|
+
import { createSpyFactory as createSpyFactory14 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2332
|
+
var spyFactory14 = createSpyFactory14();
|
|
2333
|
+
var MockHistoryLogHandler = class {
|
|
2334
|
+
constructor() {
|
|
2335
|
+
__publicField(this, "logLevel", LogLevel.DEBUG);
|
|
2336
|
+
__publicField(this, "maxHistorySize", 0);
|
|
2337
|
+
__publicField(this, "history", []);
|
|
2338
|
+
__publicField(this, "clear", spyFactory14("clear"));
|
|
2339
|
+
}
|
|
2340
|
+
};
|
|
2341
|
+
|
|
2342
|
+
// test/vinylTestUtil/mock/playback/MockLoudnessNormalizationController.ts
|
|
2343
|
+
import { createSpyFactory as createSpyFactory15 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2344
|
+
import { MockEventHost as MockEventHost4 } from "@amazon/vinyl-util/testUtil";
|
|
2345
|
+
var spyFactory15 = createSpyFactory15();
|
|
2346
|
+
var MockLoudnessNormalizationController = class extends MockEventHost4 {
|
|
2347
|
+
constructor() {
|
|
2348
|
+
super(...arguments);
|
|
2349
|
+
__publicField(this, "gain", 1);
|
|
2350
|
+
__publicField(this, "setTrackLoudness", spyFactory15("setTrackLoudness"));
|
|
2351
|
+
__publicField(this, "clear", spyFactory15("clear"));
|
|
2352
|
+
}
|
|
2353
|
+
};
|
|
2354
|
+
|
|
2355
|
+
// test/vinylTestUtil/mock/playback/MockPlaybackController.ts
|
|
2356
|
+
import { PlaybackNetworkState, PlaybackReadyState } from "@amazon/vinyl";
|
|
2357
|
+
import { RangesImpl } from "@amazon/vinyl-util";
|
|
2358
|
+
import { createSpyFactory as createSpyFactory16 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2359
|
+
import { MockEventHost as MockEventHost5 } from "@amazon/vinyl-util/testUtil";
|
|
2360
|
+
var spyFactory16 = createSpyFactory16();
|
|
2361
|
+
var MockPlaybackController = class extends MockEventHost5 {
|
|
2362
|
+
constructor() {
|
|
2363
|
+
super(...arguments);
|
|
2364
|
+
__publicField(this, "buffered", new RangesImpl());
|
|
2365
|
+
__publicField(this, "canPlay", false);
|
|
2366
|
+
__publicField(this, "canPlayThrough", false);
|
|
2367
|
+
__publicField(this, "currentTime", 0);
|
|
2368
|
+
__publicField(this, "currentTimePercent", 0);
|
|
2369
|
+
__publicField(this, "defaultPlaybackRate", 0);
|
|
2370
|
+
__publicField(this, "duration", 0);
|
|
2371
|
+
__publicField(this, "ended", false);
|
|
2372
|
+
__publicField(this, "error", null);
|
|
2373
|
+
__publicField(this, "hasMetadata", false);
|
|
2374
|
+
__publicField(this, "loop", false);
|
|
2375
|
+
__publicField(this, "muted", false);
|
|
2376
|
+
__publicField(this, "networkState", PlaybackNetworkState.NETWORK_IDLE);
|
|
2377
|
+
__publicField(this, "pause", spyFactory16("pause"));
|
|
2378
|
+
__publicField(this, "paused", false);
|
|
2379
|
+
__publicField(this, "play", spyFactory16("play"));
|
|
2380
|
+
__publicField(this, "playIsPending", false);
|
|
2381
|
+
__publicField(this, "playbackRate", 0);
|
|
2382
|
+
__publicField(this, "playing", false);
|
|
2383
|
+
__publicField(this, "preservesPitch", true);
|
|
2384
|
+
__publicField(this, "readyState", PlaybackReadyState.HAVE_NOTHING);
|
|
2385
|
+
__publicField(this, "reset", spyFactory16("reset"));
|
|
2386
|
+
__publicField(this, "seekTo", spyFactory16("seekTo"));
|
|
2387
|
+
__publicField(this, "seekable", new RangesImpl());
|
|
2388
|
+
__publicField(this, "seeking", false);
|
|
2389
|
+
__publicField(this, "volume", 0);
|
|
2390
|
+
__publicField(this, "waiting", false);
|
|
2391
|
+
}
|
|
2392
|
+
};
|
|
2393
|
+
|
|
2394
|
+
// test/vinylTestUtil/mock/playback/MockPlaybackSource.ts
|
|
2395
|
+
import { createSpyFactory as createSpyFactory17 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2396
|
+
var spyFactory17 = createSpyFactory17();
|
|
2397
|
+
var MockPlaybackSource = class {
|
|
2398
|
+
constructor() {
|
|
2399
|
+
__publicField(this, "crossOrigin", null);
|
|
2400
|
+
__publicField(this, "currentSrc", "");
|
|
2401
|
+
__publicField(this, "src", null);
|
|
2402
|
+
__publicField(this, "srcObject", null);
|
|
2403
|
+
__publicField(this, "disableRemotePlayback", false);
|
|
2404
|
+
__publicField(this, "load", spyFactory17("load"));
|
|
2405
|
+
}
|
|
2406
|
+
};
|
|
2407
|
+
|
|
2408
|
+
// test/vinylTestUtil/mock/player/MockVinylPlayerDependencies.ts
|
|
2409
|
+
import {
|
|
2410
|
+
defaultVinylOptions
|
|
2411
|
+
} from "@amazon/vinyl";
|
|
2412
|
+
|
|
2413
|
+
// test/vinylTestUtil/mock/track/MockTrackController.ts
|
|
2414
|
+
import { createSpyFactory as createSpyFactory18 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2415
|
+
import { MockEventHost as MockEventHost6 } from "@amazon/vinyl-util/testUtil";
|
|
2416
|
+
var spyFactory18 = createSpyFactory18();
|
|
2417
|
+
var MockTrackController = class extends MockEventHost6 {
|
|
2418
|
+
constructor() {
|
|
2419
|
+
super(...arguments);
|
|
2420
|
+
__publicField(this, "activeTrack", null);
|
|
2421
|
+
__publicField(this, "currentAdTrack", null);
|
|
2422
|
+
__publicField(this, "queue", []);
|
|
2423
|
+
__publicField(this, "clearPrefetch", spyFactory18("clearPrefetch"));
|
|
2424
|
+
__publicField(this, "clearQueue", spyFactory18("clearQueue"));
|
|
2425
|
+
__publicField(this, "clearTrackCache", spyFactory18("clearTrackCache"));
|
|
2426
|
+
__publicField(this, "enqueue", spyFactory18("enqueue"));
|
|
2427
|
+
__publicField(this, "getCachedTrack", spyFactory18("getCachedTrack"));
|
|
2428
|
+
__publicField(this, "getCachedTracks", spyFactory18("getCachedTracks"));
|
|
2429
|
+
__publicField(this, "hasNext", spyFactory18("hasNext"));
|
|
2430
|
+
__publicField(this, "isTrackCached", spyFactory18("isTrackCached"));
|
|
2431
|
+
__publicField(this, "load", spyFactory18("load"));
|
|
2432
|
+
__publicField(this, "next", spyFactory18("next"));
|
|
2433
|
+
__publicField(this, "preload", spyFactory18("preload"));
|
|
2434
|
+
__publicField(this, "unload", spyFactory18("unload"));
|
|
2435
|
+
__publicField(this, "reset", spyFactory18("reset"));
|
|
2436
|
+
}
|
|
2437
|
+
};
|
|
2438
|
+
|
|
2439
|
+
// test/vinylTestUtil/mock/track/dash/createMockDashDependencies.ts
|
|
2440
|
+
import {
|
|
2441
|
+
createEmptyMediaQualityMetadata,
|
|
2442
|
+
defaultQualitySelectorImplOptions
|
|
2443
|
+
} from "@amazon/vinyl";
|
|
2444
|
+
|
|
2445
|
+
// test/vinylTestUtil/mock/streaming/buffering/MockMediaSourceController.ts
|
|
2446
|
+
import { createSpyFactory as createSpyFactory19 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2447
|
+
import { MockEventHost as MockEventHost7 } from "@amazon/vinyl-util/testUtil";
|
|
2448
|
+
var spyFactory19 = createSpyFactory19();
|
|
2449
|
+
var MockMediaSourceController = class extends MockEventHost7 {
|
|
2450
|
+
constructor() {
|
|
2451
|
+
super(...arguments);
|
|
2452
|
+
__publicField(this, "readyState", "closed");
|
|
2453
|
+
__publicField(this, "createSourceBuffer", spyFactory19("createSourceBuffer"));
|
|
2454
|
+
__publicField(this, "endOfStream", spyFactory19("endOfStream"));
|
|
2455
|
+
__publicField(this, "activate", spyFactory19("activate"));
|
|
2456
|
+
__publicField(this, "deactivate", spyFactory19("deactivate"));
|
|
2457
|
+
__publicField(this, "readyToAppend", false);
|
|
2458
|
+
}
|
|
2459
|
+
};
|
|
2460
|
+
|
|
2461
|
+
// test/vinylTestUtil/mock/streaming/MockContentStream.ts
|
|
2462
|
+
import { createSpyFactory as createSpyFactory20 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2463
|
+
import { MockEventHost as MockEventHost8 } from "@amazon/vinyl-util/testUtil";
|
|
2464
|
+
import { RangesImpl as RangesImpl2 } from "@amazon/vinyl-util";
|
|
2465
|
+
var spyFactory20 = createSpyFactory20();
|
|
2466
|
+
var MockContentStream = class extends MockEventHost8 {
|
|
2467
|
+
constructor() {
|
|
2468
|
+
super(...arguments);
|
|
2469
|
+
__publicField(this, "contentType", "audio");
|
|
2470
|
+
__publicField(this, "bufferingQuality", null);
|
|
2471
|
+
__publicField(this, "error", null);
|
|
2472
|
+
__publicField(this, "fetchedRanges", new RangesImpl2());
|
|
2473
|
+
__publicField(this, "playbackQuality", null);
|
|
2474
|
+
__publicField(this, "streamingQuality", null);
|
|
2475
|
+
__publicField(this, "bufferingEnded", false);
|
|
2476
|
+
__publicField(this, "hasData", false);
|
|
2477
|
+
__publicField(this, "clearPrefetch", spyFactory20("clearPrefetch"));
|
|
2478
|
+
__publicField(this, "activate", spyFactory20("activate"));
|
|
2479
|
+
__publicField(this, "deactivate", spyFactory20("deactivate"));
|
|
2480
|
+
__publicField(this, "preload", spyFactory20("preload"));
|
|
2481
|
+
__publicField(this, "reset", spyFactory20("reset"));
|
|
2482
|
+
}
|
|
2483
|
+
};
|
|
2484
|
+
|
|
2485
|
+
// test/vinylTestUtil/mock/text/MockTextTrackController.ts
|
|
2486
|
+
import { MockEventHost as MockEventHost9 } from "@amazon/vinyl-util/testUtil";
|
|
2487
|
+
import { createSpyFactory as createSpyFactory21 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2488
|
+
var spyFactory21 = createSpyFactory21();
|
|
2489
|
+
var MockTextTrackController = class extends MockEventHost9 {
|
|
2490
|
+
constructor() {
|
|
2491
|
+
super(...arguments);
|
|
2492
|
+
__publicField(this, "textTracks", []);
|
|
2493
|
+
__publicField(this, "activeTextTrack", null);
|
|
2494
|
+
__publicField(this, "setActiveTextTrack", spyFactory21("setActiveTextTrack"));
|
|
2495
|
+
__publicField(this, "suspend", spyFactory21("suspend"));
|
|
2496
|
+
__publicField(this, "resume", spyFactory21("resume"));
|
|
2497
|
+
}
|
|
2498
|
+
};
|
|
2499
|
+
|
|
2500
|
+
// test/vinylTestUtil/mock/track/dash/createMockDashDependencies.ts
|
|
2501
|
+
import { createSpyFactory as createSpyFactory22 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2502
|
+
import { data as data3 } from "@amazon/vinyl-observable";
|
|
2503
|
+
var createSpy = jasmine.createSpy;
|
|
2504
|
+
var emptyTimeline = {
|
|
2505
|
+
periods: [],
|
|
2506
|
+
minBufferTime: 0,
|
|
2507
|
+
getAdBreaks: () => Promise.resolve([]),
|
|
2508
|
+
getDuration: () => Promise.resolve(Infinity)
|
|
2509
|
+
};
|
|
2510
|
+
var spyFactory22 = createSpyFactory22();
|
|
2511
|
+
function createMockDashDependencies() {
|
|
2512
|
+
const playbackController = new MockPlaybackController();
|
|
2513
|
+
playbackController.seekTo.and.resolveTo(void 0);
|
|
2514
|
+
const manifestController = new MockDashManifestController();
|
|
2515
|
+
return {
|
|
2516
|
+
textTrackController: new MockTextTrackController(),
|
|
2517
|
+
contentTypesValue: data3(Promise.resolve(/* @__PURE__ */ new Set())),
|
|
2518
|
+
contentStreamFactory: spyFactory22("contentStreamFactory").and.callFake(
|
|
2519
|
+
(contentType) => {
|
|
2520
|
+
const stream = new MockContentStream();
|
|
2521
|
+
stream.contentType = contentType;
|
|
2522
|
+
return stream;
|
|
2523
|
+
}
|
|
2524
|
+
),
|
|
2525
|
+
manifestController,
|
|
2526
|
+
manifestTransformed: manifestController,
|
|
2527
|
+
mediaTimeline: data3(Promise.resolve(emptyTimeline)),
|
|
2528
|
+
mediaTimelineTransformed: data3(Promise.resolve(emptyTimeline)),
|
|
2529
|
+
mediaSourceController: new MockMediaSourceController(),
|
|
2530
|
+
playbackSource: new MockPlaybackSource(),
|
|
2531
|
+
playbackController,
|
|
2532
|
+
drmController: new MockDrmController(),
|
|
2533
|
+
mediaQualityMetadataResolver: createSpy().and.callFake(
|
|
2534
|
+
() => createEmptyMediaQualityMetadata()
|
|
2535
|
+
),
|
|
2536
|
+
preferredAudioLanguage: data3(null),
|
|
2537
|
+
allowedContentTypes: data3(null),
|
|
2538
|
+
preferDescriptiveAudio: data3(false),
|
|
2539
|
+
abr: data3(defaultQualitySelectorImplOptions)
|
|
2540
|
+
};
|
|
2541
|
+
}
|
|
2542
|
+
|
|
2543
|
+
// test/vinylTestUtil/mock/track/MockAutoResetController.ts
|
|
2544
|
+
import { createSpyFactory as createSpyFactory23 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2545
|
+
import { MockEventHost as MockEventHost10 } from "@amazon/vinyl-util/testUtil";
|
|
2546
|
+
var spyFactory23 = createSpyFactory23();
|
|
2547
|
+
var MockAutoResetController = class extends MockEventHost10 {
|
|
2548
|
+
constructor() {
|
|
2549
|
+
super(...arguments);
|
|
2550
|
+
__publicField(this, "setError", spyFactory23("setError"));
|
|
2551
|
+
__publicField(this, "clear", spyFactory23("clear"));
|
|
2552
|
+
__publicField(this, "resetPending", false);
|
|
2553
|
+
}
|
|
2554
|
+
};
|
|
2555
|
+
|
|
2556
|
+
// test/vinylTestUtil/mock/player/MockVinylPlayerDependencies.ts
|
|
2557
|
+
import { externalDependencies } from "@amazon/vinyl-di";
|
|
2558
|
+
import { noop as noop2 } from "@amazon/vinyl-util";
|
|
2559
|
+
import { data as data4 } from "@amazon/vinyl-observable";
|
|
2560
|
+
var createSpy2 = jasmine.createSpy;
|
|
2561
|
+
function createMockVinylDependencies() {
|
|
2562
|
+
const playbackController = new MockPlaybackController();
|
|
2563
|
+
return {
|
|
2564
|
+
options: data4(defaultVinylOptions),
|
|
2565
|
+
trackController: new MockTrackController(),
|
|
2566
|
+
playbackSource: new MockPlaybackSource(),
|
|
2567
|
+
playbackController,
|
|
2568
|
+
capabilities: new MockCapabilities(),
|
|
2569
|
+
drmController: new MockDrmController(),
|
|
2570
|
+
media: createMockMedia(),
|
|
2571
|
+
createDashFactories: (_loadOptions) => externalDependencies(createMockDashDependencies()),
|
|
2572
|
+
createHlsFactories: (_loadOptions) => externalDependencies(createMockDashDependencies()),
|
|
2573
|
+
autoResetController: new MockAutoResetController(),
|
|
2574
|
+
adController: new MockAdController(),
|
|
2575
|
+
requestInterceptor: noop2,
|
|
2576
|
+
drmKeySystemResolver: createSpy2(
|
|
2577
|
+
"drmKeySystemResolver"
|
|
2578
|
+
).and.returnValue([])
|
|
2579
|
+
};
|
|
2580
|
+
}
|
|
2581
|
+
function createMockMedia() {
|
|
2582
|
+
return {
|
|
2583
|
+
addTextTrack() {
|
|
2584
|
+
return {
|
|
2585
|
+
cues: { length: 0 },
|
|
2586
|
+
mode: "disabled",
|
|
2587
|
+
addCue() {
|
|
2588
|
+
},
|
|
2589
|
+
removeCue() {
|
|
2590
|
+
}
|
|
2591
|
+
};
|
|
2592
|
+
}
|
|
2593
|
+
};
|
|
2594
|
+
}
|
|
2595
|
+
|
|
2596
|
+
// test/vinylTestUtil/mock/streaming/abr/MockQualitySelector.ts
|
|
2597
|
+
import { createSpyFactory as createSpyFactory24 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2598
|
+
var spyFactory24 = createSpyFactory24();
|
|
2599
|
+
var MockQualitySelector = class {
|
|
2600
|
+
constructor() {
|
|
2601
|
+
__publicField(this, "selectQuality", spyFactory24("selectQuality"));
|
|
2602
|
+
}
|
|
2603
|
+
};
|
|
2604
|
+
|
|
2605
|
+
// test/vinylTestUtil/mock/streaming/buffering/MockBufferingController.ts
|
|
2606
|
+
import { createSpyFactory as createSpyFactory25 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2607
|
+
import { MockEventHost as MockEventHost11 } from "@amazon/vinyl-util/testUtil";
|
|
2608
|
+
var spyFactory25 = createSpyFactory25();
|
|
2609
|
+
var MockBufferingController = class extends MockEventHost11 {
|
|
2610
|
+
constructor() {
|
|
2611
|
+
super(...arguments);
|
|
2612
|
+
__publicField(this, "error", null);
|
|
2613
|
+
__publicField(this, "active", false);
|
|
2614
|
+
__publicField(this, "bufferingEnded", false);
|
|
2615
|
+
__publicField(this, "hasData", false);
|
|
2616
|
+
__publicField(this, "playbackQuality", null);
|
|
2617
|
+
__publicField(this, "bufferingQuality", null);
|
|
2618
|
+
__publicField(this, "activate", spyFactory25("activate"));
|
|
2619
|
+
__publicField(this, "deactivate", spyFactory25("deactivate"));
|
|
2620
|
+
__publicField(this, "clear", spyFactory25("clear"));
|
|
2621
|
+
__publicField(this, "reset", spyFactory25("reset"));
|
|
2622
|
+
}
|
|
2623
|
+
};
|
|
2624
|
+
|
|
2625
|
+
// test/vinylTestUtil/mock/streaming/buffering/MockSourceBufferController.ts
|
|
2626
|
+
import { createSpyFactory as createSpyFactory26 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2627
|
+
import { RangesImpl as RangesImpl3 } from "@amazon/vinyl-util";
|
|
2628
|
+
var spyFactory26 = createSpyFactory26();
|
|
2629
|
+
var MockSourceBufferController = class {
|
|
2630
|
+
constructor() {
|
|
2631
|
+
__publicField(this, "buffered", new RangesImpl3());
|
|
2632
|
+
__publicField(this, "append", spyFactory26("append"));
|
|
2633
|
+
__publicField(this, "appendInit", spyFactory26("appendInit"));
|
|
2634
|
+
__publicField(this, "clear", spyFactory26("clear"));
|
|
2635
|
+
__publicField(this, "enqueue", spyFactory26("enqueue"));
|
|
2636
|
+
__publicField(this, "isBusy", spyFactory26("isBusy"));
|
|
2637
|
+
__publicField(this, "remove", spyFactory26("remove"));
|
|
2638
|
+
__publicField(this, "setAppendWindow", spyFactory26("setAppendWindow"));
|
|
2639
|
+
__publicField(this, "setTimestampOffset", spyFactory26("setTimestampOffset"));
|
|
2640
|
+
__publicField(this, "dispose", spyFactory26("dispose"));
|
|
2641
|
+
}
|
|
2642
|
+
};
|
|
2643
|
+
|
|
2644
|
+
// test/vinylTestUtil/mock/streaming/MockSegmentController.ts
|
|
2645
|
+
import { createSpyFactory as createSpyFactory27 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2646
|
+
import { emptyRanges } from "@amazon/vinyl-util";
|
|
2647
|
+
import { MockEventHost as MockEventHost12 } from "@amazon/vinyl-util/testUtil";
|
|
2648
|
+
var spyFactory27 = createSpyFactory27();
|
|
2649
|
+
var MockSegmentController = class extends MockEventHost12 {
|
|
2650
|
+
constructor() {
|
|
2651
|
+
super(...arguments);
|
|
2652
|
+
__publicField(this, "error", null);
|
|
2653
|
+
__publicField(this, "configure", spyFactory27("configure"));
|
|
2654
|
+
__publicField(this, "fetchedRanges", emptyRanges);
|
|
2655
|
+
__publicField(this, "activate", spyFactory27("activate"));
|
|
2656
|
+
__publicField(this, "clear", spyFactory27("clear"));
|
|
2657
|
+
__publicField(this, "deactivate", spyFactory27("deactivate"));
|
|
2658
|
+
__publicField(this, "getSegment", spyFactory27("getSegment"));
|
|
2659
|
+
__publicField(this, "streamingQuality", null);
|
|
2660
|
+
__publicField(this, "reset", spyFactory27("reset"));
|
|
2661
|
+
}
|
|
2662
|
+
};
|
|
2663
|
+
|
|
2664
|
+
// test/vinylTestUtil/mock/track/hls/createMockHlsDependencies.ts
|
|
2665
|
+
import {
|
|
2666
|
+
createEmptyMediaQualityMetadata as createEmptyMediaQualityMetadata2,
|
|
2667
|
+
defaultQualitySelectorImplOptions as defaultQualitySelectorImplOptions2
|
|
2668
|
+
} from "@amazon/vinyl";
|
|
2669
|
+
import { createSpyFactory as createSpyFactory28 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2670
|
+
import { data as data5 } from "@amazon/vinyl-observable";
|
|
2671
|
+
var createSpy3 = jasmine.createSpy;
|
|
2672
|
+
var emptyTimeline2 = {
|
|
2673
|
+
periods: [],
|
|
2674
|
+
minBufferTime: 0,
|
|
2675
|
+
getAdBreaks: () => Promise.resolve([]),
|
|
2676
|
+
getDuration: () => Promise.resolve(Infinity)
|
|
2677
|
+
};
|
|
2678
|
+
var spyFactory28 = createSpyFactory28();
|
|
2679
|
+
function createMockHlsDependencies() {
|
|
2680
|
+
const playbackController = new MockPlaybackController();
|
|
2681
|
+
playbackController.seekTo.and.resolveTo(void 0);
|
|
2682
|
+
const manifestController = new MockHlsManifestController();
|
|
2683
|
+
return {
|
|
2684
|
+
contentTypesValue: data5(Promise.resolve(/* @__PURE__ */ new Set())),
|
|
2685
|
+
contentStreamFactory: spyFactory28("contentStreamFactory").and.callFake(
|
|
2686
|
+
(contentType) => {
|
|
2687
|
+
const stream = new MockContentStream();
|
|
2688
|
+
stream.contentType = contentType;
|
|
2689
|
+
return stream;
|
|
2690
|
+
}
|
|
2691
|
+
),
|
|
2692
|
+
manifestController,
|
|
2693
|
+
manifestTransformed: manifestController.map((v) => v),
|
|
2694
|
+
mediaTimeline: data5(Promise.resolve(emptyTimeline2)),
|
|
2695
|
+
mediaTimelineTransformed: data5(Promise.resolve(emptyTimeline2)),
|
|
2696
|
+
mediaSourceController: new MockMediaSourceController(),
|
|
2697
|
+
playbackSource: new MockPlaybackSource(),
|
|
2698
|
+
playbackController,
|
|
2699
|
+
drmController: new MockDrmController(),
|
|
2700
|
+
mediaQualityMetadataResolver: createSpy3().and.callFake(
|
|
2701
|
+
() => createEmptyMediaQualityMetadata2()
|
|
2702
|
+
),
|
|
2703
|
+
preferredAudioLanguage: data5(null),
|
|
2704
|
+
allowedContentTypes: data5(null),
|
|
2705
|
+
preferDescriptiveAudio: data5(false),
|
|
2706
|
+
abr: data5(defaultQualitySelectorImplOptions2)
|
|
2707
|
+
};
|
|
2708
|
+
}
|
|
2709
|
+
|
|
2710
|
+
// test/vinylTestUtil/mock/track/MockTrack.ts
|
|
2711
|
+
import { RangesImpl as RangesImpl4 } from "@amazon/vinyl-util";
|
|
2712
|
+
import { createSpyFactory as createSpyFactory29 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2713
|
+
import { MockEventHost as MockEventHost13 } from "@amazon/vinyl-util/testUtil";
|
|
2714
|
+
var spyFactory29 = createSpyFactory29();
|
|
2715
|
+
var MockTrack = class extends MockEventHost13 {
|
|
2716
|
+
constructor() {
|
|
2717
|
+
super(...arguments);
|
|
2718
|
+
__publicField(this, "ads", null);
|
|
2719
|
+
__publicField(this, "uri", "");
|
|
2720
|
+
__publicField(this, "type", "");
|
|
2721
|
+
__publicField(this, "active", false);
|
|
2722
|
+
__publicField(this, "fetchedRanges", new RangesImpl4());
|
|
2723
|
+
__publicField(this, "preload", spyFactory29("preload"));
|
|
2724
|
+
__publicField(this, "contentTypes", /* @__PURE__ */ new Set());
|
|
2725
|
+
__publicField(this, "qualities", null);
|
|
2726
|
+
__publicField(this, "qualitiesUnfiltered", null);
|
|
2727
|
+
__publicField(this, "getStreamingQuality", spyFactory29("getStreamingQuality"));
|
|
2728
|
+
__publicField(this, "getBufferingQuality", spyFactory29("getBufferingQuality"));
|
|
2729
|
+
__publicField(this, "getPlaybackQuality", spyFactory29("getPlaybackQuality"));
|
|
2730
|
+
__publicField(this, "extra");
|
|
2731
|
+
__publicField(this, "error", null);
|
|
2732
|
+
__publicField(this, "textTrackController", null);
|
|
2733
|
+
__publicField(this, "adController", null);
|
|
2734
|
+
__publicField(this, "seekRange", null);
|
|
2735
|
+
__publicField(this, "activate", spyFactory29("activate"));
|
|
2736
|
+
__publicField(this, "deactivate", spyFactory29("deactivate"));
|
|
2737
|
+
__publicField(this, "clearPrefetch", spyFactory29("clearPrefetch"));
|
|
2738
|
+
__publicField(this, "reset", spyFactory29("reset"));
|
|
2739
|
+
__publicField(this, "disposed", false);
|
|
2740
|
+
}
|
|
2741
|
+
get [Symbol.toStringTag]() {
|
|
2742
|
+
return `MockTrack(${this.uri})`;
|
|
2743
|
+
}
|
|
2744
|
+
/**
|
|
2745
|
+
* Resolves the track's ads. Mirrors the real async `getAds()` contract; the
|
|
2746
|
+
* `ads` field is the backing value (defaulting to an empty break list).
|
|
2747
|
+
*/
|
|
2748
|
+
getAds() {
|
|
2749
|
+
var _a2;
|
|
2750
|
+
return Promise.resolve((_a2 = this.ads) != null ? _a2 : { trackUri: this.uri, adBreaks: [] });
|
|
2751
|
+
}
|
|
2752
|
+
/**
|
|
2753
|
+
* Installs fakes for activate and deactivate to set active status.
|
|
2754
|
+
*/
|
|
2755
|
+
implementActivateFakes() {
|
|
2756
|
+
this.activate.and.callFake(() => {
|
|
2757
|
+
this.active = true;
|
|
2758
|
+
});
|
|
2759
|
+
this.deactivate.and.callFake(() => {
|
|
2760
|
+
this.active = false;
|
|
2761
|
+
});
|
|
2762
|
+
}
|
|
2763
|
+
};
|
|
2764
|
+
|
|
2765
|
+
// test/vinylTestUtil/mock/track/MockTrackFactory.ts
|
|
2766
|
+
import { createSpyFactory as createSpyFactory30 } from "@amazon/vinyl-util/browserTestUtil";
|
|
2767
|
+
var MockTrackFactory = class {
|
|
2768
|
+
constructor() {
|
|
2769
|
+
__publicField(this, "spyFactory", createSpyFactory30());
|
|
2770
|
+
__publicField(this, "validate", this.spyFactory("validate"));
|
|
2771
|
+
__publicField(this, "createTrack", this.spyFactory("createTrack"));
|
|
2772
|
+
}
|
|
2773
|
+
};
|
|
2774
|
+
|
|
2775
|
+
// test/vinylTestUtil/player/createVinylSuite.ts
|
|
2776
|
+
import {
|
|
2777
|
+
createVinylPlayer
|
|
2778
|
+
} from "@amazon/vinyl";
|
|
2779
|
+
import {
|
|
2780
|
+
createDisposer,
|
|
2781
|
+
logError,
|
|
2782
|
+
toJson
|
|
2783
|
+
} from "@amazon/vinyl-util";
|
|
2784
|
+
import {
|
|
2785
|
+
createLogPrefix as createLogPrefix2,
|
|
2786
|
+
createRequester,
|
|
2787
|
+
getGlobalRegistry,
|
|
2788
|
+
IllegalStateError as IllegalStateError2,
|
|
2789
|
+
logDebug as logDebug2,
|
|
2790
|
+
requesterWithRetryRef,
|
|
2791
|
+
RetryStrategy
|
|
2792
|
+
} from "@amazon/vinyl-util";
|
|
2793
|
+
import { setTestTimeout } from "@amazon/vinyl-util/browserTestUtil";
|
|
2794
|
+
var VinylSuite = class {
|
|
2795
|
+
constructor(playerFactory, options) {
|
|
2796
|
+
__publicField(this, "playerFactory", playerFactory);
|
|
2797
|
+
__publicField(this, "options", options);
|
|
2798
|
+
__publicField(this, "logPrefix", createLogPrefix2(this));
|
|
2799
|
+
__publicField(this, "_player", null);
|
|
2800
|
+
__publicField(this, "visibilityChangeHandler", () => {
|
|
2801
|
+
if (document.visibilityState === "hidden") {
|
|
2802
|
+
fail("The window must remain visible during the tests.");
|
|
2803
|
+
}
|
|
2804
|
+
});
|
|
2805
|
+
}
|
|
2806
|
+
get [Symbol.toStringTag]() {
|
|
2807
|
+
return "VinylSuite";
|
|
2808
|
+
}
|
|
2809
|
+
get player() {
|
|
2810
|
+
if (!this._player)
|
|
2811
|
+
throw new IllegalStateError2(
|
|
2812
|
+
"player cannot be accessed outside of a test"
|
|
2813
|
+
);
|
|
2814
|
+
return this._player;
|
|
2815
|
+
}
|
|
2816
|
+
/**
|
|
2817
|
+
* Initializes jasmine test setup.
|
|
2818
|
+
*/
|
|
2819
|
+
init() {
|
|
2820
|
+
var _a2, _b;
|
|
2821
|
+
let playerSub = null;
|
|
2822
|
+
setTestTimeout((_b = (_a2 = this.options) == null ? void 0 : _a2.timeout) != null ? _b : 60);
|
|
2823
|
+
beforeEach(() => {
|
|
2824
|
+
var _a3;
|
|
2825
|
+
const { add, dispose } = createDisposer();
|
|
2826
|
+
playerSub = dispose;
|
|
2827
|
+
requesterWithRetryRef.set(
|
|
2828
|
+
() => createRequester({
|
|
2829
|
+
retryOptions: __spreadProps(__spreadValues({}, RetryStrategy.ONE_RETRY), { retries: 3 })
|
|
2830
|
+
})
|
|
2831
|
+
);
|
|
2832
|
+
document.addEventListener(
|
|
2833
|
+
"visibilitychange",
|
|
2834
|
+
this.visibilityChangeHandler
|
|
2835
|
+
);
|
|
2836
|
+
this._player = this.playerFactory();
|
|
2837
|
+
add(
|
|
2838
|
+
this._player.on("error", (e) => {
|
|
2839
|
+
logError(this, "player emitted error event", toJson(e));
|
|
2840
|
+
})
|
|
2841
|
+
);
|
|
2842
|
+
if (((_a3 = this.options) == null ? void 0 : _a3.failOnError) !== false) {
|
|
2843
|
+
add(
|
|
2844
|
+
this._player.on("error", (e) => {
|
|
2845
|
+
fail(e.error);
|
|
2846
|
+
})
|
|
2847
|
+
);
|
|
2848
|
+
}
|
|
2849
|
+
});
|
|
2850
|
+
afterEach(() => {
|
|
2851
|
+
var _a3;
|
|
2852
|
+
logDebug2(this, "disposing");
|
|
2853
|
+
if (playerSub) playerSub();
|
|
2854
|
+
(_a3 = this._player) == null ? void 0 : _a3.dispose();
|
|
2855
|
+
this._player = null;
|
|
2856
|
+
document.removeEventListener(
|
|
2857
|
+
"visibilitychange",
|
|
2858
|
+
this.visibilityChangeHandler
|
|
2859
|
+
);
|
|
2860
|
+
getGlobalRegistry().reset();
|
|
2861
|
+
});
|
|
2862
|
+
}
|
|
2863
|
+
};
|
|
2864
|
+
function createVinylSuite(playerDependencyOptions, options) {
|
|
2865
|
+
const suite = new VinylSuite(() => {
|
|
2866
|
+
return createVinylPlayer(__spreadProps(__spreadValues({}, playerDependencyOptions), {
|
|
2867
|
+
media: mediaRef.value
|
|
2868
|
+
}));
|
|
2869
|
+
}, options);
|
|
2870
|
+
suite.init();
|
|
2871
|
+
return suite;
|
|
2872
|
+
}
|
|
2873
|
+
|
|
2874
|
+
// test/vinylTestUtil/util/playback/eventPromises.ts
|
|
2875
|
+
import {
|
|
2876
|
+
nextHasMetadata
|
|
2877
|
+
} from "@amazon/vinyl";
|
|
2878
|
+
import { nextEventAsPromise } from "@amazon/vinyl-util";
|
|
2879
|
+
async function onPlaying(playbackController, timeout = 10) {
|
|
2880
|
+
if (playbackController.playing) return Promise.resolve();
|
|
2881
|
+
return nextEventAsPromise(playbackController, "playing", {
|
|
2882
|
+
timeout,
|
|
2883
|
+
timeoutMessage: "playing timed out after {time}s"
|
|
2884
|
+
}).then(() => void 0);
|
|
2885
|
+
}
|
|
2886
|
+
async function onCanPlayThrough(playbackController, timeout = 20) {
|
|
2887
|
+
if (playbackController.canPlayThrough) return Promise.resolve();
|
|
2888
|
+
return nextEventAsPromise(playbackController, "canPlayThrough", {
|
|
2889
|
+
timeout,
|
|
2890
|
+
timeoutMessage: "canPlayThrough timed out after {time}s"
|
|
2891
|
+
}).then(() => void 0);
|
|
2892
|
+
}
|
|
2893
|
+
async function onEnded(playbackController, timeout = 10, metadataTimeout = 10) {
|
|
2894
|
+
if (playbackController.ended) return Promise.resolve();
|
|
2895
|
+
await nextHasMetadata(playbackController, { timeout: metadataTimeout });
|
|
2896
|
+
return nextEventAsPromise(playbackController, "ended", {
|
|
2897
|
+
// Set the timeout to be the remaining track duration plus a large margin of error for stalls and seek
|
|
2898
|
+
// inaccuracy.
|
|
2899
|
+
timeout: playbackController.duration - playbackController.currentTime + timeout,
|
|
2900
|
+
timeoutMessage: "ended timed out after {time}s"
|
|
2901
|
+
}).then(() => void 0);
|
|
2902
|
+
}
|
|
2903
|
+
function onTimeUpdate(playbackController, timeout = 10) {
|
|
2904
|
+
return nextEventAsPromise(playbackController, "timeUpdate", {
|
|
2905
|
+
timeout,
|
|
2906
|
+
timeoutMessage: "timeUpdate timed out after {time}s"
|
|
2907
|
+
});
|
|
2908
|
+
}
|
|
2909
|
+
function onDuration(playbackController, timeout = 10) {
|
|
2910
|
+
if (playbackController.duration > 0) return Promise.resolve();
|
|
2911
|
+
return nextEventAsPromise(playbackController, "durationChange", {
|
|
2912
|
+
timeout,
|
|
2913
|
+
timeoutMessage: "durationChange timed out after {time}s"
|
|
2914
|
+
}).then(() => void 0);
|
|
2915
|
+
}
|
|
2916
|
+
|
|
2917
|
+
// test/vinylTestUtil/util/playback/expectTrackCanSeek.ts
|
|
2918
|
+
import { getMinSeekableBufferDefault } from "@amazon/vinyl";
|
|
2919
|
+
import { noop as noop3 } from "@amazon/vinyl-util";
|
|
2920
|
+
import { createDisposer as createDisposer2 } from "@amazon/vinyl-util";
|
|
2921
|
+
import { closeTo as closeTo2 } from "@amazon/vinyl-util";
|
|
2922
|
+
import { clamp } from "@amazon/vinyl-util";
|
|
2923
|
+
import { createEventSpy } from "@amazon/vinyl-util/testUtil";
|
|
2924
|
+
|
|
2925
|
+
// test/vinylTestUtil/util/playback/playbackStateExpectations.ts
|
|
2926
|
+
import { sleep as sleep2 } from "@amazon/vinyl-util";
|
|
2927
|
+
import { nextEventAsPromise as nextEventAsPromise2 } from "@amazon/vinyl-util";
|
|
2928
|
+
import { closeTo } from "@amazon/vinyl-util";
|
|
2929
|
+
import { expectNothing } from "@amazon/vinyl-util/browserTestUtil";
|
|
2930
|
+
async function expectTimeDoesNotElapse(player) {
|
|
2931
|
+
const startTime = player.currentTime;
|
|
2932
|
+
await sleep2(0.5);
|
|
2933
|
+
if (closeTo(player.currentTime, startTime, 0.1)) {
|
|
2934
|
+
expectNothing();
|
|
2935
|
+
} else {
|
|
2936
|
+
await sleep2(2);
|
|
2937
|
+
expect(player.currentTime).withContext("expectTimeDoesNotElapse").toBeCloseToWithin(startTime, 0.3);
|
|
2938
|
+
}
|
|
2939
|
+
}
|
|
2940
|
+
async function expectTimeElapses(player) {
|
|
2941
|
+
const minTimeDelta = 0.5;
|
|
2942
|
+
const startTime = player.currentTime;
|
|
2943
|
+
await nextEventAsPromise2(player, "timeUpdate", {
|
|
2944
|
+
filter: () => player.currentTime > startTime + minTimeDelta,
|
|
2945
|
+
timeout: 4,
|
|
2946
|
+
timeoutMessage: `currentTime did not progress at least ${minTimeDelta}s after {time} seconds.`
|
|
2947
|
+
});
|
|
2948
|
+
}
|
|
2949
|
+
function expectPausedState(player) {
|
|
2950
|
+
expect(player.paused).withContext("paused").toBeTrue();
|
|
2951
|
+
expect(player.playing).withContext("not playing").toBeFalse();
|
|
2952
|
+
}
|
|
2953
|
+
function expectPlayingState(player) {
|
|
2954
|
+
expect(player.playIsPending).withContext("not pending play").toBeFalse();
|
|
2955
|
+
expect(player.paused).withContext("not paused").toBeFalse();
|
|
2956
|
+
expect(player.playing).withContext("playing").toBeTrue();
|
|
2957
|
+
}
|
|
2958
|
+
function expectPendingPlaying(player) {
|
|
2959
|
+
expect(player.playIsPending).withContext("pending play").toBeTrue();
|
|
2960
|
+
expect(player.playing).withContext("pending, not playing").toBeFalse();
|
|
2961
|
+
}
|
|
2962
|
+
|
|
2963
|
+
// test/vinylTestUtil/util/playback/expectTrackCanSeek.ts
|
|
2964
|
+
async function expectTrackCanSeekTo(player, time) {
|
|
2965
|
+
const tolerance = 0.5;
|
|
2966
|
+
const { dispose, add } = createDisposer2();
|
|
2967
|
+
const playedSpy = add(createEventSpy(player, "played"));
|
|
2968
|
+
const seekingSpy = add(createEventSpy(player, "seeking"));
|
|
2969
|
+
const seekedSpy = add(createEventSpy(player, "seeked"));
|
|
2970
|
+
const wasPaused = player.paused;
|
|
2971
|
+
if (player.playing) {
|
|
2972
|
+
seekingSpy.next().then(() => {
|
|
2973
|
+
expect(playedSpy).toHaveBeenCalledBefore(seekingSpy);
|
|
2974
|
+
}).catch(noop3);
|
|
2975
|
+
}
|
|
2976
|
+
const expectNoop = closeTo2(player.currentTime, time, tolerance);
|
|
2977
|
+
await player.seekTo(time, tolerance);
|
|
2978
|
+
const expectedTime = clamp(
|
|
2979
|
+
time,
|
|
2980
|
+
0,
|
|
2981
|
+
player.duration - (wasPaused ? 0 : getMinSeekableBufferDefault())
|
|
2982
|
+
);
|
|
2983
|
+
expect(player.currentTime).toBeCloseToWithin(expectedTime, 1);
|
|
2984
|
+
if (expectNoop) {
|
|
2985
|
+
expect(seekingSpy).not.toHaveBeenCalled();
|
|
2986
|
+
expect(seekedSpy).not.toHaveBeenCalled();
|
|
2987
|
+
} else {
|
|
2988
|
+
expect(seekingSpy).toHaveBeenCalledBefore(seekedSpy);
|
|
2989
|
+
expect(player.paused).withContext("paused").toBe(wasPaused);
|
|
2990
|
+
if (wasPaused) {
|
|
2991
|
+
expectPausedState(player);
|
|
2992
|
+
await expectTimeDoesNotElapse(player);
|
|
2993
|
+
} else {
|
|
2994
|
+
await onPlaying(player);
|
|
2995
|
+
expectPlayingState(player);
|
|
2996
|
+
await assertFrequency();
|
|
2997
|
+
await expectTimeElapses(player);
|
|
2998
|
+
}
|
|
2999
|
+
}
|
|
3000
|
+
dispose();
|
|
3001
|
+
}
|
|
3002
|
+
|
|
3003
|
+
// test/vinylTestUtil/util/playback/expectTrackPlays.ts
|
|
3004
|
+
import { createDisposer as createDisposer3 } from "@amazon/vinyl-util";
|
|
3005
|
+
import { createEventSpy as createEventSpy2 } from "@amazon/vinyl-util/testUtil";
|
|
3006
|
+
|
|
3007
|
+
// test/vinylTestUtil/util/playback/expectTrackPlaysUntil.ts
|
|
3008
|
+
import { sleep as sleep3 } from "@amazon/vinyl-util";
|
|
3009
|
+
var sleepInterval = 1;
|
|
3010
|
+
var affordanceBefore = 1;
|
|
3011
|
+
var affordanceAfter = 3;
|
|
3012
|
+
async function expectTrackPlaysUntil(player, endTime, timeout = 20) {
|
|
3013
|
+
await onPlaying(player);
|
|
3014
|
+
await onTimeUpdate(player);
|
|
3015
|
+
const startedBeforeEnd = player.currentTime < endTime;
|
|
3016
|
+
await assertFrequency();
|
|
3017
|
+
let elapsed = 0;
|
|
3018
|
+
const maxTime = endTime - player.currentTime + timeout;
|
|
3019
|
+
while (!player.ended && player.currentTime < endTime && elapsed < maxTime) {
|
|
3020
|
+
await sleep3(sleepInterval);
|
|
3021
|
+
elapsed += sleepInterval;
|
|
3022
|
+
}
|
|
3023
|
+
expect(player.currentTime).withContext("currentTime").toBeGreaterThanOrEqual(endTime - affordanceBefore);
|
|
3024
|
+
if (startedBeforeEnd) {
|
|
3025
|
+
expect(player.currentTime).withContext("currentTime").toBeLessThan(endTime + affordanceAfter);
|
|
3026
|
+
}
|
|
3027
|
+
}
|
|
3028
|
+
|
|
3029
|
+
// test/vinylTestUtil/util/playback/expectTrackPlays.ts
|
|
3030
|
+
var PLAYBACK_DURATION = 6;
|
|
3031
|
+
async function expectTrackPlays(player) {
|
|
3032
|
+
const { dispose, add } = createDisposer3();
|
|
3033
|
+
const ended = add(createEventSpy2(player, "ended"));
|
|
3034
|
+
const timeUpdate = add(createEventSpy2(player, "timeUpdate"));
|
|
3035
|
+
expect(player.currentTime).withContext("currentTime starts near the beginning").toBeLessThan(1);
|
|
3036
|
+
await onDuration(player);
|
|
3037
|
+
const duration = player.duration;
|
|
3038
|
+
expect(duration).withContext("duration should be non-zero").toBeGreaterThan(0);
|
|
3039
|
+
if (player.duration > PLAYBACK_DURATION) {
|
|
3040
|
+
await expectTrackPlaysUntil(
|
|
3041
|
+
player,
|
|
3042
|
+
player.currentTime + PLAYBACK_DURATION / 2
|
|
3043
|
+
);
|
|
3044
|
+
const time = player.duration - PLAYBACK_DURATION / 2;
|
|
3045
|
+
await player.seekTo(time);
|
|
3046
|
+
}
|
|
3047
|
+
await ended.next(PLAYBACK_DURATION + 10);
|
|
3048
|
+
expect(player.currentTime).toBeCloseToWithin(duration, 3);
|
|
3049
|
+
expect(player.ended).withContext("ended").toBeTrue();
|
|
3050
|
+
expect(timeUpdate.calls.count()).toBeGreaterThanOrEqual(
|
|
3051
|
+
Math.floor(PLAYBACK_DURATION)
|
|
3052
|
+
);
|
|
3053
|
+
dispose();
|
|
3054
|
+
}
|
|
3055
|
+
async function expectPlaylistPlays(player, playlist) {
|
|
3056
|
+
var _a2;
|
|
3057
|
+
const { dispose, add } = createDisposer3();
|
|
3058
|
+
const trackTimeout = PLAYBACK_DURATION + 60;
|
|
3059
|
+
const queueEnded = add(createEventSpy2(player, "queueEnded"));
|
|
3060
|
+
const queueChange = add(createEventSpy2(player, "queueChange"));
|
|
3061
|
+
const trackChange = add(createEventSpy2(player, "trackActivated"));
|
|
3062
|
+
function assertQueueChangeCount(count) {
|
|
3063
|
+
expect(queueChange).toHaveBeenCalledTimes(count);
|
|
3064
|
+
queueChange.calls.reset();
|
|
3065
|
+
}
|
|
3066
|
+
player.load(...playlist);
|
|
3067
|
+
assertQueueChangeCount(1);
|
|
3068
|
+
await player.play();
|
|
3069
|
+
for (let i = 0; i < playlist.length; i++) {
|
|
3070
|
+
const isLastTrack = i === playlist.length - 1;
|
|
3071
|
+
expect((_a2 = player.activeTrack) == null ? void 0 : _a2.uri).withContext("activeTrack uri").toBe(playlist[i].uri);
|
|
3072
|
+
const nextTrack = isLastTrack ? queueEnded.next(trackTimeout) : trackChange.next(trackTimeout);
|
|
3073
|
+
await expectTrackPlays(player);
|
|
3074
|
+
await nextTrack;
|
|
3075
|
+
assertQueueChangeCount(isLastTrack ? 0 : 1);
|
|
3076
|
+
}
|
|
3077
|
+
dispose();
|
|
3078
|
+
}
|
|
2914
3079
|
export {
|
|
2915
3080
|
ControlledMediaSource,
|
|
2916
3081
|
FrequencyAnalyzer,
|
|
3082
|
+
MockAdController,
|
|
2917
3083
|
MockAutoResetController,
|
|
2918
3084
|
MockBufferingController,
|
|
2919
3085
|
MockCapabilities,
|
|
@@ -2938,6 +3104,7 @@ export {
|
|
|
2938
3104
|
MockQualitySelector,
|
|
2939
3105
|
MockSegmentController,
|
|
2940
3106
|
MockSourceBufferController,
|
|
3107
|
+
MockTextTrackController,
|
|
2941
3108
|
MockTrack,
|
|
2942
3109
|
MockTrackController,
|
|
2943
3110
|
MockTrackFactory,
|