@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
|
@@ -0,0 +1,705 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { createDisposer, createLogPrefix, EventHostImpl, getElementOrDefault, lerp, logDebug, logError, logVerbose, memoize, noop, resolveValueProvider, roundToNearest, sleep, sortedInsertionIndex, } from '@amazon/vinyl-util';
|
|
6
|
+
import { AdError } from './AdError';
|
|
7
|
+
/**
|
|
8
|
+
* The % playhead start tolerance for playback progress when emitting ad progress events.
|
|
9
|
+
*/
|
|
10
|
+
export const AD_START_TOLERANCE = 0.05;
|
|
11
|
+
export const defaultAdControllerImplOptions = {
|
|
12
|
+
adLoadTimeout: 15,
|
|
13
|
+
preloadAheadTime: 10,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Provider-agnostic {@link AdController}. Holds the discovered ad breaks and
|
|
17
|
+
* derives enter/exit region events from playhead time updates.
|
|
18
|
+
*
|
|
19
|
+
* This controller is the *model* for ad playback: it knows which breaks exist,
|
|
20
|
+
* which break contains the playhead, and which ad within that break is current.
|
|
21
|
+
* It does NOT create, preload, or activate any tracks — that is the
|
|
22
|
+
* responsibility of the {@link TrackController}.
|
|
23
|
+
*
|
|
24
|
+
* A break is considered active while `startTime <= currentTime < endTime`,
|
|
25
|
+
* where `endTime` is `startTime + duration`. Breaks whose duration is unknown
|
|
26
|
+
* (null) or breaks which restrict `jump` will become active at
|
|
27
|
+
* `currentTime > startTime`
|
|
28
|
+
*
|
|
29
|
+
* This class contains no HLS- or DASH-specific logic; discovery code maps its
|
|
30
|
+
* protocol's signals to {@link AdBreakInfo} exposed by an
|
|
31
|
+
* {@link AdsProvider.getAds}, which this controller reads once the provider is
|
|
32
|
+
* set via {@link AdController.setAdsProvider} (and re-reads on `adsChange`).
|
|
33
|
+
*/
|
|
34
|
+
export class AdControllerImpl extends EventHostImpl {
|
|
35
|
+
deps;
|
|
36
|
+
get [Symbol.toStringTag]() {
|
|
37
|
+
return 'AdControllerImpl';
|
|
38
|
+
}
|
|
39
|
+
options;
|
|
40
|
+
_trackAds = null;
|
|
41
|
+
adsProviderSub = null;
|
|
42
|
+
adsProvider = null;
|
|
43
|
+
// The start times of the midroll ads, used for fast midroll break find
|
|
44
|
+
midrollAds = [];
|
|
45
|
+
// Midroll and postroll breaks, sorted by start time — the breaks eligible
|
|
46
|
+
// for the ahead-of-time `adPreload` signal (prerolls are preloaded up front).
|
|
47
|
+
preloadableBreaks = [];
|
|
48
|
+
// Breaks for which `adPreload` has already been emitted on the current
|
|
49
|
+
// approach; cleared on content change and when a break is re-armed by a
|
|
50
|
+
// seek back, so a re-approached break preloads again.
|
|
51
|
+
preloadedBreakIds = new Set();
|
|
52
|
+
lastPlaybackTime = 0;
|
|
53
|
+
pendingAdBreaks = [];
|
|
54
|
+
// Breaks permanently suppressed for this presentation (play-once breaks and
|
|
55
|
+
// prerolls). Cleared only on a content change (clearCompletedAds).
|
|
56
|
+
completeAdBreakIds = new Set();
|
|
57
|
+
// Replayable (non-play-once) midroll breaks that have played and are "spent"
|
|
58
|
+
// until the playhead moves back before their start, at which point they are
|
|
59
|
+
// re-armed and replay on the next forward crossing.
|
|
60
|
+
spentBreakIds = new Set();
|
|
61
|
+
disposer = createDisposer();
|
|
62
|
+
adBreakState = null;
|
|
63
|
+
loadingNext = false;
|
|
64
|
+
constructor(deps, options) {
|
|
65
|
+
super();
|
|
66
|
+
this.deps = deps;
|
|
67
|
+
this.options = { ...defaultAdControllerImplOptions, ...options };
|
|
68
|
+
const { add } = this.disposer;
|
|
69
|
+
const { playbackController } = this.deps;
|
|
70
|
+
add(playbackController.on('playing', () => {
|
|
71
|
+
if (this.adState) {
|
|
72
|
+
const adState = this.adState;
|
|
73
|
+
if (!adState.started) {
|
|
74
|
+
// The ad has started playing, initialize the state.
|
|
75
|
+
adState.started = true;
|
|
76
|
+
adState.timeStart = playbackController.currentTime;
|
|
77
|
+
adState.playbackRateAvg =
|
|
78
|
+
playbackController.playbackRate;
|
|
79
|
+
adState.dataPoints = 1;
|
|
80
|
+
}
|
|
81
|
+
this.dispatch('adPlaying', {
|
|
82
|
+
adBreak: adState.parentBreak.adBreak,
|
|
83
|
+
ad: adState.ad,
|
|
84
|
+
index: adState.index,
|
|
85
|
+
totalAds: adState.totalAds,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}));
|
|
89
|
+
add(playbackController.on('seeked', (event) => {
|
|
90
|
+
if (this.adState) {
|
|
91
|
+
this.adState.timeStart = playbackController.currentTime;
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
// A genuine seek back before a break re-arms it: a spent
|
|
95
|
+
// (replayable) break fires again on the next forward crossing,
|
|
96
|
+
// and its preload signal re-arms so it warms again on approach.
|
|
97
|
+
if (event.reason !== 'seeked')
|
|
98
|
+
return;
|
|
99
|
+
const time = playbackController.currentTime;
|
|
100
|
+
for (const adBreak of this.preloadableBreaks) {
|
|
101
|
+
if (time < adBreak.startTime) {
|
|
102
|
+
const key = adBreakKey(adBreak);
|
|
103
|
+
this.spentBreakIds.delete(key);
|
|
104
|
+
this.preloadedBreakIds.delete(key);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}));
|
|
108
|
+
add(playbackController.on('timeUpdate', this.onTimeUpdate));
|
|
109
|
+
add(playbackController.on('ended', () => {
|
|
110
|
+
if (this.adState)
|
|
111
|
+
this.endAd(this.adState);
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
clearCompletedAds() {
|
|
115
|
+
this.completeAdBreakIds.clear();
|
|
116
|
+
this.spentBreakIds.clear();
|
|
117
|
+
this.preloadedBreakIds.clear();
|
|
118
|
+
}
|
|
119
|
+
isBreakSuppressed(adBreak) {
|
|
120
|
+
const key = adBreakKey(adBreak);
|
|
121
|
+
return this.completeAdBreakIds.has(key) || this.spentBreakIds.has(key);
|
|
122
|
+
}
|
|
123
|
+
/** The media-time the current ad has actually played, or 0 if not playing. */
|
|
124
|
+
adElapsed() {
|
|
125
|
+
const adState = this.adState;
|
|
126
|
+
return adState?.started
|
|
127
|
+
? Math.max(0, this.deps.playbackController.currentTime - adState.timeStart)
|
|
128
|
+
: 0;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Computes whether the current ad may be skipped and, when not yet, how many
|
|
132
|
+
* seconds remain until it can. A `skip` restriction blocks it outright;
|
|
133
|
+
* otherwise a resolved skip window gates it by the elapsed break playout, and
|
|
134
|
+
* with no window the ad is freely skippable.
|
|
135
|
+
*/
|
|
136
|
+
async resolveSkipState(adBreakState, breakPlayed) {
|
|
137
|
+
const { adBreak } = adBreakState;
|
|
138
|
+
if (adBreak.restrict.skip === true) {
|
|
139
|
+
return { canSkip: false, skipIn: null };
|
|
140
|
+
}
|
|
141
|
+
const skipControl = await resolveValueProvider(adBreak.skipControl).catch((_v) => null);
|
|
142
|
+
if (!skipControl) {
|
|
143
|
+
return { canSkip: true, skipIn: null };
|
|
144
|
+
}
|
|
145
|
+
if (breakPlayed < skipControl.offset) {
|
|
146
|
+
return { canSkip: false, skipIn: skipControl.offset - breakPlayed };
|
|
147
|
+
}
|
|
148
|
+
const end = skipControl.duration != null
|
|
149
|
+
? skipControl.offset + skipControl.duration
|
|
150
|
+
: Infinity;
|
|
151
|
+
return { canSkip: breakPlayed < end, skipIn: null };
|
|
152
|
+
}
|
|
153
|
+
get currentTrackAds() {
|
|
154
|
+
return this._trackAds;
|
|
155
|
+
}
|
|
156
|
+
setTrackAds(value) {
|
|
157
|
+
const previous = this._trackAds;
|
|
158
|
+
const current = value ?? null;
|
|
159
|
+
this._trackAds = current;
|
|
160
|
+
this.midrollAds = (value?.adBreaks ?? []).filter((adBreak) => adBreak.placement === 'midroll');
|
|
161
|
+
// Midroll + postroll breaks are eligible for the ahead-of-time preload
|
|
162
|
+
// signal. adBreaks are already sorted by start time, so this stays sorted.
|
|
163
|
+
this.preloadableBreaks = (value?.adBreaks ?? []).filter((adBreak) => adBreak.placement !== 'preroll');
|
|
164
|
+
logDebug(this, 'setTrackAds', value);
|
|
165
|
+
this.dispatch('currentTrackAdsChange', {
|
|
166
|
+
previous,
|
|
167
|
+
current,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Returns a function that returns true if the ads provider has changed
|
|
172
|
+
* since the callback was created.
|
|
173
|
+
*/
|
|
174
|
+
providerInterrupted() {
|
|
175
|
+
const provider = this.adsProvider;
|
|
176
|
+
return () => provider !== this.adsProvider;
|
|
177
|
+
}
|
|
178
|
+
setAdsProvider(provider) {
|
|
179
|
+
if (this.adsProvider === provider)
|
|
180
|
+
return;
|
|
181
|
+
this.pendingAdBreaks = [];
|
|
182
|
+
this.completeAdBreak(this.adBreakState, 'contentChange');
|
|
183
|
+
this.adsProviderSub?.();
|
|
184
|
+
const { add, dispose } = createDisposer();
|
|
185
|
+
this.adsProviderSub = dispose;
|
|
186
|
+
this.adsProvider = provider;
|
|
187
|
+
const interrupted = this.providerInterrupted();
|
|
188
|
+
this.clearCompletedAds();
|
|
189
|
+
this.setTrackAds(null);
|
|
190
|
+
if (!provider)
|
|
191
|
+
return;
|
|
192
|
+
const refreshAds = () => {
|
|
193
|
+
provider
|
|
194
|
+
.getAds()
|
|
195
|
+
.then((ads) => {
|
|
196
|
+
if (interrupted())
|
|
197
|
+
return;
|
|
198
|
+
this.setTrackAds(ads);
|
|
199
|
+
})
|
|
200
|
+
.catch((error) => {
|
|
201
|
+
// Ad discovery failed for the provider. There is no active
|
|
202
|
+
// break to surface an adError against, so log it rather
|
|
203
|
+
// than routing through failAd (which would no-op with no
|
|
204
|
+
// active ad and swallow the failure silently).
|
|
205
|
+
if (interrupted())
|
|
206
|
+
return;
|
|
207
|
+
logError(this, 'ad discovery failed', error);
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
add(provider.on('adsChange', refreshAds));
|
|
211
|
+
refreshAds();
|
|
212
|
+
}
|
|
213
|
+
async enterPreroll() {
|
|
214
|
+
return this.enterRoll('preroll');
|
|
215
|
+
}
|
|
216
|
+
async enterPostroll() {
|
|
217
|
+
return this.enterRoll('postroll');
|
|
218
|
+
}
|
|
219
|
+
async enterRoll(placement) {
|
|
220
|
+
if (!this.adsProvider)
|
|
221
|
+
return null;
|
|
222
|
+
logVerbose(this, `checking for ${placement} ads`);
|
|
223
|
+
this.lastPlaybackTime = this.deps.playbackController.currentTime;
|
|
224
|
+
const interrupted = this.providerInterrupted();
|
|
225
|
+
return this.adsProvider
|
|
226
|
+
.getAds()
|
|
227
|
+
.then((ads) => {
|
|
228
|
+
if (interrupted()) {
|
|
229
|
+
logVerbose(this, `interrupted, no pending breaks set for ${placement}`);
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
this.setPendingBreaks(ads.adBreaks.filter((adBreak) => adBreak.placement === placement));
|
|
233
|
+
return this.currentAdBreak;
|
|
234
|
+
})
|
|
235
|
+
.catch(() => {
|
|
236
|
+
return null;
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
// True when we have an ads provider set. Callers gate off this AND their
|
|
240
|
+
// own "no ad break in progress" checks (currentAdBreak / pendingAdBreaks),
|
|
241
|
+
// so this is only about "a provider has committed", not track activation.
|
|
242
|
+
get hasProvider() {
|
|
243
|
+
return this.adsProvider != null;
|
|
244
|
+
}
|
|
245
|
+
skipAdBreak() {
|
|
246
|
+
const adBreakState = this.adBreakState;
|
|
247
|
+
if (!adBreakState) {
|
|
248
|
+
logDebug(this, 'skipAdBreak, no-op');
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
logDebug(this, 'skipAdBreak, active break id:', adBreakState.adBreak.id);
|
|
252
|
+
this.completeAdBreak(adBreakState, 'skipped');
|
|
253
|
+
this.nextAdOrBreak();
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Marks an ad break as completed (or 'spent' and replayable), emits an `adBreakCompleted` event.
|
|
257
|
+
*/
|
|
258
|
+
completeAdBreak(adBreakState, reason) {
|
|
259
|
+
if (!adBreakState || adBreakState.completedReason) {
|
|
260
|
+
logDebug(this, 'completeAdBreak, no-op');
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
const { adBreak } = adBreakState;
|
|
264
|
+
adBreakState.completedReason = reason;
|
|
265
|
+
const key = adBreakKey(adBreak);
|
|
266
|
+
// A non-once midroll ad may be replayed if the region is re-entered
|
|
267
|
+
// due to a back-seek.
|
|
268
|
+
if (adBreak.once ||
|
|
269
|
+
adBreak.placement === 'preroll' ||
|
|
270
|
+
adBreak.placement === 'postroll') {
|
|
271
|
+
this.completeAdBreakIds.add(key);
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
// Non-once midroll
|
|
275
|
+
this.spentBreakIds.add(key);
|
|
276
|
+
}
|
|
277
|
+
// Interstitials play on a separate track, so the content timeline never
|
|
278
|
+
// advances during the break: content resumes at the cue point plus any
|
|
279
|
+
// explicit offset (default 0). max() keeps a forward seek from being
|
|
280
|
+
// rewound.
|
|
281
|
+
const resumePosition = Math.max(this.lastPlaybackTime, adBreak.startTime + (adBreak.resumeOffset ?? 0));
|
|
282
|
+
this.completeAd(adBreakState.adState, reason); // does nothing if no current ad
|
|
283
|
+
logDebug(this, `adBreakCompleted, active break id:${adBreak.id} reason:${reason} resumePosition:${resumePosition}`);
|
|
284
|
+
if (adBreakState === this.adBreakState) {
|
|
285
|
+
this.adBreakState = null;
|
|
286
|
+
}
|
|
287
|
+
this.dispatch('adBreakCompleted', { adBreak, resumePosition, reason });
|
|
288
|
+
}
|
|
289
|
+
get currentAdBreak() {
|
|
290
|
+
return this.adBreakState?.adBreak ?? null;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Marks an ad as completed and emits an `adCompleted` event.
|
|
294
|
+
*/
|
|
295
|
+
completeAd(adState, reason) {
|
|
296
|
+
if (!adState || adState.completedReason)
|
|
297
|
+
return; // no-op
|
|
298
|
+
logDebug(this, `adCompleted id=${adState.ad.id} reason=${reason} index=${adState.index} totalAds=${adState.totalAds}`);
|
|
299
|
+
// Fold this ad's actual playout into the break total before clearing it.
|
|
300
|
+
adState.parentBreak.playoutElapsed += this.adElapsed();
|
|
301
|
+
adState.completedReason = reason;
|
|
302
|
+
this.dispatch('adCompleted', {
|
|
303
|
+
adBreak: adState.parentBreak.adBreak,
|
|
304
|
+
ad: adState.ad,
|
|
305
|
+
reason,
|
|
306
|
+
index: adState.index,
|
|
307
|
+
totalAds: adState.totalAds,
|
|
308
|
+
});
|
|
309
|
+
if (adState.index >= adState.totalAds - 1) {
|
|
310
|
+
this.completeAdBreak(adState.parentBreak, reason);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Polls the next pending ad and activates it.
|
|
315
|
+
* When there are no remaining ads, activates the next ad break (if any).
|
|
316
|
+
*/
|
|
317
|
+
nextAdOrBreak() {
|
|
318
|
+
if (this.disposed || this.loadingNext)
|
|
319
|
+
return;
|
|
320
|
+
const adBreakState = this.adBreakState;
|
|
321
|
+
if (!adBreakState && !this.pendingAdBreaks.length) {
|
|
322
|
+
logDebug(this, 'nextAdOrBreak no-op');
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
logDebug(this, 'nextAdOrBreak');
|
|
326
|
+
this.loadingNext = true;
|
|
327
|
+
const nextAd = async (adBreakState) => {
|
|
328
|
+
logVerbose(this, 'nextAd');
|
|
329
|
+
try {
|
|
330
|
+
const ad = await adBreakState.nextAd();
|
|
331
|
+
// The break may have been completed or swapped out (a content
|
|
332
|
+
// change, skip, or playout-limit) while its ads were resolving;
|
|
333
|
+
// don't start an ad for an abandoned break.
|
|
334
|
+
if (this.disposed || adBreakState.completedReason)
|
|
335
|
+
return;
|
|
336
|
+
if (ad) {
|
|
337
|
+
this.startAd(ad);
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
// No remaining ads in this break
|
|
341
|
+
logVerbose(this, 'no remaining ads');
|
|
342
|
+
this.completeAdBreak(adBreakState, 'ended');
|
|
343
|
+
await nextBreak();
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
if (this.disposed)
|
|
348
|
+
return;
|
|
349
|
+
// The ad list failed to resolve: surface the error, complete
|
|
350
|
+
// this break so content can resume, then advance to any pending
|
|
351
|
+
// break. Re-calling nextAdOrBreak() here would no-op (loadingNext
|
|
352
|
+
// is still held by this in-flight call) AND would leave the break
|
|
353
|
+
// stuck non-null, permanently blocking midroll ingress.
|
|
354
|
+
this.dispatch('adError', {
|
|
355
|
+
adBreak: adBreakState.adBreak,
|
|
356
|
+
currentAd: null,
|
|
357
|
+
error,
|
|
358
|
+
});
|
|
359
|
+
this.completeAdBreak(adBreakState, 'error');
|
|
360
|
+
await nextBreak();
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
const nextBreak = async () => {
|
|
364
|
+
logVerbose(this, 'nextBreak');
|
|
365
|
+
if (this.pendingAdBreaks.length) {
|
|
366
|
+
// There are pending breaks, take the next one and start its first ad.
|
|
367
|
+
const adBreak = this.pendingAdBreaks.shift();
|
|
368
|
+
this.adBreakState = createAdBreakState(adBreak);
|
|
369
|
+
logDebug(this, 'adBreakEntered', adBreak);
|
|
370
|
+
this.dispatch('adBreakEntered', { adBreak });
|
|
371
|
+
await nextAd(this.adBreakState);
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
logDebug(this, 'no remaining breaks');
|
|
375
|
+
}
|
|
376
|
+
};
|
|
377
|
+
(async () => {
|
|
378
|
+
if (adBreakState) {
|
|
379
|
+
await nextAd(adBreakState);
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
await nextBreak().catch(noop);
|
|
383
|
+
}
|
|
384
|
+
})()
|
|
385
|
+
.catch(noop)
|
|
386
|
+
.finally(() => {
|
|
387
|
+
this.loadingNext = false;
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
get currentAd() {
|
|
391
|
+
return this.adState?.ad ?? null;
|
|
392
|
+
}
|
|
393
|
+
get adState() {
|
|
394
|
+
return this.adBreakState?.adState ?? null;
|
|
395
|
+
}
|
|
396
|
+
startAd(adState) {
|
|
397
|
+
const { ad, index, totalAds } = adState;
|
|
398
|
+
logDebug(this, 'adEntered', adState.ad);
|
|
399
|
+
this.dispatch('adEntered', {
|
|
400
|
+
adBreak: adState.parentBreak.adBreak,
|
|
401
|
+
ad,
|
|
402
|
+
index,
|
|
403
|
+
totalAds,
|
|
404
|
+
});
|
|
405
|
+
this.emitTimeUpdate(adState).catch(noop);
|
|
406
|
+
sleep(this.options.adLoadTimeout)
|
|
407
|
+
.then(() => {
|
|
408
|
+
if (this.disposed)
|
|
409
|
+
return;
|
|
410
|
+
if (this.adState === adState && !adState.started) {
|
|
411
|
+
this.failAd(new AdError(`Ad failed to start after ${this.options.adLoadTimeout} seconds`));
|
|
412
|
+
}
|
|
413
|
+
})
|
|
414
|
+
.catch(noop);
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Checks if the playhead has entered a time to activate a midroll ad.
|
|
418
|
+
*/
|
|
419
|
+
onTimeUpdate = () => {
|
|
420
|
+
const adBreak = this.currentAdBreak;
|
|
421
|
+
const adState = this.adState;
|
|
422
|
+
if (adBreak) {
|
|
423
|
+
// Ad progress events
|
|
424
|
+
if (adState && adState.completedReason == null) {
|
|
425
|
+
this.emitAdProgressEvents(adState).catch(noop);
|
|
426
|
+
this.enforcePlayoutLimits(adState);
|
|
427
|
+
}
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
430
|
+
const pC = this.deps.playbackController;
|
|
431
|
+
if (this.hasProvider && pC.playing && !this.pendingAdBreaks.length) {
|
|
432
|
+
// Not an ad playing, main content.
|
|
433
|
+
this.lastPlaybackTime = pC.currentTime;
|
|
434
|
+
this.checkAdPreload(pC.currentTime);
|
|
435
|
+
this.checkMidrollIngress();
|
|
436
|
+
}
|
|
437
|
+
};
|
|
438
|
+
/**
|
|
439
|
+
* Emits `adPreload` once for each midroll/postroll break the playhead is
|
|
440
|
+
* approaching — within (the break's {@link AdBreakInfo.resolutionTimeOffset}
|
|
441
|
+
* or, when absent, the `preloadAheadTime` option) seconds before its start —
|
|
442
|
+
* so a consumer can resolve and warm the break's assets before entry.
|
|
443
|
+
* Suppressed (played-once/spent) breaks are skipped.
|
|
444
|
+
*/
|
|
445
|
+
checkAdPreload(time) {
|
|
446
|
+
for (const adBreak of this.preloadableBreaks) {
|
|
447
|
+
const key = adBreakKey(adBreak);
|
|
448
|
+
if (this.preloadedBreakIds.has(key))
|
|
449
|
+
continue;
|
|
450
|
+
if (this.isBreakSuppressed(adBreak))
|
|
451
|
+
continue;
|
|
452
|
+
const offset = adBreak.resolutionTimeOffset ?? this.options.preloadAheadTime;
|
|
453
|
+
// Only ahead of the break; at/after its start, ingress takes over.
|
|
454
|
+
if (time >= adBreak.startTime - offset &&
|
|
455
|
+
time < adBreak.startTime) {
|
|
456
|
+
this.preloadedBreakIds.add(key);
|
|
457
|
+
logDebug(this, 'adPreload', adBreak.id);
|
|
458
|
+
this.dispatch('adPreload', { adBreak });
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Main content with ad breaks is playing, check if we have entered a midroll region.
|
|
464
|
+
*/
|
|
465
|
+
checkMidrollIngress() {
|
|
466
|
+
const time = this.deps.playbackController.currentTime;
|
|
467
|
+
const midrolls = this.midrollAds;
|
|
468
|
+
// Upper bound: the first midroll whose startTime is strictly after the
|
|
469
|
+
// playhead. Every candidate break is at an index before it.
|
|
470
|
+
const upper = sortedInsertionIndex(midrolls, time, (time, ad) => time - ad.startTime);
|
|
471
|
+
const newPending = [];
|
|
472
|
+
// Scan every break at or before the playhead, ascending (timeline
|
|
473
|
+
// order), so tied start times and an earlier still-open break that
|
|
474
|
+
// contains the playhead (e.g. after a seek into or over it) are all
|
|
475
|
+
// considered — not just the single nearest preceding break.
|
|
476
|
+
for (let i = 0; i < upper; i++) {
|
|
477
|
+
const midroll = midrolls[i];
|
|
478
|
+
if (this.isBreakSuppressed(midroll))
|
|
479
|
+
continue;
|
|
480
|
+
const duration = midroll.duration == null || midroll.restrict.jump
|
|
481
|
+
? Number.MAX_VALUE
|
|
482
|
+
: midroll.duration;
|
|
483
|
+
if (time < midroll.startTime + duration) {
|
|
484
|
+
newPending.push(midroll);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
if (newPending.length) {
|
|
488
|
+
logVerbose(this, 'setting midrolls');
|
|
489
|
+
this.setPendingBreaks(newPending);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Emits events for `adTimeUpdate`, `adFirstQuartile`, `adMidpoint`, and
|
|
494
|
+
* `adThirdQuartile`.
|
|
495
|
+
* (Does not emit `adCompleted`)
|
|
496
|
+
*/
|
|
497
|
+
async emitAdProgressEvents(adState) {
|
|
498
|
+
const pC = this.deps.playbackController;
|
|
499
|
+
await this.emitTimeUpdate(adState);
|
|
500
|
+
if (isFinite(pC.duration) && pC.duration > 0) {
|
|
501
|
+
// Take a running average of the playback rate. Applications can
|
|
502
|
+
// use this to detect tampering when emitting metrics.
|
|
503
|
+
adState.dataPoints++;
|
|
504
|
+
adState.playbackRateAvg = lerp(adState.playbackRateAvg, pC.playbackRate, 1 / adState.dataPoints);
|
|
505
|
+
// If the ad's duration is set, take the shorter of the ad duration
|
|
506
|
+
const currProgress = pC.currentTimePercent;
|
|
507
|
+
const progressStart = adState.timeStart / pC.duration;
|
|
508
|
+
if (!adState.quartile.first &&
|
|
509
|
+
currProgress > 0.25 &&
|
|
510
|
+
progressStart < AD_START_TOLERANCE) {
|
|
511
|
+
this.dispatch('adFirstQuartile', createAdProgressEvent(adState));
|
|
512
|
+
}
|
|
513
|
+
if (!adState.quartile.midpoint &&
|
|
514
|
+
currProgress > 0.5 &&
|
|
515
|
+
progressStart < 0.25 + AD_START_TOLERANCE) {
|
|
516
|
+
this.dispatch('adMidpoint', createAdProgressEvent(adState));
|
|
517
|
+
}
|
|
518
|
+
if (!adState.quartile.third &&
|
|
519
|
+
currProgress > 0.75 &&
|
|
520
|
+
progressStart < 0.5 + AD_START_TOLERANCE) {
|
|
521
|
+
this.dispatch('adThirdQuartile', createAdProgressEvent(adState));
|
|
522
|
+
}
|
|
523
|
+
// adEnded is not on progress but on a call to `endAd()`.
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
async emitTimeUpdate(adState) {
|
|
527
|
+
const pC = this.deps.playbackController;
|
|
528
|
+
const { ad, parentBreak } = adState;
|
|
529
|
+
// Surface elapsed/remaining time for the ad and the break as a
|
|
530
|
+
// whole so applications don't derive it from the media duration.
|
|
531
|
+
const adPlayed = this.adElapsed();
|
|
532
|
+
const adBreak = parentBreak.adBreak;
|
|
533
|
+
const naturalAdTotal = ad.duration ?? (isFinite(pC.duration) ? pC.duration : null);
|
|
534
|
+
// The break's playout limit is a budget shared across all its ads, so
|
|
535
|
+
// the current ad can run no longer than the budget left after the ads
|
|
536
|
+
// that already played. Cap its reported total by that remainder —
|
|
537
|
+
// matching enforcePlayoutLimits, which cuts the ad (and break) off at
|
|
538
|
+
// exactly this point. Without the cap adTimeRemaining over-reports (the
|
|
539
|
+
// full asset duration) while the ad is actually stopped at the limit.
|
|
540
|
+
const limit = adBreak.playoutLimit;
|
|
541
|
+
const adTotal = limit != null
|
|
542
|
+
? Math.min(naturalAdTotal ?? Infinity, Math.max(0, limit - parentBreak.playoutElapsed))
|
|
543
|
+
: naturalAdTotal;
|
|
544
|
+
const breakPlayed = parentBreak.playoutElapsed + adPlayed;
|
|
545
|
+
const breakTotal = limit ?? adBreak.duration;
|
|
546
|
+
const { canSkip, skipIn } = await this.resolveSkipState(parentBreak, breakPlayed);
|
|
547
|
+
this.dispatch('adTimeUpdate', {
|
|
548
|
+
adBreak: adState.parentBreak.adBreak,
|
|
549
|
+
ad,
|
|
550
|
+
index: adState.index,
|
|
551
|
+
totalAds: adState.totalAds,
|
|
552
|
+
adCurrentTime: adPlayed,
|
|
553
|
+
adTimeRemaining: adTotal != null ? Math.max(0, adTotal - adPlayed) : null,
|
|
554
|
+
breakCurrentTime: breakPlayed,
|
|
555
|
+
breakTimeRemaining: breakTotal != null
|
|
556
|
+
? Math.max(0, breakTotal - breakPlayed)
|
|
557
|
+
: null,
|
|
558
|
+
canSkip,
|
|
559
|
+
skipIn,
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* Ads breaks can have a playout limit that may cut off ad playback.
|
|
564
|
+
* End the ad if that limit is reached.
|
|
565
|
+
*/
|
|
566
|
+
enforcePlayoutLimits(adState) {
|
|
567
|
+
const pC = this.deps.playbackController;
|
|
568
|
+
const { ad, parentBreak } = adState;
|
|
569
|
+
// Enforce playout limits independent of a finite content duration so
|
|
570
|
+
// live ads with a declared playout limit are still bounded.
|
|
571
|
+
if (adState.started) {
|
|
572
|
+
const elapsed = Math.max(0, pC.currentTime - adState.timeStart);
|
|
573
|
+
const adBreak = parentBreak.adBreak;
|
|
574
|
+
const limit = adBreak.playoutLimit;
|
|
575
|
+
if (limit != null &&
|
|
576
|
+
parentBreak.playoutElapsed + elapsed >= limit) {
|
|
577
|
+
// The break's total playout limit is reached: end the whole
|
|
578
|
+
// break, dropping any ads that have not started.
|
|
579
|
+
parentBreak.clear();
|
|
580
|
+
this.endAd(adState);
|
|
581
|
+
}
|
|
582
|
+
else if (ad.duration != null && elapsed >= ad.duration) {
|
|
583
|
+
// This ad reached its declared duration: advance to the next.
|
|
584
|
+
this.endAd(adState);
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
setPendingBreaks(newPending) {
|
|
589
|
+
this.pendingAdBreaks = newPending.filter((adBreak) => !this.isBreakSuppressed(adBreak));
|
|
590
|
+
const n = this.pendingAdBreaks.length;
|
|
591
|
+
logDebug(this, `setPendingBreaks len=${n}, suppressed=${newPending.length - n}`);
|
|
592
|
+
this.nextAdOrBreak();
|
|
593
|
+
}
|
|
594
|
+
skipAd() {
|
|
595
|
+
this.completeAd(this.adState, 'skipped');
|
|
596
|
+
this.nextAdOrBreak();
|
|
597
|
+
}
|
|
598
|
+
failAd(error) {
|
|
599
|
+
const adState = this.adState;
|
|
600
|
+
if (adState) {
|
|
601
|
+
// Capture the failing ad before completeAd() clears it, so the
|
|
602
|
+
// adError event can distinguish an individual-ad failure from an
|
|
603
|
+
// ad-list load failure (currentAd == null).
|
|
604
|
+
this.completeAd(adState, 'error');
|
|
605
|
+
this.dispatch('adError', {
|
|
606
|
+
error,
|
|
607
|
+
adBreak: adState.parentBreak.adBreak,
|
|
608
|
+
currentAd: adState.ad,
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
this.nextAdOrBreak();
|
|
612
|
+
}
|
|
613
|
+
endAd(adState) {
|
|
614
|
+
this.completeAd(adState, 'ended');
|
|
615
|
+
this.dispatch('adEnded', createAdProgressEvent(adState));
|
|
616
|
+
this.nextAdOrBreak();
|
|
617
|
+
}
|
|
618
|
+
get disposed() {
|
|
619
|
+
return this.disposer.disposed;
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* Disposes this controller, removes all listeners.
|
|
623
|
+
*/
|
|
624
|
+
dispose() {
|
|
625
|
+
super.dispose();
|
|
626
|
+
this.disposer.dispose();
|
|
627
|
+
// Detach any active break so currentAd/currentAdBreak read null after
|
|
628
|
+
// dispose, even if a break's ad list resolves late (startAd is already
|
|
629
|
+
// guarded by the disposed check, so no adEntered/adPlaying fires).
|
|
630
|
+
this.adBreakState = null;
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
function createAdProgressEvent(adState) {
|
|
634
|
+
return {
|
|
635
|
+
adBreak: adState.parentBreak.adBreak,
|
|
636
|
+
ad: adState.ad,
|
|
637
|
+
// Snapped to nearest 0.1 to avoid ~1.0
|
|
638
|
+
playbackRateAvg: roundToNearest(adState.playbackRateAvg, 0.1),
|
|
639
|
+
index: adState.index,
|
|
640
|
+
totalAds: adState.totalAds,
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
function createAdBreakState(adBreak) {
|
|
644
|
+
let _currentIndex = -1;
|
|
645
|
+
let _adState = null;
|
|
646
|
+
const logTarget = {
|
|
647
|
+
logPrefix: createLogPrefix('AdBreakState'),
|
|
648
|
+
};
|
|
649
|
+
const adBreakState = {
|
|
650
|
+
adBreak,
|
|
651
|
+
playoutElapsed: 0,
|
|
652
|
+
completedReason: null,
|
|
653
|
+
get adState() {
|
|
654
|
+
return _adState;
|
|
655
|
+
},
|
|
656
|
+
async nextAd() {
|
|
657
|
+
const ads = await getAds();
|
|
658
|
+
if (_currentIndex >= ads.length)
|
|
659
|
+
return null;
|
|
660
|
+
_adState = getElementOrDefault(ads, ++_currentIndex, null);
|
|
661
|
+
return _adState;
|
|
662
|
+
},
|
|
663
|
+
clear() {
|
|
664
|
+
_adState = null;
|
|
665
|
+
_currentIndex = Number.MAX_VALUE;
|
|
666
|
+
},
|
|
667
|
+
};
|
|
668
|
+
const getAds = memoize(() => {
|
|
669
|
+
logVerbose(logTarget, `requesting ads for break ${adBreak.placement} ${adBreak.id}`);
|
|
670
|
+
return resolveValueProvider(adBreak.ads).then((ads) => {
|
|
671
|
+
logVerbose(logTarget, 'ads resolved', ads);
|
|
672
|
+
return ads.map((adInfo, index) => {
|
|
673
|
+
return createAdState({
|
|
674
|
+
adBreakState: adBreakState,
|
|
675
|
+
ad: adInfo,
|
|
676
|
+
totalAds: ads.length,
|
|
677
|
+
index: index,
|
|
678
|
+
});
|
|
679
|
+
});
|
|
680
|
+
});
|
|
681
|
+
});
|
|
682
|
+
return adBreakState;
|
|
683
|
+
}
|
|
684
|
+
function createAdState({ adBreakState, ad, totalAds, index, }) {
|
|
685
|
+
return {
|
|
686
|
+
parentBreak: adBreakState,
|
|
687
|
+
ad,
|
|
688
|
+
index,
|
|
689
|
+
totalAds,
|
|
690
|
+
started: false,
|
|
691
|
+
timeStart: 0,
|
|
692
|
+
playbackRateAvg: 0,
|
|
693
|
+
dataPoints: 0,
|
|
694
|
+
quartile: {
|
|
695
|
+
first: false,
|
|
696
|
+
midpoint: false,
|
|
697
|
+
third: false,
|
|
698
|
+
},
|
|
699
|
+
completedReason: null,
|
|
700
|
+
};
|
|
701
|
+
}
|
|
702
|
+
/** Combines the placement and id of the break for unique reference by placement */
|
|
703
|
+
function adBreakKey(adBreak) {
|
|
704
|
+
return `${adBreak.placement}_${adBreak.id}`;
|
|
705
|
+
}
|