shaka-player 4.3.10 → 4.4.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/.github/workflows/release-please.yaml +7 -0
- package/AUTHORS +9 -0
- package/CHANGELOG.md +295 -200
- package/CONTRIBUTORS +8 -0
- package/LICENSE +32 -0
- package/README.md +63 -10
- package/demo/autoTemplate.txt +40 -5
- package/demo/close_button.js +11 -0
- package/demo/common/asset.js +13 -1
- package/demo/common/assets.js +53 -3
- package/demo/common/message_ids.js +25 -1
- package/demo/config.js +69 -10
- package/demo/customWarning.txt +2 -2
- package/demo/index.html +3 -1
- package/demo/locales/en.json +26 -2
- package/demo/locales/source.json +105 -9
- package/demo/main.js +52 -9
- package/demo/search.js +3 -1
- package/demo/service_worker.js +3 -0
- package/dist/controls.css +1 -1
- package/dist/controls.css.map +1 -1
- package/dist/demo.compiled.debug.js +124 -112
- package/dist/demo.compiled.debug.map +3 -3
- package/dist/demo.compiled.js +124 -112
- package/dist/demo.compiled.map +3 -3
- package/dist/deps.js +46 -28
- package/dist/locales.js +28 -28
- package/dist/receiver.compiled.debug.js +52 -46
- package/dist/receiver.compiled.debug.map +3 -3
- package/dist/receiver.compiled.js +52 -46
- package/dist/receiver.compiled.map +3 -3
- package/dist/shaka-player.compiled.d.ts +676 -391
- package/dist/shaka-player.compiled.debug.d.ts +676 -391
- package/dist/shaka-player.compiled.debug.externs.js +1188 -616
- package/dist/shaka-player.compiled.debug.js +1045 -700
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +1188 -616
- package/dist/shaka-player.compiled.js +1094 -933
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +677 -392
- package/dist/shaka-player.ui.debug.d.ts +677 -392
- package/dist/shaka-player.ui.debug.externs.js +1023 -451
- package/dist/shaka-player.ui.debug.js +1100 -739
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +1023 -451
- package/dist/shaka-player.ui.js +1244 -1071
- package/dist/shaka-player.ui.map +4 -4
- package/docs/tutorials/ad_monetization.md +15 -1
- package/docs/tutorials/application-level-redirects.md +1 -1
- package/docs/tutorials/config.md +9 -5
- package/docs/tutorials/drm-config.md +61 -0
- package/docs/tutorials/fairplay.md +19 -4
- package/docs/tutorials/license-server-auth.md +4 -4
- package/docs/tutorials/license-wrapping.md +2 -2
- package/docs/tutorials/ui-customization.md +7 -3
- package/docs/tutorials/ui.md +7 -7
- package/docs/tutorials/upgrade.md +3 -0
- package/externs/ima.js +123 -2
- package/externs/isoboxer.js +217 -0
- package/externs/mediakeys.js +18 -0
- package/externs/mux.js +1 -105
- package/externs/pictureinpicture.js +48 -0
- package/externs/shaka/ads.js +61 -1
- package/externs/shaka/cea.js +110 -0
- package/externs/shaka/codecs.js +32 -0
- package/externs/shaka/manifest.js +101 -1
- package/externs/shaka/manifest_parser.js +0 -10
- package/externs/shaka/net.js +36 -7
- package/externs/shaka/offline.js +8 -1
- package/externs/shaka/player.js +220 -21
- package/externs/shaka/text.js +1 -382
- package/externs/shaka/transmuxer.js +59 -0
- package/karma.conf.js +13 -0
- package/lib/abr/simple_abr_manager.js +6 -3
- package/lib/ads/ad_manager.js +60 -2
- package/lib/ads/client_side_ad.js +86 -0
- package/lib/ads/client_side_ad_manager.js +79 -3
- package/lib/ads/server_side_ad.js +86 -0
- package/lib/ads/server_side_ad_manager.js +13 -0
- package/lib/cast/cast_utils.js +1 -0
- package/lib/cea/cea608_data_channel.js +24 -14
- package/lib/cea/cea608_memory.js +5 -2
- package/lib/cea/cea708_service.js +8 -9
- package/lib/cea/cea708_window.js +1 -2
- package/lib/cea/cea_decoder.js +23 -6
- package/lib/cea/cea_utils.js +25 -2
- package/lib/cea/dummy_caption_decoder.js +21 -0
- package/lib/cea/dummy_cea_parser.js +1 -3
- package/lib/cea/mp4_cea_parser.js +15 -10
- package/lib/cea/ts_cea_parser.js +69 -0
- package/lib/dash/content_protection.js +32 -2
- package/lib/dash/dash_parser.js +93 -31
- package/lib/dash/mpd_utils.js +6 -25
- package/lib/dash/segment_base.js +12 -14
- package/lib/dash/segment_list.js +10 -6
- package/lib/dash/segment_template.js +349 -32
- package/lib/dependencies/all.js +8 -0
- package/lib/hls/hls_classes.js +33 -8
- package/lib/hls/hls_parser.js +805 -191
- package/lib/hls/manifest_text_parser.js +4 -14
- package/lib/media/adaptation_set_criteria.js +43 -3
- package/lib/media/closed_caption_parser.js +74 -12
- package/lib/media/drm_engine.js +189 -49
- package/lib/media/gap_jumping_controller.js +1 -1
- package/lib/media/manifest_parser.js +34 -0
- package/lib/media/media_source_capabilities.js +10 -0
- package/lib/media/media_source_engine.js +475 -231
- package/lib/media/playhead.js +1 -1
- package/lib/media/presentation_timeline.js +62 -0
- package/lib/media/segment_index.js +50 -14
- package/lib/media/segment_prefetch.js +277 -0
- package/lib/media/segment_reference.js +70 -4
- package/lib/media/streaming_engine.js +258 -81
- package/lib/media/video_wrapper.js +15 -7
- package/lib/mss/content_protection.js +353 -0
- package/lib/mss/mss_parser.js +1081 -0
- package/lib/net/networking_engine.js +60 -10
- package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
- package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
- package/lib/offline/manifest_converter.js +6 -0
- package/lib/offline/storage.js +2 -4
- package/lib/player.js +309 -105
- package/lib/polyfill/media_capabilities.js +43 -3
- package/lib/polyfill/patchedmediakeys_apple.js +5 -0
- package/lib/polyfill/patchedmediakeys_nop.js +5 -0
- package/lib/polyfill/patchedmediakeys_webkit.js +5 -0
- package/lib/text/cue.js +208 -130
- package/lib/text/lrc_text_parser.js +2 -2
- package/lib/text/mp4_vtt_parser.js +2 -2
- package/lib/text/sbv_text_parser.js +1 -1
- package/lib/text/simple_text_displayer.js +2 -1
- package/lib/text/srt_text_parser.js +9 -1
- package/lib/text/ssa_text_parser.js +2 -2
- package/lib/text/text_engine.js +3 -21
- package/lib/text/text_utils.js +71 -20
- package/lib/text/ui_text_displayer.js +14 -14
- package/lib/text/vtt_text_parser.js +22 -14
- package/lib/transmuxer/aac_transmuxer.js +224 -0
- package/lib/transmuxer/ac3.js +142 -0
- package/lib/transmuxer/ac3_transmuxer.js +212 -0
- package/lib/transmuxer/adts.js +232 -0
- package/lib/transmuxer/ec3.js +103 -0
- package/lib/transmuxer/ec3_transmuxer.js +212 -0
- package/lib/transmuxer/h264.js +324 -0
- package/lib/transmuxer/mp3_transmuxer.js +204 -0
- package/lib/transmuxer/mpeg_audio.js +196 -0
- package/lib/transmuxer/mpeg_ts_transmuxer.js +182 -0
- package/lib/transmuxer/mss_transmuxer.js +389 -0
- package/lib/{media/transmuxer.js → transmuxer/muxjs_transmuxer.js} +34 -80
- package/lib/transmuxer/transmuxer_engine.js +161 -0
- package/lib/transmuxer/ts_transmuxer.js +738 -0
- package/lib/util/cmcd_manager.js +131 -71
- package/lib/util/error.js +62 -26
- package/lib/util/exp_golomb.js +220 -0
- package/lib/util/fairplay_utils.js +64 -13
- package/lib/util/id3_utils.js +56 -3
- package/lib/util/language_utils.js +11 -8
- package/lib/util/manifest_parser_utils.js +3 -0
- package/lib/util/mime_utils.js +44 -7
- package/lib/util/mp4_box_parsers.js +233 -5
- package/lib/util/mp4_generator.js +1381 -0
- package/lib/util/periods.js +40 -34
- package/lib/util/platform.js +17 -3
- package/lib/util/player_configuration.js +38 -1
- package/lib/util/stream_utils.js +138 -27
- package/lib/util/text_parser.js +1 -1
- package/lib/util/ts_parser.js +470 -47
- package/lib/util/xml_utils.js +16 -3
- package/maintained-branches.md +2 -2
- package/package.json +3 -1
- package/roadmap.md +21 -6
- package/shaka-player.uncompiled.js +18 -0
- package/test/abr/simple_abr_manager_unit.js +32 -4
- package/test/ads/ad_manager_unit.js +18 -2
- package/test/cast/cast_utils_unit.js +7 -2
- package/test/cea/cea608_memory_unit.js +24 -0
- package/test/cea/cea_decoder_unit.js +33 -0
- package/test/dash/dash_parser_content_protection_unit.js +93 -3
- package/test/dash/dash_parser_live_unit.js +56 -13
- package/test/dash/dash_parser_manifest_unit.js +70 -2
- package/test/dash/dash_parser_segment_base_unit.js +14 -9
- package/test/dash/dash_parser_segment_template_unit.js +286 -6
- package/test/demo/demo_unit.js +5 -1
- package/test/hls/hls_live_unit.js +188 -28
- package/test/hls/hls_parser_unit.js +250 -109
- package/test/hls/manifest_text_parser_unit.js +18 -13
- package/test/media/adaptation_set_criteria_unit.js +46 -14
- package/test/media/adaptation_set_unit.js +2 -0
- package/test/media/drm_engine_integration.js +11 -8
- package/test/media/drm_engine_unit.js +220 -7
- package/test/media/media_source_engine_integration.js +122 -38
- package/test/media/media_source_engine_unit.js +133 -153
- package/test/media/playhead_unit.js +3 -0
- package/test/media/presentation_timeline_unit.js +51 -0
- package/test/media/segment_index_unit.js +52 -0
- package/test/media/segment_prefetch_unit.js +243 -0
- package/test/media/streaming_engine_integration.js +9 -3
- package/test/media/streaming_engine_unit.js +440 -59
- package/test/mss/mss_parser_content_protection_unit.js +49 -0
- package/test/mss/mss_parser_unit.js +472 -0
- package/test/mss/mss_player_integration.js +123 -0
- package/test/offline/manifest_convert_unit.js +9 -0
- package/test/offline/storage_integration.js +6 -1
- package/test/player_unit.js +386 -133
- package/test/polyfill/media_capabilities_unit.js +18 -0
- package/test/test/assets/hls-raw-aac/fileSequence0.aac +0 -0
- package/test/test/assets/hls-raw-aac/fileSequence1.aac +0 -0
- package/test/test/assets/hls-raw-aac/fileSequence2.aac +0 -0
- package/test/test/assets/hls-raw-aac/fileSequence3.aac +0 -0
- package/test/test/assets/hls-raw-aac/manifest.m3u8 +4 -0
- package/test/test/assets/hls-raw-aac/stream.m4a.m3u8 +14 -0
- package/test/test/assets/hls-raw-ac3/fileSequence0.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence1.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence2.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence3.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence4.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence5.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence6.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence7.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/prog_index.m3u8 +31 -0
- package/test/test/assets/hls-raw-ec3/fileSequence0.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence1.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence2.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence3.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence4.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence5.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence6.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence7.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/prog_index.m3u8 +31 -0
- package/test/test/assets/hls-raw-mp3/chunklist_w905519204.m3u8 +13 -0
- package/test/test/assets/hls-raw-mp3/media_w905519204_0.mp3 +0 -0
- package/test/test/assets/hls-raw-mp3/media_w905519204_1.mp3 +0 -0
- package/test/test/assets/hls-raw-mp3/media_w905519204_2.mp3 +0 -0
- package/test/test/assets/hls-raw-mp3/media_w905519204_3.mp3 +0 -0
- package/test/test/assets/hls-raw-mp3/playlist.m3u8 +4 -0
- package/test/test/assets/hls-ts-aac/playlist.m3u8 +23 -0
- package/test/test/assets/hls-ts-aac/segment_0.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_1.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_2.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_3.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_4.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_5.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_6.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_7.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0000.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0001.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0002.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0003.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0004.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0005.ts +0 -0
- package/test/test/assets/hls-ts-ac3/prog_index.m3u8 +19 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0000.ts +0 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0001.ts +0 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0002.ts +0 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0003.ts +0 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0004.ts +0 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0005.ts +0 -0
- package/test/test/assets/hls-ts-ec3/prog_index.m3u8 +19 -0
- package/test/test/assets/hls-ts-h264/fileSequence0.ts +0 -0
- package/test/test/assets/hls-ts-h264/fileSequence1.ts +0 -0
- package/test/test/assets/hls-ts-h264/fileSequence2.ts +0 -0
- package/test/test/assets/hls-ts-h264/fileSequence3.ts +0 -0
- package/test/test/assets/hls-ts-h264/fileSequence4.ts +0 -0
- package/test/test/assets/hls-ts-h264/fileSequence5.ts +0 -0
- package/test/test/assets/hls-ts-h264/prog_index.m3u8 +25 -0
- package/test/test/assets/hls-ts-mp3/manifest.m3u8 +13 -0
- package/test/test/assets/hls-ts-mp3/media_w239891843_0.ts +0 -0
- package/test/test/assets/hls-ts-mp3/media_w239891843_1.ts +0 -0
- package/test/test/assets/hls-ts-mp3/media_w239891843_2.ts +0 -0
- package/test/test/assets/hls-ts-mp3/media_w239891843_3.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/chunk.m3u8 +17 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_0_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_1_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_2_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_3_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_4_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_5_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/playlist.m3u8 +4 -0
- package/test/test/boot.js +7 -2
- package/test/test/util/fake_ad.js +99 -0
- package/test/test/util/fake_ad_manager.js +7 -1
- package/test/test/util/fake_networking_engine.js +41 -14
- package/test/test/util/fake_segment_prefetch.js +81 -0
- package/test/test/util/manifest_generator.js +19 -5
- package/test/test/util/mss_parser_util.js +115 -0
- package/test/test/util/offline_utils.js +1 -0
- package/test/test/util/simple_fakes.js +12 -3
- package/test/test/util/streaming_engine_util.js +14 -4
- package/test/test/util/ttml_utils.js +2 -2
- package/test/text/cue_integration.js +1 -1
- package/test/text/srt_text_parser_unit.js +78 -0
- package/test/text/text_engine_unit.js +17 -8
- package/test/text/ui_text_displayer_unit.js +4 -4
- package/test/text/vtt_text_parser_unit.js +59 -40
- package/test/text/web_vtt_generator_unit.js +9 -3
- package/test/{media/transmuxer_integration.js → transmuxer/muxjs_transmuxer_integration.js} +30 -33
- package/test/transmuxer/transmuxer_engine_integration.js +60 -0
- package/test/transmuxer/transmuxer_integration.js +296 -0
- package/test/util/cmcd_manager_unit.js +162 -13
- package/test/util/language_utils_unit.js +9 -2
- package/test/util/mp4_box_parsers_unit.js +39 -4
- package/test/util/periods_unit.js +34 -26
- package/test/util/stream_utils_unit.js +60 -107
- package/ui/controls.js +19 -1
- package/ui/controls.less +1 -0
- package/ui/externs/ui.js +11 -1
- package/ui/language_utils.js +15 -0
- package/ui/less/thumbnails.less +26 -0
- package/ui/locales/oc.json +42 -0
- package/ui/pip_button.js +83 -2
- package/ui/range_element.js +15 -0
- package/ui/resolution_selection.js +9 -2
- package/ui/seek_bar.js +223 -0
- package/ui/ui.js +5 -0
- package/lib/cea/i_caption_decoder.js +0 -51
- package/lib/cea/i_cea_parser.js +0 -68
|
@@ -18,7 +18,10 @@
|
|
|
18
18
|
* imageStreams: !Array.<shaka.extern.Stream>,
|
|
19
19
|
* offlineSessionIds: !Array.<string>,
|
|
20
20
|
* minBufferTime: number,
|
|
21
|
-
* sequenceMode: boolean
|
|
21
|
+
* sequenceMode: boolean,
|
|
22
|
+
* ignoreManifestTimestampsInSegmentsMode: boolean,
|
|
23
|
+
* type: string,
|
|
24
|
+
* serviceDescription: ?shaka.extern.ServiceDescription
|
|
22
25
|
* }}
|
|
23
26
|
*
|
|
24
27
|
* @description
|
|
@@ -76,12 +79,53 @@
|
|
|
76
79
|
* @property {boolean} sequenceMode
|
|
77
80
|
* If true, we will append the media segments using sequence mode; that is to
|
|
78
81
|
* say, ignoring any timestamps inside the media files.
|
|
82
|
+
* @property {boolean} ignoreManifestTimestampsInSegmentsMode
|
|
83
|
+
* If true, don't adjust the timestamp offset to account for manifest
|
|
84
|
+
* segment durations being out of sync with segment durations. In other
|
|
85
|
+
* words, assume that there are no gaps in the segments when appending
|
|
86
|
+
* to the SourceBuffer, even if the manifest and segment times disagree.
|
|
87
|
+
* Only applies when sequenceMode is <code>false</code>, and only for HLS
|
|
88
|
+
* streams.
|
|
89
|
+
* <i>Defaults to <code>false</code>.</i>
|
|
90
|
+
* @property {string} type
|
|
91
|
+
* Indicates the type of the manifest. It can be <code>'HLS'</code> or
|
|
92
|
+
* <code>'DASH'</code>.
|
|
93
|
+
* @property {?shaka.extern.ServiceDescription} serviceDescription
|
|
94
|
+
* The service description for the manifest. Used to adapt playbackRate to
|
|
95
|
+
* decrease latency.
|
|
79
96
|
*
|
|
80
97
|
* @exportDoc
|
|
81
98
|
*/
|
|
82
99
|
shaka.extern.Manifest;
|
|
83
100
|
|
|
84
101
|
|
|
102
|
+
/**
|
|
103
|
+
* @typedef {{
|
|
104
|
+
* id: string,
|
|
105
|
+
* audioStreams: !Array.<shaka.extern.Stream>,
|
|
106
|
+
* videoStreams: !Array.<shaka.extern.Stream>,
|
|
107
|
+
* textStreams: !Array.<shaka.extern.Stream>,
|
|
108
|
+
* imageStreams: !Array.<shaka.extern.Stream>
|
|
109
|
+
* }}
|
|
110
|
+
*
|
|
111
|
+
* @description Contains the streams from one DASH period.
|
|
112
|
+
* For use in {@link shaka.util.PeriodCombiner}.
|
|
113
|
+
*
|
|
114
|
+
* @property {string} id
|
|
115
|
+
* The Period ID.
|
|
116
|
+
* @property {!Array.<shaka.extern.Stream>} audioStreams
|
|
117
|
+
* The audio streams from one Period.
|
|
118
|
+
* @property {!Array.<shaka.extern.Stream>} videoStreams
|
|
119
|
+
* The video streams from one Period.
|
|
120
|
+
* @property {!Array.<shaka.extern.Stream>} textStreams
|
|
121
|
+
* The text streams from one Period.
|
|
122
|
+
* @property {!Array.<shaka.extern.Stream>} imageStreams
|
|
123
|
+
* The image streams from one Period.
|
|
124
|
+
*
|
|
125
|
+
* @exportDoc
|
|
126
|
+
*/
|
|
127
|
+
shaka.extern.Period;
|
|
128
|
+
|
|
85
129
|
/**
|
|
86
130
|
* @typedef {{
|
|
87
131
|
* initData: !Uint8Array,
|
|
@@ -105,6 +149,26 @@ shaka.extern.Manifest;
|
|
|
105
149
|
*/
|
|
106
150
|
shaka.extern.InitDataOverride;
|
|
107
151
|
|
|
152
|
+
/**
|
|
153
|
+
* @typedef {{
|
|
154
|
+
* maxLatency: ?number,
|
|
155
|
+
* maxPlaybackRate: ?number
|
|
156
|
+
* }}
|
|
157
|
+
*
|
|
158
|
+
* @description
|
|
159
|
+
* Maximum latency and playback rate for a manifest. When max latency is reached
|
|
160
|
+
* playbackrate is updated to maxPlaybackRate to decrease latency.
|
|
161
|
+
* More information {@link https://dashif.org/docs/CR-Low-Latency-Live-r8.pdf here}.
|
|
162
|
+
*
|
|
163
|
+
* @property {?number} maxLatency
|
|
164
|
+
* Maximum latency in seconds.
|
|
165
|
+
* @property {?number} maxPlaybackRate
|
|
166
|
+
* Maximum playback rate.
|
|
167
|
+
*
|
|
168
|
+
* @exportDoc
|
|
169
|
+
*/
|
|
170
|
+
shaka.extern.ServiceDescription;
|
|
171
|
+
|
|
108
172
|
|
|
109
173
|
/**
|
|
110
174
|
* @typedef {{
|
|
@@ -307,12 +371,14 @@ shaka.extern.FetchCryptoKeysFunction;
|
|
|
307
371
|
* drmInfos: !Array.<shaka.extern.DrmInfo>,
|
|
308
372
|
* keyIds: !Set.<string>,
|
|
309
373
|
* language: string,
|
|
374
|
+
* originalLanguage: ?string,
|
|
310
375
|
* label: ?string,
|
|
311
376
|
* type: string,
|
|
312
377
|
* primary: boolean,
|
|
313
378
|
* trickModeVideo: ?shaka.extern.Stream,
|
|
314
379
|
* emsgSchemeIdUris: ?Array.<string>,
|
|
315
380
|
* roles: !Array.<string>,
|
|
381
|
+
* accessibilityPurpose: ?shaka.media.ManifestParser.AccessibilityPurpose,
|
|
316
382
|
* forced: boolean,
|
|
317
383
|
* channelsCount: ?number,
|
|
318
384
|
* audioSamplingRate: ?number,
|
|
@@ -322,6 +388,7 @@ shaka.extern.FetchCryptoKeysFunction;
|
|
|
322
388
|
* matchedStreams:
|
|
323
389
|
* (!Array.<shaka.extern.Stream>|!Array.<shaka.extern.StreamDB>|
|
|
324
390
|
* undefined),
|
|
391
|
+
* mssPrivateData: (shaka.extern.MssPrivateData|undefined),
|
|
325
392
|
* external: boolean
|
|
326
393
|
* }}
|
|
327
394
|
*
|
|
@@ -391,6 +458,9 @@ shaka.extern.FetchCryptoKeysFunction;
|
|
|
391
458
|
* The Stream's language, specified as a language code. <br>
|
|
392
459
|
* Audio stream's language must be identical to the language of the containing
|
|
393
460
|
* Variant.
|
|
461
|
+
* @property {?string} originalLanguage
|
|
462
|
+
* <i>Optional.</i> <br>
|
|
463
|
+
* The original language, if any, that appeared in the manifest.
|
|
394
464
|
* @property {?string} label
|
|
395
465
|
* The Stream's label, unique text that should describe the audio/text track.
|
|
396
466
|
* @property {string} type
|
|
@@ -411,6 +481,9 @@ shaka.extern.FetchCryptoKeysFunction;
|
|
|
411
481
|
* @property {!Array.<string>} roles
|
|
412
482
|
* The roles of the stream as they appear on the manifest,
|
|
413
483
|
* e.g. 'main', 'caption', or 'commentary'.
|
|
484
|
+
* @property {?shaka.media.ManifestParser.AccessibilityPurpose}
|
|
485
|
+
* accessibilityPurpose
|
|
486
|
+
* The DASH accessibility descriptor, if one was provided for this stream.
|
|
414
487
|
* @property {boolean} forced
|
|
415
488
|
* <i>Defaults to false.</i> <br>
|
|
416
489
|
* Whether the stream set was forced
|
|
@@ -435,6 +508,9 @@ shaka.extern.FetchCryptoKeysFunction;
|
|
|
435
508
|
* @property {(!Array.<shaka.extern.Stream>|!Array.<shaka.extern.StreamDB>|
|
|
436
509
|
* undefined)} matchedStreams
|
|
437
510
|
* The streams in all periods which match the stream. Used for Dash.
|
|
511
|
+
* @property {(shaka.extern.MssPrivateData|undefined)} mssPrivateData
|
|
512
|
+
* <i>Microsoft Smooth Streaming only.</i> <br>
|
|
513
|
+
* Private MSS data that is necessary to be able to do transmuxing.
|
|
438
514
|
* @property {boolean} external
|
|
439
515
|
* Indicate if the stream was added externally.
|
|
440
516
|
* Eg: external text tracks.
|
|
@@ -442,3 +518,27 @@ shaka.extern.FetchCryptoKeysFunction;
|
|
|
442
518
|
* @exportDoc
|
|
443
519
|
*/
|
|
444
520
|
shaka.extern.Stream;
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* @typedef {{
|
|
525
|
+
* duration: number,
|
|
526
|
+
* timescale: number,
|
|
527
|
+
* codecPrivateData: ?string
|
|
528
|
+
* }}
|
|
529
|
+
*
|
|
530
|
+
* @description
|
|
531
|
+
* Private MSS data that is necessary to be able to do transmuxing.
|
|
532
|
+
*
|
|
533
|
+
* @property {number} duration
|
|
534
|
+
* <i>Required.</i> <br>
|
|
535
|
+
* MSS Stream duration.
|
|
536
|
+
* @property {number} timescale
|
|
537
|
+
* <i>Required.</i> <br>
|
|
538
|
+
* MSS timescale.
|
|
539
|
+
* @property {?string} codecPrivateData
|
|
540
|
+
* MSS codecPrivateData.
|
|
541
|
+
*
|
|
542
|
+
* @exportDoc
|
|
543
|
+
*/
|
|
544
|
+
shaka.extern.MssPrivateData;
|
|
@@ -100,10 +100,6 @@ shaka.extern.ManifestParser = class {
|
|
|
100
100
|
/**
|
|
101
101
|
* @typedef {{
|
|
102
102
|
* networkingEngine: !shaka.net.NetworkingEngine,
|
|
103
|
-
* modifyManifestRequest: function(!shaka.extern.Request,
|
|
104
|
-
* shaka.util.CmcdManager.ManifestInfo),
|
|
105
|
-
* modifySegmentRequest: function(!shaka.extern.Request,
|
|
106
|
-
* shaka.util.CmcdManager.SegmentInfo),
|
|
107
103
|
* filter: function(shaka.extern.Manifest):!Promise,
|
|
108
104
|
* makeTextStreamsForClosedCaptions: function(shaka.extern.Manifest),
|
|
109
105
|
* onTimelineRegionAdded: function(shaka.extern.TimelineRegionInfo),
|
|
@@ -124,12 +120,6 @@ shaka.extern.ManifestParser = class {
|
|
|
124
120
|
*
|
|
125
121
|
* @property {!shaka.net.NetworkingEngine} networkingEngine
|
|
126
122
|
* The networking engine to use for network requests.
|
|
127
|
-
* @property {function(!shaka.extern.Request,
|
|
128
|
-
* shaka.util.CmcdManager.ManifestInfo)} modifyManifestRequest
|
|
129
|
-
* Modify a manifest request
|
|
130
|
-
* @property {function(!shaka.extern.Request,
|
|
131
|
-
* shaka.util.CmcdManager.SegmentInfo)} modifySegmentRequest
|
|
132
|
-
* Modify a segment request
|
|
133
123
|
* @property {function(shaka.extern.Manifest):!Promise} filter
|
|
134
124
|
* Should be called when new variants or text streams are added to the
|
|
135
125
|
* Manifest. Note that this operation is asynchronous.
|
package/externs/shaka/net.js
CHANGED
|
@@ -200,15 +200,40 @@ shaka.extern.ProgressUpdated;
|
|
|
200
200
|
shaka.extern.HeadersReceived;
|
|
201
201
|
|
|
202
202
|
|
|
203
|
+
/**
|
|
204
|
+
* @typedef {{
|
|
205
|
+
* type: (shaka.net.NetworkingEngine.AdvancedRequestType|undefined),
|
|
206
|
+
* stream: (shaka.extern.Stream|undefined),
|
|
207
|
+
* segment: (shaka.media.SegmentReference|undefined)
|
|
208
|
+
* }}
|
|
209
|
+
*
|
|
210
|
+
* @description
|
|
211
|
+
* Defines contextual data about a request
|
|
212
|
+
*
|
|
213
|
+
* @property {shaka.net.NetworkingEngine.AdvancedRequestType=} type
|
|
214
|
+
* The advanced type
|
|
215
|
+
* @property {shaka.extern.Stream=} stream
|
|
216
|
+
* The duration of the segment in seconds
|
|
217
|
+
* @property {shaka.media.SegmentReference=} segment
|
|
218
|
+
* The request's segment reference
|
|
219
|
+
* @exportDoc
|
|
220
|
+
*/
|
|
221
|
+
shaka.extern.RequestContext;
|
|
222
|
+
|
|
223
|
+
|
|
203
224
|
/**
|
|
204
225
|
* Defines a filter for requests. This filter takes the request and modifies
|
|
205
226
|
* it before it is sent to the scheme plugin.
|
|
206
|
-
*
|
|
207
|
-
*
|
|
227
|
+
* The RequestType describes the basic type of the request (manifest, segment,
|
|
228
|
+
* etc). The optional RequestContext will be provided where applicable to
|
|
229
|
+
* provide additional infomation about the request. A request filter can run
|
|
230
|
+
* asynchronously by returning a promise; in this case, the request will not be
|
|
231
|
+
* sent until the promise is resolved.
|
|
208
232
|
*
|
|
209
233
|
* @typedef {!function(shaka.net.NetworkingEngine.RequestType,
|
|
210
|
-
* shaka.extern.Request
|
|
211
|
-
|
|
234
|
+
* shaka.extern.Request,
|
|
235
|
+
* shaka.extern.RequestContext=):
|
|
236
|
+
* (Promise|undefined)}
|
|
212
237
|
* @exportDoc
|
|
213
238
|
*/
|
|
214
239
|
shaka.extern.RequestFilter;
|
|
@@ -217,11 +242,15 @@ shaka.extern.RequestFilter;
|
|
|
217
242
|
/**
|
|
218
243
|
* Defines a filter for responses. This filter takes the response and modifies
|
|
219
244
|
* it before it is returned.
|
|
220
|
-
*
|
|
245
|
+
* The RequestType describes the basic type of the request (manifest, segment,
|
|
246
|
+
* etc). The optional RequestContext will be provided where applicable to
|
|
247
|
+
* provide additional infomation about the request. A response filter can run
|
|
248
|
+
* asynchronously by returning a promise.
|
|
221
249
|
*
|
|
222
250
|
* @typedef {!function(shaka.net.NetworkingEngine.RequestType,
|
|
223
|
-
* shaka.extern.Response
|
|
224
|
-
|
|
251
|
+
* shaka.extern.Response,
|
|
252
|
+
* shaka.extern.RequestContext=):
|
|
253
|
+
* (Promise|undefined)}
|
|
225
254
|
* @exportDoc
|
|
226
255
|
*/
|
|
227
256
|
shaka.extern.ResponseFilter;
|
package/externs/shaka/offline.js
CHANGED
|
@@ -74,7 +74,8 @@ shaka.extern.StoredContent;
|
|
|
74
74
|
* drmInfo: ?shaka.extern.DrmInfo,
|
|
75
75
|
* appMetadata: Object,
|
|
76
76
|
* isIncomplete: (boolean|undefined),
|
|
77
|
-
* sequenceMode: (boolean|undefined)
|
|
77
|
+
* sequenceMode: (boolean|undefined),
|
|
78
|
+
* type: (string|undefined)
|
|
78
79
|
* }}
|
|
79
80
|
*
|
|
80
81
|
* @property {number} creationTime
|
|
@@ -102,6 +103,9 @@ shaka.extern.StoredContent;
|
|
|
102
103
|
* @property {(boolean|undefined)} sequenceMode
|
|
103
104
|
* If true, we will append the media segments using sequence mode; that is to
|
|
104
105
|
* say, ignoring any timestamps inside the media files.
|
|
106
|
+
* @property {(string|undefined)} type
|
|
107
|
+
* Indicates the type of the manifest. It can be <code>'HLS'</code> or
|
|
108
|
+
* <code>'DASH'</code>.
|
|
105
109
|
*/
|
|
106
110
|
shaka.extern.ManifestDB;
|
|
107
111
|
|
|
@@ -119,6 +123,7 @@ shaka.extern.ManifestDB;
|
|
|
119
123
|
* hdr: (string|undefined),
|
|
120
124
|
* kind: (string|undefined),
|
|
121
125
|
* language: string,
|
|
126
|
+
* originalLanguage: (?string|undefined),
|
|
122
127
|
* label: ?string,
|
|
123
128
|
* width: ?number,
|
|
124
129
|
* height: ?number,
|
|
@@ -159,6 +164,8 @@ shaka.extern.ManifestDB;
|
|
|
159
164
|
* The kind of text stream; undefined for audio/video.
|
|
160
165
|
* @property {string} language
|
|
161
166
|
* The language of the stream; '' for video.
|
|
167
|
+
* @property {(?string|undefined)} originalLanguage
|
|
168
|
+
* The original language, if any, that appeared in the manifest.
|
|
162
169
|
* @property {?string} label
|
|
163
170
|
* The label of the stream; '' for video.
|
|
164
171
|
* @property {?number} width
|