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
package/CONTRIBUTORS
CHANGED
|
@@ -26,6 +26,7 @@ Aaron Vaage <vaage@google.com>
|
|
|
26
26
|
Adrián Gómez Llorente <adgllorente@gmail.com>
|
|
27
27
|
Agajan Jumakuliyev <agajan.tm@gmail.com>
|
|
28
28
|
Aidan Ridley <aidan.ridley@charter.com>
|
|
29
|
+
Albin Larsson <albin.larsson@eyevinn.se>
|
|
29
30
|
Alex Jones <alexedwardjones@gmail.com>
|
|
30
31
|
Alvaro Velad Galvan <ladvan91@hotmail.com>
|
|
31
32
|
Amila Sampath <lucksy@gmail.com>
|
|
@@ -43,12 +44,15 @@ Chris Fillmore <fillmore.chris@gmail.com>
|
|
|
43
44
|
Costel Madalin Grecu <madalin.grecu@adswizz.com>
|
|
44
45
|
Damien Deis <developer.deis@gmail.com>
|
|
45
46
|
Dany L'Hébreux <danylhebreux@gmail.com>
|
|
47
|
+
Dave Nicholas <davenicholasuk@gmail.com>
|
|
48
|
+
Davide Zordan <mail@davide.dev>
|
|
46
49
|
Dl Dador <dldador@gmail.com>
|
|
47
50
|
Donato Borrello <donato@jwplayer.com>
|
|
48
51
|
Duc Pham <duc.pham@edgeware.tv>
|
|
49
52
|
Enson Choy <enson.choy@harmonicinc.com>
|
|
50
53
|
Esteban Dosztal <edosztal@gmail.com>
|
|
51
54
|
Fadomire <fadomire@gmail.com>
|
|
55
|
+
Fernando Neira <slocomber@gmail.com>
|
|
52
56
|
François Beaufort <fbeaufort@google.com>
|
|
53
57
|
Gerardo Meola <meola.gerardo@gmail.com>
|
|
54
58
|
Gil Gonen <gil.gonen@gmail.com>
|
|
@@ -60,6 +64,7 @@ Isaac Ramirez <isaac.ramirez.herrera@gmail.com>
|
|
|
60
64
|
Jacob Trimble <modmaker@google.com>
|
|
61
65
|
Jaeseok Lee <devsunb@gmail.com>
|
|
62
66
|
Jason Palmer <jason@jason-palmer.com>
|
|
67
|
+
Jean-alexandre Iragne <jairagne@gmail.com>
|
|
63
68
|
Jeffrey Swan <jeffdswan@gmail.com>
|
|
64
69
|
Jesper Haug Karsrud <jesper.karsrud@gmail.com>
|
|
65
70
|
Jesse Gunsch <gunsch@google.com>
|
|
@@ -73,6 +78,7 @@ Jozef Chúťka <jozefchutka@gmail.com>
|
|
|
73
78
|
Julian Domingo <juliandomingo@google.com>
|
|
74
79
|
Jun Hong Chong <chongjunhong@gmail.com>
|
|
75
80
|
Jürgen Kartnaller <kartnaller@lovelysystems.com>
|
|
81
|
+
Konstantin Grushetsky <github@grushetsky.net>
|
|
76
82
|
Leandro Ribeiro Moreira <leandro.ribeiro.moreira@gmail.com>
|
|
77
83
|
Lucas Gabriel Sánchez <unkiwii@gmail.com>
|
|
78
84
|
Martin Stark <martin.stark@eyevinn.se>
|
|
@@ -114,6 +120,7 @@ Seth Madison <seth@philo.com>
|
|
|
114
120
|
Tatsiana Gelahova <tatsiana.gelahova@gmail.com>
|
|
115
121
|
Theodore Abshire <theodab@google.com>
|
|
116
122
|
Thomas Stephens <thomas@ustudio.com>
|
|
123
|
+
Tian Shao <tyrelltle@gmail.com>
|
|
117
124
|
Tim Plummer <objelisks@google.com>
|
|
118
125
|
Timothy Drews <tdrews@google.com>
|
|
119
126
|
Tomas Bucher <collapsingtesseract@gmail.com>
|
|
@@ -128,6 +135,7 @@ Vinod Balakrishnan <vinod.balakrishnan@v-nova.com>
|
|
|
128
135
|
Wayne Morgan <wayne.morgan.dev@gmail.com>
|
|
129
136
|
Wen Ren <renwen0615@gmail.com>
|
|
130
137
|
Will Harris <will.harris@paramount.com>
|
|
138
|
+
Wojciech Tyczyński <tykus160@gmail.com>
|
|
131
139
|
Yohann Connell <robinconnell@google.com>
|
|
132
140
|
Raymond Cheng <raycheng100@gmail.com>
|
|
133
141
|
Janroel Koppen <j.koppen@bluebillywig.com>
|
package/LICENSE
CHANGED
|
@@ -225,3 +225,35 @@ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
|
225
225
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
226
226
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
227
227
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
228
|
+
|
|
229
|
+
-----
|
|
230
|
+
|
|
231
|
+
Contains code from https://github.com/Dash-Industry-Forum/dash.js
|
|
232
|
+
(See lib/mss/mss_utils.js and lib/transmuxer/mss_transmuxer.js)
|
|
233
|
+
|
|
234
|
+
dash.js BSD License Agreement
|
|
235
|
+
|
|
236
|
+
Copyright 2015 Dash Industry Forum
|
|
237
|
+
|
|
238
|
+
Redistribution and use in source and binary forms, with or without
|
|
239
|
+
modification, are permitted provided that the following conditions are met:
|
|
240
|
+
|
|
241
|
+
- Redistributions of source code must retain the above copyright notice, this
|
|
242
|
+
list of conditions and the following disclaimer.
|
|
243
|
+
- Redistributions in binary form must reproduce the above copyright notice,
|
|
244
|
+
this list of conditions and the following disclaimer in the documentation
|
|
245
|
+
and/or other materials provided with the distribution.
|
|
246
|
+
- Neither the name of the Dash Industry Forum nor the names of its
|
|
247
|
+
contributors may be used to endorse or promote products derived from this
|
|
248
|
+
software without specific prior written permission.
|
|
249
|
+
|
|
250
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND
|
|
251
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
252
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
253
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
254
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
255
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
256
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
257
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
258
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
259
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# 
|
|
2
2
|
|
|
3
3
|
Shaka Player is an open-source JavaScript library for adaptive media. It plays
|
|
4
|
-
adaptive media formats (such as [DASH][] and [
|
|
5
|
-
using plugins or Flash. Instead, Shaka Player uses the open web
|
|
6
|
-
[MediaSource Extensions][] and [Encrypted Media Extensions][].
|
|
4
|
+
adaptive media formats (such as [DASH][], [HLS][] and [MSS][]) in a browser,
|
|
5
|
+
without using plugins or Flash. Instead, Shaka Player uses the open web
|
|
6
|
+
standards [MediaSource Extensions][] and [Encrypted Media Extensions][].
|
|
7
7
|
|
|
8
8
|
Shaka Player also supports [offline storage and playback][] of media using
|
|
9
9
|
[IndexedDB][]. Content can be stored on any browser. Storage of licenses
|
|
@@ -18,6 +18,7 @@ For details on what's coming next, see our [development roadmap](roadmap.md).
|
|
|
18
18
|
|
|
19
19
|
[DASH]: http://dashif.org/
|
|
20
20
|
[HLS]: https://developer.apple.com/streaming/
|
|
21
|
+
[MSS]: https://learn.microsoft.com/en-us/iis/media/smooth-streaming/smooth-streaming-transport-protocol
|
|
21
22
|
[MediaSource Extensions]: https://www.w3.org/TR/media-source/
|
|
22
23
|
[Encrypted Media Extensions]: https://www.w3.org/TR/encrypted-media/
|
|
23
24
|
[IndexedDB]: https://www.w3.org/TR/IndexedDB-2/
|
|
@@ -84,6 +85,7 @@ supported. This supports both DASH and HLS manifests.
|
|
|
84
85
|
|:----:|:-------------:|:---:|:---:|:-------------------:|
|
|
85
86
|
|DASH |**Y** |**Y**| - |**Y** |
|
|
86
87
|
|HLS |**Y** |**Y**|**Y**| - |
|
|
88
|
+
|MSS |**Y** | - | - | - |
|
|
87
89
|
|
|
88
90
|
You can also create a [manifest parser plugin][] to support custom manifest
|
|
89
91
|
formats.
|
|
@@ -126,7 +128,8 @@ DASH features **not** supported:
|
|
|
126
128
|
|
|
127
129
|
HLS features supported:
|
|
128
130
|
- VOD, Live, and Event types
|
|
129
|
-
- Low-latency streaming with partial segments, preload hints,
|
|
131
|
+
- Low-latency streaming with partial segments, preload hints, delta updates and
|
|
132
|
+
blocking playlist reload
|
|
130
133
|
- Discontinuity
|
|
131
134
|
- ISO-BMFF / MP4 / CMAF support
|
|
132
135
|
- MPEG-2 TS support (transmuxing provided by [mux.js][] v6.2.0+, must be
|
|
@@ -136,11 +139,10 @@ HLS features supported:
|
|
|
136
139
|
- Encrypted content with PlayReady and Widevine
|
|
137
140
|
- Encrypted content with FairPlay (Safari on macOS and iOS 13+ only)
|
|
138
141
|
- Key rotation
|
|
139
|
-
- Raw AAC, MP3,
|
|
142
|
+
- Raw AAC, MP3, AC-3 and EC-3 (without an MP4 container)
|
|
140
143
|
|
|
141
144
|
HLS features **not** supported:
|
|
142
145
|
- I-frame-only playlists: https://github.com/shaka-project/shaka-player/issues/742
|
|
143
|
-
- Low-latency streaming with blocking playlist reload
|
|
144
146
|
|
|
145
147
|
[mux.js]: https://github.com/videojs/mux.js/releases
|
|
146
148
|
|
|
@@ -159,6 +161,20 @@ HLS features **not** supported:
|
|
|
159
161
|
[MPEG-5 Part2 LCEVC]: https://www.lcevc.org
|
|
160
162
|
|
|
161
163
|
|
|
164
|
+
## MSS features
|
|
165
|
+
|
|
166
|
+
MSS features supported:
|
|
167
|
+
- VOD
|
|
168
|
+
- AAC and H.264
|
|
169
|
+
- Encrypted content (PlayReady)
|
|
170
|
+
- TTML/DFXP
|
|
171
|
+
- Only supported with [codem-isoboxer][]
|
|
172
|
+
|
|
173
|
+
MSS features **not** supported:
|
|
174
|
+
- Live
|
|
175
|
+
|
|
176
|
+
[codem-isoboxer]: https://github.com/Dash-Industry-Forum/codem-isoboxer
|
|
177
|
+
|
|
162
178
|
## DRM support matrix
|
|
163
179
|
|
|
164
180
|
|Browser |Widevine |PlayReady|FairPlay |ClearKey⁶ |
|
|
@@ -196,6 +212,7 @@ NOTES:
|
|
|
196
212
|
|:--------:|:--------:|:-------:|:-------:|:--------:|
|
|
197
213
|
|DASH |**Y** |**Y** | - |**Y** |
|
|
198
214
|
|HLS |**Y** |**Y** |**Y** ¹ | - |
|
|
215
|
+
|MSS | - |**Y** | - | - |
|
|
199
216
|
|
|
200
217
|
NOTES:
|
|
201
218
|
- ¹: By default, FairPlay is handled using Apple's native HLS player, when on
|
|
@@ -211,6 +228,7 @@ Shaka Player supports:
|
|
|
211
228
|
- Can parse "sidx" box for DASH's SegmentBase@indexRange and
|
|
212
229
|
SegmentTemplate@index
|
|
213
230
|
- Can find and parse "tfdt" box to find segment start time in HLS
|
|
231
|
+
- For MSS, [codem-isoboxer][] v0.3.7+ is required
|
|
214
232
|
- WebM
|
|
215
233
|
- Depends on browser support for the container via MediaSource
|
|
216
234
|
- Can parse [cueing data][] elements for DASH's SegmentBase@indexRange and
|
|
@@ -225,11 +243,21 @@ Shaka Player supports:
|
|
|
225
243
|
- TTML
|
|
226
244
|
- Supported in both XML form and embedded in MP4
|
|
227
245
|
- CEA-608
|
|
228
|
-
- Supported embedded in MP4
|
|
229
|
-
- With help from [mux.js][] v6.2.0+, supported embedded in TS
|
|
246
|
+
- Supported embedded in MP4 and TS
|
|
230
247
|
- CEA-708
|
|
231
|
-
- Supported embedded in MP4
|
|
232
|
-
|
|
248
|
+
- Supported embedded in MP4 and TS
|
|
249
|
+
- Raw AAC
|
|
250
|
+
- Supported in raw AAC container and transmuxing to AAC in MP4 container
|
|
251
|
+
(depends on browser support via MediaSource).
|
|
252
|
+
- Raw MP3
|
|
253
|
+
- Supported in raw MP3 container and transmuxing to MP3 in MP4 container
|
|
254
|
+
(depends on browser support via MediaSource).
|
|
255
|
+
- Raw AC-3
|
|
256
|
+
- Supported in raw AC-3 container and transmuxing to AC-3 in MP4 container
|
|
257
|
+
(depends on browser support via MediaSource).
|
|
258
|
+
- Raw EC-3
|
|
259
|
+
- Supported in raw EC-3 container and transmuxing to EC-3 in MP4 container
|
|
260
|
+
(depends on browser support via MediaSource).
|
|
233
261
|
- SubRip (SRT)
|
|
234
262
|
- UTF-8 encoding only
|
|
235
263
|
- LyRiCs (LRC)
|
|
@@ -248,6 +276,31 @@ attributes.
|
|
|
248
276
|
<!-- TODO: replace with a link to a TextDisplayer tutorial -->
|
|
249
277
|
|
|
250
278
|
|
|
279
|
+
## Transmuxer support
|
|
280
|
+
|
|
281
|
+
Shaka Player supports:
|
|
282
|
+
- Raw AAC to AAC in MP4
|
|
283
|
+
- Raw MP3 to MP3 in MP4
|
|
284
|
+
- Raw AC-3 to AC-3 in MP4
|
|
285
|
+
- Raw EC-3 to EC-3 in MP4
|
|
286
|
+
- AAC in MPEG-2 TS to AAC in MP4
|
|
287
|
+
- AC-3 in MPEG-2 TS to AC-3 in MP4
|
|
288
|
+
- EC-3 in MPEG-2 TS to EC-3 in MP4
|
|
289
|
+
- MP3 in MPEG-2 TS to MP3 in MP4
|
|
290
|
+
- MP3 in MPEG-2 TS to raw MP3
|
|
291
|
+
- H.264 in MPEG-2 TS to H.264 in MP4
|
|
292
|
+
- Muxed AAC and H.264 in MPEG-2 TS to AAC and H.264 in MP4,
|
|
293
|
+
with help from [mux.js][] v6.2.0+
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
## Thumbnails support
|
|
297
|
+
|
|
298
|
+
Shaka Player supports:
|
|
299
|
+
- Internal DASH thumbnails. Using DASH-IF IOP Image Adaptation Set
|
|
300
|
+
- Internal HLS thumbnails. Using HLS Image Media Playlist
|
|
301
|
+
- External WebVTT with images/sprites (only for VoD)
|
|
302
|
+
|
|
303
|
+
|
|
251
304
|
## Documentation & Important Links ##
|
|
252
305
|
|
|
253
306
|
* [Demo](https://shaka-player-demo.appspot.com)([sources](demo/))
|
package/demo/autoTemplate.txt
CHANGED
|
@@ -1,17 +1,52 @@
|
|
|
1
|
-
RE:customwarning
|
|
2
1
|
**Have you read the [FAQ](https://bit.ly/ShakaFAQ) and checked for duplicate open issues?**
|
|
3
2
|
|
|
4
3
|
|
|
5
|
-
**
|
|
6
|
-
|
|
4
|
+
**If the problem is related to FairPlay, have you read the tutorial?**
|
|
5
|
+
<!-- NOTE: https://shaka-player-demo.appspot.com/docs/api/tutorial-fairplay.html -->
|
|
7
6
|
|
|
8
7
|
|
|
9
8
|
**What version of Shaka Player are you using?**
|
|
10
|
-
RE:player
|
|
9
|
+
`RE:player`
|
|
10
|
+
<!-- NOTE:
|
|
11
|
+
Only some versions of the application are maintained, if your version
|
|
12
|
+
is older, first update to a newer one. See:
|
|
13
|
+
https://github.com/shaka-project/shaka-player/blob/main/maintained-branches.md
|
|
14
|
+
--->
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
**Can you reproduce the issue with our latest release version?**
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
**Can you reproduce the issue with the latest code from `main`?**
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
**Are you using the demo app or your own custom app?**
|
|
24
|
+
The demo
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
**If custom app, can you reproduce the issue using our demo app?**
|
|
28
|
+
N/A
|
|
11
29
|
|
|
12
30
|
|
|
13
31
|
**What browser and OS are you using?**
|
|
14
|
-
RE:browser
|
|
32
|
+
`RE:browser`
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
**For embedded devices (smart TVs, etc.), what model and firmware version are you using?**
|
|
36
|
+
N/A
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
**What are the manifest and license server URIs?**
|
|
40
|
+
RE:customwarning
|
|
41
|
+
RE:uris
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
**What configuration are you using? What is the output of `player.getConfiguration()`?**
|
|
45
|
+
<!-- NOTE:
|
|
46
|
+
You can censor URLs to keep them private, but include them in the email. You
|
|
47
|
+
can also use JSON.stringify(obj, null, 2) to print nicely on platforms that
|
|
48
|
+
don't print objects well in the console. DON'T SEND '[object Object]'!
|
|
49
|
+
-->
|
|
15
50
|
|
|
16
51
|
|
|
17
52
|
**What did you do?**
|
package/demo/close_button.js
CHANGED
|
@@ -31,6 +31,17 @@ shakaDemo.CloseButton = class extends shaka.ui.Element {
|
|
|
31
31
|
shakaDemoMain.unload();
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
+
if ('documentPictureInPicture' in window) {
|
|
35
|
+
this.eventManager.listen(
|
|
36
|
+
window.documentPictureInPicture, 'enter', () => {
|
|
37
|
+
this.button_.style.display = 'none';
|
|
38
|
+
const pipWindow = window.documentPictureInPicture.window;
|
|
39
|
+
this.eventManager.listen(pipWindow, 'pagehide', () => {
|
|
40
|
+
this.button_.style.display = 'block';
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
34
45
|
// TODO: Make sure that the screenreader description of this control is
|
|
35
46
|
// localized!
|
|
36
47
|
}
|
package/demo/common/asset.js
CHANGED
|
@@ -45,6 +45,8 @@ const ShakaDemoAssetInfo = class {
|
|
|
45
45
|
this.disabled = false;
|
|
46
46
|
/** @type {!Array.<!shakaAssets.ExtraText>} */
|
|
47
47
|
this.extraText = [];
|
|
48
|
+
/** @type {!Array.<string>} */
|
|
49
|
+
this.extraThumbnail = [];
|
|
48
50
|
/** @type {?string} */
|
|
49
51
|
this.certificateUri = null;
|
|
50
52
|
/** @type {?string} */
|
|
@@ -302,6 +304,15 @@ const ShakaDemoAssetInfo = class {
|
|
|
302
304
|
return this;
|
|
303
305
|
}
|
|
304
306
|
|
|
307
|
+
/**
|
|
308
|
+
* @param {string} uri
|
|
309
|
+
* @return {!ShakaDemoAssetInfo}
|
|
310
|
+
*/
|
|
311
|
+
addExtraThumbnail(uri) {
|
|
312
|
+
this.extraThumbnail.push(uri);
|
|
313
|
+
return this;
|
|
314
|
+
}
|
|
315
|
+
|
|
305
316
|
/**
|
|
306
317
|
* If this is called, the asset will be focused on by the integration tests.
|
|
307
318
|
* @return {!ShakaDemoAssetInfo}
|
|
@@ -372,7 +383,8 @@ const ShakaDemoAssetInfo = class {
|
|
|
372
383
|
networkingEngine.clearAllResponseFilters();
|
|
373
384
|
|
|
374
385
|
if (this.licenseRequestHeaders.size) {
|
|
375
|
-
|
|
386
|
+
/** @type {!shaka.extern.RequestFilter} */
|
|
387
|
+
const filter = (requestType, request, context) => {
|
|
376
388
|
return this.addLicenseRequestHeaders_(this.licenseRequestHeaders,
|
|
377
389
|
requestType,
|
|
378
390
|
request);
|
package/demo/common/assets.js
CHANGED
|
@@ -141,12 +141,17 @@ shakaAssets.Feature = {
|
|
|
141
141
|
DASH: shakaDemo.MessageIds.DASH,
|
|
142
142
|
// Set if the asset is an HLS manifest.
|
|
143
143
|
HLS: shakaDemo.MessageIds.HLS,
|
|
144
|
+
// Set if the asset is an MSS manifest.
|
|
145
|
+
MSS: shakaDemo.MessageIds.MSS,
|
|
144
146
|
|
|
145
147
|
// Set if the asset has at least one image stream.
|
|
146
148
|
THUMBNAILS: shakaDemo.MessageIds.THUMBNAILS,
|
|
147
149
|
|
|
148
150
|
// Set if the asset has LCEVC.
|
|
149
151
|
LCEVC: shakaDemo.MessageIds.LCEVC,
|
|
152
|
+
|
|
153
|
+
// Set if the asset has Low Latency mode.
|
|
154
|
+
LOW_LATENCY_STREAM: shakaDemo.MessageIds.LOW_LATENCY_STREAM,
|
|
150
155
|
};
|
|
151
156
|
|
|
152
157
|
|
|
@@ -827,7 +832,13 @@ shakaAssets.testAssets = [
|
|
|
827
832
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
828
833
|
.addFeature(shakaAssets.Feature.DASH)
|
|
829
834
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
830
|
-
.addFeature(shakaAssets.Feature.MP4)
|
|
835
|
+
.addFeature(shakaAssets.Feature.MP4)
|
|
836
|
+
.addFeature(shakaAssets.Feature.LOW_LATENCY_STREAM)
|
|
837
|
+
.setExtraConfig({
|
|
838
|
+
streaming: {
|
|
839
|
+
lowLatencyMode: true,
|
|
840
|
+
},
|
|
841
|
+
}),
|
|
831
842
|
new ShakaDemoAssetInfo(
|
|
832
843
|
/* name= */ 'DASH-IF CEA-608 VOD',
|
|
833
844
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
@@ -852,7 +863,13 @@ shakaAssets.testAssets = [
|
|
|
852
863
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
853
864
|
.addFeature(shakaAssets.Feature.DASH)
|
|
854
865
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
855
|
-
.addFeature(shakaAssets.Feature.MP4)
|
|
866
|
+
.addFeature(shakaAssets.Feature.MP4)
|
|
867
|
+
.addFeature(shakaAssets.Feature.LOW_LATENCY_STREAM)
|
|
868
|
+
.setExtraConfig({
|
|
869
|
+
streaming: {
|
|
870
|
+
lowLatencyMode: true,
|
|
871
|
+
},
|
|
872
|
+
}),
|
|
856
873
|
new ShakaDemoAssetInfo(
|
|
857
874
|
/* name= */ 'DASH-IF THUMBNAILS - Single adaptation set, 7 tiles at 10x1, each thumb 320x180',
|
|
858
875
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
@@ -946,6 +963,16 @@ shakaAssets.testAssets = [
|
|
|
946
963
|
.addFeature(shakaAssets.Feature.HLS)
|
|
947
964
|
.addFeature(shakaAssets.Feature.MP2TS)
|
|
948
965
|
.addFeature(shakaAssets.Feature.OFFLINE),
|
|
966
|
+
new ShakaDemoAssetInfo(
|
|
967
|
+
/* name= */ 'Art of Motion (DASH) (external thumbnails)',
|
|
968
|
+
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png',
|
|
969
|
+
/* manifestUri= */ 'https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd',
|
|
970
|
+
/* source= */ shakaAssets.Source.BITCODIN)
|
|
971
|
+
.addFeature(shakaAssets.Feature.DASH)
|
|
972
|
+
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
973
|
+
.addFeature(shakaAssets.Feature.MP4)
|
|
974
|
+
.addFeature(shakaAssets.Feature.THUMBNAILS)
|
|
975
|
+
.addExtraThumbnail('https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt'),
|
|
949
976
|
// End bitcodin assets }}}
|
|
950
977
|
|
|
951
978
|
// MetaCDN assets {{{
|
|
@@ -1231,7 +1258,13 @@ shakaAssets.testAssets = [
|
|
|
1231
1258
|
/* source= */ shakaAssets.Source.APPLE)
|
|
1232
1259
|
.addFeature(shakaAssets.Feature.HLS)
|
|
1233
1260
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
1234
|
-
.addFeature(shakaAssets.Feature.MP4)
|
|
1261
|
+
.addFeature(shakaAssets.Feature.MP4)
|
|
1262
|
+
.addFeature(shakaAssets.Feature.LOW_LATENCY_STREAM)
|
|
1263
|
+
.setExtraConfig({
|
|
1264
|
+
streaming: {
|
|
1265
|
+
lowLatencyMode: true,
|
|
1266
|
+
},
|
|
1267
|
+
}),
|
|
1235
1268
|
new ShakaDemoAssetInfo(
|
|
1236
1269
|
/* name= */ 'Audio only HLS with raw AAC',
|
|
1237
1270
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png',
|
|
@@ -1288,6 +1321,23 @@ shakaAssets.testAssets = [
|
|
|
1288
1321
|
.addFeature(shakaAssets.Feature.MP4)
|
|
1289
1322
|
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1290
1323
|
.addLicenseServer('com.microsoft.playready', 'http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,ck:W31bfVt9W31bfVt9W31bfQ==,ckt:aescbc)'),
|
|
1324
|
+
new ShakaDemoAssetInfo(
|
|
1325
|
+
/* name= */ 'Super Speedway Trailer (MSS - Clear)',
|
|
1326
|
+
/* iconUri= */ 'https://reference.dashif.org/dash.js/latest/samples/lib/img/mss-1.jpg',
|
|
1327
|
+
/* manifestUri= */ 'https://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest',
|
|
1328
|
+
/* source= */ shakaAssets.Source.MICROSOFT)
|
|
1329
|
+
.addFeature(shakaAssets.Feature.MSS)
|
|
1330
|
+
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1331
|
+
.addFeature(shakaAssets.Feature.MP4),
|
|
1332
|
+
new ShakaDemoAssetInfo(
|
|
1333
|
+
/* name= */ 'Super Speedway Trailer (MSS - PlayReady)',
|
|
1334
|
+
/* iconUri= */ 'https://reference.dashif.org/dash.js/latest/samples/lib/img/mss-1.jpg',
|
|
1335
|
+
/* manifestUri= */ 'https://test.playready.microsoft.com/smoothstreaming/SSWSS720H264PR/SuperSpeedway_720.ism/Manifest',
|
|
1336
|
+
/* source= */ shakaAssets.Source.MICROSOFT)
|
|
1337
|
+
.addFeature(shakaAssets.Feature.MSS)
|
|
1338
|
+
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1339
|
+
.addFeature(shakaAssets.Feature.MP4)
|
|
1340
|
+
.addLicenseServer('com.microsoft.playready', 'https://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,sl:150)'),
|
|
1291
1341
|
// }}}
|
|
1292
1342
|
|
|
1293
1343
|
// MPEG-5 LCEVC assets {{{
|
|
@@ -21,6 +21,7 @@ shakaDemo.MessageIds = {
|
|
|
21
21
|
LIVE: 'DEMO_LIVE',
|
|
22
22
|
MP2TS: 'DEMO_MP2TS',
|
|
23
23
|
MP4: 'DEMO_MP4',
|
|
24
|
+
MSS: 'DEMO_MSS',
|
|
24
25
|
MULTIPLE_LANGUAGES: 'DEMO_MULTIPLE_LANGUAGES',
|
|
25
26
|
OFFLINE: 'DEMO_OFFLINE',
|
|
26
27
|
STORED: 'DEMO_STORED',
|
|
@@ -32,6 +33,7 @@ shakaDemo.MessageIds = {
|
|
|
32
33
|
VOD: 'DEMO_VOD',
|
|
33
34
|
WEBM: 'DEMO_WEBM',
|
|
34
35
|
XLINK: 'DEMO_XLINK',
|
|
36
|
+
LOW_LATENCY_STREAM: 'DEMO_LOW_LATENCY_STREAM',
|
|
35
37
|
/* Key systems. */
|
|
36
38
|
CLEAR: 'DEMO_CLEAR',
|
|
37
39
|
CLEAR_KEY: 'DEMO_CLEAR_KEY',
|
|
@@ -86,6 +88,7 @@ shakaDemo.MessageIds = {
|
|
|
86
88
|
UNSUPPORTED_NO_OFFLINE: 'DEMO_UNSUPPORTED_NO_OFFLINE',
|
|
87
89
|
UNSUPPORTED_NO_KEY_SUPPORT: 'DEMO_UNSUPPORTED_NO_KEY_SUPPORT',
|
|
88
90
|
UNSUPPORTED_NO_LICENSE_SUPPORT: 'DEMO_UNSUPPORTED_NO_LICENSE_SUPPORT',
|
|
91
|
+
UNSUPPORTED_NO_MSS_SUPPORT: 'DEMO_UNSUPPORTED_NO_MSS_SUPPORT',
|
|
89
92
|
/* Visualizer. */
|
|
90
93
|
VISUALIZER_AUTO_SCREENSHOT_TOGGLE: 'DEMO_VISUALIZER_AUTO_SCREENSHOT_TOGGLE',
|
|
91
94
|
VISUALIZER_BUTTON: 'DEMO_VISUALIZER_BUTTON',
|
|
@@ -150,10 +153,12 @@ shakaDemo.MessageIds = {
|
|
|
150
153
|
/* Config panel. */
|
|
151
154
|
ADAPTATION_RESTRICTIONS_SECTION_HEADER: 'DEMO_ADAPTATION_RESTRICTIONS_SECTION_HEADER',
|
|
152
155
|
ADAPTATION_SECTION_HEADER: 'DEMO_ADAPTATION_SECTION_HEADER',
|
|
156
|
+
ADS_SECTION_HEADER: 'DEMO_ADS_SECTION_HEADER',
|
|
153
157
|
ALWAYS_STREAM_TEXT: 'DEMO_ALWAYS_STREAM_TEXT',
|
|
154
158
|
ALWAYS_STREAM_TEXT_WARNING: 'DEMO_ALWAYS_STREAM_TEXT_WARNING',
|
|
155
159
|
AUDIO_CHANNEL_COUNT: 'DEMO_AUDIO_CHANNEL_COUNT',
|
|
156
160
|
AUDIO_LANGUAGE: 'DEMO_AUDIO_LANGUAGE',
|
|
161
|
+
AUDIO_LABEL: 'DEMO_AUDIO_LABEL',
|
|
157
162
|
AUDIO_ROBUSTNESS: 'DEMO_AUDIO_ROBUSTNESS',
|
|
158
163
|
AUTO_CORRECT_DASH_DRIFT: 'DEMO_AUTO_CORRECT_DASH_DRIFT',
|
|
159
164
|
AUTO_LOW_LATENCY: 'DEMO_AUTO_LOW_LATENCY',
|
|
@@ -170,10 +175,13 @@ shakaDemo.MessageIds = {
|
|
|
170
175
|
BANDWIDTH_UPGRADE: 'DEMO_BANDWIDTH_UPGRADE',
|
|
171
176
|
BUFFER_BEHIND: 'DEMO_BUFFER_BEHIND',
|
|
172
177
|
BUFFERING_GOAL: 'DEMO_BUFFERING_GOAL',
|
|
178
|
+
CLEAR_BUFFER_SWITCH: 'DEMO_CLEAR_BUFFER_SWITCH',
|
|
173
179
|
CLOCK_SYNC_URI: 'DEMO_CLOCK_SYNC_URI',
|
|
174
180
|
CMCD_SECTION_HEADER: 'DEMO_CMCD_SECTION_HEADER',
|
|
175
181
|
CONNECTION_TIMEOUT: 'DEMO_CONNECTION_TIMEOUT',
|
|
176
182
|
CONTENT_ID: 'DEMO_CONTENT_ID',
|
|
183
|
+
CUSTOM_PLAYHEAD_TRACKER: 'DEMO_CUSTOM_PLAYHEAD_TRACKER',
|
|
184
|
+
DASH_SEQUENCE_MODE: 'DEMO_DASH_SEQUENCE_MODE',
|
|
177
185
|
DEFAULT_AUDIO_CODEC: 'DEMO_DEFAULT_AUDIO_CODEC',
|
|
178
186
|
DEFAULT_PRESENTATION_DELAY: 'DEMO_DEFAULT_PRESENTATION_DELAY',
|
|
179
187
|
DEFAULT_VIDEO_CODEC: 'DEMO_DEFAULT_VIDEO_CODEC',
|
|
@@ -193,8 +201,17 @@ shakaDemo.MessageIds = {
|
|
|
193
201
|
FAST_HALF_LIFE: 'DEMO_FAST_HALF_LIFE',
|
|
194
202
|
FORCE_HTTPS: 'DEMO_FORCE_HTTPS',
|
|
195
203
|
FORCE_TRANSMUX: 'DEMO_FORCE_TRANSMUX',
|
|
204
|
+
INSERT_FAKE_ENCRYPTION_IN_INIT: 'DEMO_INSERT_FAKE_ENCRYPTION_IN_INIT',
|
|
196
205
|
FUZZ_FACTOR: 'DEMO_FUZZ_FACTOR',
|
|
197
206
|
GAP_DETECTION_THRESHOLD: 'DEMO_GAP_DETECTION_THRESHOLD',
|
|
207
|
+
GAP_JUMP_TIMER_TIME: 'DEMO_GAP_JUMP_TIMER_TIME',
|
|
208
|
+
HDR_LEVEL: 'DEMO_HDR_LEVEL',
|
|
209
|
+
HDR_LEVEL_AUTO: 'DEMO_HDR_LEVEL_AUTO',
|
|
210
|
+
HDR_LEVEL_HLG: 'DEMO_HDR_LEVEL_HLG',
|
|
211
|
+
HDR_LEVEL_NONE: 'DEMO_HDR_LEVEL_NONE',
|
|
212
|
+
HDR_LEVEL_PQ: 'DEMO_HDR_LEVEL_PQ',
|
|
213
|
+
HDR_LEVEL_SDR: 'DEMO_HDR_LEVEL_SDR',
|
|
214
|
+
HLS_SEQUENCE_MODE: 'DEMO_HLS_SEQUENCE_MODE',
|
|
198
215
|
IGNORE_DASH_EMPTY_ADAPTATION_SET: 'DEMO_IGNORE_DASH_EMPTY_ADAPTATION_SET',
|
|
199
216
|
IGNORE_DASH_DRM: 'DEMO_IGNORE_DASH_DRM',
|
|
200
217
|
IGNORE_DASH_MAX_SEGMENT_DURATION: 'DEMO_IGNORE_DASH_MAX_SEGMENT_DURATION',
|
|
@@ -203,6 +220,7 @@ shakaDemo.MessageIds = {
|
|
|
203
220
|
IGNORE_HLS_IMAGE_FAILURES: 'DEMO_IGNORE_HLS_IMAGE_FAILURES',
|
|
204
221
|
IGNORE_HLS_TEXT_FAILURES: 'DEMO_IGNORE_HLS_TEXT_FAILURES',
|
|
205
222
|
IGNORE_MANIFEST_PROGRAM_DATE_TIME: 'DEMO_IGNORE_MANIFEST_PROGRAM_DATE_TIME',
|
|
223
|
+
IGNORE_MANIFEST_TIMESTAMPS_IN_SEGMENTS_MODE: 'DEMO_IGNORE_MANIFEST_TIMESTAMPS_IN_SEGMENTS_MODE',
|
|
206
224
|
IGNORE_MIN_BUFFER_TIME: 'DEMO_IGNORE_MIN_BUFFER_TIME',
|
|
207
225
|
IGNORE_TEXT_FAILURES: 'DEMO_IGNORE_TEXT_FAILURES',
|
|
208
226
|
INACCURATE_MANIFEST_TOLERANCE: 'DEMO_INACCURATE_MANIFEST_TOLERANCE',
|
|
@@ -213,6 +231,9 @@ shakaDemo.MessageIds = {
|
|
|
213
231
|
LCEVC_LOG_LEVEL: 'DEMO_LCEVC_LOG_LEVEL',
|
|
214
232
|
LCEVC_SECTION_HEADER: 'DEMO_LCEVC_SECTION_HEADER',
|
|
215
233
|
LIVE_SEGMENTS_DELAY: 'DEMO_LIVE_SEGMENTS_DELAY',
|
|
234
|
+
LIVE_SYNC: 'DEMO_LIVE_SYNC',
|
|
235
|
+
LIVE_SYNC_MAX_LATENCY: 'DEMO_LIVE_SYNC_MAX_LATENCY',
|
|
236
|
+
LIVE_SYNC_PLAYBACK_RATE: 'DEMO_LIVE_SYNC_PLAYBACK_RATE',
|
|
216
237
|
LOG_LEVEL: 'DEMO_LOG_LEVEL',
|
|
217
238
|
LOG_LEVEL_DEBUG: 'DEMO_LOG_LEVEL_DEBUG',
|
|
218
239
|
LOG_LEVEL_INFO: 'DEMO_LOG_LEVEL_INFO',
|
|
@@ -232,11 +253,13 @@ shakaDemo.MessageIds = {
|
|
|
232
253
|
MEDIA_SOURCE_SECTION_HEADER: 'DEMO_MEDIA_SOURCE_SECTION_HEADER',
|
|
233
254
|
MIN_BANDWIDTH: 'DEMO_MIN_BANDWIDTH',
|
|
234
255
|
MIN_BYTES: 'DEMO_MIN_BYTES',
|
|
256
|
+
MIN_HDCP_VERSION: 'DEMO_MIN_HDCP_VERSION',
|
|
235
257
|
MIN_FRAMERATE: 'DEMO_MIN_FRAMERATE',
|
|
236
258
|
MIN_HEIGHT: 'DEMO_MIN_HEIGHT',
|
|
237
259
|
MIN_PIXELS: 'DEMO_MIN_PIXELS',
|
|
238
260
|
MIN_TOTAL_BYTES: 'DEMO_MIN_TOTAL_BYTES',
|
|
239
261
|
MIN_WIDTH: 'DEMO_MIN_WIDTH',
|
|
262
|
+
MSS_SEQUENCE_MODE: 'DEMO_MSS_SEQUENCE_MODE',
|
|
240
263
|
NETWORK_INFORMATION: 'DEMO_NETWORK_INFORMATION',
|
|
241
264
|
NUMBER_DECIMAL_WARNING: 'DEMO_NUMBER_DECIMAL_WARNING',
|
|
242
265
|
NUMBER_INTEGER_WARNING: 'DEMO_NUMBER_INTEGER_WARNING',
|
|
@@ -251,10 +274,10 @@ shakaDemo.MessageIds = {
|
|
|
251
274
|
RESTRICT_TO_ELEMENT_SIZE: 'DEMO_RESTRICT_TO_ELEMENT_SIZE',
|
|
252
275
|
RESTRICT_TO_SCREEN_SIZE: 'DEMO_RESTRICT_TO_SCREEN_SIZE',
|
|
253
276
|
RESTRICTIONS_SECTION_HEADER: 'DEMO_RESTRICTIONS_SECTION_HEADER',
|
|
277
|
+
SAFE_MARGIN_SWITCH: 'DEMO_SAFE_MARGIN_SWITCH',
|
|
254
278
|
SAFE_SEEK_OFFSET: 'DEMO_SAFE_SEEK_OFFSET',
|
|
255
279
|
SAFE_SKIP_DISTANCE: 'DEMO_SAFE_SKIP_DISTANCE',
|
|
256
280
|
SEGMENT_RELATIVE_VTT_TIMING: 'DEMO_SEGMENT_RELATIVE_VTT_TIMING',
|
|
257
|
-
SEQUENCE_MODE: 'DEMO_SEQUENCE_MODE',
|
|
258
281
|
SESSION_ID: 'DEMO_SESSION_ID',
|
|
259
282
|
SHAKA_CONTROLS: 'DEMO_SHAKA_CONTROLS',
|
|
260
283
|
SLOW_HALF_LIFE: 'DEMO_SLOW_HALF_LIFE',
|
|
@@ -281,5 +304,6 @@ shakaDemo.MessageIds = {
|
|
|
281
304
|
VIDEO_ROBUSTNESS: 'DEMO_VIDEO_ROBUSTNESS',
|
|
282
305
|
VNOVA: 'DEMO_VNOVA',
|
|
283
306
|
XLINK_FAIL_GRACEFULLY: 'DEMO_XLINK_FAIL_GRACEFULLY',
|
|
307
|
+
SEGMENT_PREFETCH_LIMIT: 'DEMO_SEGMENT_PREFETCH_LIMIT',
|
|
284
308
|
};
|
|
285
309
|
/* eslint-enable max-len */
|