@amazon/vinyl 1.1.1 → 1.2.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 +276 -200
- package/dist/index.cjs.map +4 -4
- package/dist/index.js +280 -203
- package/dist/index.js.map +4 -4
- package/dist/test/benchmark.es5.js +169 -232
- package/dist/test/benchmark.js +1475 -1933
- package/dist/test/benchmark.js.map +4 -4
- package/dist/test/integ.es5.js +771 -394
- package/dist/test/integ.js +6063 -5273
- 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/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 +2 -2
- package/dist/types/current/drm/DrmController.d.ts.map +1 -1
- package/dist/types/current/drm/DrmControllerImpl.d.ts +3 -3
- package/dist/types/current/drm/DrmControllerImpl.d.ts.map +1 -1
- package/dist/types/current/drm/DrmControllerImpl.js +7 -7
- 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/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/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 +1 -1
- package/dist/types/current/playback/PlaybackControllerImpl.d.ts.map +1 -1
- package/dist/types/current/playback/PlaybackControllerImpl.js +4 -4
- package/dist/types/current/playback/ReadonlyPlaybackController.d.ts.map +1 -1
- 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 +4 -4
- package/dist/types/current/streaming/ContentStream.d.ts.map +1 -1
- 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/MediaQualityMetadata.d.ts +2 -2
- package/dist/types/current/streaming/MediaQualityMetadata.d.ts.map +1 -1
- package/dist/types/current/streaming/MediaQualityMetadata.js +1 -1
- package/dist/types/current/streaming/MediaTimeline.d.ts +6 -5
- package/dist/types/current/streaming/MediaTimeline.d.ts.map +1 -1
- package/dist/types/current/streaming/SegmentController.d.ts +2 -7
- package/dist/types/current/streaming/SegmentController.d.ts.map +1 -1
- package/dist/types/current/streaming/SegmentControllerImpl.d.ts +5 -6
- package/dist/types/current/streaming/SegmentControllerImpl.d.ts.map +1 -1
- package/dist/types/current/streaming/SegmentControllerImpl.js +5 -15
- 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 +1 -1
- package/dist/types/current/streaming/StreamingEventMap.d.ts.map +1 -1
- 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 +18 -3
- package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts.map +1 -1
- package/dist/types/current/streaming/abr/QualitySelectorImpl.js +8 -2
- package/dist/types/current/streaming/buffering/BufferingController.d.ts +3 -13
- package/dist/types/current/streaming/buffering/BufferingController.d.ts.map +1 -1
- package/dist/types/current/streaming/buffering/BufferingController.js +1 -24
- package/dist/types/current/streaming/buffering/MediaSourceController.d.ts +41 -15
- package/dist/types/current/streaming/buffering/MediaSourceController.d.ts.map +1 -1
- package/dist/types/current/streaming/buffering/MediaSourceController.js +74 -17
- 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/createDefaultMediaTimelineTransformer.d.ts +1 -1
- package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts.map +1 -1
- package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.js +2 -2
- 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 +1 -1
- package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts.map +1 -1
- 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/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/Track.d.ts.map +1 -1
- package/dist/types/current/track/TrackBase.d.ts.map +1 -1
- package/dist/types/current/track/TrackController.d.ts +2 -2
- package/dist/types/current/track/TrackController.d.ts.map +1 -1
- package/dist/types/current/track/TrackFactory.d.ts +1 -1
- package/dist/types/current/track/TrackFactory.d.ts.map +1 -1
- 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 -1
- package/dist/types/current/track/dash/DashManifestController.d.ts.map +1 -1
- package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.d.ts.map +1 -1
- package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.js +1 -1
- package/dist/types/current/track/dash/DashTrack.d.ts +4 -4
- package/dist/types/current/track/dash/DashTrack.d.ts.map +1 -1
- package/dist/types/current/track/dash/DashTrack.js +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dist/types/current/track/dash/createDashFactories.d.ts +12 -12
- package/dist/types/current/track/dash/createDashFactories.d.ts.map +1 -1
- package/dist/types/current/track/dash/createDashFactories.js +8 -8
- 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.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 +3 -3
- 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 +3 -2
- package/dist/types/current/track/dash/util/mpd.d.ts.map +1 -1
- package/dist/types/current/track/dash/util/mpd.js +13 -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/HlsTrack.d.ts.map +1 -1
- package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts +3 -3
- package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts.map +1 -1
- package/dist/types/current/track/hls/buildHlsMediaTimeline.js +16 -14
- 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/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/mse/MseTrack.d.ts +2 -2
- package/dist/types/current/track/mse/MseTrack.d.ts.map +1 -1
- package/dist/types/current/track/mse/MseTrack.js +2 -1
- 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 +4 -4
- 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 +4 -4
- package/dist/types/current/track/source/SourceTrack.d.ts.map +1 -1
- package/dist/types/current/track/source/SourceTrack.js +2 -2
- package/dist/types/current/track/source/SourceTrackBase.d.ts +2 -2
- package/dist/types/current/track/source/SourceTrackBase.d.ts.map +1 -1
- package/dist/types/current/track/source/SourceTrackBase.js +2 -2
- package/dist/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylDeps.d.ts +1 -1
- package/dist/types/current/vinyl/VinylDeps.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylOptions.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylPatchOptions.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylPlayer.d.ts +26 -2
- package/dist/types/current/vinyl/VinylPlayer.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylPlayer.js +18 -3
- package/dist/types/current/vinyl/createVinylFactories.d.ts +9 -11
- package/dist/types/current/vinyl/createVinylFactories.d.ts.map +1 -1
- package/dist/types/current/vinyl/createVinylFactories.js +2 -2
- package/dist/types/ts3.7/drm/DrmController.d.ts +2 -2
- package/dist/types/ts3.7/drm/DrmControllerImpl.d.ts +3 -3
- 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/global/environment.d.ts +6 -2
- 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 +1 -1
- 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 +4 -4
- package/dist/types/ts3.7/streaming/ContentStreamingOptions.d.ts +2 -2
- package/dist/types/ts3.7/streaming/MediaQualityMetadata.d.ts +2 -2
- package/dist/types/ts3.7/streaming/MediaTimeline.d.ts +6 -5
- package/dist/types/ts3.7/streaming/SegmentController.d.ts +2 -7
- package/dist/types/ts3.7/streaming/SegmentControllerImpl.d.ts +5 -6
- package/dist/types/ts3.7/streaming/SegmentReference.d.ts +1 -1
- package/dist/types/ts3.7/streaming/StreamingEventMap.d.ts +1 -1
- package/dist/types/ts3.7/streaming/abr/QualitySelector.d.ts +1 -1
- package/dist/types/ts3.7/streaming/abr/QualitySelectorImpl.d.ts +18 -3
- package/dist/types/ts3.7/streaming/buffering/BufferingController.d.ts +3 -13
- package/dist/types/ts3.7/streaming/buffering/MediaSourceController.d.ts +41 -15
- package/dist/types/ts3.7/streaming/buffering/SourceBufferController.d.ts +1 -1
- package/dist/types/ts3.7/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
- package/dist/types/ts3.7/streaming/mediaTimelineFilter.d.ts +3 -3
- package/dist/types/ts3.7/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
- package/dist/types/ts3.7/streaming/util/segment.d.ts +1 -1
- package/dist/types/ts3.7/track/AutoResetController.d.ts +37 -12
- package/dist/types/ts3.7/track/TrackController.d.ts +2 -2
- package/dist/types/ts3.7/track/TrackFactory.d.ts +1 -1
- package/dist/types/ts3.7/track/createVinylTrackFactories.d.ts +5 -5
- package/dist/types/ts3.7/track/dash/DashManifestController.d.ts +1 -1
- package/dist/types/ts3.7/track/dash/DashTrack.d.ts +4 -4
- 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 +12 -12
- 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/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 +3 -2
- package/dist/types/ts3.7/track/hls/buildHlsMediaTimeline.d.ts +3 -3
- package/dist/types/ts3.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
- package/dist/types/ts3.7/track/hls/util/hlsSegmentTime.d.ts +1 -1
- package/dist/types/ts3.7/track/mse/MseTrack.d.ts +2 -2
- package/dist/types/ts3.7/track/source/FixedPlaybackQuality.d.ts +1 -1
- package/dist/types/ts3.7/track/source/SourceObjectTrack.d.ts +4 -4
- package/dist/types/ts3.7/track/source/SourceTrack.d.ts +4 -4
- package/dist/types/ts3.7/track/source/SourceTrackBase.d.ts +2 -2
- package/dist/types/ts3.7/vinyl/VinylDeps.d.ts +1 -1
- package/dist/types/ts3.7/vinyl/VinylPlayer.d.ts +18 -2
- package/dist/types/ts3.7/vinyl/createVinylFactories.d.ts +9 -11
- package/dist/types/ts4.1/drm/DrmController.d.ts +2 -2
- package/dist/types/ts4.1/drm/DrmControllerImpl.d.ts +3 -3
- 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/global/environment.d.ts +6 -2
- 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 +1 -1
- 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 +4 -4
- package/dist/types/ts4.1/streaming/ContentStreamingOptions.d.ts +2 -2
- package/dist/types/ts4.1/streaming/MediaQualityMetadata.d.ts +2 -2
- package/dist/types/ts4.1/streaming/MediaTimeline.d.ts +6 -5
- package/dist/types/ts4.1/streaming/SegmentController.d.ts +2 -7
- package/dist/types/ts4.1/streaming/SegmentControllerImpl.d.ts +5 -6
- package/dist/types/ts4.1/streaming/SegmentReference.d.ts +1 -1
- package/dist/types/ts4.1/streaming/StreamingEventMap.d.ts +1 -1
- package/dist/types/ts4.1/streaming/abr/QualitySelector.d.ts +1 -1
- package/dist/types/ts4.1/streaming/abr/QualitySelectorImpl.d.ts +18 -3
- package/dist/types/ts4.1/streaming/buffering/BufferingController.d.ts +3 -13
- package/dist/types/ts4.1/streaming/buffering/MediaSourceController.d.ts +41 -15
- package/dist/types/ts4.1/streaming/buffering/SourceBufferController.d.ts +1 -1
- package/dist/types/ts4.1/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
- package/dist/types/ts4.1/streaming/mediaTimelineFilter.d.ts +3 -3
- package/dist/types/ts4.1/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
- package/dist/types/ts4.1/streaming/util/segment.d.ts +1 -1
- package/dist/types/ts4.1/track/AutoResetController.d.ts +37 -12
- package/dist/types/ts4.1/track/TrackController.d.ts +2 -2
- package/dist/types/ts4.1/track/TrackFactory.d.ts +1 -1
- package/dist/types/ts4.1/track/createVinylTrackFactories.d.ts +5 -5
- package/dist/types/ts4.1/track/dash/DashManifestController.d.ts +1 -1
- package/dist/types/ts4.1/track/dash/DashTrack.d.ts +4 -4
- 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 +12 -12
- 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/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 +3 -2
- package/dist/types/ts4.1/track/hls/buildHlsMediaTimeline.d.ts +3 -3
- package/dist/types/ts4.1/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
- package/dist/types/ts4.1/track/hls/util/hlsSegmentTime.d.ts +1 -1
- package/dist/types/ts4.1/track/mse/MseTrack.d.ts +3 -3
- package/dist/types/ts4.1/track/source/FixedPlaybackQuality.d.ts +1 -1
- package/dist/types/ts4.1/track/source/SourceObjectTrack.d.ts +5 -5
- package/dist/types/ts4.1/track/source/SourceTrack.d.ts +5 -5
- package/dist/types/ts4.1/track/source/SourceTrackBase.d.ts +3 -3
- package/dist/types/ts4.1/vinyl/VinylDeps.d.ts +1 -1
- package/dist/types/ts4.1/vinyl/VinylPlayer.d.ts +18 -2
- package/dist/types/ts4.1/vinyl/createVinylFactories.d.ts +9 -11
- package/dist/types/ts4.7/drm/DrmController.d.ts +2 -2
- package/dist/types/ts4.7/drm/DrmControllerImpl.d.ts +3 -3
- 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/global/environment.d.ts +6 -2
- 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 +1 -1
- 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 +4 -4
- package/dist/types/ts4.7/streaming/ContentStreamingOptions.d.ts +2 -2
- package/dist/types/ts4.7/streaming/MediaQualityMetadata.d.ts +2 -2
- package/dist/types/ts4.7/streaming/MediaTimeline.d.ts +6 -5
- package/dist/types/ts4.7/streaming/SegmentController.d.ts +2 -7
- package/dist/types/ts4.7/streaming/SegmentControllerImpl.d.ts +5 -6
- package/dist/types/ts4.7/streaming/SegmentReference.d.ts +1 -1
- package/dist/types/ts4.7/streaming/StreamingEventMap.d.ts +1 -1
- package/dist/types/ts4.7/streaming/abr/QualitySelector.d.ts +1 -1
- package/dist/types/ts4.7/streaming/abr/QualitySelectorImpl.d.ts +18 -3
- package/dist/types/ts4.7/streaming/buffering/BufferingController.d.ts +3 -13
- package/dist/types/ts4.7/streaming/buffering/MediaSourceController.d.ts +41 -15
- package/dist/types/ts4.7/streaming/buffering/SourceBufferController.d.ts +1 -1
- package/dist/types/ts4.7/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
- package/dist/types/ts4.7/streaming/mediaTimelineFilter.d.ts +3 -3
- package/dist/types/ts4.7/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
- package/dist/types/ts4.7/streaming/util/segment.d.ts +1 -1
- package/dist/types/ts4.7/track/AutoResetController.d.ts +37 -12
- package/dist/types/ts4.7/track/TrackController.d.ts +2 -2
- package/dist/types/ts4.7/track/TrackFactory.d.ts +1 -1
- package/dist/types/ts4.7/track/createVinylTrackFactories.d.ts +5 -5
- package/dist/types/ts4.7/track/dash/DashManifestController.d.ts +1 -1
- package/dist/types/ts4.7/track/dash/DashTrack.d.ts +4 -4
- 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 +12 -12
- 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/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 +3 -2
- package/dist/types/ts4.7/track/hls/buildHlsMediaTimeline.d.ts +3 -3
- package/dist/types/ts4.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
- package/dist/types/ts4.7/track/hls/util/hlsSegmentTime.d.ts +1 -1
- package/dist/types/ts4.7/track/mse/MseTrack.d.ts +2 -2
- package/dist/types/ts4.7/track/source/FixedPlaybackQuality.d.ts +1 -1
- package/dist/types/ts4.7/track/source/SourceObjectTrack.d.ts +4 -4
- package/dist/types/ts4.7/track/source/SourceTrack.d.ts +4 -4
- package/dist/types/ts4.7/track/source/SourceTrackBase.d.ts +2 -2
- package/dist/types/ts4.7/vinyl/VinylDeps.d.ts +1 -1
- package/dist/types/ts4.7/vinyl/VinylPlayer.d.ts +26 -2
- package/dist/types/ts4.7/vinyl/createVinylFactories.d.ts +9 -11
- package/dist/unit/types/current/streaming/MediaTimeline.test.js +6 -1
- package/dist/unit/types/current/streaming/MseTrack.test.js +4 -0
- package/dist/unit/types/current/streaming/SegmentControllerImpl.test.js +3 -33
- package/dist/unit/types/current/streaming/abr/QualitySelectorImpl.test.js +73 -0
- package/dist/unit/types/current/streaming/buffering/BufferingController.test.js +1 -41
- package/dist/unit/types/current/streaming/buffering/MediaSourceController.test.js +97 -17
- package/dist/unit/types/current/streaming/createDefaultMediaTimelineTransformer.test.js +6 -0
- package/dist/unit/types/current/streaming/mediaTimelineFilter.test.js +2 -0
- package/dist/unit/types/current/streaming/mediaTimelineLanguageFilter.test.js +7 -0
- package/dist/unit/types/current/track/AutoResetController.test.js +134 -22
- package/dist/unit/types/current/track/dash/createDashContentStreamFactories.test.js +5 -1
- package/dist/unit/types/current/track/dash/createSegmentControllerFactory.test.js +5 -1
- package/dist/unit/types/current/track/dash/util/mpd.test.js +29 -0
- package/dist/unit/types/current/track/hls/buildHlsMediaTimeline.test.js +16 -8
- package/dist/unit/types/current/track/hls/createHlsContentStreamFactories.test.js +5 -1
- package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/unit/types/current/vinyl/VinylPlayer.test.js +35 -0
- package/dist/vinylTestUtil/index.js +20 -14
- package/dist/vinylTestUtil/index.js.map +2 -2
- 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/dash/mockDashManifest.d.ts +12 -12
- 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/player/MockVinylPlayerDependencies.d.ts +6 -6
- package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.js +7 -7
- 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/MockMediaSourceController.d.ts +0 -1
- package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.js +0 -1
- 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/dash/createMockDashDependencies.d.ts +5 -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 +11 -7
- package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts +5 -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 +11 -7
- package/dist/vinylTestUtil/types/current/player/createVinylSuite.js +1 -1
- package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.js +1 -1
- package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlays.js +2 -2
- package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.js +1 -2
- package/dist/vinylTestUtil/types/ts3.7/mock/dash/mockDashManifest.d.ts +12 -12
- 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/player/MockVinylPlayerDependencies.d.ts +6 -6
- package/dist/vinylTestUtil/types/ts3.7/mock/streaming/MockSegmentController.d.ts +0 -1
- package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
- package/dist/vinylTestUtil/types/ts3.7/mock/track/MockAutoResetController.d.ts +1 -0
- package/dist/vinylTestUtil/types/ts3.7/mock/track/dash/createMockDashDependencies.d.ts +5 -5
- package/dist/vinylTestUtil/types/ts3.7/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
- package/dist/vinylTestUtil/types/ts4.1/mock/dash/mockDashManifest.d.ts +12 -12
- 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/player/MockVinylPlayerDependencies.d.ts +6 -6
- package/dist/vinylTestUtil/types/ts4.1/mock/streaming/MockSegmentController.d.ts +0 -1
- package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
- package/dist/vinylTestUtil/types/ts4.1/mock/track/MockAutoResetController.d.ts +1 -0
- package/dist/vinylTestUtil/types/ts4.1/mock/track/dash/createMockDashDependencies.d.ts +5 -5
- package/dist/vinylTestUtil/types/ts4.1/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
- package/dist/vinylTestUtil/types/ts4.7/mock/dash/mockDashManifest.d.ts +12 -12
- 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/player/MockVinylPlayerDependencies.d.ts +6 -6
- package/dist/vinylTestUtil/types/ts4.7/mock/streaming/MockSegmentController.d.ts +0 -1
- package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
- package/dist/vinylTestUtil/types/ts4.7/mock/track/MockAutoResetController.d.ts +1 -0
- package/dist/vinylTestUtil/types/ts4.7/mock/track/dash/createMockDashDependencies.d.ts +5 -5
- package/dist/vinylTestUtil/types/ts4.7/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
- package/docs/USAGE.md +33 -0
- package/package.json +13 -15
package/dist/index.cjs
CHANGED
|
@@ -380,7 +380,7 @@ function getAudioContext() {
|
|
|
380
380
|
// src/client/CapabilitiesImpl.ts
|
|
381
381
|
var CapabilitiesImpl = class {
|
|
382
382
|
constructor(deps) {
|
|
383
|
-
this
|
|
383
|
+
__publicField(this, "deps", deps);
|
|
384
384
|
}
|
|
385
385
|
get mse() {
|
|
386
386
|
return supportsMse();
|
|
@@ -729,9 +729,9 @@ var InvalidSeekError = class _InvalidSeekError extends import_vinyl_util8.Report
|
|
|
729
729
|
import_vinyl_util9.ErrorOrigin.API,
|
|
730
730
|
import_vinyl_util8.ErrorLevel.WARN
|
|
731
731
|
);
|
|
732
|
-
this
|
|
733
|
-
this
|
|
734
|
-
this
|
|
732
|
+
__publicField(this, "time", time);
|
|
733
|
+
__publicField(this, "seekable", seekable);
|
|
734
|
+
__publicField(this, "tolerance", tolerance);
|
|
735
735
|
Object.setPrototypeOf(this, _InvalidSeekError.prototype);
|
|
736
736
|
}
|
|
737
737
|
get [Symbol.toStringTag]() {
|
|
@@ -1567,9 +1567,9 @@ var trackBaseOptionsValidator = /* @__PURE__ */ (0, import_vinyl_validation5.obj
|
|
|
1567
1567
|
var TrackBase = class extends import_vinyl_util19.EventHostImpl {
|
|
1568
1568
|
constructor(uri, type, deps) {
|
|
1569
1569
|
super();
|
|
1570
|
-
this
|
|
1571
|
-
this
|
|
1572
|
-
this
|
|
1570
|
+
__publicField(this, "uri", uri);
|
|
1571
|
+
__publicField(this, "type", type);
|
|
1572
|
+
__publicField(this, "deps", deps);
|
|
1573
1573
|
/**
|
|
1574
1574
|
* The current load options, if this is an active track.
|
|
1575
1575
|
*/
|
|
@@ -1667,7 +1667,7 @@ var import_vinyl_util20 = require("@amazon/vinyl-util");
|
|
|
1667
1667
|
var FixedPlaybackQuality = class extends import_vinyl_util20.EventHostImpl {
|
|
1668
1668
|
constructor(fixedQuality, deps) {
|
|
1669
1669
|
super();
|
|
1670
|
-
this
|
|
1670
|
+
__publicField(this, "deps", deps);
|
|
1671
1671
|
__publicField(this, "_fixedQuality");
|
|
1672
1672
|
__publicField(this, "_contentTypes", /* @__PURE__ */ new Set());
|
|
1673
1673
|
__publicField(this, "_isActive", false);
|
|
@@ -1851,8 +1851,8 @@ var emptyMediaQualityMetadata = /* @__PURE__ */ createEmptyMediaQualityMetadata(
|
|
|
1851
1851
|
var SourceTrackBase = class extends TrackBase {
|
|
1852
1852
|
constructor(uri, type, src, deps) {
|
|
1853
1853
|
super(uri, type, deps);
|
|
1854
|
-
this
|
|
1855
|
-
this
|
|
1854
|
+
__publicField(this, "src", src);
|
|
1855
|
+
__publicField(this, "deps", deps);
|
|
1856
1856
|
__publicField(this, "fixedPlaybackQuality");
|
|
1857
1857
|
__publicField(this, "_resolvedSrc", null);
|
|
1858
1858
|
const add = this.disposer.add;
|
|
@@ -1938,7 +1938,7 @@ function createSourceObjectTrackFactory(deps) {
|
|
|
1938
1938
|
var SourceObjectTrack = class extends SourceTrackBase {
|
|
1939
1939
|
constructor(uri, type, srcObject, deps) {
|
|
1940
1940
|
super(uri, type, srcObject, deps);
|
|
1941
|
-
this
|
|
1941
|
+
__publicField(this, "deps", deps);
|
|
1942
1942
|
}
|
|
1943
1943
|
get [Symbol.toStringTag]() {
|
|
1944
1944
|
return "SourceObjectTrack";
|
|
@@ -1979,7 +1979,7 @@ function createSourceTrackFactory(deps) {
|
|
|
1979
1979
|
var SourceTrack = class extends SourceTrackBase {
|
|
1980
1980
|
constructor(uri, type, src, deps) {
|
|
1981
1981
|
super(uri, type, src, deps);
|
|
1982
|
-
this
|
|
1982
|
+
__publicField(this, "deps", deps);
|
|
1983
1983
|
}
|
|
1984
1984
|
get [Symbol.toStringTag]() {
|
|
1985
1985
|
return "SourceTrack";
|
|
@@ -2041,6 +2041,7 @@ var MseTrack = class extends TrackBase {
|
|
|
2041
2041
|
contentTypesPromise.then((contentTypes) => {
|
|
2042
2042
|
if (this.disposer.disposed) return;
|
|
2043
2043
|
if ((0, import_vinyl_util27.equalDeep)(this.contentTypes, contentTypes)) return;
|
|
2044
|
+
(0, import_vinyl_util27.logDebug)(this, "content types:", contentTypes);
|
|
2044
2045
|
this.clearStreams();
|
|
2045
2046
|
for (const contentType2 of contentTypes) {
|
|
2046
2047
|
this.createStream(contentType2);
|
|
@@ -2365,7 +2366,7 @@ var trackPriority = {
|
|
|
2365
2366
|
var TrackControllerImpl = class extends import_vinyl_util30.EventHostImpl {
|
|
2366
2367
|
constructor(deps, initialOptions) {
|
|
2367
2368
|
super();
|
|
2368
|
-
this
|
|
2369
|
+
__publicField(this, "deps", deps);
|
|
2369
2370
|
// When tracks are preloaded, the cache capacity may expand automatically to accommodate.
|
|
2370
2371
|
__publicField(this, "_autoPreloadCapacity", 0);
|
|
2371
2372
|
__publicField(this, "trackCache", /* @__PURE__ */ new import_vinyl_util30.LruCache(0));
|
|
@@ -2746,9 +2747,18 @@ function flattenRepresentations(period) {
|
|
|
2746
2747
|
return out;
|
|
2747
2748
|
}
|
|
2748
2749
|
function calculateDuration(manifest) {
|
|
2750
|
+
if (manifest.MPD.type === "dynamic") return Infinity;
|
|
2749
2751
|
const mpdDuration = manifest.MPD.mediaPresentationDuration;
|
|
2750
2752
|
if (mpdDuration != null) return mpdDuration;
|
|
2751
|
-
|
|
2753
|
+
const lastPeriod = (0, import_vinyl_util33.last)(manifest.MPD.Period);
|
|
2754
|
+
if (!lastPeriod) {
|
|
2755
|
+
throw new Error("Unable to determine manifest duration: no periods");
|
|
2756
|
+
}
|
|
2757
|
+
const end = calculatePeriodEnd(lastPeriod);
|
|
2758
|
+
if (end == null) {
|
|
2759
|
+
throw new Error("Unable to determine manifest duration");
|
|
2760
|
+
}
|
|
2761
|
+
return end;
|
|
2752
2762
|
}
|
|
2753
2763
|
|
|
2754
2764
|
// src/track/dash/util/uriResolution.ts
|
|
@@ -3159,16 +3169,84 @@ function resolveAdaptationSetSwitchingGroupIds(adaptationSet, periodId, adaptati
|
|
|
3159
3169
|
}
|
|
3160
3170
|
|
|
3161
3171
|
// src/streaming/buffering/MediaSourceController.ts
|
|
3172
|
+
var import_vinyl_util43 = require("@amazon/vinyl-util");
|
|
3173
|
+
|
|
3174
|
+
// src/util/media/sourceBuffer.ts
|
|
3175
|
+
var import_vinyl_util41 = require("@amazon/vinyl-util");
|
|
3176
|
+
|
|
3177
|
+
// src/streaming/buffering/error/SourceBufferError.ts
|
|
3162
3178
|
var import_vinyl_util39 = require("@amazon/vinyl-util");
|
|
3163
|
-
var
|
|
3179
|
+
var import_vinyl_util40 = require("@amazon/vinyl-util");
|
|
3180
|
+
var SourceBufferError = class _SourceBufferError extends import_vinyl_util40.ReportableError {
|
|
3181
|
+
get [Symbol.toStringTag]() {
|
|
3182
|
+
return "SourceBufferError";
|
|
3183
|
+
}
|
|
3184
|
+
constructor(message = `A SourceBuffer error has occurred.`, origin = import_vinyl_util39.ErrorOrigin.MEDIA) {
|
|
3185
|
+
super(message, origin);
|
|
3186
|
+
Object.setPrototypeOf(this, _SourceBufferError.prototype);
|
|
3187
|
+
}
|
|
3188
|
+
};
|
|
3189
|
+
|
|
3190
|
+
// src/util/media/sourceBuffer.ts
|
|
3191
|
+
var import_vinyl_util42 = require("@amazon/vinyl-util");
|
|
3192
|
+
function nextSourceBufferIdle(sourceBuffer) {
|
|
3193
|
+
if (!sourceBuffer) return Promise.resolve();
|
|
3194
|
+
if (!sourceBuffer.updating) return Promise.resolve();
|
|
3195
|
+
return (0, import_vinyl_util41.promise)((resolve, reject) => {
|
|
3196
|
+
const removeListeners = () => {
|
|
3197
|
+
sourceBuffer.removeEventListener("error", onErred);
|
|
3198
|
+
sourceBuffer.removeEventListener("abort", onAborted);
|
|
3199
|
+
sourceBuffer.removeEventListener("update", onEnded);
|
|
3200
|
+
};
|
|
3201
|
+
const onEnded = () => {
|
|
3202
|
+
removeListeners();
|
|
3203
|
+
resolve();
|
|
3204
|
+
};
|
|
3205
|
+
const onErred = (_event) => {
|
|
3206
|
+
removeListeners();
|
|
3207
|
+
reject(new SourceBufferError());
|
|
3208
|
+
};
|
|
3209
|
+
const onAborted = () => {
|
|
3210
|
+
removeListeners();
|
|
3211
|
+
reject(new import_vinyl_util42.AbortError());
|
|
3212
|
+
};
|
|
3213
|
+
sourceBuffer.addEventListener("error", onErred);
|
|
3214
|
+
sourceBuffer.addEventListener("abort", onAborted);
|
|
3215
|
+
sourceBuffer.addEventListener("update", onEnded);
|
|
3216
|
+
});
|
|
3217
|
+
}
|
|
3218
|
+
|
|
3219
|
+
// src/streaming/buffering/MediaSourceController.ts
|
|
3220
|
+
var DURATION_PADDING = 0.1;
|
|
3221
|
+
var MediaSourceControllerImpl = class extends import_vinyl_util43.EventHostImpl {
|
|
3164
3222
|
constructor(deps) {
|
|
3165
3223
|
super();
|
|
3166
|
-
__publicField(this, "
|
|
3224
|
+
__publicField(this, "deps", deps);
|
|
3225
|
+
__publicField(this, "sourceBuffers", /* @__PURE__ */ new Set());
|
|
3167
3226
|
__publicField(this, "mediaSource");
|
|
3168
|
-
__publicField(this, "disposer", /* @__PURE__ */ (0,
|
|
3227
|
+
__publicField(this, "disposer", /* @__PURE__ */ (0, import_vinyl_util43.createDisposer)());
|
|
3169
3228
|
__publicField(this, "contentTypes", null);
|
|
3229
|
+
__publicField(this, "durationSet", false);
|
|
3230
|
+
/**
|
|
3231
|
+
* Token for the in-flight duration update; used to discard stale results when
|
|
3232
|
+
* the timeline changes or the source closes mid-fetch.
|
|
3233
|
+
*/
|
|
3234
|
+
__publicField(this, "durationToken", 0);
|
|
3235
|
+
__publicField(this, "errorHandler", (error) => {
|
|
3236
|
+
if ((0, import_vinyl_util43.isSilentError)(error)) return;
|
|
3237
|
+
this.dispatch("error", {
|
|
3238
|
+
target: this,
|
|
3239
|
+
error
|
|
3240
|
+
});
|
|
3241
|
+
});
|
|
3170
3242
|
/**
|
|
3171
|
-
*
|
|
3243
|
+
* Subscription to mediaTimelineTransformed; only attached while the media source is open
|
|
3244
|
+
* so the timeline pipeline isn't forced to evaluate before the source has opened.
|
|
3245
|
+
*/
|
|
3246
|
+
__publicField(this, "timelineSub", null);
|
|
3247
|
+
/**
|
|
3248
|
+
* Emits a 'readyToAppend' event if all source buffers have been created and the duration
|
|
3249
|
+
* has been applied to the media source.
|
|
3172
3250
|
*/
|
|
3173
3251
|
__publicField(this, "checkReady", () => {
|
|
3174
3252
|
if (this.readyToAppend) this.dispatch("readyToAppend", {});
|
|
@@ -3181,20 +3259,18 @@ var MediaSourceControllerImpl = class extends import_vinyl_util39.EventHostImpl
|
|
|
3181
3259
|
value.then((contentTypes) => {
|
|
3182
3260
|
this.contentTypes = contentTypes;
|
|
3183
3261
|
this.checkReady();
|
|
3184
|
-
}).catch(
|
|
3185
|
-
this.dispatch("error", {
|
|
3186
|
-
target: this,
|
|
3187
|
-
error
|
|
3188
|
-
});
|
|
3189
|
-
});
|
|
3262
|
+
}).catch(this.errorHandler);
|
|
3190
3263
|
})
|
|
3191
3264
|
);
|
|
3192
3265
|
}
|
|
3193
3266
|
get [Symbol.toStringTag]() {
|
|
3194
3267
|
return "MediaSourceControllerImpl";
|
|
3195
3268
|
}
|
|
3269
|
+
get sourceBufferCount() {
|
|
3270
|
+
return this.sourceBuffers.size;
|
|
3271
|
+
}
|
|
3196
3272
|
initializeEvents() {
|
|
3197
|
-
const domEvents = new
|
|
3273
|
+
const domEvents = new import_vinyl_util43.DomEventHost(
|
|
3198
3274
|
this.mediaSource
|
|
3199
3275
|
);
|
|
3200
3276
|
for (const key of [
|
|
@@ -3202,21 +3278,46 @@ var MediaSourceControllerImpl = class extends import_vinyl_util39.EventHostImpl
|
|
|
3202
3278
|
"sourceOpen",
|
|
3203
3279
|
"sourceEnded"
|
|
3204
3280
|
]) {
|
|
3205
|
-
domEvents.on((0,
|
|
3281
|
+
domEvents.on((0, import_vinyl_util43.toLowerCase)(key), () => this.dispatch(key, {}));
|
|
3206
3282
|
}
|
|
3283
|
+
this.timelineSub = this.deps.mediaTimelineTransformed.onData(() => {
|
|
3284
|
+
this.refreshDuration().catch(this.errorHandler);
|
|
3285
|
+
});
|
|
3286
|
+
this.on("sourceOpen", () => {
|
|
3287
|
+
this.refreshDuration().catch(this.errorHandler);
|
|
3288
|
+
});
|
|
3289
|
+
this.on("sourceClose", () => {
|
|
3290
|
+
this.durationSet = false;
|
|
3291
|
+
++this.durationToken;
|
|
3292
|
+
});
|
|
3207
3293
|
}
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3294
|
+
/**
|
|
3295
|
+
* Sets the duration on the media source from the current media timeline.
|
|
3296
|
+
* Live streams use LIVE_DURATION since not all browsers support +Infinity duration.
|
|
3297
|
+
*
|
|
3298
|
+
* MSE throws InvalidStateError if duration is set while any source buffer is updating,
|
|
3299
|
+
* so we wait for all tracked source buffers to be idle first.
|
|
3300
|
+
*/
|
|
3301
|
+
async refreshDuration() {
|
|
3302
|
+
const timelinePromise = this.deps.mediaTimelineTransformed.value;
|
|
3303
|
+
const token = ++this.durationToken;
|
|
3304
|
+
const timeline = await timelinePromise;
|
|
3305
|
+
const duration = await timeline.getDuration();
|
|
3306
|
+
const value = duration === Infinity ? LIVE_DURATION : duration + DURATION_PADDING;
|
|
3307
|
+
await Promise.all(Array.from(this.sourceBuffers, nextSourceBufferIdle));
|
|
3308
|
+
if (token !== this.durationToken || this.mediaSource.readyState !== "open" || (0, import_vinyl_util43.closeTo)(this.mediaSource.duration, value, 0.1))
|
|
3309
|
+
return;
|
|
3310
|
+
(0, import_vinyl_util43.logDebug)(this, `setting duration: ${value}`);
|
|
3212
3311
|
this.mediaSource.duration = value;
|
|
3312
|
+
this.durationSet = true;
|
|
3313
|
+
this.checkReady();
|
|
3213
3314
|
}
|
|
3214
3315
|
get readyState() {
|
|
3215
3316
|
return this.mediaSource.readyState;
|
|
3216
3317
|
}
|
|
3217
3318
|
createSourceBuffer(contentType2, mimeType) {
|
|
3218
3319
|
const mediaSource = this.mediaSource;
|
|
3219
|
-
(0,
|
|
3320
|
+
(0, import_vinyl_util43.logDebug)(
|
|
3220
3321
|
this,
|
|
3221
3322
|
"create source buffer",
|
|
3222
3323
|
contentType2,
|
|
@@ -3232,10 +3333,10 @@ var MediaSourceControllerImpl = class extends import_vinyl_util39.EventHostImpl
|
|
|
3232
3333
|
throw new MediaSourceError("error creating source buffer", error);
|
|
3233
3334
|
}
|
|
3234
3335
|
sourceBuffer.mode = "sequence";
|
|
3235
|
-
|
|
3336
|
+
this.sourceBuffers.add(sourceBuffer);
|
|
3236
3337
|
this.checkReady();
|
|
3237
3338
|
const dispose = () => {
|
|
3238
|
-
(0,
|
|
3339
|
+
(0, import_vinyl_util43.logDebug)(
|
|
3239
3340
|
this,
|
|
3240
3341
|
"removing source buffer from media source",
|
|
3241
3342
|
mediaSource.readyState
|
|
@@ -3243,7 +3344,7 @@ var MediaSourceControllerImpl = class extends import_vinyl_util39.EventHostImpl
|
|
|
3243
3344
|
if (mediaSource.readyState !== "closed") {
|
|
3244
3345
|
mediaSource.removeSourceBuffer(sourceBuffer);
|
|
3245
3346
|
}
|
|
3246
|
-
|
|
3347
|
+
this.sourceBuffers.delete(sourceBuffer);
|
|
3247
3348
|
};
|
|
3248
3349
|
return {
|
|
3249
3350
|
value: sourceBuffer,
|
|
@@ -3251,7 +3352,7 @@ var MediaSourceControllerImpl = class extends import_vinyl_util39.EventHostImpl
|
|
|
3251
3352
|
};
|
|
3252
3353
|
}
|
|
3253
3354
|
endOfStream(error) {
|
|
3254
|
-
(0,
|
|
3355
|
+
(0, import_vinyl_util43.logDebug)(this, "endOfStream, error:", error);
|
|
3255
3356
|
this.mediaSource.endOfStream(error);
|
|
3256
3357
|
}
|
|
3257
3358
|
createUrl() {
|
|
@@ -3259,17 +3360,20 @@ var MediaSourceControllerImpl = class extends import_vinyl_util39.EventHostImpl
|
|
|
3259
3360
|
}
|
|
3260
3361
|
get readyToAppend() {
|
|
3261
3362
|
var _a;
|
|
3262
|
-
return ((_a = this.contentTypes) == null ? void 0 : _a.size) === this.sourceBufferCount;
|
|
3363
|
+
return this.durationSet && ((_a = this.contentTypes) == null ? void 0 : _a.size) === this.sourceBufferCount;
|
|
3263
3364
|
}
|
|
3264
3365
|
dispose() {
|
|
3366
|
+
var _a;
|
|
3265
3367
|
super.dispose();
|
|
3368
|
+
(_a = this.timelineSub) == null ? void 0 : _a.call(this);
|
|
3369
|
+
this.timelineSub = null;
|
|
3266
3370
|
this.disposer.dispose();
|
|
3267
3371
|
}
|
|
3268
3372
|
};
|
|
3269
|
-
var MediaSourceError = class _MediaSourceError extends
|
|
3373
|
+
var MediaSourceError = class _MediaSourceError extends import_vinyl_util43.ReportableError {
|
|
3270
3374
|
constructor(message, reason) {
|
|
3271
|
-
super(message,
|
|
3272
|
-
this
|
|
3375
|
+
super(message, import_vinyl_util43.ErrorOrigin.INTERNAL, import_vinyl_util43.ErrorLevel.FATAL);
|
|
3376
|
+
__publicField(this, "reason", reason);
|
|
3273
3377
|
Object.setPrototypeOf(this, _MediaSourceError.prototype);
|
|
3274
3378
|
}
|
|
3275
3379
|
get [Symbol.toStringTag]() {
|
|
@@ -3277,23 +3381,23 @@ var MediaSourceError = class _MediaSourceError extends import_vinyl_util39.Repor
|
|
|
3277
3381
|
}
|
|
3278
3382
|
toJSON() {
|
|
3279
3383
|
return __spreadProps(__spreadValues({}, super.toJSON()), {
|
|
3280
|
-
reason: (0,
|
|
3384
|
+
reason: (0, import_vinyl_util43.toJson)(this.reason)
|
|
3281
3385
|
});
|
|
3282
3386
|
}
|
|
3283
3387
|
};
|
|
3284
3388
|
|
|
3285
3389
|
// src/track/dash/DashManifestController.ts
|
|
3286
3390
|
var import_vinyl_observable2 = require("@amazon/vinyl-observable");
|
|
3287
|
-
var
|
|
3391
|
+
var import_vinyl_util44 = require("@amazon/vinyl-util");
|
|
3288
3392
|
var DashManifestControllerImpl = class {
|
|
3289
3393
|
constructor(deps) {
|
|
3290
|
-
this
|
|
3394
|
+
__publicField(this, "deps", deps);
|
|
3291
3395
|
__publicField(this, "_data", /* @__PURE__ */ (0, import_vinyl_observable2.data)(
|
|
3292
3396
|
/* @__PURE__ */ Promise.reject(/* @__PURE__ */ new Error("manifest not loaded"))
|
|
3293
3397
|
));
|
|
3294
3398
|
__publicField(this, "_error", null);
|
|
3295
|
-
__publicField(this, "abortSlot", /* @__PURE__ */ (0,
|
|
3296
|
-
__publicField(this, "disposer", /* @__PURE__ */ (0,
|
|
3399
|
+
__publicField(this, "abortSlot", /* @__PURE__ */ (0, import_vinyl_util44.createAbortSlot)());
|
|
3400
|
+
__publicField(this, "disposer", /* @__PURE__ */ (0, import_vinyl_util44.createDisposer)());
|
|
3297
3401
|
this._data.value.catch(() => {
|
|
3298
3402
|
});
|
|
3299
3403
|
this.refresh();
|
|
@@ -3316,7 +3420,7 @@ var DashManifestControllerImpl = class {
|
|
|
3316
3420
|
* previous error before starting a new fetch.
|
|
3317
3421
|
*/
|
|
3318
3422
|
refresh() {
|
|
3319
|
-
(0,
|
|
3423
|
+
(0, import_vinyl_util44.logDebug)(this, "refresh");
|
|
3320
3424
|
this.abort();
|
|
3321
3425
|
this._error = null;
|
|
3322
3426
|
const promise2 = this.deps.manifestProvider(this.abortSlot.value);
|
|
@@ -3329,7 +3433,7 @@ var DashManifestControllerImpl = class {
|
|
|
3329
3433
|
* If the manifest is in an error state, triggers a refresh.
|
|
3330
3434
|
*/
|
|
3331
3435
|
reset() {
|
|
3332
|
-
(0,
|
|
3436
|
+
(0, import_vinyl_util44.logDebug)(this, "reset");
|
|
3333
3437
|
if (this._error) {
|
|
3334
3438
|
this.refresh();
|
|
3335
3439
|
}
|
|
@@ -3366,59 +3470,12 @@ var DashManifestControllerImpl = class {
|
|
|
3366
3470
|
|
|
3367
3471
|
// src/streaming/buffering/SourceBufferController.ts
|
|
3368
3472
|
var import_vinyl_util45 = require("@amazon/vinyl-util");
|
|
3369
|
-
|
|
3370
|
-
// src/util/media/sourceBuffer.ts
|
|
3371
|
-
var import_vinyl_util43 = require("@amazon/vinyl-util");
|
|
3372
|
-
|
|
3373
|
-
// src/streaming/buffering/error/SourceBufferError.ts
|
|
3374
|
-
var import_vinyl_util41 = require("@amazon/vinyl-util");
|
|
3375
|
-
var import_vinyl_util42 = require("@amazon/vinyl-util");
|
|
3376
|
-
var SourceBufferError = class _SourceBufferError extends import_vinyl_util42.ReportableError {
|
|
3377
|
-
get [Symbol.toStringTag]() {
|
|
3378
|
-
return "SourceBufferError";
|
|
3379
|
-
}
|
|
3380
|
-
constructor(message = `A SourceBuffer error has occurred.`, origin = import_vinyl_util41.ErrorOrigin.MEDIA) {
|
|
3381
|
-
super(message, origin);
|
|
3382
|
-
Object.setPrototypeOf(this, _SourceBufferError.prototype);
|
|
3383
|
-
}
|
|
3384
|
-
};
|
|
3385
|
-
|
|
3386
|
-
// src/util/media/sourceBuffer.ts
|
|
3387
|
-
var import_vinyl_util44 = require("@amazon/vinyl-util");
|
|
3388
|
-
function nextSourceBufferIdle(sourceBuffer) {
|
|
3389
|
-
if (!sourceBuffer) return Promise.resolve();
|
|
3390
|
-
if (!sourceBuffer.updating) return Promise.resolve();
|
|
3391
|
-
return (0, import_vinyl_util43.promise)((resolve, reject) => {
|
|
3392
|
-
const removeListeners = () => {
|
|
3393
|
-
sourceBuffer.removeEventListener("error", onErred);
|
|
3394
|
-
sourceBuffer.removeEventListener("abort", onAborted);
|
|
3395
|
-
sourceBuffer.removeEventListener("update", onEnded);
|
|
3396
|
-
};
|
|
3397
|
-
const onEnded = () => {
|
|
3398
|
-
removeListeners();
|
|
3399
|
-
resolve();
|
|
3400
|
-
};
|
|
3401
|
-
const onErred = (_event) => {
|
|
3402
|
-
removeListeners();
|
|
3403
|
-
reject(new SourceBufferError());
|
|
3404
|
-
};
|
|
3405
|
-
const onAborted = () => {
|
|
3406
|
-
removeListeners();
|
|
3407
|
-
reject(new import_vinyl_util44.AbortError());
|
|
3408
|
-
};
|
|
3409
|
-
sourceBuffer.addEventListener("error", onErred);
|
|
3410
|
-
sourceBuffer.addEventListener("abort", onAborted);
|
|
3411
|
-
sourceBuffer.addEventListener("update", onEnded);
|
|
3412
|
-
});
|
|
3413
|
-
}
|
|
3414
|
-
|
|
3415
|
-
// src/streaming/buffering/SourceBufferController.ts
|
|
3416
3473
|
var APPEND_WINDOW_START_OFFSET = 0.05;
|
|
3417
3474
|
var APPEND_WINDOW_END_OFFSET = 0.01;
|
|
3418
3475
|
var READY_TO_APPEND_TIMEOUT = 30;
|
|
3419
3476
|
var SourceBufferControllerImpl = class {
|
|
3420
3477
|
constructor(deps, contentType2) {
|
|
3421
|
-
this
|
|
3478
|
+
__publicField(this, "contentType", contentType2);
|
|
3422
3479
|
__publicField(this, "sourceBufferRef", null);
|
|
3423
3480
|
__publicField(this, "mimeType", null);
|
|
3424
3481
|
__publicField(this, "queue", /* @__PURE__ */ (0, import_vinyl_util45.createTaskQueue)());
|
|
@@ -3575,7 +3632,6 @@ var import_vinyl_util46 = require("@amazon/vinyl-util");
|
|
|
3575
3632
|
var SEGMENT_START_AFFORDANCE = 0.2;
|
|
3576
3633
|
|
|
3577
3634
|
// src/streaming/buffering/BufferingController.ts
|
|
3578
|
-
var DURATION_PADDING = 0.1;
|
|
3579
3635
|
var POLL_BUFFER_THROTTLE = 0.1;
|
|
3580
3636
|
var QUOTA_REACHED_SCALE = 0.8;
|
|
3581
3637
|
var MIN_APPEND_SIZE = 524288;
|
|
@@ -3600,8 +3656,8 @@ var defaultBufferingControllerOptions = {
|
|
|
3600
3656
|
var BufferingControllerImpl = class extends import_vinyl_util46.EventHostImpl {
|
|
3601
3657
|
constructor(deps, contentType2, options) {
|
|
3602
3658
|
super();
|
|
3603
|
-
this
|
|
3604
|
-
this
|
|
3659
|
+
__publicField(this, "deps", deps);
|
|
3660
|
+
__publicField(this, "contentType", contentType2);
|
|
3605
3661
|
__publicField(this, "options");
|
|
3606
3662
|
__publicField(this, "mediaSourceController");
|
|
3607
3663
|
__publicField(this, "playbackController");
|
|
@@ -3737,7 +3793,6 @@ var BufferingControllerImpl = class extends import_vinyl_util46.EventHostImpl {
|
|
|
3737
3793
|
);
|
|
3738
3794
|
const onMediaSourceOpen2 = () => {
|
|
3739
3795
|
(0, import_vinyl_util46.logDebug)(this, "media source opened");
|
|
3740
|
-
this.refreshDuration();
|
|
3741
3796
|
this.pollBufferImmediate();
|
|
3742
3797
|
};
|
|
3743
3798
|
if (this.mediaSourceOpen) {
|
|
@@ -3748,7 +3803,6 @@ var BufferingControllerImpl = class extends import_vinyl_util46.EventHostImpl {
|
|
|
3748
3803
|
add(
|
|
3749
3804
|
this.segmentController.on("change", () => {
|
|
3750
3805
|
this.reopen = true;
|
|
3751
|
-
this.refreshDuration();
|
|
3752
3806
|
this.pollBufferImmediate();
|
|
3753
3807
|
})
|
|
3754
3808
|
);
|
|
@@ -3778,18 +3832,6 @@ var BufferingControllerImpl = class extends import_vinyl_util46.EventHostImpl {
|
|
|
3778
3832
|
get busy() {
|
|
3779
3833
|
return this.queue.running > 0;
|
|
3780
3834
|
}
|
|
3781
|
-
/**
|
|
3782
|
-
* Enqueues a duration update.
|
|
3783
|
-
*/
|
|
3784
|
-
refreshDuration() {
|
|
3785
|
-
this.sourceBufferController.enqueue(async () => {
|
|
3786
|
-
if (!this.mediaSourceOpen) return;
|
|
3787
|
-
const duration = await this.segmentController.getDuration();
|
|
3788
|
-
const newDuration = duration == null ? LIVE_DURATION : duration + DURATION_PADDING;
|
|
3789
|
-
(0, import_vinyl_util46.logDebug)(this, `setting duration: ${newDuration}`);
|
|
3790
|
-
this.mediaSourceController.duration = newDuration;
|
|
3791
|
-
}).catch(this.handleError);
|
|
3792
|
-
}
|
|
3793
3835
|
shouldAppend() {
|
|
3794
3836
|
return this.active && !this.busy && !this.error && !this.mediaSourceClosed && (!this.bufferingEnded || this.reopen) && // Return true if the current buffer is less than the minimum buffer and the playhead has not reached duration.
|
|
3795
3837
|
this.getBufferedTime() <= this.options.minBuffer;
|
|
@@ -4021,7 +4063,7 @@ var SegmentStatus = /* @__PURE__ */ ((SegmentStatus2) => {
|
|
|
4021
4063
|
})(SegmentStatus || {});
|
|
4022
4064
|
var SegmentDataSlot = class {
|
|
4023
4065
|
constructor(requestSegmentData) {
|
|
4024
|
-
this
|
|
4066
|
+
__publicField(this, "requestSegmentData", requestSegmentData);
|
|
4025
4067
|
/**
|
|
4026
4068
|
* Called when the status has changed.
|
|
4027
4069
|
*/
|
|
@@ -4154,8 +4196,8 @@ var defaultSegmentControllerBaseOptions = {
|
|
|
4154
4196
|
var SegmentControllerImpl = class extends import_vinyl_util50.EventHostImpl {
|
|
4155
4197
|
constructor(deps, contentType2, options) {
|
|
4156
4198
|
super();
|
|
4157
|
-
this
|
|
4158
|
-
this
|
|
4199
|
+
__publicField(this, "deps", deps);
|
|
4200
|
+
__publicField(this, "contentType", contentType2);
|
|
4159
4201
|
__publicField(this, "_active", false);
|
|
4160
4202
|
__publicField(this, "_fetchedRanges", /* @__PURE__ */ new import_vinyl_util50.RangesImpl());
|
|
4161
4203
|
__publicField(this, "_startTime", 0);
|
|
@@ -4259,14 +4301,6 @@ var SegmentControllerImpl = class extends import_vinyl_util50.EventHostImpl {
|
|
|
4259
4301
|
get error() {
|
|
4260
4302
|
return this._error;
|
|
4261
4303
|
}
|
|
4262
|
-
async getDuration() {
|
|
4263
|
-
const timeline = await this.deps.mediaTimelineTransformed.value;
|
|
4264
|
-
if (timeline.getDuration) return timeline.getDuration();
|
|
4265
|
-
const periods = timeline.periods;
|
|
4266
|
-
if (periods.length === 0) return null;
|
|
4267
|
-
const last4 = periods[periods.length - 1];
|
|
4268
|
-
return last4.endTime === Infinity ? null : last4.endTime;
|
|
4269
|
-
}
|
|
4270
4304
|
/**
|
|
4271
4305
|
* Gets the period at the given time, using a cache for the last returned period.
|
|
4272
4306
|
*/
|
|
@@ -4659,7 +4693,8 @@ var qualitySelectorImplOptionsValidator = /* @__PURE__ */ (0, import_vinyl_valid
|
|
|
4659
4693
|
strategy: /* @__PURE__ */ (0, import_vinyl_validation12.enumOf)(AbrStrategy).optional(),
|
|
4660
4694
|
bandwidthMultiplierLow: /* @__PURE__ */ (0, import_vinyl_validation12.number)().optional(),
|
|
4661
4695
|
bandwidthMultiplierHigh: /* @__PURE__ */ (0, import_vinyl_validation12.number)().optional(),
|
|
4662
|
-
restrictDecoderChangeOnAudioAbrUp: /* @__PURE__ */ (0, import_vinyl_validation12.boolean)().optional()
|
|
4696
|
+
restrictDecoderChangeOnAudioAbrUp: /* @__PURE__ */ (0, import_vinyl_validation12.boolean)().optional(),
|
|
4697
|
+
maxBandwidth: /* @__PURE__ */ (0, import_vinyl_validation12.number)().maybe().optional()
|
|
4663
4698
|
});
|
|
4664
4699
|
var defaultQualitySelectorImplOptions = {
|
|
4665
4700
|
highBufferThreshold: 15,
|
|
@@ -4667,7 +4702,8 @@ var defaultQualitySelectorImplOptions = {
|
|
|
4667
4702
|
strategy: "best" /* BEST */,
|
|
4668
4703
|
bandwidthMultiplierLow: 0.4,
|
|
4669
4704
|
bandwidthMultiplierHigh: 0.9,
|
|
4670
|
-
restrictDecoderChangeOnAudioAbrUp: false
|
|
4705
|
+
restrictDecoderChangeOnAudioAbrUp: false,
|
|
4706
|
+
maxBandwidth: null
|
|
4671
4707
|
};
|
|
4672
4708
|
var QualitySelectorImpl = class {
|
|
4673
4709
|
constructor(deps) {
|
|
@@ -4694,7 +4730,8 @@ var QualitySelectorImpl = class {
|
|
|
4694
4730
|
lowBufferThreshold,
|
|
4695
4731
|
bandwidthMultiplierLow,
|
|
4696
4732
|
bandwidthMultiplierHigh,
|
|
4697
|
-
restrictDecoderChangeOnAudioAbrUp
|
|
4733
|
+
restrictDecoderChangeOnAudioAbrUp,
|
|
4734
|
+
maxBandwidth
|
|
4698
4735
|
} = this.options;
|
|
4699
4736
|
const previousQuality = prefetchState.previousQuality;
|
|
4700
4737
|
const previousIndex = previousQuality == null ? -1 : qualities.findIndex(
|
|
@@ -4711,7 +4748,10 @@ var QualitySelectorImpl = class {
|
|
|
4711
4748
|
const bandwidthEstimate = (0, import_vinyl_util52.getNetworkMetrics)().estimatedDownlinkBandwidth;
|
|
4712
4749
|
const bufferRatio = highBufferThreshold > 0 ? (0, import_vinyl_util52.clamp)(fetchedTime / highBufferThreshold, 0, 1) : 1;
|
|
4713
4750
|
const bandwidthMultiplier = prefetchState.active ? (0, import_vinyl_util52.lerp)(bandwidthMultiplierLow, bandwidthMultiplierHigh, bufferRatio) : bandwidthMultiplierHigh;
|
|
4714
|
-
|
|
4751
|
+
let bandwidth = (prefetchState.active ? Math.min(bandwidthEstimate.ewmaLow, bandwidthEstimate.latest) : bandwidthEstimate.ewmaLow) * bandwidthMultiplier;
|
|
4752
|
+
if (maxBandwidth != null && maxBandwidth < bandwidth) {
|
|
4753
|
+
bandwidth = maxBandwidth;
|
|
4754
|
+
}
|
|
4715
4755
|
let restrictDecoderId = null;
|
|
4716
4756
|
let restrictSwitchingGroupIds = null;
|
|
4717
4757
|
if (previousQuality && previousIndex >= 0) {
|
|
@@ -4794,7 +4834,7 @@ var import_vinyl_di3 = require("@amazon/vinyl-di");
|
|
|
4794
4834
|
var ContentStreamImpl = class extends import_vinyl_util56.EventHostImpl {
|
|
4795
4835
|
constructor(dependencyFactories, contentType2) {
|
|
4796
4836
|
super();
|
|
4797
|
-
this
|
|
4837
|
+
__publicField(this, "contentType", contentType2);
|
|
4798
4838
|
__publicField(this, "disposer", /* @__PURE__ */ (0, import_vinyl_util56.createDisposer)());
|
|
4799
4839
|
__publicField(this, "segmentController");
|
|
4800
4840
|
__publicField(this, "bufferingController");
|
|
@@ -5756,7 +5796,7 @@ var import_vinyl_observable4 = require("@amazon/vinyl-observable");
|
|
|
5756
5796
|
var import_vinyl_util65 = require("@amazon/vinyl-util");
|
|
5757
5797
|
var HlsManifestControllerImpl = class {
|
|
5758
5798
|
constructor(manifestProvider) {
|
|
5759
|
-
this
|
|
5799
|
+
__publicField(this, "manifestProvider", manifestProvider);
|
|
5760
5800
|
__publicField(this, "_data", /* @__PURE__ */ (0, import_vinyl_observable4.data)(
|
|
5761
5801
|
/* @__PURE__ */ Promise.reject(/* @__PURE__ */ new Error("manifest not loaded"))
|
|
5762
5802
|
));
|
|
@@ -6060,17 +6100,21 @@ function buildHlsMediaTimeline(deps, data4) {
|
|
|
6060
6100
|
minBufferTime: DEFAULT_MIN_BUFFER_TIME,
|
|
6061
6101
|
async getDuration() {
|
|
6062
6102
|
if (cachedDuration != null) return cachedDuration;
|
|
6063
|
-
if (mainPlaylist.variants.length === 0)
|
|
6064
|
-
|
|
6065
|
-
|
|
6066
|
-
|
|
6103
|
+
if (mainPlaylist.variants.length === 0) {
|
|
6104
|
+
throw new Error("Unable to determine HLS duration: no variants");
|
|
6105
|
+
}
|
|
6106
|
+
const playlist = await data4.getMediaPlaylist(
|
|
6107
|
+
mainPlaylist.variants[0].uri
|
|
6108
|
+
);
|
|
6109
|
+
if (!playlist.ended) return Infinity;
|
|
6110
|
+
if (playlist.segments.length === 0) {
|
|
6111
|
+
throw new Error(
|
|
6112
|
+
"Unable to determine HLS duration: no segments in media playlist"
|
|
6067
6113
|
);
|
|
6068
|
-
let total = 0;
|
|
6069
|
-
for (const seg of playlist.segments) total += seg.duration;
|
|
6070
|
-
cachedDuration = total > 0 ? total : null;
|
|
6071
|
-
} catch (e) {
|
|
6072
|
-
return null;
|
|
6073
6114
|
}
|
|
6115
|
+
let total = 0;
|
|
6116
|
+
for (const seg of playlist.segments) total += seg.duration;
|
|
6117
|
+
cachedDuration = total;
|
|
6074
6118
|
return cachedDuration;
|
|
6075
6119
|
}
|
|
6076
6120
|
};
|
|
@@ -6117,10 +6161,10 @@ var import_vinyl_util70 = require("@amazon/vinyl-util");
|
|
|
6117
6161
|
var CommonMediaKeySessionError = class _CommonMediaKeySessionError extends import_vinyl_util70.ReportableError {
|
|
6118
6162
|
constructor(code, codeStr, systemCode, systemCodeStr) {
|
|
6119
6163
|
super(codeStr, import_vinyl_util70.ErrorOrigin.DRM, import_vinyl_util70.ErrorLevel.WARN);
|
|
6120
|
-
this
|
|
6121
|
-
this
|
|
6122
|
-
this
|
|
6123
|
-
this
|
|
6164
|
+
__publicField(this, "code", code);
|
|
6165
|
+
__publicField(this, "codeStr", codeStr);
|
|
6166
|
+
__publicField(this, "systemCode", systemCode);
|
|
6167
|
+
__publicField(this, "systemCodeStr", systemCodeStr);
|
|
6124
6168
|
Object.setPrototypeOf(this, _CommonMediaKeySessionError.prototype);
|
|
6125
6169
|
}
|
|
6126
6170
|
get [Symbol.toStringTag]() {
|
|
@@ -6151,10 +6195,10 @@ var import_vinyl_util72 = require("@amazon/vinyl-util");
|
|
|
6151
6195
|
var DrmError = class _DrmError extends import_vinyl_util72.ReportableError {
|
|
6152
6196
|
constructor(message, extra = null, origin = import_vinyl_util71.ErrorOrigin.DRM, level = import_vinyl_util72.ErrorLevel.FATAL) {
|
|
6153
6197
|
super(message, origin, level);
|
|
6154
|
-
this
|
|
6155
|
-
this
|
|
6156
|
-
this
|
|
6157
|
-
this
|
|
6198
|
+
__publicField(this, "message", message);
|
|
6199
|
+
__publicField(this, "extra", extra);
|
|
6200
|
+
__publicField(this, "origin", origin);
|
|
6201
|
+
__publicField(this, "level", level);
|
|
6158
6202
|
Object.setPrototypeOf(this, _DrmError.prototype);
|
|
6159
6203
|
}
|
|
6160
6204
|
get [Symbol.toStringTag]() {
|
|
@@ -6204,7 +6248,7 @@ var MsCommonEme = class {
|
|
|
6204
6248
|
};
|
|
6205
6249
|
var MsCommonMediaKeySystemAccess = class {
|
|
6206
6250
|
constructor(keySystem) {
|
|
6207
|
-
this
|
|
6251
|
+
__publicField(this, "keySystem", keySystem);
|
|
6208
6252
|
}
|
|
6209
6253
|
createMediaKeys() {
|
|
6210
6254
|
const msMediaKeys = new MSMediaKeys(this.keySystem);
|
|
@@ -6215,8 +6259,8 @@ var MsCommonMediaKeySystemAccess = class {
|
|
|
6215
6259
|
};
|
|
6216
6260
|
var MsCommonMediaKeys = class {
|
|
6217
6261
|
constructor(keySystem, mediaKeys) {
|
|
6218
|
-
this
|
|
6219
|
-
this
|
|
6262
|
+
__publicField(this, "keySystem", keySystem);
|
|
6263
|
+
__publicField(this, "mediaKeys", mediaKeys);
|
|
6220
6264
|
}
|
|
6221
6265
|
/**
|
|
6222
6266
|
* Sets the media keys on the given element.
|
|
@@ -6251,10 +6295,10 @@ var MsCommonMediaKeys = class {
|
|
|
6251
6295
|
var MsCommonMediaKeySession = class extends import_vinyl_util73.EventHostImpl {
|
|
6252
6296
|
constructor(session, mimeType, initDataType, initData) {
|
|
6253
6297
|
super();
|
|
6254
|
-
this
|
|
6255
|
-
this
|
|
6256
|
-
this
|
|
6257
|
-
this
|
|
6298
|
+
__publicField(this, "session", session);
|
|
6299
|
+
__publicField(this, "mimeType", mimeType);
|
|
6300
|
+
__publicField(this, "initDataType", initDataType);
|
|
6301
|
+
__publicField(this, "initData", initData);
|
|
6258
6302
|
__publicField(this, "_disposed", false);
|
|
6259
6303
|
__publicField(this, "messageHandler", (event) => {
|
|
6260
6304
|
this.dispatch("message", {
|
|
@@ -6339,8 +6383,8 @@ var StandardCommonEme = class {
|
|
|
6339
6383
|
};
|
|
6340
6384
|
var StandardCommonMediaKeySystemAccess = class {
|
|
6341
6385
|
constructor(keySystem, access) {
|
|
6342
|
-
this
|
|
6343
|
-
this
|
|
6386
|
+
__publicField(this, "keySystem", keySystem);
|
|
6387
|
+
__publicField(this, "access", access);
|
|
6344
6388
|
}
|
|
6345
6389
|
/**
|
|
6346
6390
|
* @return {Promise<CommonMediaKeys>}
|
|
@@ -6352,8 +6396,8 @@ var StandardCommonMediaKeySystemAccess = class {
|
|
|
6352
6396
|
};
|
|
6353
6397
|
var StandardCommonMediaKeys = class {
|
|
6354
6398
|
constructor(keySystem, mediaKeys) {
|
|
6355
|
-
this
|
|
6356
|
-
this
|
|
6399
|
+
__publicField(this, "keySystem", keySystem);
|
|
6400
|
+
__publicField(this, "mediaKeys", mediaKeys);
|
|
6357
6401
|
}
|
|
6358
6402
|
setOnElement(element2) {
|
|
6359
6403
|
return element2.setMediaKeys(this.mediaKeys);
|
|
@@ -6376,10 +6420,10 @@ var StandardCommonMediaKeys = class {
|
|
|
6376
6420
|
var StandardCommonMediaKeySession = class extends import_vinyl_util75.EventHostImpl {
|
|
6377
6421
|
constructor(session, mimeType, initDataType, initData) {
|
|
6378
6422
|
super();
|
|
6379
|
-
this
|
|
6380
|
-
this
|
|
6381
|
-
this
|
|
6382
|
-
this
|
|
6423
|
+
__publicField(this, "session", session);
|
|
6424
|
+
__publicField(this, "mimeType", mimeType);
|
|
6425
|
+
__publicField(this, "initDataType", initDataType);
|
|
6426
|
+
__publicField(this, "initData", initData);
|
|
6383
6427
|
__publicField(this, "_disposed", false);
|
|
6384
6428
|
__publicField(this, "messageHandler", (event) => {
|
|
6385
6429
|
this.dispatch("message", {
|
|
@@ -6462,7 +6506,7 @@ var WebKitCommonEme = class {
|
|
|
6462
6506
|
};
|
|
6463
6507
|
var WebKitCommonMediaKeySystemAccess = class {
|
|
6464
6508
|
constructor(keySystem) {
|
|
6465
|
-
this
|
|
6509
|
+
__publicField(this, "keySystem", keySystem);
|
|
6466
6510
|
}
|
|
6467
6511
|
createMediaKeys() {
|
|
6468
6512
|
const webKitMediaKeys = new WebKitMediaKeys(this.keySystem);
|
|
@@ -6475,8 +6519,8 @@ var WebKitCommonMediaKeySystemAccess = class {
|
|
|
6475
6519
|
};
|
|
6476
6520
|
var WebKitCommonMediaKeys = class {
|
|
6477
6521
|
constructor(keySystem, mediaKeys) {
|
|
6478
|
-
this
|
|
6479
|
-
this
|
|
6522
|
+
__publicField(this, "keySystem", keySystem);
|
|
6523
|
+
__publicField(this, "mediaKeys", mediaKeys);
|
|
6480
6524
|
}
|
|
6481
6525
|
/**
|
|
6482
6526
|
* Sets the media keys on the given element.
|
|
@@ -6511,10 +6555,10 @@ var WebKitCommonMediaKeys = class {
|
|
|
6511
6555
|
var WebKitCommonMediaKeySession = class extends import_vinyl_util76.EventHostImpl {
|
|
6512
6556
|
constructor(session, mimeType, initDataType, initData) {
|
|
6513
6557
|
super();
|
|
6514
|
-
this
|
|
6515
|
-
this
|
|
6516
|
-
this
|
|
6517
|
-
this
|
|
6558
|
+
__publicField(this, "session", session);
|
|
6559
|
+
__publicField(this, "mimeType", mimeType);
|
|
6560
|
+
__publicField(this, "initDataType", initDataType);
|
|
6561
|
+
__publicField(this, "initData", initData);
|
|
6518
6562
|
__publicField(this, "_disposed", false);
|
|
6519
6563
|
__publicField(this, "messageHandler", (event) => {
|
|
6520
6564
|
this.dispatch("message", {
|
|
@@ -6737,7 +6781,7 @@ var LICENSE_TIMEOUT_MESSAGE = "License provider timed out after {time}s";
|
|
|
6737
6781
|
var DrmControllerImpl = class extends import_vinyl_util84.EventHostImpl {
|
|
6738
6782
|
constructor(deps, options) {
|
|
6739
6783
|
super();
|
|
6740
|
-
this
|
|
6784
|
+
__publicField(this, "deps", deps);
|
|
6741
6785
|
__publicField(this, "optionsBase");
|
|
6742
6786
|
__publicField(this, "options");
|
|
6743
6787
|
__publicField(this, "mediaKeys", null);
|
|
@@ -7265,7 +7309,7 @@ var MAX_GAIN_LEVEL = 1;
|
|
|
7265
7309
|
var LoudnessNormalizationControllerImpl = class extends import_vinyl_util86.EventHostImpl {
|
|
7266
7310
|
constructor(deps) {
|
|
7267
7311
|
super();
|
|
7268
|
-
this
|
|
7312
|
+
__publicField(this, "deps", deps);
|
|
7269
7313
|
__publicField(this, "logPrefix", /* @__PURE__ */ (0, import_vinyl_util86.createLogPrefix)(this));
|
|
7270
7314
|
__publicField(this, "_gain", MAX_GAIN_LEVEL);
|
|
7271
7315
|
__publicField(this, "disposer", /* @__PURE__ */ (0, import_vinyl_util85.createDisposer)());
|
|
@@ -7350,7 +7394,7 @@ var defaultResetControllerOptions = {
|
|
|
7350
7394
|
var AutoResetControllerImpl = class extends import_vinyl_util87.EventHostImpl {
|
|
7351
7395
|
constructor(deps, options) {
|
|
7352
7396
|
super();
|
|
7353
|
-
this
|
|
7397
|
+
__publicField(this, "deps", deps);
|
|
7354
7398
|
__publicField(this, "options");
|
|
7355
7399
|
__publicField(this, "_error", null);
|
|
7356
7400
|
__publicField(this, "watchSub", null);
|
|
@@ -7374,38 +7418,50 @@ var AutoResetControllerImpl = class extends import_vinyl_util87.EventHostImpl {
|
|
|
7374
7418
|
}
|
|
7375
7419
|
setError(error) {
|
|
7376
7420
|
if (!this.options.enabled || this._error) return;
|
|
7377
|
-
if (error instanceof import_vinyl_util87.
|
|
7421
|
+
if (error instanceof import_vinyl_util87.RequestError && error.response == null) {
|
|
7378
7422
|
this._error = error;
|
|
7379
|
-
this.
|
|
7423
|
+
this.setResetPending(true);
|
|
7380
7424
|
}
|
|
7381
7425
|
}
|
|
7382
|
-
|
|
7426
|
+
get resetPending() {
|
|
7427
|
+
return this.watchSub != null;
|
|
7428
|
+
}
|
|
7429
|
+
setResetPending(value) {
|
|
7383
7430
|
var _a;
|
|
7384
|
-
|
|
7431
|
+
if (this.resetPending === value) {
|
|
7432
|
+
(0, import_vinyl_util87.logDebug)(this, "setResetPending", value, "no-op");
|
|
7433
|
+
return;
|
|
7434
|
+
}
|
|
7435
|
+
(0, import_vinyl_util87.logDebug)(this, "setResetPending", value);
|
|
7385
7436
|
(_a = this.watchSub) == null ? void 0 : _a.call(this);
|
|
7386
7437
|
this.watchSub = null;
|
|
7387
|
-
if (
|
|
7388
|
-
|
|
7389
|
-
|
|
7390
|
-
|
|
7391
|
-
|
|
7392
|
-
|
|
7393
|
-
|
|
7394
|
-
this.reset();
|
|
7395
|
-
})
|
|
7396
|
-
);
|
|
7397
|
-
const intervalId = setTimeout(() => {
|
|
7398
|
-
if (this.currentRetry++ < this.options.maxRetries) {
|
|
7399
|
-
if (networkState.onLine) {
|
|
7400
|
-
(0, import_vinyl_util87.logDebug)(this, "interval, emitting reset");
|
|
7438
|
+
if (value) {
|
|
7439
|
+
const networkState = (0, import_vinyl_util87.getNetworkState)();
|
|
7440
|
+
const { add, dispose: watchSub } = (0, import_vinyl_util87.createDisposer)();
|
|
7441
|
+
this.watchSub = watchSub;
|
|
7442
|
+
add(
|
|
7443
|
+
networkState.on("online", () => {
|
|
7444
|
+
(0, import_vinyl_util87.logDebug)(this, "online, emitting reset");
|
|
7401
7445
|
this.reset();
|
|
7446
|
+
})
|
|
7447
|
+
);
|
|
7448
|
+
const intervalId = setTimeout(() => {
|
|
7449
|
+
if (this.currentRetry++ < this.options.maxRetries) {
|
|
7450
|
+
if (networkState.onLine) {
|
|
7451
|
+
(0, import_vinyl_util87.logDebug)(this, "interval, emitting reset");
|
|
7452
|
+
this.reset();
|
|
7453
|
+
}
|
|
7454
|
+
} else {
|
|
7455
|
+
(0, import_vinyl_util87.logDebug)(this, "max retries exhausted, pausing playback");
|
|
7456
|
+
this.setResetPending(false);
|
|
7402
7457
|
}
|
|
7403
|
-
}
|
|
7404
|
-
|
|
7405
|
-
|
|
7406
|
-
|
|
7407
|
-
|
|
7408
|
-
|
|
7458
|
+
}, this.options.retryInterval * 1e3);
|
|
7459
|
+
add(() => clearTimeout(intervalId));
|
|
7460
|
+
}
|
|
7461
|
+
this.dispatch("resetPendingChange", {
|
|
7462
|
+
previous: !value,
|
|
7463
|
+
current: value
|
|
7464
|
+
});
|
|
7409
7465
|
}
|
|
7410
7466
|
reset() {
|
|
7411
7467
|
if (!this._error) return;
|
|
@@ -7415,7 +7471,7 @@ var AutoResetControllerImpl = class extends import_vinyl_util87.EventHostImpl {
|
|
|
7415
7471
|
clear() {
|
|
7416
7472
|
if (!this._error) return;
|
|
7417
7473
|
this._error = null;
|
|
7418
|
-
this.
|
|
7474
|
+
this.setResetPending(false);
|
|
7419
7475
|
}
|
|
7420
7476
|
get disposed() {
|
|
7421
7477
|
return this.disposer.disposed;
|
|
@@ -7488,7 +7544,7 @@ var locale2 = {
|
|
|
7488
7544
|
var DEFAULT_MAX_PLAYERS = 5;
|
|
7489
7545
|
var PlayerRegistryImpl = class {
|
|
7490
7546
|
constructor(maxPlayersWarning = DEFAULT_MAX_PLAYERS) {
|
|
7491
|
-
this
|
|
7547
|
+
__publicField(this, "maxPlayersWarning", maxPlayersWarning);
|
|
7492
7548
|
__publicField(this, "_players", []);
|
|
7493
7549
|
__publicField(this, "gaveMaxPlayersWarning", false);
|
|
7494
7550
|
}
|
|
@@ -7533,7 +7589,7 @@ var import_vinyl_util91 = require("@amazon/vinyl-util");
|
|
|
7533
7589
|
var import_vinyl_util90 = require("@amazon/vinyl-util");
|
|
7534
7590
|
var vinylVersion = /* @__PURE__ */ (0, import_vinyl_util90.parseVersion)(
|
|
7535
7591
|
/* istanbul ignore next */
|
|
7536
|
-
"1.
|
|
7592
|
+
"1.2.0"
|
|
7537
7593
|
);
|
|
7538
7594
|
|
|
7539
7595
|
// src/global/globalRef.ts
|
|
@@ -7636,6 +7692,9 @@ var VinylPlayer = class extends import_vinyl_util93.EventHostImpl {
|
|
|
7636
7692
|
get trackController() {
|
|
7637
7693
|
return this.deps.trackController;
|
|
7638
7694
|
}
|
|
7695
|
+
get autoResetController() {
|
|
7696
|
+
return this.deps.autoResetController;
|
|
7697
|
+
}
|
|
7639
7698
|
redispatchSubControllerEvents() {
|
|
7640
7699
|
const add = this.disposer.add;
|
|
7641
7700
|
add(
|
|
@@ -7712,11 +7771,16 @@ var VinylPlayer = class extends import_vinyl_util93.EventHostImpl {
|
|
|
7712
7771
|
}
|
|
7713
7772
|
initializeAutoResetHandling() {
|
|
7714
7773
|
const { add } = this.disposer;
|
|
7715
|
-
const { autoResetController } = this.deps;
|
|
7716
7774
|
this.on("error", (event) => {
|
|
7717
|
-
autoResetController.setError(event.error);
|
|
7775
|
+
this.autoResetController.setError(event.error);
|
|
7718
7776
|
});
|
|
7719
|
-
add(autoResetController.on("reset", () => this.reset()));
|
|
7777
|
+
add(this.autoResetController.on("reset", () => this.reset()));
|
|
7778
|
+
add(
|
|
7779
|
+
this.autoResetController.on(
|
|
7780
|
+
"resetPendingChange",
|
|
7781
|
+
(event) => this.dispatch("resetPendingChange", event)
|
|
7782
|
+
)
|
|
7783
|
+
);
|
|
7720
7784
|
}
|
|
7721
7785
|
initializePreferredLanguageHandling() {
|
|
7722
7786
|
const { add } = this.disposer;
|
|
@@ -7787,6 +7851,17 @@ var VinylPlayer = class extends import_vinyl_util93.EventHostImpl {
|
|
|
7787
7851
|
get error() {
|
|
7788
7852
|
return this._error;
|
|
7789
7853
|
}
|
|
7854
|
+
/**
|
|
7855
|
+
* True when an error has interrupted playback and an automatic reset
|
|
7856
|
+
* is scheduled. This distinguishes transient, potentially recoverable
|
|
7857
|
+
* errors (such as a brief network outage) from terminal errors that
|
|
7858
|
+
* will not trigger a reset on their own.
|
|
7859
|
+
*
|
|
7860
|
+
* Listen to `resetPendingChange` events for changes.
|
|
7861
|
+
*/
|
|
7862
|
+
get resetPending() {
|
|
7863
|
+
return this.autoResetController.resetPending;
|
|
7864
|
+
}
|
|
7790
7865
|
get hasMetadata() {
|
|
7791
7866
|
return this.playbackController.hasMetadata;
|
|
7792
7867
|
}
|
|
@@ -7863,6 +7938,7 @@ var VinylPlayer = class extends import_vinyl_util93.EventHostImpl {
|
|
|
7863
7938
|
this.drmController.reset();
|
|
7864
7939
|
this.playbackController.reset();
|
|
7865
7940
|
this.trackController.reset();
|
|
7941
|
+
this.autoResetController.clear();
|
|
7866
7942
|
this.dispatch("reset", {});
|
|
7867
7943
|
}
|
|
7868
7944
|
//----------------------------------------------------
|