@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaQualityMetadata.d.ts","sourceRoot":"","sources":["../../../../src/streaming/MediaQualityMetadata.ts"],"names":[],"mappings":"AAKA,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,WAAW,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAU5D,OAAO,EACH,KAAK,gBAAgB,EAGxB,MAAM,
|
|
1
|
+
{"version":3,"file":"MediaQualityMetadata.d.ts","sourceRoot":"","sources":["../../../../src/streaming/MediaQualityMetadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { createShortUid, } from '@amazon/vinyl-util';
|
|
6
6
|
import { array, enumOf, isOneOf, number, object, string, tuple, } from '@amazon/vinyl-validation';
|
|
7
|
-
import { descriptorRecordValidator, descriptorValidator, } from '
|
|
7
|
+
import { descriptorRecordValidator, descriptorValidator, } from './DescriptorRecord';
|
|
8
8
|
import { DrmKeySystem } from '../drm/DrmKeySystem';
|
|
9
9
|
export const ALL_CONTENT_TYPES = [
|
|
10
10
|
'video',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { SegmentReference } from '
|
|
2
|
-
import type { SegmentDataProvider } from '
|
|
3
|
-
import type { MediaQualityMetadata } from '
|
|
1
|
+
import type { SegmentReference } from './SegmentReference';
|
|
2
|
+
import type { SegmentDataProvider } from './SegmentDataSlot';
|
|
3
|
+
import type { MediaQualityMetadata } from './MediaQualityMetadata';
|
|
4
4
|
/**
|
|
5
5
|
* Represents a single quality within a period, providing access to its metadata
|
|
6
6
|
* and segment data.
|
|
@@ -34,9 +34,10 @@ export interface MediaTimeline {
|
|
|
34
34
|
readonly minBufferTime: number;
|
|
35
35
|
/**
|
|
36
36
|
* The total duration of the media, in seconds.
|
|
37
|
-
* Returns
|
|
37
|
+
* Returns `Infinity` for live streams.
|
|
38
|
+
* Rejects when there are no segments to derive a duration from.
|
|
38
39
|
*/
|
|
39
|
-
getDuration
|
|
40
|
+
getDuration(): Promise<number>;
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
43
|
* Gets the period spanning the given presentation time.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaTimeline.d.ts","sourceRoot":"","sources":["../../../../src/streaming/MediaTimeline.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MediaTimeline.d.ts","sourceRoot":"","sources":["../../../../src/streaming/MediaTimeline.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAGlE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAA;IAEvC;;;;;OAKG;IACH,UAAU,CACN,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAA;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IAExC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAE9B;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;CACjC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,GACb,WAAW,GAAG,IAAI,CAQpB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AnyRecord, Disposable, ReadonlyAbort, ReadonlyEventHost, ReadonlyRanges } from '@amazon/vinyl-util';
|
|
2
|
-
import type { SegmentReference } from '
|
|
2
|
+
import type { SegmentReference } from './SegmentReference';
|
|
3
3
|
import type { ChangeEvent } from '../event/ChangeEvent';
|
|
4
|
-
import type { MediaQualityMetadata } from '
|
|
4
|
+
import type { MediaQualityMetadata } from './MediaQualityMetadata';
|
|
5
5
|
/**
|
|
6
6
|
* Forward-snap tolerance, in seconds, applied when looking up a segment by time.
|
|
7
7
|
*
|
|
@@ -48,11 +48,6 @@ export interface ReadonlySegmentController extends ReadonlyEventHost<SegmentCont
|
|
|
48
48
|
* The most recently requested quality metadata.
|
|
49
49
|
*/
|
|
50
50
|
readonly streamingQuality: MediaQualityMetadata | null;
|
|
51
|
-
/**
|
|
52
|
-
* The duration of the media, in seconds.
|
|
53
|
-
* Returns null if duration cannot be determined.
|
|
54
|
-
*/
|
|
55
|
-
getDuration(): Promise<number | null>;
|
|
56
51
|
/**
|
|
57
52
|
* Returns a Promise for a segment covering the given time, with quality chosen by
|
|
58
53
|
* the configured `QualitySelector`. Resolves to `null` if no media exists at that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentController.d.ts","sourceRoot":"","sources":["../../../../src/streaming/SegmentController.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SegmentController.d.ts","sourceRoot":"","sources":["../../../../src/streaming/SegmentController.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAElE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAE3C,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAA;IAEvC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAE1B;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAA;CAC5E;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB,CAAC,yBAAyB,CAAC;IAC3F,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IAE5B;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IAEtC;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,IAAI,CAAA;IAEtD;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CACN,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAA;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;IAEtC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,iBACb,SAAQ,yBAAyB,EAAE,UAAU;IAC7C;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAA;IAElD;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAA;IAEb;;;OAGG;IACH,QAAQ,IAAI,IAAI,CAAA;IAEhB;;OAEG;IACH,UAAU,IAAI,IAAI,CAAA;IAElB;;OAEG;IACH,KAAK,IAAI,IAAI,CAAA;CAChB"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { EventHostImpl, type ReadonlyAbort, type ReadonlyRanges } from '@amazon/vinyl-util';
|
|
2
2
|
import type { ReadonlyPlaybackController } from '../playback/ReadonlyPlaybackController';
|
|
3
|
-
import { type PrefetchOptions, type SegmentController, type SegmentControllerEventMap } from '
|
|
4
|
-
import type { SegmentReference } from '
|
|
5
|
-
import type { ContentType, MediaQualityMetadata } from '
|
|
3
|
+
import { type PrefetchOptions, type SegmentController, type SegmentControllerEventMap } from './SegmentController';
|
|
4
|
+
import type { SegmentReference } from './SegmentReference';
|
|
5
|
+
import type { ContentType, MediaQualityMetadata } from './MediaQualityMetadata';
|
|
6
6
|
import type { ObservableValue } from '@amazon/vinyl-observable';
|
|
7
|
-
import type { MediaTimeline } from '
|
|
8
|
-
import type { QualitySelector } from '
|
|
7
|
+
import type { MediaTimeline } from './MediaTimeline';
|
|
8
|
+
import type { QualitySelector } from './abr/QualitySelector';
|
|
9
9
|
/**
|
|
10
10
|
* The interval to check if additional segments should be prefetched.
|
|
11
11
|
*/
|
|
@@ -73,7 +73,6 @@ export declare class SegmentControllerImpl extends EventHostImpl<SegmentControll
|
|
|
73
73
|
private _cachedPeriod;
|
|
74
74
|
constructor(deps: SegmentControllerImplDeps, contentType: ContentType, options?: Partial<SegmentControllerImplOptions>);
|
|
75
75
|
get error(): Error | null;
|
|
76
|
-
getDuration(): Promise<number | null>;
|
|
77
76
|
/**
|
|
78
77
|
* Gets the period at the given time, using a cache for the last returned period.
|
|
79
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentControllerImpl.d.ts","sourceRoot":"","sources":["../../../../src/streaming/SegmentControllerImpl.ts"],"names":[],"mappings":"AAMA,OAAO,EAKH,aAAa,EAUb,KAAK,aAAa,EAClB,KAAK,cAAc,EAGtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SegmentControllerImpl.d.ts","sourceRoot":"","sources":["../../../../src/streaming/SegmentControllerImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { Abort, clone, closeTo, createDisposer, EventHostImpl, getNetworkState, getOrSet, isSilentError, logDebug, logError, noop, rangeIntersects, RangesImpl, throttle, withAbort, } from '@amazon/vinyl-util';
|
|
6
|
-
import { SEGMENT_START_AFFORDANCE, } from '
|
|
7
|
-
import { SegmentDataSlot, SegmentStatus, } from '
|
|
8
|
-
import { defaultTrackPriority, enqueueSegmentPrefetch, immediatePrefetchPriority, } from '
|
|
9
|
-
import { getSegmentAtTime, getSegmentInsertionIndexAtTime, } from '
|
|
10
|
-
import { getMediaPeriodAtTime
|
|
6
|
+
import { SEGMENT_START_AFFORDANCE, } from './SegmentController';
|
|
7
|
+
import { SegmentDataSlot, SegmentStatus, } from './SegmentDataSlot';
|
|
8
|
+
import { defaultTrackPriority, enqueueSegmentPrefetch, immediatePrefetchPriority, } from './SegmentPrefetch';
|
|
9
|
+
import { getSegmentAtTime, getSegmentInsertionIndexAtTime, } from './util/segment';
|
|
10
|
+
import { getMediaPeriodAtTime } from './MediaTimeline';
|
|
11
11
|
/**
|
|
12
12
|
* The interval to check if additional segments should be prefetched.
|
|
13
13
|
*/
|
|
@@ -85,16 +85,6 @@ export class SegmentControllerImpl extends EventHostImpl {
|
|
|
85
85
|
get error() {
|
|
86
86
|
return this._error;
|
|
87
87
|
}
|
|
88
|
-
async getDuration() {
|
|
89
|
-
const timeline = await this.deps.mediaTimelineTransformed.value;
|
|
90
|
-
if (timeline.getDuration)
|
|
91
|
-
return timeline.getDuration();
|
|
92
|
-
const periods = timeline.periods;
|
|
93
|
-
if (periods.length === 0)
|
|
94
|
-
return null;
|
|
95
|
-
const last = periods[periods.length - 1];
|
|
96
|
-
return last.endTime === Infinity ? null : last.endTime;
|
|
97
|
-
}
|
|
98
88
|
/**
|
|
99
89
|
* Gets the period at the given time, using a cache for the last returned period.
|
|
100
90
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentReference.d.ts","sourceRoot":"","sources":["../../../../src/streaming/SegmentReference.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SegmentReference.d.ts","sourceRoot":"","sources":["../../../../src/streaming/SegmentReference.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAElE,MAAM,WAAW,oBAAoB;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACnC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IAEtC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;CACvB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,CAAE,SAAQ,oBAAoB;IAClE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAC/B,SAAQ,oBAAoB,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC;CAAG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ChangeEvent } from '../event/ChangeEvent';
|
|
2
|
-
import type { ContentType, MediaQualityMetadata } from '
|
|
2
|
+
import type { ContentType, MediaQualityMetadata } from './MediaQualityMetadata';
|
|
3
3
|
import type { BasicErrorEvent } from '../event/BasicErrorEvent';
|
|
4
4
|
import type { AnyRecord } from '@amazon/vinyl-util';
|
|
5
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamingEventMap.d.ts","sourceRoot":"","sources":["../../../../src/streaming/StreamingEventMap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"StreamingEventMap.d.ts","sourceRoot":"","sources":["../../../../src/streaming/StreamingEventMap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAA;IAElE;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAA;IAEvC;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAA;IAEzE;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAA;IAEzE;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAA;IAExE;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAA;IAElC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAE/B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IAEzB;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,oBAAoB,EAAE,CAAC,CAAA;IAEtE;;OAEG;IACH,QAAQ,CAAC,yBAAyB,EAAE,WAAW,CAC3C,SAAS,oBAAoB,EAAE,CAClC,CAAA;CACJ;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,yNAWwB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualitySelector.d.ts","sourceRoot":"","sources":["../../../../../src/streaming/abr/QualitySelector.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"QualitySelector.d.ts","sourceRoot":"","sources":["../../../../../src/streaming/abr/QualitySelector.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAEnE,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,oBAAoB,GAAG,IAAI,CAAA;IAErD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC5B;;;;;;;;;;;;OAYG;IACH,aAAa,CACT,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,aAAa,EAAE,aAAa,GAC7B,MAAM,CAAA;CACZ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { PrefetchState, QualitySelector } from '
|
|
2
|
-
import { type Disposable, type LogTarget } from '@amazon/vinyl-util';
|
|
1
|
+
import type { PrefetchState, QualitySelector } from './QualitySelector';
|
|
2
|
+
import { type Disposable, type LogTarget, type Maybe } from '@amazon/vinyl-util';
|
|
3
3
|
import { type ObjectSchema } from '@amazon/vinyl-validation';
|
|
4
|
-
import type { MediaQualityMetadata } from '
|
|
4
|
+
import type { MediaQualityMetadata } from '../MediaQualityMetadata';
|
|
5
5
|
import type { ObservableValue } from '@amazon/vinyl-observable';
|
|
6
6
|
export interface QualitySelectorImplOptions {
|
|
7
7
|
/**
|
|
@@ -52,6 +52,20 @@ export interface QualitySelectorImplOptions {
|
|
|
52
52
|
* Default: false
|
|
53
53
|
*/
|
|
54
54
|
readonly restrictDecoderChangeOnAudioAbrUp?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Maximum bandwidth in bits per second a quality may use to be selectable.
|
|
57
|
+
*
|
|
58
|
+
* Soft cap: if no qualities fit within the limit (including when set to 0),
|
|
59
|
+
* the quality with the lowest bandwidth is selected so playback is still
|
|
60
|
+
* possible.
|
|
61
|
+
*
|
|
62
|
+
* Has no effect when {@link strategy} is {@link AbrStrategy.LOWEST} or
|
|
63
|
+
* {@link AbrStrategy.HIGHEST}, since those strategies pin the selection
|
|
64
|
+
* regardless of bandwidth.
|
|
65
|
+
*
|
|
66
|
+
* Default: null (no limit).
|
|
67
|
+
*/
|
|
68
|
+
readonly maxBandwidth?: Maybe<number>;
|
|
55
69
|
}
|
|
56
70
|
export declare enum AbrStrategy {
|
|
57
71
|
/**
|
|
@@ -82,6 +96,7 @@ export declare const defaultQualitySelectorImplOptions: {
|
|
|
82
96
|
readonly bandwidthMultiplierLow: 0.4;
|
|
83
97
|
readonly bandwidthMultiplierHigh: 0.9;
|
|
84
98
|
readonly restrictDecoderChangeOnAudioAbrUp: false;
|
|
99
|
+
readonly maxBandwidth: null;
|
|
85
100
|
};
|
|
86
101
|
export interface QualitySelectorImplDeps {
|
|
87
102
|
readonly options: ObservableValue<QualitySelectorImplOptions>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualitySelectorImpl.d.ts","sourceRoot":"","sources":["../../../../../src/streaming/abr/QualitySelectorImpl.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"QualitySelectorImpl.d.ts","sourceRoot":"","sources":["../../../../../src/streaming/abr/QualitySelectorImpl.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAIH,KAAK,UAAU,EAEf,KAAK,SAAS,EAEd,KAAK,KAAK,EACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAKH,KAAK,YAAY,EACpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,MAAM,WAAW,0BAA0B;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAErC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAA;IAE/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAExC;;;;;;;;;OASG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAEzC;;;;;;OAMG;IACH,QAAQ,CAAC,iCAAiC,CAAC,EAAE,OAAO,CAAA;IAEpD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CACxC;AAED,oBAAY,WAAW;IACnB;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,OAAO,YAAY;IAEnB;;;OAGG;IACH,IAAI,SAAS;IAEb;;;;OAIG;IACH,KAAK,UAAU;CAClB;AAED,eAAO,MAAM,mCAAmC,EAAE,YAAY,CAAC,0BAA0B,CASnF,CAAA;AAEN,eAAO,MAAM,iCAAiC;;;;;;;;CAQC,CAAA;AAE/C,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,0BAA0B,CAAC,CAAA;CAChE;AAED,qBAAa,mBACT,YAAW,eAAe,EAAE,SAAS,EAAE,UAAU;IAEjD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;IAED,QAAQ,CAAC,SAAS,SAAwB;IAC1C,OAAO,CAAC,QAAQ,CACqB;IAErC,OAAO,CAAC,QAAQ,CAAmB;gBAEvB,IAAI,EAAE,uBAAuB;IASzC,IAAI,OAAO,IAAI,QAAQ,CAAC,0BAA0B,CAAC,CAElD;IAED,aAAa,CACT,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,aAAa,EAAE,aAAa,GAC7B,MAAM;IAgHT,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,OAAO;CAGV"}
|
|
@@ -33,6 +33,7 @@ export const qualitySelectorImplOptionsValidator = object({
|
|
|
33
33
|
bandwidthMultiplierLow: number().optional(),
|
|
34
34
|
bandwidthMultiplierHigh: number().optional(),
|
|
35
35
|
restrictDecoderChangeOnAudioAbrUp: boolean().optional(),
|
|
36
|
+
maxBandwidth: number().maybe().optional(),
|
|
36
37
|
});
|
|
37
38
|
export const defaultQualitySelectorImplOptions = {
|
|
38
39
|
highBufferThreshold: 15,
|
|
@@ -41,6 +42,7 @@ export const defaultQualitySelectorImplOptions = {
|
|
|
41
42
|
bandwidthMultiplierLow: 0.4,
|
|
42
43
|
bandwidthMultiplierHigh: 0.9,
|
|
43
44
|
restrictDecoderChangeOnAudioAbrUp: false,
|
|
45
|
+
maxBandwidth: null,
|
|
44
46
|
};
|
|
45
47
|
export class QualitySelectorImpl {
|
|
46
48
|
get [Symbol.toStringTag]() {
|
|
@@ -59,7 +61,7 @@ export class QualitySelectorImpl {
|
|
|
59
61
|
return this._options;
|
|
60
62
|
}
|
|
61
63
|
selectQuality(qualities, prefetchState) {
|
|
62
|
-
const { strategy, highBufferThreshold, lowBufferThreshold, bandwidthMultiplierLow, bandwidthMultiplierHigh, restrictDecoderChangeOnAudioAbrUp, } = this.options;
|
|
64
|
+
const { strategy, highBufferThreshold, lowBufferThreshold, bandwidthMultiplierLow, bandwidthMultiplierHigh, restrictDecoderChangeOnAudioAbrUp, maxBandwidth, } = this.options;
|
|
63
65
|
const previousQuality = prefetchState.previousQuality;
|
|
64
66
|
// previousIndex will be -1 if the previously playing quality is not within the current qualities list.
|
|
65
67
|
const previousIndex = previousQuality == null
|
|
@@ -92,9 +94,13 @@ export class QualitySelectorImpl {
|
|
|
92
94
|
// Choose bandwidth based on pessimistic network information.
|
|
93
95
|
// If the track is active, take the lesser of the latest recorded bandwidth stat and the weighted
|
|
94
96
|
// average to allow for fast ABR-down in variable conditions.
|
|
95
|
-
|
|
97
|
+
let bandwidth = (prefetchState.active
|
|
96
98
|
? Math.min(bandwidthEstimate.ewmaLow, bandwidthEstimate.latest)
|
|
97
99
|
: bandwidthEstimate.ewmaLow) * bandwidthMultiplier;
|
|
100
|
+
// Apply the maxBandwidth cap as a soft upper bound on the bandwidth budget.
|
|
101
|
+
if (maxBandwidth != null && maxBandwidth < bandwidth) {
|
|
102
|
+
bandwidth = maxBandwidth;
|
|
103
|
+
}
|
|
98
104
|
let restrictDecoderId = null;
|
|
99
105
|
let restrictSwitchingGroupIds = null;
|
|
100
106
|
if (previousQuality && previousIndex >= 0) {
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import { type AnyRecord, type Clearable, type Disposable, EventHostImpl, type ReadonlyEventHost } from '@amazon/vinyl-util';
|
|
2
2
|
import type { ReadonlyPlaybackController } from '../../playback/ReadonlyPlaybackController';
|
|
3
3
|
import type { SourceBufferController } from './SourceBufferController';
|
|
4
|
-
import type { ReadonlySegmentController } from '
|
|
4
|
+
import type { ReadonlySegmentController } from '../SegmentController';
|
|
5
5
|
import type { BasicErrorEvent } from '../../event/BasicErrorEvent';
|
|
6
6
|
import type { ChangeEvent } from '../../event/ChangeEvent';
|
|
7
|
-
import type { ContentType, MediaQualityMetadata } from '
|
|
8
|
-
import { type MediaSourceController } from '
|
|
9
|
-
/**
|
|
10
|
-
* Chrome 52 has decoding errors when duration is set to the mediaPresentationDuration.
|
|
11
|
-
* Adds a slight padding as a workaround.
|
|
12
|
-
* @private
|
|
13
|
-
*/
|
|
14
|
-
export declare const DURATION_PADDING = 0.1;
|
|
7
|
+
import type { ContentType, MediaQualityMetadata } from '../MediaQualityMetadata';
|
|
8
|
+
import { type MediaSourceController } from './MediaSourceController';
|
|
15
9
|
/**
|
|
16
10
|
* The interval to throttle polling the buffer.
|
|
17
11
|
* Reset after a seek.
|
|
@@ -170,10 +164,6 @@ export declare class BufferingControllerImpl extends EventHostImpl<BufferingCont
|
|
|
170
164
|
* Returns true if there are active operations.
|
|
171
165
|
*/
|
|
172
166
|
get busy(): boolean;
|
|
173
|
-
/**
|
|
174
|
-
* Enqueues a duration update.
|
|
175
|
-
*/
|
|
176
|
-
private refreshDuration;
|
|
177
167
|
/**
|
|
178
168
|
* Resets the throttle and polls the buffer on the next frame.
|
|
179
169
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BufferingController.d.ts","sourceRoot":"","sources":["../../../../../src/streaming/buffering/BufferingController.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,SAAS,EACd,KAAK,SAAS,EAId,KAAK,UAAU,EAEf,aAAa,EAQb,KAAK,iBAAiB,EAEzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"BufferingController.d.ts","sourceRoot":"","sources":["../../../../../src/streaming/buffering/BufferingController.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,7 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { createAbortSlot, createDisposer, createTaskQueue, EventHostImpl, getLogLevel, isSilentError, LinkedList, logDebug, LogLevel, logVerbose, logWarn, throttle, } from '@amazon/vinyl-util';
|
|
6
|
-
import {
|
|
7
|
-
import { SEGMENT_START_AFFORDANCE } from '../../streaming/SegmentController';
|
|
8
|
-
/**
|
|
9
|
-
* Chrome 52 has decoding errors when duration is set to the mediaPresentationDuration.
|
|
10
|
-
* Adds a slight padding as a workaround.
|
|
11
|
-
* @private
|
|
12
|
-
*/
|
|
13
|
-
export const DURATION_PADDING = 0.1;
|
|
6
|
+
import { SEGMENT_START_AFFORDANCE } from '../SegmentController';
|
|
14
7
|
/**
|
|
15
8
|
* The interval to throttle polling the buffer.
|
|
16
9
|
* Reset after a seek.
|
|
@@ -128,7 +121,6 @@ export class BufferingControllerImpl extends EventHostImpl {
|
|
|
128
121
|
}));
|
|
129
122
|
const onMediaSourceOpen = () => {
|
|
130
123
|
logDebug(this, 'media source opened');
|
|
131
|
-
this.refreshDuration();
|
|
132
124
|
this.pollBufferImmediate();
|
|
133
125
|
};
|
|
134
126
|
if (this.mediaSourceOpen) {
|
|
@@ -139,7 +131,6 @@ export class BufferingControllerImpl extends EventHostImpl {
|
|
|
139
131
|
}
|
|
140
132
|
add(this.segmentController.on('change', () => {
|
|
141
133
|
this.reopen = true;
|
|
142
|
-
this.refreshDuration();
|
|
143
134
|
this.pollBufferImmediate();
|
|
144
135
|
}));
|
|
145
136
|
}
|
|
@@ -169,20 +160,6 @@ export class BufferingControllerImpl extends EventHostImpl {
|
|
|
169
160
|
get busy() {
|
|
170
161
|
return this.queue.running > 0;
|
|
171
162
|
}
|
|
172
|
-
/**
|
|
173
|
-
* Enqueues a duration update.
|
|
174
|
-
*/
|
|
175
|
-
refreshDuration() {
|
|
176
|
-
this.sourceBufferController.enqueue(async () => {
|
|
177
|
-
if (!this.mediaSourceOpen)
|
|
178
|
-
return; // Cannot set duration when media source is not open.
|
|
179
|
-
const duration = await this.segmentController.getDuration();
|
|
180
|
-
// For live streams, set the duration to LIVE_DURATION; not all browsers support +Infinity duration.
|
|
181
|
-
const newDuration = duration == null ? LIVE_DURATION : duration + DURATION_PADDING;
|
|
182
|
-
logDebug(this, `setting duration: ${newDuration}`);
|
|
183
|
-
this.mediaSourceController.duration = newDuration;
|
|
184
|
-
}).catch(this.handleError);
|
|
185
|
-
}
|
|
186
163
|
/**
|
|
187
164
|
* Resets the throttle and polls the buffer on the next frame.
|
|
188
165
|
*/
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { type AnyRecord, type Disposable, EventHostImpl, type Json, type LogTarget, type ReadonlyEventHost, ReportableError } from '@amazon/vinyl-util';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ObservableValue } from '@amazon/vinyl-observable';
|
|
3
|
+
import type { ContentTypesValue } from '../ContentTypesValue';
|
|
3
4
|
import type { BasicErrorEvent } from '../../event/BasicErrorEvent';
|
|
4
|
-
import type { ContentType } from '
|
|
5
|
+
import type { ContentType } from '../MediaQualityMetadata';
|
|
6
|
+
import type { MediaTimeline } from '../MediaTimeline';
|
|
7
|
+
/**
|
|
8
|
+
* Chrome 52 has decoding errors when duration is set to the mediaPresentationDuration.
|
|
9
|
+
* Adds a slight padding as a workaround.
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
12
|
+
export declare const DURATION_PADDING = 0.1;
|
|
5
13
|
export interface SourceBufferRef extends Disposable {
|
|
6
14
|
/**
|
|
7
15
|
* The source buffer.
|
|
@@ -22,7 +30,8 @@ export interface MediaSourceControllerEventMap {
|
|
|
22
30
|
*/
|
|
23
31
|
readonly sourceOpen: AnyRecord;
|
|
24
32
|
/**
|
|
25
|
-
* All source buffers have been created
|
|
33
|
+
* All source buffers have been created, the media source duration has been set, and data
|
|
34
|
+
* may be appended.
|
|
26
35
|
*/
|
|
27
36
|
readonly readyToAppend: AnyRecord;
|
|
28
37
|
/**
|
|
@@ -35,20 +44,12 @@ export interface ReadonlyMediaSourceController extends ReadonlyEventHost<MediaSo
|
|
|
35
44
|
* Returns the parent media source ready state.
|
|
36
45
|
*/
|
|
37
46
|
readonly readyState: ReadyState;
|
|
38
|
-
/**
|
|
39
|
-
* Gets the media source's duration.
|
|
40
|
-
*/
|
|
41
|
-
readonly duration: number;
|
|
42
47
|
/**
|
|
43
48
|
* True if all source buffers have been created and data may be appended.
|
|
44
49
|
*/
|
|
45
50
|
readonly readyToAppend: boolean;
|
|
46
51
|
}
|
|
47
52
|
export interface MediaSourceController extends ReadonlyMediaSourceController {
|
|
48
|
-
/**
|
|
49
|
-
* Sets/gets the media source's duration.
|
|
50
|
-
*/
|
|
51
|
-
duration: number;
|
|
52
53
|
/**
|
|
53
54
|
* Constructs a new SourceBuffer with the given content type and mime type.
|
|
54
55
|
*/
|
|
@@ -72,21 +73,46 @@ export interface MediaSourceControllerImplDeps {
|
|
|
72
73
|
* Provides the streams that must be created before appending.
|
|
73
74
|
*/
|
|
74
75
|
readonly contentTypesValue: ContentTypesValue;
|
|
76
|
+
/**
|
|
77
|
+
* The media timeline used to determine duration.
|
|
78
|
+
*/
|
|
79
|
+
readonly mediaTimelineTransformed: ObservableValue<Promise<MediaTimeline>>;
|
|
75
80
|
}
|
|
76
81
|
export declare class MediaSourceControllerImpl extends EventHostImpl<MediaSourceControllerEventMap> implements MediaSourceController, LogTarget {
|
|
82
|
+
private readonly deps;
|
|
77
83
|
get [Symbol.toStringTag](): string;
|
|
78
|
-
private
|
|
84
|
+
private readonly sourceBuffers;
|
|
79
85
|
private readonly mediaSource;
|
|
80
86
|
private readonly disposer;
|
|
81
87
|
private contentTypes;
|
|
88
|
+
private durationSet;
|
|
89
|
+
/**
|
|
90
|
+
* Token for the in-flight duration update; used to discard stale results when
|
|
91
|
+
* the timeline changes or the source closes mid-fetch.
|
|
92
|
+
*/
|
|
93
|
+
private durationToken;
|
|
82
94
|
constructor(deps: MediaSourceControllerImplDeps);
|
|
95
|
+
private get sourceBufferCount();
|
|
96
|
+
private readonly errorHandler;
|
|
97
|
+
/**
|
|
98
|
+
* Subscription to mediaTimelineTransformed; only attached while the media source is open
|
|
99
|
+
* so the timeline pipeline isn't forced to evaluate before the source has opened.
|
|
100
|
+
*/
|
|
101
|
+
private timelineSub;
|
|
83
102
|
private initializeEvents;
|
|
84
|
-
|
|
85
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Sets the duration on the media source from the current media timeline.
|
|
105
|
+
* Live streams use LIVE_DURATION since not all browsers support +Infinity duration.
|
|
106
|
+
*
|
|
107
|
+
* MSE throws InvalidStateError if duration is set while any source buffer is updating,
|
|
108
|
+
* so we wait for all tracked source buffers to be idle first.
|
|
109
|
+
*/
|
|
110
|
+
private refreshDuration;
|
|
86
111
|
get readyState(): ReadyState;
|
|
87
112
|
createSourceBuffer(contentType: ContentType, mimeType: string): SourceBufferRef;
|
|
88
113
|
/**
|
|
89
|
-
* Emits a 'readyToAppend' event if all source buffers have been created
|
|
114
|
+
* Emits a 'readyToAppend' event if all source buffers have been created and the duration
|
|
115
|
+
* has been applied to the media source.
|
|
90
116
|
*/
|
|
91
117
|
private readonly checkReady;
|
|
92
118
|
endOfStream(error?: EndOfStreamError): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSourceController.d.ts","sourceRoot":"","sources":["../../../../../src/streaming/buffering/MediaSourceController.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"MediaSourceController.d.ts","sourceRoot":"","sources":["../../../../../src/streaming/buffering/MediaSourceController.ts"],"names":[],"mappings":"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"}
|