shaka-player 4.2.4 → 4.3.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/sync-labels.yaml +1 -1
- package/.github/workflows/update-issues.yaml +1 -1
- package/AUTHORS +4 -0
- package/CHANGELOG.md +85 -54
- package/CONTRIBUTORS +4 -0
- package/README.md +14 -0
- package/demo/common/assets.js +58 -0
- package/demo/common/message_ids.js +22 -1
- package/demo/config.js +89 -5
- package/demo/demo.less +7 -1
- package/demo/index.html +8 -1
- package/demo/locales/en.json +21 -1
- package/demo/locales/source.json +82 -2
- package/demo/main.js +57 -1
- package/demo/search.js +2 -0
- package/demo/visualizer.js +337 -0
- package/demo/visualizer_button.js +103 -0
- package/dist/controls.css +1 -1
- package/dist/controls.css.map +1 -1
- package/dist/demo.compiled.debug.js +83 -58
- package/dist/demo.compiled.debug.map +4 -4
- package/dist/demo.compiled.js +83 -58
- package/dist/demo.compiled.map +4 -4
- package/dist/demo.css +1 -1
- package/dist/demo.css.map +1 -1
- package/dist/deps.js +16 -9
- package/dist/locales.js +32 -32
- package/dist/receiver.compiled.debug.js +23 -19
- package/dist/receiver.compiled.debug.map +3 -3
- package/dist/receiver.compiled.js +23 -19
- package/dist/receiver.compiled.map +3 -3
- package/dist/shaka-player.compiled.d.ts +173 -26
- package/dist/shaka-player.compiled.debug.d.ts +173 -26
- package/dist/shaka-player.compiled.debug.externs.js +161 -31
- package/dist/shaka-player.compiled.debug.js +464 -401
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +161 -31
- package/dist/shaka-player.compiled.js +897 -862
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +173 -26
- package/dist/shaka-player.ui.debug.d.ts +173 -26
- package/dist/shaka-player.ui.debug.externs.js +161 -31
- package/dist/shaka-player.ui.debug.js +488 -422
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +161 -31
- package/dist/shaka-player.ui.js +1053 -1018
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/lcevc-architecture.png +0 -0
- package/docs/design/lcevc-demo.png +0 -0
- package/docs/design/lcevc-integration.md +72 -0
- package/docs/tutorials/fairplay.md +7 -0
- package/docs/tutorials/faq.md +1 -1
- package/docs/tutorials/ui.md +7 -7
- package/docs/tutorials/upgrade.md +6 -0
- package/externs/ima.js +13 -1
- package/externs/lcevc.js +81 -0
- package/externs/mux.js +1 -42
- package/externs/shaka/ads.js +11 -1
- package/externs/shaka/manifest_parser.js +5 -1
- package/externs/shaka/player.js +178 -15
- package/lib/abr/simple_abr_manager.js +7 -0
- package/lib/ads/ad_manager.js +0 -8
- package/lib/ads/client_side_ad.js +15 -0
- package/lib/ads/client_side_ad_manager.js +21 -8
- package/lib/ads/server_side_ad.js +15 -0
- package/lib/ads/server_side_ad_manager.js +3 -3
- package/lib/cast/cast_utils.js +2 -0
- package/lib/cea/dummy_cea_parser.js +28 -0
- package/lib/cea/i_cea_parser.js +14 -2
- package/lib/cea/mp4_cea_parser.js +87 -5
- package/lib/config/auto_show_text.js +33 -0
- package/lib/dash/dash_parser.js +1 -1
- package/lib/hls/hls_parser.js +790 -374
- package/lib/lcevc/lcevc_dil.js +152 -0
- package/lib/media/closed_caption_parser.js +9 -6
- package/lib/media/drm_engine.js +14 -6
- package/lib/media/media_source_engine.js +106 -26
- package/lib/media/presentation_timeline.js +26 -11
- package/lib/media/segment_reference.js +49 -1
- package/lib/media/streaming_engine.js +142 -12
- package/lib/media/transmuxer.js +73 -18
- package/lib/offline/storage.js +1 -0
- package/lib/player.js +454 -75
- package/lib/polyfill/patchedmediakeys_apple.js +55 -1
- package/lib/text/ui_text_displayer.js +5 -5
- package/lib/text/vtt_text_parser.js +35 -1
- package/lib/util/dom_utils.js +0 -1
- package/lib/util/error.js +17 -0
- package/lib/util/fake_event.js +2 -0
- package/lib/util/id3_utils.js +300 -0
- package/lib/util/mime_utils.js +3 -6
- package/lib/util/mp4_box_parsers.js +15 -5
- package/lib/util/platform.js +9 -1
- package/lib/util/player_configuration.js +23 -1
- package/lib/util/ts_parser.js +499 -0
- package/maintained-branches.md +2 -2
- package/package.json +4 -1
- package/roadmap.md +5 -3
- package/test/ads/ad_manager_unit.js +180 -29
- package/test/cast/cast_utils_unit.js +3 -1
- package/test/dash/dash_parser_content_protection_unit.js +1 -0
- package/test/dash/dash_parser_live_unit.js +1 -0
- package/test/dash/dash_parser_manifest_unit.js +93 -1
- package/test/dash/dash_parser_segment_base_unit.js +1 -0
- package/test/dash/dash_parser_segment_list_unit.js +1 -0
- package/test/dash/dash_parser_segment_template_unit.js +1 -0
- package/test/demo/demo_unit.js +2 -1
- package/test/hls/hls_live_unit.js +253 -19
- package/test/hls/hls_parser_unit.js +500 -12
- package/test/media/closed_caption_parser_unit.js +2 -1
- package/test/media/drm_engine_integration.js +3 -1
- package/test/media/media_source_engine_integration.js +71 -6
- package/test/media/media_source_engine_unit.js +10 -5
- package/test/media/streaming_engine_integration.js +4 -1
- package/test/media/streaming_engine_unit.js +144 -1
- package/test/media/transmuxer_integration.js +21 -10
- package/test/player_integration.js +224 -82
- package/test/player_unit.js +5 -2
- package/test/polyfill/patchedmediakeys_apple_unit.js +124 -0
- package/test/test/assets/id3-metadata.aac +0 -0
- package/test/test/assets/id3-metadata.ts +0 -0
- package/test/test/assets/thumbnails-sprites.vtt +10 -0
- package/test/test/assets/thumbnails.vtt +10 -0
- package/test/test/util/dash_parser_util.js +2 -0
- package/test/test/util/fake_ad.js +21 -0
- package/test/test/util/fake_media_source_engine.js +7 -0
- package/test/test/util/id3_generator.js +100 -0
- package/test/test/util/manifest_generator.js +3 -6
- package/test/test/util/simple_fakes.js +4 -0
- package/test/test/util/stream_generator.js +38 -0
- package/test/test/util/test_scheme.js +43 -14
- package/test/text/vtt_text_parser_unit.js +11 -0
- package/test/ui/text_displayer_layout_unit.js +14 -0
- package/test/util/id3_utils_unit.js +116 -0
- package/test/util/ts_parser_unit.js +77 -0
- package/ui/less/containers.less +7 -0
- package/ui/ui.js +43 -4
package/AUTHORS
CHANGED
|
@@ -48,6 +48,7 @@ Jun Hong Chong <chongjunhong@gmail.com>
|
|
|
48
48
|
Jürgen Kartnaller <kartnaller@lovelysystems.com>
|
|
49
49
|
JW Player <*@jwplayer.com>
|
|
50
50
|
Lucas Gabriel Sánchez <unkiwii@gmail.com>
|
|
51
|
+
Martin Stark <martin.stark@eyevinn.se>
|
|
51
52
|
Matthias Van Parijs <matvp91@gmail.com>
|
|
52
53
|
Mattias Wadman <mattias.wadman@gmail.com>
|
|
53
54
|
Mohamed Rashid <ge_rashid@hotmail.co.uk>
|
|
@@ -64,6 +65,7 @@ Philo Inc. <*@philo.com>
|
|
|
64
65
|
Prakash <duggaraju@gmail.com>
|
|
65
66
|
Robert Colantuoni <rgc@colantuoni.com>
|
|
66
67
|
Robert Galluccio <robertnw5@gmail.com>
|
|
68
|
+
Rodolphe Breton <robloche@gmail.com>
|
|
67
69
|
Roi Lipman <roilipman@gmail.com>
|
|
68
70
|
Roksolana Ivanyshyn <roksolana.ivanyshyn.pub@gmail.com>
|
|
69
71
|
Rostislav Hejduk <Ross-cz@users.noreply.github.com>
|
|
@@ -82,7 +84,9 @@ uStudio Inc. <*@ustudio.com>
|
|
|
82
84
|
Verizon Digital Media Services <*@verizondigitalmedia.com>
|
|
83
85
|
ViacomCBS <*@viacomcbs.com>
|
|
84
86
|
Vincent Valot <valot.vince@gmail.com>
|
|
87
|
+
V-Nova Limited <*@v-nova.com>
|
|
85
88
|
Wayne Morgan <wayne.morgan.dev@gmail.com>
|
|
86
89
|
Raymond Cheng <raycheng100@gmail.com>
|
|
87
90
|
Blue Billywig <*@bluebillywig.com>
|
|
91
|
+
João Nabais <jlnabais@gmail.com>
|
|
88
92
|
Koen Romers <koenromers@gmail.com>
|
package/CHANGELOG.md
CHANGED
|
@@ -1,66 +1,97 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [4.
|
|
3
|
+
## [4.3.0](https://github.com/shaka-project/shaka-player/compare/v4.2.0...v4.3.0) (2022-11-10)
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
###
|
|
7
|
-
|
|
8
|
-
* Allow overriding special handling of 404s ([#4635](https://github.com/shaka-project/shaka-player/issues/4635)) ([bf3e4e8](https://github.com/shaka-project/shaka-player/commit/bf3e4e8967ab938c95861d3f02eb1bcf76722a5c)), closes [#4548](https://github.com/shaka-project/shaka-player/issues/4548)
|
|
9
|
-
* **cast:** Reduce size of Cast update messages ([#4644](https://github.com/shaka-project/shaka-player/issues/4644)) ([2ee9803](https://github.com/shaka-project/shaka-player/commit/2ee9803f295bbdf7911740c4b5f35b81e8a7488c))
|
|
10
|
-
* Content reload starttime with HLS on iOS ([#4575](https://github.com/shaka-project/shaka-player/issues/4575)) ([f02e25a](https://github.com/shaka-project/shaka-player/commit/f02e25af91eeb18939f16460702b8f9ec226b54c)), closes [#4244](https://github.com/shaka-project/shaka-player/issues/4244)
|
|
11
|
-
* embed cc not shown when seeking back ([#4643](https://github.com/shaka-project/shaka-player/issues/4643)) ([3743fe8](https://github.com/shaka-project/shaka-player/commit/3743fe8ab70ce8bebd46ff4a667ddce188ec49c6)), closes [#4641](https://github.com/shaka-project/shaka-player/issues/4641)
|
|
12
|
-
* Fix detection of ac4, dts, and dolby h265 ([#4657](https://github.com/shaka-project/shaka-player/issues/4657)) ([9da2b47](https://github.com/shaka-project/shaka-player/commit/9da2b47deba36f4c50fed10c859f46a432e20576))
|
|
13
|
-
* focus on first element when back to the settings menu ([#4653](https://github.com/shaka-project/shaka-player/issues/4653)) ([f507c89](https://github.com/shaka-project/shaka-player/commit/f507c89bf63b0ec5b7802cd31ac3f3cca05ff237)), closes [#4652](https://github.com/shaka-project/shaka-player/issues/4652)
|
|
14
|
-
* **HLS:** Fix detection of WebVTT subtitles in HLS by extension ([#4663](https://github.com/shaka-project/shaka-player/issues/4663)) ([731bd96](https://github.com/shaka-project/shaka-player/commit/731bd96644cbbd3fa39992fd62a4ae6de8389e74))
|
|
15
|
-
* **HLS:** Infer missing codecs from config ([#4656](https://github.com/shaka-project/shaka-player/issues/4656)) ([507d96e](https://github.com/shaka-project/shaka-player/commit/507d96e74239973fb904d6ade4615ac8888a9d57))
|
|
16
|
-
* **ui:** Fix exception on screen rotation if fullscreen is not supported ([#4669](https://github.com/shaka-project/shaka-player/issues/4669)) ([6c54db9](https://github.com/shaka-project/shaka-player/commit/6c54db91e03c4ff4a2c073b45dcb05e8591295d0))
|
|
17
|
-
|
|
18
|
-
## [4.2.3](https://github.com/shaka-project/shaka-player/compare/v4.2.2...v4.2.3) (2022-10-29)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
### Bug Fixes
|
|
22
|
-
|
|
23
|
-
* **ads:** Fix IMA crash when autoplay is rejected ([#4518](https://github.com/shaka-project/shaka-player/issues/4518)) ([871a3c0](https://github.com/shaka-project/shaka-player/commit/871a3c0315a2965c91ebdde9815c7f6c5e0a59de)), closes [#4179](https://github.com/shaka-project/shaka-player/issues/4179)
|
|
24
|
-
* Fix HLS live stream subtitle offsets ([#4586](https://github.com/shaka-project/shaka-player/issues/4586)) ([ec0b4dc](https://github.com/shaka-project/shaka-player/commit/ec0b4dcb0e288ceb1a01874db99063ef54fb3e47))
|
|
25
|
-
* Fix multi-period DASH with descriptive audio ([#4629](https://github.com/shaka-project/shaka-player/issues/4629)) ([0e70b87](https://github.com/shaka-project/shaka-player/commit/0e70b874cf8558207b0620516c5608c6a201018d)), closes [#4500](https://github.com/shaka-project/shaka-player/issues/4500)
|
|
26
|
-
* fix support clear and encrypted periods ([#4606](https://github.com/shaka-project/shaka-player/issues/4606)) ([8ece8ea](https://github.com/shaka-project/shaka-player/commit/8ece8ea225fb8b9ec9027dacef0865cceb3fd93b))
|
|
27
|
-
* Force using mcap polyfill on EOS browsers ([#4630](https://github.com/shaka-project/shaka-player/issues/4630)) ([6b9f806](https://github.com/shaka-project/shaka-player/commit/6b9f806df54cc7b8761ef1683cefe5ed8d576a03))
|
|
28
|
-
* **hls:** Fix raw format detection when the main playlist hasn't type ([#4583](https://github.com/shaka-project/shaka-player/issues/4583)) ([4053088](https://github.com/shaka-project/shaka-player/commit/4053088847eff6d7ddb7a969701fa881f6e90e8a))
|
|
29
|
-
* Limit key ids to 32 characters ([#4614](https://github.com/shaka-project/shaka-player/issues/4614)) ([6fc1455](https://github.com/shaka-project/shaka-player/commit/6fc145584ffc0798a6e97c5672409b1e1613f164))
|
|
30
|
-
* Make XML parsing secure ([#4598](https://github.com/shaka-project/shaka-player/issues/4598)) ([2e45696](https://github.com/shaka-project/shaka-player/commit/2e45696c10f3c2199a372a7a5f311579e627cd8e))
|
|
31
|
-
* **offline:** Add storage muxer init timeout ([#4566](https://github.com/shaka-project/shaka-player/issues/4566)) ([6022907](https://github.com/shaka-project/shaka-player/commit/6022907df5e3a18b552a49e537d2c1daeebbc2c6))
|
|
32
|
-
* **playhead:** Safeguard getStallsDetected as stallDetector can be null ([#4581](https://github.com/shaka-project/shaka-player/issues/4581)) ([c4ee14f](https://github.com/shaka-project/shaka-player/commit/c4ee14f2abcdd83b21e64230b67ab121c1db037e))
|
|
33
|
-
* Resolve load failures for TS-based content on Android-based Cast devices ([#4569](https://github.com/shaka-project/shaka-player/issues/4569)). ([#4570](https://github.com/shaka-project/shaka-player/issues/4570)) ([4a4f48d](https://github.com/shaka-project/shaka-player/commit/4a4f48d2cac726e2a5a1d4e51e89f0b854e281ef))
|
|
34
|
-
|
|
35
|
-
## [4.2.2](https://github.com/shaka-project/shaka-player/compare/v4.2.1...v4.2.2) (2022-10-07)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
### Bug Fixes
|
|
39
|
-
|
|
40
|
-
* allow build without text ([#4506](https://github.com/shaka-project/shaka-player/issues/4506)) ([7e93720](https://github.com/shaka-project/shaka-player/commit/7e9372097567d8d0f93c04e241fb917945da05bf))
|
|
41
|
-
* allow the playback on platforms when low latency APIs are not supported ([#4485](https://github.com/shaka-project/shaka-player/issues/4485)) ([cf8c857](https://github.com/shaka-project/shaka-player/commit/cf8c857e58f041e24373e8b4f7d560287197cf13))
|
|
42
|
-
* check for negative rows before moving ([#4510](https://github.com/shaka-project/shaka-player/issues/4510)) ([23f39d7](https://github.com/shaka-project/shaka-player/commit/23f39d7393c771440fc76ac9016b166d658710b2)), closes [#4508](https://github.com/shaka-project/shaka-player/issues/4508)
|
|
43
|
-
* Filter unsupported H.264 streams in Xbox ([#4493](https://github.com/shaka-project/shaka-player/issues/4493)) ([914a08a](https://github.com/shaka-project/shaka-player/commit/914a08a4d08bed284a072aed52b0bf8fcbdc6986))
|
|
44
|
-
* Fix choppy HLS startup ([#4553](https://github.com/shaka-project/shaka-player/issues/4553)) ([950ce69](https://github.com/shaka-project/shaka-player/commit/950ce699a06bb9e7668b431f4f08052c005f2e8a)), closes [#4516](https://github.com/shaka-project/shaka-player/issues/4516)
|
|
45
|
-
* Fix errors with TS segments on Chromecast ([#4543](https://github.com/shaka-project/shaka-player/issues/4543)) ([8204db6](https://github.com/shaka-project/shaka-player/commit/8204db6ebc152cb01c36db941ca60bc82ccbe443))
|
|
46
|
-
* Fix hang when seeking to the last segment ([#4537](https://github.com/shaka-project/shaka-player/issues/4537)) ([3d6c768](https://github.com/shaka-project/shaka-player/commit/3d6c768cb302de42138aec8fdf51dff8317c5607))
|
|
47
|
-
* Fix HLS dynamic to static transition ([d9ecbf3](https://github.com/shaka-project/shaka-player/commit/d9ecbf3fccb886e10a491c43e05e681fe2103a2d))
|
|
48
|
-
* Fix HLS dynamic to static transition ([#4483](https://github.com/shaka-project/shaka-player/issues/4483)) ([d9ecbf3](https://github.com/shaka-project/shaka-player/commit/d9ecbf3fccb886e10a491c43e05e681fe2103a2d)), closes [#4431](https://github.com/shaka-project/shaka-player/issues/4431)
|
|
49
|
-
* Fix in-band key rotation on Xbox One ([#4478](https://github.com/shaka-project/shaka-player/issues/4478)) ([bc0a588](https://github.com/shaka-project/shaka-player/commit/bc0a588676828eb68bdca62efe52cb503feb947d)), closes [#4401](https://github.com/shaka-project/shaka-player/issues/4401)
|
|
50
|
-
* Missing AES-128 key of last HLS segment ([#4519](https://github.com/shaka-project/shaka-player/issues/4519)) ([2c2677f](https://github.com/shaka-project/shaka-player/commit/2c2677fe7af10e1280ea8253b90ef6527bdcbbc0)), closes [#4517](https://github.com/shaka-project/shaka-player/issues/4517)
|
|
51
|
-
* Respect existing app usage of Cast SDK ([#4523](https://github.com/shaka-project/shaka-player/issues/4523)) ([3db2568](https://github.com/shaka-project/shaka-player/commit/3db2568508cfc827fd9efc644096a45220eb617b)), closes [#4521](https://github.com/shaka-project/shaka-player/issues/4521)
|
|
52
|
-
* **ttml:** Default TTML background color to transparent if unspecified ([#4496](https://github.com/shaka-project/shaka-player/issues/4496)) ([0b5c985](https://github.com/shaka-project/shaka-player/commit/0b5c9853a6a39cb24ab1270598bf34d2ac1eacf0)), closes [#4468](https://github.com/shaka-project/shaka-player/issues/4468)
|
|
6
|
+
### Features
|
|
53
7
|
|
|
54
|
-
|
|
8
|
+
* Add AAC transmuxer ([#4632](https://github.com/shaka-project/shaka-player/issues/4632)) ([8623a5d](https://github.com/shaka-project/shaka-player/commit/8623a5d0304dd3e65c613b176b4afa38a6dc96b5))
|
|
9
|
+
* Add config for sequenceMode in DASH ([#4607](https://github.com/shaka-project/shaka-player/issues/4607)) ([aff2a5d](https://github.com/shaka-project/shaka-player/commit/aff2a5d9e81e5fdfaeb91275aaa0821aa189d34f))
|
|
10
|
+
* Add external thumbnails support ([#4497](https://github.com/shaka-project/shaka-player/issues/4497)) ([3582f0a](https://github.com/shaka-project/shaka-player/commit/3582f0a7274d6bb6f0bbfdf2ad51c5ecfb6f974b))
|
|
11
|
+
* Add external thumbnails with sprites support ([#4584](https://github.com/shaka-project/shaka-player/issues/4584)) ([86cb3e7](https://github.com/shaka-project/shaka-player/commit/86cb3e714cc3f59cff8f0b33adb291e128c32609))
|
|
12
|
+
* Add limited support for HLS "identity" key format ([#4451](https://github.com/shaka-project/shaka-player/issues/4451)) ([b1e81a6](https://github.com/shaka-project/shaka-player/commit/b1e81a684afe086b7a37ea29bbbfc972575ba332)), closes [#2146](https://github.com/shaka-project/shaka-player/issues/2146)
|
|
13
|
+
* Adds ChannelCount as a filter to the Player Select Audio Track Method ([#4552](https://github.com/shaka-project/shaka-player/issues/4552)) ([9dd945c](https://github.com/shaka-project/shaka-player/commit/9dd945c3df7364b90a9c3cb3150021492ebb7d81)), closes [#4550](https://github.com/shaka-project/shaka-player/issues/4550)
|
|
14
|
+
* **ads:** Add getDescription to CS and SS ads ([#4526](https://github.com/shaka-project/shaka-player/issues/4526)) ([7d2a170](https://github.com/shaka-project/shaka-player/commit/7d2a170336b828e8aac871ff276dbb8b42c384a4))
|
|
15
|
+
* **ads:** Add getTitle to CS and SS ads ([#4513](https://github.com/shaka-project/shaka-player/issues/4513)) ([a019065](https://github.com/shaka-project/shaka-player/commit/a019065d5d19598c9d0ba6ce5d4d79070f3e3cba))
|
|
16
|
+
* **ads:** Ignore ad events with no associated ad ([#4488](https://github.com/shaka-project/shaka-player/issues/4488)) ([e826eb8](https://github.com/shaka-project/shaka-player/commit/e826eb8eec207dd2ebd4d4ee1e44510ebff22b71)), closes [#4481](https://github.com/shaka-project/shaka-player/issues/4481)
|
|
17
|
+
* Allow add extra features to MediaSource.addSourceBuffer ([#4527](https://github.com/shaka-project/shaka-player/issues/4527)) ([4033be7](https://github.com/shaka-project/shaka-player/commit/4033be7c5b1d1c397d5a4840ef7333a26ca93983))
|
|
18
|
+
* Allow clearKey configuration in base64 or hex ([#4627](https://github.com/shaka-project/shaka-player/issues/4627)) ([29ffc89](https://github.com/shaka-project/shaka-player/commit/29ffc89a117e6f4285c0133dce555e44a1414228))
|
|
19
|
+
* Allow customization of HLS Live behavior ([#4578](https://github.com/shaka-project/shaka-player/issues/4578)) ([4914201](https://github.com/shaka-project/shaka-player/commit/4914201f86f6e683b64c7cc3338cdf67cee544cf))
|
|
20
|
+
* Allow playback of HLS Media Playlist with AAC by default ([#4564](https://github.com/shaka-project/shaka-player/issues/4564)) ([757b34e](https://github.com/shaka-project/shaka-player/commit/757b34e5959f14c9a5b5aed173cc99d98a794a40))
|
|
21
|
+
* Allow playback of HLS Media Playlist with RAW formats by default and support ID3 ([#4591](https://github.com/shaka-project/shaka-player/issues/4591)) ([18d8367](https://github.com/shaka-project/shaka-player/commit/18d836746e20164409c070c787e08b8bcf4da180))
|
|
22
|
+
* Automatic ABR quality restrictions based on screen size ([#4515](https://github.com/shaka-project/shaka-player/issues/4515)) ([b5935a8](https://github.com/shaka-project/shaka-player/commit/b5935a8a6b3b05c0c4cd10774a9625b0bbaf1cf6))
|
|
23
|
+
* **demo:** Demo visualizer for buffered ranges. ([#4417](https://github.com/shaka-project/shaka-player/issues/4417)) ([55d0a15](https://github.com/shaka-project/shaka-player/commit/55d0a1556a273b6af0da16197b424796a175adf8))
|
|
24
|
+
* enable uninstalling PatchedMediaKeysApple ([#4471](https://github.com/shaka-project/shaka-player/issues/4471)) ([7166f0c](https://github.com/shaka-project/shaka-player/commit/7166f0c1d09ad458abf0ee18e961c88f415afefc)), closes [#4469](https://github.com/shaka-project/shaka-player/issues/4469)
|
|
25
|
+
* **HLS:** Add support for EXT-X-SESSION-KEY tag ([#4655](https://github.com/shaka-project/shaka-player/issues/4655)) ([172c9f8](https://github.com/shaka-project/shaka-player/commit/172c9f834ab6575cf9cdb2f825abd9961b9ad7fb)), closes [#917](https://github.com/shaka-project/shaka-player/issues/917)
|
|
26
|
+
* **HLS:** allow customize live segments delay ([#4585](https://github.com/shaka-project/shaka-player/issues/4585)) ([1f558a8](https://github.com/shaka-project/shaka-player/commit/1f558a82c14e3d68a3a67cbb58879f2ab12549d0))
|
|
27
|
+
* **HLS:** Allow mp3 playback with mp4a.40.34 ([#4592](https://github.com/shaka-project/shaka-player/issues/4592)) ([8f892b1](https://github.com/shaka-project/shaka-player/commit/8f892b136f4cadce6a4d0585f88d4eccaf065f1b))
|
|
28
|
+
* **HLS:** Lazy-load HLS media playlists ([#4511](https://github.com/shaka-project/shaka-player/issues/4511)) ([b2f279d](https://github.com/shaka-project/shaka-player/commit/b2f279db1b111e3c8a02706551f466468621cd97)), closes [#1936](https://github.com/shaka-project/shaka-player/issues/1936)
|
|
29
|
+
* **HLS:** Support for HLS key rotation ([#4568](https://github.com/shaka-project/shaka-player/issues/4568)) ([3846eea](https://github.com/shaka-project/shaka-player/commit/3846eeac3f3777c35e61f479958015062f4275af)), closes [#741](https://github.com/shaka-project/shaka-player/issues/741)
|
|
30
|
+
* Improved LCEVC integration ([#4560](https://github.com/shaka-project/shaka-player/issues/4560)) ([50062f5](https://github.com/shaka-project/shaka-player/commit/50062f58adea248a403461b50b65c3a585de31b4))
|
|
31
|
+
* LCEVC Integration ([#4050](https://github.com/shaka-project/shaka-player/issues/4050)) ([284ea63](https://github.com/shaka-project/shaka-player/commit/284ea63a60178cbc87ce2fde769eb06bdb8fb8ea))
|
|
32
|
+
* New autoShowText config to change initial text visibility behavior ([#3421](https://github.com/shaka-project/shaka-player/issues/3421)) ([5c24410](https://github.com/shaka-project/shaka-player/commit/5c24410560d8afa13e6f2492590f13506419b59e))
|
|
33
|
+
* Parse and surface "prft" boxes as events ([#4389](https://github.com/shaka-project/shaka-player/issues/4389)) ([89777dd](https://github.com/shaka-project/shaka-player/commit/89777dd7043ae2b5fa213ab73e43f93482bb86d0)), closes [#4382](https://github.com/shaka-project/shaka-player/issues/4382)
|
|
34
|
+
* Parse ID3 metadata ([#4409](https://github.com/shaka-project/shaka-player/issues/4409)) ([95bbf72](https://github.com/shaka-project/shaka-player/commit/95bbf72f426f9df899193f6083197a77191c0c4f))
|
|
35
|
+
* Support HTML-escaped cues in VTT ([#4660](https://github.com/shaka-project/shaka-player/issues/4660)) ([2b8b387](https://github.com/shaka-project/shaka-player/commit/2b8b38788ab5b6fc297eaa3537e97bc348d2b389))
|
|
36
|
+
* TS parser improvements ([#4612](https://github.com/shaka-project/shaka-player/issues/4612)) ([5157b44](https://github.com/shaka-project/shaka-player/commit/5157b44b2d644ec9cdc13b03b4ac762ed8e0f183))
|
|
55
37
|
|
|
56
38
|
|
|
57
39
|
### Bug Fixes
|
|
58
40
|
|
|
59
|
-
* Fix
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* **
|
|
41
|
+
* **ads:** Fix IMA crash when autoplay is rejected ([#4518](https://github.com/shaka-project/shaka-player/issues/4518)) ([d27f7d2](https://github.com/shaka-project/shaka-player/commit/d27f7d24bb3e1000fc489a6aa125fca359dd77e1)), closes [#4179](https://github.com/shaka-project/shaka-player/issues/4179)
|
|
42
|
+
* allow build without text ([#4506](https://github.com/shaka-project/shaka-player/issues/4506)) ([340b04a](https://github.com/shaka-project/shaka-player/commit/340b04ad4798c9b68ed9510ae71912192a61348b))
|
|
43
|
+
* Allow overriding special handling of 404s ([#4635](https://github.com/shaka-project/shaka-player/issues/4635)) ([427f126](https://github.com/shaka-project/shaka-player/commit/427f126ea3958541d69474505e1af0eb892d8dde)), closes [#4548](https://github.com/shaka-project/shaka-player/issues/4548)
|
|
44
|
+
* allow the playback on platforms when low latency APIs are not supported ([#4485](https://github.com/shaka-project/shaka-player/issues/4485)) ([c1753e1](https://github.com/shaka-project/shaka-player/commit/c1753e1a02881cfbbafd863eeb582411c45df92c))
|
|
45
|
+
* **cast:** Reduce size of Cast update messages ([#4644](https://github.com/shaka-project/shaka-player/issues/4644)) ([4e75ec6](https://github.com/shaka-project/shaka-player/commit/4e75ec64be76414b1d4945cbfbf7bc52b5ff3b01))
|
|
46
|
+
* **cea:** Fix not rendering CEA-608 Closed Captions ([#4683](https://github.com/shaka-project/shaka-player/issues/4683)) ([a489282](https://github.com/shaka-project/shaka-player/commit/a489282ff26796a55f96e035b55d331abfc14142)), closes [#4605](https://github.com/shaka-project/shaka-player/issues/4605) [#3659](https://github.com/shaka-project/shaka-player/issues/3659)
|
|
47
|
+
* check for negative rows before moving ([#4510](https://github.com/shaka-project/shaka-player/issues/4510)) ([b3621c2](https://github.com/shaka-project/shaka-player/commit/b3621c26a86897ba80c17b68f316e22aba61b30b)), closes [#4508](https://github.com/shaka-project/shaka-player/issues/4508)
|
|
48
|
+
* Content reload starttime with HLS on iOS ([#4575](https://github.com/shaka-project/shaka-player/issues/4575)) ([59d4360](https://github.com/shaka-project/shaka-player/commit/59d4360b686421f07aa0d7f28eb944f0c51ff5a2)), closes [#4244](https://github.com/shaka-project/shaka-player/issues/4244)
|
|
49
|
+
* DAI ID3 metadata parsing ([#4616](https://github.com/shaka-project/shaka-player/issues/4616)) ([0d67ecd](https://github.com/shaka-project/shaka-player/commit/0d67ecd7cba253eb1919ae6e15a80f34e08fc132))
|
|
50
|
+
* embed cc not shown when seeking back ([#4643](https://github.com/shaka-project/shaka-player/issues/4643)) ([2a6b0d0](https://github.com/shaka-project/shaka-player/commit/2a6b0d02e550cfa5749b838f5915b8b6cf7b2099)), closes [#4641](https://github.com/shaka-project/shaka-player/issues/4641)
|
|
51
|
+
* Filter unsupported H.264 streams in Xbox ([#4493](https://github.com/shaka-project/shaka-player/issues/4493)) ([8475214](https://github.com/shaka-project/shaka-player/commit/8475214bc46e8321f7b60a6fc7fabee484a40800))
|
|
52
|
+
* Fix bitmap-based cue size ([#4453](https://github.com/shaka-project/shaka-player/issues/4453)) ([4a197e1](https://github.com/shaka-project/shaka-player/commit/4a197e1288c8f20a950cf491041eca9dde7033cb))
|
|
53
|
+
* Fix choppy HLS startup ([#4553](https://github.com/shaka-project/shaka-player/issues/4553)) ([59ef54a](https://github.com/shaka-project/shaka-player/commit/59ef54a158e14da2f7c6ab04e1fd9409bf63c6f0)), closes [#4516](https://github.com/shaka-project/shaka-player/issues/4516)
|
|
54
|
+
* Fix detection of ac4, dts, and dolby h265 ([#4657](https://github.com/shaka-project/shaka-player/issues/4657)) ([319a358](https://github.com/shaka-project/shaka-player/commit/319a358b8dc1838a89d8977109cab4296a558841))
|
|
55
|
+
* Fix dispatch ID3 metadata when transmuxing AAC ([#4639](https://github.com/shaka-project/shaka-player/issues/4639)) ([bf813f2](https://github.com/shaka-project/shaka-player/commit/bf813f2553dfc56efa79b708c54cbddee0f3ee2e))
|
|
56
|
+
* Fix drm.keySystemsMapping config ([#4425](https://github.com/shaka-project/shaka-player/issues/4425)) ([d945084](https://github.com/shaka-project/shaka-player/commit/d9450846e11224e0b1add6cc20a64844d6c09fcf)), closes [#4422](https://github.com/shaka-project/shaka-player/issues/4422)
|
|
57
|
+
* Fix errors with TS segments on Chromecast ([#4543](https://github.com/shaka-project/shaka-player/issues/4543)) ([593c280](https://github.com/shaka-project/shaka-player/commit/593c280dd578ee19cbb6a47f22962ff7fdd2cb45))
|
|
58
|
+
* Fix hang when seeking to the last segment ([#4537](https://github.com/shaka-project/shaka-player/issues/4537)) ([19a4842](https://github.com/shaka-project/shaka-player/commit/19a48422901440ff88fbbedfea5803c6dda07127))
|
|
59
|
+
* Fix HLS dynamic to static transition ([a16b1ac](https://github.com/shaka-project/shaka-player/commit/a16b1ac8a4c8f367f65747fc789a7d8c160e29e3))
|
|
60
|
+
* Fix HLS dynamic to static transition ([#4483](https://github.com/shaka-project/shaka-player/issues/4483)) ([a16b1ac](https://github.com/shaka-project/shaka-player/commit/a16b1ac8a4c8f367f65747fc789a7d8c160e29e3)), closes [#4431](https://github.com/shaka-project/shaka-player/issues/4431)
|
|
61
|
+
* Fix HLS lazy-loading exception during update ([#4648](https://github.com/shaka-project/shaka-player/issues/4648)) ([777c27e](https://github.com/shaka-project/shaka-player/commit/777c27ee558d803b3f166a0ac8b9778b08196654)), closes [#4647](https://github.com/shaka-project/shaka-player/issues/4647)
|
|
62
|
+
* Fix HLS lazy-loading exception on switch ([#4645](https://github.com/shaka-project/shaka-player/issues/4645)) ([941ed4e](https://github.com/shaka-project/shaka-player/commit/941ed4ed286e4463d4973e994d322250678cfdcb)), closes [#4621](https://github.com/shaka-project/shaka-player/issues/4621)
|
|
63
|
+
* Fix HLS lazy-loading with DRM ([#4646](https://github.com/shaka-project/shaka-player/issues/4646)) ([a7f0be7](https://github.com/shaka-project/shaka-player/commit/a7f0be726d5b801ac2365bb0c9b6db9e576c964f)), closes [#4622](https://github.com/shaka-project/shaka-player/issues/4622)
|
|
64
|
+
* Fix HLS live stream subtitle offsets ([#4586](https://github.com/shaka-project/shaka-player/issues/4586)) ([3b9af2e](https://github.com/shaka-project/shaka-player/commit/3b9af2efa6be06c8c8a13e5d715828e2875d75d7))
|
|
65
|
+
* Fix ID3 parsing in TS segments ([#4609](https://github.com/shaka-project/shaka-player/issues/4609)) ([3b534fd](https://github.com/shaka-project/shaka-player/commit/3b534fd405ad3254d37a86fd1895ceeb96dc8094))
|
|
66
|
+
* Fix in-band key rotation on Xbox One ([#4478](https://github.com/shaka-project/shaka-player/issues/4478)) ([4e93311](https://github.com/shaka-project/shaka-player/commit/4e933116984beb630d31ce7a0b8c9bc6f8b48c06)), closes [#4401](https://github.com/shaka-project/shaka-player/issues/4401)
|
|
67
|
+
* Fix metadata assert when the ID3 is future (coming in a previous segment) ([#4640](https://github.com/shaka-project/shaka-player/issues/4640)) ([216bdd7](https://github.com/shaka-project/shaka-player/commit/216bdd7657d7be8bb33f71c3a62f649ecc25ace5))
|
|
68
|
+
* Fix multi-period DASH with descriptive audio ([#4629](https://github.com/shaka-project/shaka-player/issues/4629)) ([81ccd5c](https://github.com/shaka-project/shaka-player/commit/81ccd5c73ba5e021466b82c05f8b607b0c345849)), closes [#4500](https://github.com/shaka-project/shaka-player/issues/4500)
|
|
69
|
+
* fix support clear and encrypted periods ([#4606](https://github.com/shaka-project/shaka-player/issues/4606)) ([6256db3](https://github.com/shaka-project/shaka-player/commit/6256db3af5065ea1db1951ea7583d4608ce5e28d))
|
|
70
|
+
* Fix vanishing tracks while offline ([#4426](https://github.com/shaka-project/shaka-player/issues/4426)) ([c935cc1](https://github.com/shaka-project/shaka-player/commit/c935cc17703297a44b3ce3bda75d8f2ea37f4147)), closes [#4408](https://github.com/shaka-project/shaka-player/issues/4408)
|
|
71
|
+
* Fixed LCEVC decode breaking dependencies issue and read me addition ([#4565](https://github.com/shaka-project/shaka-player/issues/4565)) ([3c75d1a](https://github.com/shaka-project/shaka-player/commit/3c75d1a71aea039c802555031fffbf3cad77f6fc))
|
|
72
|
+
* focus on first element when back to the settings menu ([#4653](https://github.com/shaka-project/shaka-player/issues/4653)) ([b40b6e7](https://github.com/shaka-project/shaka-player/commit/b40b6e7669d4ccf8677a6d262767f3e155eb02e6)), closes [#4652](https://github.com/shaka-project/shaka-player/issues/4652)
|
|
73
|
+
* Force using mcap polyfill on EOS browsers ([#4630](https://github.com/shaka-project/shaka-player/issues/4630)) ([6191d58](https://github.com/shaka-project/shaka-player/commit/6191d5894deb679ed68da54357dc1f6831edeb23))
|
|
74
|
+
* **HLS:** Add a guard on closeSegmentIndex ([#4615](https://github.com/shaka-project/shaka-player/issues/4615)) ([57ce56b](https://github.com/shaka-project/shaka-player/commit/57ce56b8d2bd5d2b1626b38594e6d54defd10255))
|
|
75
|
+
* **HLS:** Fix detection of WebVTT subtitles in HLS by extension ([#4663](https://github.com/shaka-project/shaka-player/issues/4663)) ([8f698c6](https://github.com/shaka-project/shaka-player/commit/8f698c6eaad6e1019f388e2d36f28883a142ddfb))
|
|
76
|
+
* **HLS:** Fix lazy-loading of TS content ([#4601](https://github.com/shaka-project/shaka-player/issues/4601)) ([dd7356d](https://github.com/shaka-project/shaka-player/commit/dd7356d0e0655f59792b3f992841d4c0c8d5540a))
|
|
77
|
+
* **hls:** Fix raw format detection when the main playlist hasn't type ([#4583](https://github.com/shaka-project/shaka-player/issues/4583)) ([d319718](https://github.com/shaka-project/shaka-player/commit/d319718eded6e36f4fc705588de84a301a428d49))
|
|
78
|
+
* **hls:** Fix single-variant HLS streams ([#4573](https://github.com/shaka-project/shaka-player/issues/4573)) ([62906bd](https://github.com/shaka-project/shaka-player/commit/62906bdc9a26456d213a0c5d33f00b4454cdfb5b)), closes [#1936](https://github.com/shaka-project/shaka-player/issues/1936) [#3536](https://github.com/shaka-project/shaka-player/issues/3536)
|
|
79
|
+
* **HLS:** Infer missing codecs from config ([#4656](https://github.com/shaka-project/shaka-player/issues/4656)) ([08fc7dd](https://github.com/shaka-project/shaka-player/commit/08fc7dd717390c61dcc3304c58bfff5c87c77833))
|
|
80
|
+
* **HLS:** Return 0-0 seek range until fully loaded ([#4590](https://github.com/shaka-project/shaka-player/issues/4590)) ([bf50ada](https://github.com/shaka-project/shaka-player/commit/bf50ada6874879b33ac1acd34ec7e5375eb4c45d))
|
|
81
|
+
* Limit key ids to 32 characters ([#4614](https://github.com/shaka-project/shaka-player/issues/4614)) ([9531b07](https://github.com/shaka-project/shaka-player/commit/9531b07296163d8cc5c8416f0baa4ffd29c0a90d))
|
|
82
|
+
* Make XML parsing secure ([#4598](https://github.com/shaka-project/shaka-player/issues/4598)) ([a731eba](https://github.com/shaka-project/shaka-player/commit/a731eba804ae1a3f3ee3061550fa43ea82e06313))
|
|
83
|
+
* Missing AES-128 key of last HLS segment ([#4519](https://github.com/shaka-project/shaka-player/issues/4519)) ([3d0f752](https://github.com/shaka-project/shaka-player/commit/3d0f752c7d0677f750dbbd9bcd2895358358628f)), closes [#4517](https://github.com/shaka-project/shaka-player/issues/4517)
|
|
84
|
+
* **offline:** Add storage muxer init timeout ([#4566](https://github.com/shaka-project/shaka-player/issues/4566)) ([d4d3740](https://github.com/shaka-project/shaka-player/commit/d4d37407c87b7c032a16679e96b318146bbdee22))
|
|
85
|
+
* **playhead:** Safeguard getStallsDetected as stallDetector can be null ([#4581](https://github.com/shaka-project/shaka-player/issues/4581)) ([21ceaca](https://github.com/shaka-project/shaka-player/commit/21ceacab9e9577c18cef7f6c76f57f39eca3dca9))
|
|
86
|
+
* Resolve load failures for TS-based content on Android-based Cast devices ([#4569](https://github.com/shaka-project/shaka-player/issues/4569)). ([#4570](https://github.com/shaka-project/shaka-player/issues/4570)) ([65903aa](https://github.com/shaka-project/shaka-player/commit/65903aa27b5723632ff16a92059cb20c4879fc59))
|
|
87
|
+
* Respect existing app usage of Cast SDK ([#4523](https://github.com/shaka-project/shaka-player/issues/4523)) ([8d3d556](https://github.com/shaka-project/shaka-player/commit/8d3d556edaa817af686e1577f0a0bad92d0c74d4)), closes [#4521](https://github.com/shaka-project/shaka-player/issues/4521)
|
|
88
|
+
* return width and height in the stats when we are using src= ([#4435](https://github.com/shaka-project/shaka-player/issues/4435)) ([9bbfb57](https://github.com/shaka-project/shaka-player/commit/9bbfb57cb4e2c0653e6eb5681e10714cb939bad9))
|
|
89
|
+
* Simplify transmuxer to allow more mimetypes in the future ([#4642](https://github.com/shaka-project/shaka-player/issues/4642)) ([a14e84b](https://github.com/shaka-project/shaka-player/commit/a14e84b5c9a6feb8f7f2efcbae52fe9691d48412))
|
|
90
|
+
* **ttml:** Default TTML background color to transparent if unspecified ([#4496](https://github.com/shaka-project/shaka-player/issues/4496)) ([32b0a90](https://github.com/shaka-project/shaka-player/commit/32b0a90a8c583bba03a3d7b035a1244d325e3da6)), closes [#4468](https://github.com/shaka-project/shaka-player/issues/4468)
|
|
91
|
+
* **UI:** Ad position and ad counter are too close to each other ([#4416](https://github.com/shaka-project/shaka-player/issues/4416)) ([8376410](https://github.com/shaka-project/shaka-player/commit/83764104277363b6ce0e05d8e53449ff454c6f0e))
|
|
92
|
+
* **ui:** Fix exception on screen rotation if fullscreen is not supported ([#4669](https://github.com/shaka-project/shaka-player/issues/4669)) ([fd93f6a](https://github.com/shaka-project/shaka-player/commit/fd93f6ae1bc917061c035abcfb835855e336bb06))
|
|
93
|
+
* Virgin Media set top box is incorrectly categorized as Apple/Safari ([df79470](https://github.com/shaka-project/shaka-player/commit/df79470af088089f8beba2f44a236593820d655a))
|
|
94
|
+
* WebVTT line not correctly positioned in UITextDisplayer ([#4567](https://github.com/shaka-project/shaka-player/issues/4567)) ([#4682](https://github.com/shaka-project/shaka-player/issues/4682)) ([140aefe](https://github.com/shaka-project/shaka-player/commit/140aefee04718faa631ba090d6313e372b608fc1))
|
|
64
95
|
|
|
65
96
|
## [4.2.0](https://github.com/shaka-project/shaka-player/compare/v4.1.0...v4.2.0) (2022-08-16)
|
|
66
97
|
|
package/CONTRIBUTORS
CHANGED
|
@@ -75,6 +75,7 @@ Jun Hong Chong <chongjunhong@gmail.com>
|
|
|
75
75
|
Jürgen Kartnaller <kartnaller@lovelysystems.com>
|
|
76
76
|
Leandro Ribeiro Moreira <leandro.ribeiro.moreira@gmail.com>
|
|
77
77
|
Lucas Gabriel Sánchez <unkiwii@gmail.com>
|
|
78
|
+
Martin Stark <martin.stark@eyevinn.se>
|
|
78
79
|
Matias Russitto <russitto@gmail.com>
|
|
79
80
|
Matthias Van Parijs <matvp91@gmail.com>
|
|
80
81
|
Mattias Wadman <mattias.wadman@gmail.com>
|
|
@@ -95,6 +96,7 @@ Peter Nycander <peter.nycander@gmail.com>
|
|
|
95
96
|
Prakash Duggaraju <duggaraju@gmail.com>
|
|
96
97
|
Robert Colantuoni <rgc@colantuoni.com>
|
|
97
98
|
Robert Galluccio <robertnw5@gmail.com>
|
|
99
|
+
Rodolphe Breton <robloche@gmail.com>
|
|
98
100
|
Rohit Makasana <rohitbm@google.com>
|
|
99
101
|
Roi Lipman <roilipman@gmail.com>
|
|
100
102
|
Roksolana Ivanyshyn <roksolana.ivanyshyn.pub@gmail.com>
|
|
@@ -121,8 +123,10 @@ Toshihiro Suzuki <t.suzuki326@gmail.com>
|
|
|
121
123
|
Vasanth Polipelli <vasanthap@google.com>
|
|
122
124
|
Vignesh Venkatasubramanian <vigneshv@google.com>
|
|
123
125
|
Vincent Valot <valot.vince@gmail.com>
|
|
126
|
+
Vinod Balakrishnan <vinod.balakrishnan@v-nova.com>
|
|
124
127
|
Wayne Morgan <wayne.morgan.dev@gmail.com>
|
|
125
128
|
Yohann Connell <robinconnell@google.com>
|
|
126
129
|
Raymond Cheng <raycheng100@gmail.com>
|
|
127
130
|
Janroel Koppen <j.koppen@bluebillywig.com>
|
|
131
|
+
João Nabais <jlnabais@gmail.com>
|
|
128
132
|
Koen Romers <koenromers@gmail.com>
|
package/README.md
CHANGED
|
@@ -144,6 +144,20 @@ HLS features **not** supported:
|
|
|
144
144
|
|
|
145
145
|
[mux.js]: https://github.com/videojs/mux.js/releases
|
|
146
146
|
|
|
147
|
+
## MPEG-5 Part2 LCEVC Support
|
|
148
|
+
|
|
149
|
+
**Only supported on browsers with Media Source Extensions SourceBuffer support**
|
|
150
|
+
|
|
151
|
+
- MPEG-5 Part2 LCEVC decoding support (decoding provided by [lcevc_dil.js][], must be
|
|
152
|
+
separately included)
|
|
153
|
+
|
|
154
|
+
- Integration documentation : [docs](docs/design/lcevc-integration.md)
|
|
155
|
+
|
|
156
|
+
- More on [MPEG-5 Part2 LCEVC][]
|
|
157
|
+
|
|
158
|
+
[lcevc_dil.js]: https://www.npmjs.com/package/lcevc_dil.js
|
|
159
|
+
[MPEG-5 Part2 LCEVC]: https://www.lcevc.org
|
|
160
|
+
|
|
147
161
|
|
|
148
162
|
## DRM support matrix
|
|
149
163
|
|
package/demo/common/assets.js
CHANGED
|
@@ -40,6 +40,7 @@ shakaAssets.Source = {
|
|
|
40
40
|
APPLE: shakaDemo.MessageIds.APPLE,
|
|
41
41
|
IRT: shakaDemo.MessageIds.IRT,
|
|
42
42
|
MICROSOFT: shakaDemo.MessageIds.MICROSOFT,
|
|
43
|
+
VNOVA: shakaDemo.MessageIds.VNOVA,
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
|
|
@@ -143,6 +144,9 @@ shakaAssets.Feature = {
|
|
|
143
144
|
|
|
144
145
|
// Set if the asset has at least one image stream.
|
|
145
146
|
THUMBNAILS: shakaDemo.MessageIds.THUMBNAILS,
|
|
147
|
+
|
|
148
|
+
// Set if the asset has LCEVC.
|
|
149
|
+
LCEVC: shakaDemo.MessageIds.LCEVC,
|
|
146
150
|
};
|
|
147
151
|
|
|
148
152
|
|
|
@@ -1283,5 +1287,59 @@ shakaAssets.testAssets = [
|
|
|
1283
1287
|
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1284
1288
|
.addLicenseServer('com.microsoft.playready', 'http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,ck:W31bfVt9W31bfVt9W31bfQ==,ckt:aescbc)'),
|
|
1285
1289
|
// }}}
|
|
1290
|
+
|
|
1291
|
+
// MPEG-5 LCEVC assets {{{
|
|
1292
|
+
/* LCEVC Enabled Content with LCEVC Encoded Stream */
|
|
1293
|
+
new ShakaDemoAssetInfo(
|
|
1294
|
+
/* name= */ 'Big Buck Bunny (LCEVC H264)',
|
|
1295
|
+
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
|
|
1296
|
+
/* manifestUri= */ 'https://dyctis843rxh5.cloudfront.net/vnIAZIaowG1K7qOt/master.m3u8',
|
|
1297
|
+
/* source= */ shakaAssets.Source.VNOVA)
|
|
1298
|
+
.addFeature(shakaAssets.Feature.HLS)
|
|
1299
|
+
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1300
|
+
.addFeature(shakaAssets.Feature.MP4)
|
|
1301
|
+
.addFeature(shakaAssets.Feature.WEBM)
|
|
1302
|
+
.addFeature(shakaAssets.Feature.OFFLINE)
|
|
1303
|
+
.addFeature(shakaAssets.Feature.LCEVC)
|
|
1304
|
+
.addDescription('H264 HLS stream with LCEVC enhancement')
|
|
1305
|
+
.markAsFeatured('Big Buck Bunny (LCEVC H264)')
|
|
1306
|
+
.setExtraConfig({
|
|
1307
|
+
streaming: {
|
|
1308
|
+
useNativeHlsOnSafari: false,
|
|
1309
|
+
forceTransmux: true,
|
|
1310
|
+
},
|
|
1311
|
+
lcevc: {
|
|
1312
|
+
enabled: true,
|
|
1313
|
+
dynamicPerformanceScaling: true,
|
|
1314
|
+
logLevel: 0,
|
|
1315
|
+
drawLogo: false,
|
|
1316
|
+
},
|
|
1317
|
+
}),
|
|
1318
|
+
new ShakaDemoAssetInfo(
|
|
1319
|
+
/* name= */ 'Game (LCEVC H264)',
|
|
1320
|
+
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
|
|
1321
|
+
/* manifestUri= */ 'https://dyctis843rxh5.cloudfront.net/vny72tI8aXJDcTYX/master.m3u8',
|
|
1322
|
+
/* source= */ shakaAssets.Source.VNOVA)
|
|
1323
|
+
.addFeature(shakaAssets.Feature.HLS)
|
|
1324
|
+
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1325
|
+
.addFeature(shakaAssets.Feature.MP4)
|
|
1326
|
+
.addFeature(shakaAssets.Feature.WEBM)
|
|
1327
|
+
.addFeature(shakaAssets.Feature.OFFLINE)
|
|
1328
|
+
.addFeature(shakaAssets.Feature.LCEVC)
|
|
1329
|
+
.addDescription('H264 HLS stream with LCEVC enhancement')
|
|
1330
|
+
.markAsFeatured('Game (LCEVC H264)')
|
|
1331
|
+
.setExtraConfig({
|
|
1332
|
+
streaming: {
|
|
1333
|
+
useNativeHlsOnSafari: false,
|
|
1334
|
+
forceTransmux: true,
|
|
1335
|
+
},
|
|
1336
|
+
lcevc: {
|
|
1337
|
+
enabled: true,
|
|
1338
|
+
dynamicPerformanceScaling: true,
|
|
1339
|
+
logLevel: 0,
|
|
1340
|
+
drawLogo: false,
|
|
1341
|
+
},
|
|
1342
|
+
}),
|
|
1343
|
+
// }}}
|
|
1286
1344
|
];
|
|
1287
1345
|
/* eslint-enable max-len */
|
|
@@ -17,6 +17,7 @@ shakaDemo.MessageIds = {
|
|
|
17
17
|
DASH: 'DEMO_DASH',
|
|
18
18
|
HIGH_DEFINITION: 'DEMO_HIGH_DEFINITION',
|
|
19
19
|
HLS: 'DEMO_HLS',
|
|
20
|
+
LCEVC: 'DEMO_LCEVC',
|
|
20
21
|
LIVE: 'DEMO_LIVE',
|
|
21
22
|
MP2TS: 'DEMO_MP2TS',
|
|
22
23
|
MP4: 'DEMO_MP4',
|
|
@@ -85,6 +86,10 @@ shakaDemo.MessageIds = {
|
|
|
85
86
|
UNSUPPORTED_NO_OFFLINE: 'DEMO_UNSUPPORTED_NO_OFFLINE',
|
|
86
87
|
UNSUPPORTED_NO_KEY_SUPPORT: 'DEMO_UNSUPPORTED_NO_KEY_SUPPORT',
|
|
87
88
|
UNSUPPORTED_NO_LICENSE_SUPPORT: 'DEMO_UNSUPPORTED_NO_LICENSE_SUPPORT',
|
|
89
|
+
/* Visualizer. */
|
|
90
|
+
VISUALIZER_AUTO_SCREENSHOT_TOGGLE: 'DEMO_VISUALIZER_AUTO_SCREENSHOT_TOGGLE',
|
|
91
|
+
VISUALIZER_BUTTON: 'DEMO_VISUALIZER_BUTTON',
|
|
92
|
+
VISUALIZER_SCREENSHOT_BUTTON: 'DEMO_VISUALIZER_SCREENSHOT_BUTTON',
|
|
88
93
|
/* Asset card. */
|
|
89
94
|
DELETE_STORED_PROMPT: 'DEMO_DELETE_STORED_PROMPT',
|
|
90
95
|
UNSUPPORTED: 'DEMO_UNSUPPORTED',
|
|
@@ -151,6 +156,11 @@ shakaDemo.MessageIds = {
|
|
|
151
156
|
AUDIO_ROBUSTNESS: 'DEMO_AUDIO_ROBUSTNESS',
|
|
152
157
|
AUTO_CORRECT_DASH_DRIFT: 'DEMO_AUTO_CORRECT_DASH_DRIFT',
|
|
153
158
|
AUTO_LOW_LATENCY: 'DEMO_AUTO_LOW_LATENCY',
|
|
159
|
+
AUTO_SHOW_TEXT: 'DEMO_AUTO_SHOW_TEXT',
|
|
160
|
+
AUTO_SHOW_TEXT_NEVER: 'DEMO_AUTO_SHOW_TEXT_NEVER',
|
|
161
|
+
AUTO_SHOW_TEXT_ALWAYS: 'DEMO_AUTO_SHOW_TEXT_ALWAYS',
|
|
162
|
+
AUTO_SHOW_TEXT_IF_PREFERRED_TEXT_LANGUAGE: 'DEMO_AUTO_SHOW_TEXT_IF_PREFERRED_TEXT_LANGUAGE',
|
|
163
|
+
AUTO_SHOW_TEXT_IF_SUBTITLES_MAY_BE_NEEDED: 'DEMO_AUTO_SHOW_TEXT_IF_SUBTITLES_MAY_BE_NEEDED',
|
|
154
164
|
AVAILABILITY_WINDOW_OVERRIDE: 'DEMO_AVAILABILITY_WINDOW_OVERRIDE',
|
|
155
165
|
BACKOFF_FACTOR: 'DEMO_BACKOFF_FACTOR',
|
|
156
166
|
BASE_DELAY: 'DEMO_BASE_DELAY',
|
|
@@ -181,7 +191,7 @@ shakaDemo.MessageIds = {
|
|
|
181
191
|
ENABLED: 'DEMO_ENABLED',
|
|
182
192
|
FAST_HALF_LIFE: 'DEMO_FAST_HALF_LIFE',
|
|
183
193
|
FORCE_HTTPS: 'DEMO_FORCE_HTTPS',
|
|
184
|
-
|
|
194
|
+
FORCE_TRANSMUX: 'DEMO_FORCE_TRANSMUX',
|
|
185
195
|
FUZZ_FACTOR: 'DEMO_FUZZ_FACTOR',
|
|
186
196
|
GAP_DETECTION_THRESHOLD: 'DEMO_GAP_DETECTION_THRESHOLD',
|
|
187
197
|
IGNORE_DASH_EMPTY_ADAPTATION_SET: 'DEMO_IGNORE_DASH_EMPTY_ADAPTATION_SET',
|
|
@@ -197,6 +207,11 @@ shakaDemo.MessageIds = {
|
|
|
197
207
|
INACCURATE_MANIFEST_TOLERANCE: 'DEMO_INACCURATE_MANIFEST_TOLERANCE',
|
|
198
208
|
INITIAL_SEGMENT_LIMIT: 'DEMO_INITIAL_SEGMENT_LIMIT',
|
|
199
209
|
LANGUAGE_SECTION_HEADER: 'DEMO_LANGUAGE_SECTION_HEADER',
|
|
210
|
+
LCEVC_DRAW_LOGO: 'DEMO_LCEVC_DRAW_LOGO',
|
|
211
|
+
LCEVC_DYNAMIC_PERFORMANCE_SCALING: 'DEMO_LCEVC_DYNAMIC_PERFORMANCE_SCALING',
|
|
212
|
+
LCEVC_LOG_LEVEL: 'DEMO_LCEVC_LOG_LEVEL',
|
|
213
|
+
LCEVC_SECTION_HEADER: 'DEMO_LCEVC_SECTION_HEADER',
|
|
214
|
+
LIVE_SEGMENTS_DELAY: 'DEMO_LIVE_SEGMENTS_DELAY',
|
|
200
215
|
LOG_LEVEL: 'DEMO_LOG_LEVEL',
|
|
201
216
|
LOG_LEVEL_DEBUG: 'DEMO_LOG_LEVEL_DEBUG',
|
|
202
217
|
LOG_LEVEL_INFO: 'DEMO_LOG_LEVEL_INFO',
|
|
@@ -213,6 +228,7 @@ shakaDemo.MessageIds = {
|
|
|
213
228
|
MAX_HEIGHT: 'DEMO_MAX_HEIGHT',
|
|
214
229
|
MAX_PIXELS: 'DEMO_MAX_PIXELS',
|
|
215
230
|
MAX_WIDTH: 'DEMO_MAX_WIDTH',
|
|
231
|
+
MEDIA_SOURCE_SECTION_HEADER: 'DEMO_MEDIA_SOURCE_SECTION_HEADER',
|
|
216
232
|
MIN_BANDWIDTH: 'DEMO_MIN_BANDWIDTH',
|
|
217
233
|
MIN_BYTES: 'DEMO_MIN_BYTES',
|
|
218
234
|
MIN_FRAMERATE: 'DEMO_MIN_FRAMERATE',
|
|
@@ -232,13 +248,16 @@ shakaDemo.MessageIds = {
|
|
|
232
248
|
PREFER_NATIVE_HLS: 'DEMO_PREFER_NATIVE_HLS',
|
|
233
249
|
REBUFFERING_GOAL: 'DEMO_REBUFFERING_GOAL',
|
|
234
250
|
RESTRICT_TO_ELEMENT_SIZE: 'DEMO_RESTRICT_TO_ELEMENT_SIZE',
|
|
251
|
+
RESTRICT_TO_SCREEN_SIZE: 'DEMO_RESTRICT_TO_SCREEN_SIZE',
|
|
235
252
|
RESTRICTIONS_SECTION_HEADER: 'DEMO_RESTRICTIONS_SECTION_HEADER',
|
|
236
253
|
SAFE_SEEK_OFFSET: 'DEMO_SAFE_SEEK_OFFSET',
|
|
237
254
|
SAFE_SKIP_DISTANCE: 'DEMO_SAFE_SKIP_DISTANCE',
|
|
238
255
|
SEGMENT_RELATIVE_VTT_TIMING: 'DEMO_SEGMENT_RELATIVE_VTT_TIMING',
|
|
256
|
+
SEQUENCE_MODE: 'DEMO_SEQUENCE_MODE',
|
|
239
257
|
SESSION_ID: 'DEMO_SESSION_ID',
|
|
240
258
|
SHAKA_CONTROLS: 'DEMO_SHAKA_CONTROLS',
|
|
241
259
|
SLOW_HALF_LIFE: 'DEMO_SLOW_HALF_LIFE',
|
|
260
|
+
SOURCE_BUFFER_EXTRA_FEATURES: 'DEMO_SOURCE_BUFFER_EXTRA_FEATURES',
|
|
242
261
|
STALL_DETECTOR_ENABLED: 'DEMO_STALL_DETECTOR_ENABLED',
|
|
243
262
|
STALL_THRESHOLD: 'DEMO_STALL_THRESHOLD',
|
|
244
263
|
STALL_TIMEOUT: 'DEMO_STALL_TIMEOUT',
|
|
@@ -257,7 +276,9 @@ shakaDemo.MessageIds = {
|
|
|
257
276
|
USE_HEADERS: 'DEMO_USE_HEADERS',
|
|
258
277
|
USE_NATIVE_HLS_SAFARI: 'DEMO_USE_NATIVE_HLS_SAFARI',
|
|
259
278
|
USE_PERSISTENT_LICENSES: 'DEMO_USE_PERSISTENT_LICENSES',
|
|
279
|
+
USE_SAFARI_BEHAVIOR_FOR_LIVE: 'DEMO_USE_SAFARI_BEHAVIOR_FOR_LIVE',
|
|
260
280
|
VIDEO_ROBUSTNESS: 'DEMO_VIDEO_ROBUSTNESS',
|
|
281
|
+
VNOVA: 'DEMO_VNOVA',
|
|
261
282
|
XLINK_FAIL_GRACEFULLY: 'DEMO_XLINK_FAIL_GRACEFULLY',
|
|
262
283
|
};
|
|
263
284
|
/* eslint-enable max-len */
|
package/demo/config.js
CHANGED
|
@@ -92,10 +92,12 @@ shakaDemo.Config = class {
|
|
|
92
92
|
this.addOfflineSection_();
|
|
93
93
|
this.addDrmSection_();
|
|
94
94
|
this.addStreamingSection_();
|
|
95
|
+
this.addMediaSourceSection_();
|
|
95
96
|
this.addManifestSection_();
|
|
96
97
|
this.addRetrictionsSection_('',
|
|
97
98
|
shakaDemo.MessageIds.RESTRICTIONS_SECTION_HEADER);
|
|
98
99
|
this.addCmcdSection_();
|
|
100
|
+
this.addLcevcSection_();
|
|
99
101
|
}
|
|
100
102
|
|
|
101
103
|
/**
|
|
@@ -216,6 +218,10 @@ shakaDemo.Config = class {
|
|
|
216
218
|
'manifest.hls.defaultVideoCodec')
|
|
217
219
|
.addBoolInput_(MessageIds.IGNORE_MANIFEST_PROGRAM_DATE_TIME,
|
|
218
220
|
'manifest.hls.ignoreManifestProgramDateTime')
|
|
221
|
+
.addBoolInput_(MessageIds.USE_SAFARI_BEHAVIOR_FOR_LIVE,
|
|
222
|
+
'manifest.hls.useSafariBehaviorForLive')
|
|
223
|
+
.addNumberInput_(MessageIds.LIVE_SEGMENTS_DELAY,
|
|
224
|
+
'manifest.hls.liveSegmentsDelay')
|
|
219
225
|
.addNumberInput_(MessageIds.AVAILABILITY_WINDOW_OVERRIDE,
|
|
220
226
|
'manifest.availabilityWindowOverride',
|
|
221
227
|
/* canBeDecimal= */ true,
|
|
@@ -231,6 +237,8 @@ shakaDemo.Config = class {
|
|
|
231
237
|
/* canBeDecimal= */ false,
|
|
232
238
|
/* canBeZero= */ false,
|
|
233
239
|
/* canBeUnset= */ true)
|
|
240
|
+
.addBoolInput_(MessageIds.SEQUENCE_MODE,
|
|
241
|
+
'manifest.dash.sequenceMode')
|
|
234
242
|
.addBoolInput_(MessageIds.DISABLE_AUDIO,
|
|
235
243
|
'manifest.disableAudio')
|
|
236
244
|
.addBoolInput_(MessageIds.DISABLE_VIDEO,
|
|
@@ -276,6 +284,8 @@ shakaDemo.Config = class {
|
|
|
276
284
|
/* canBeDecimal= */ true)
|
|
277
285
|
.addBoolInput_(MessageIds.RESTRICT_TO_ELEMENT_SIZE,
|
|
278
286
|
'abr.restrictToElementSize')
|
|
287
|
+
.addBoolInput_(MessageIds.RESTRICT_TO_SCREEN_SIZE,
|
|
288
|
+
'abr.restrictToScreenSize')
|
|
279
289
|
.addBoolInput_(MessageIds.IGNORE_DEVICE_PIXEL_RATIO,
|
|
280
290
|
'abr.ignoreDevicePixelRatio');
|
|
281
291
|
this.addRetrictionsSection_('abr',
|
|
@@ -293,6 +303,18 @@ shakaDemo.Config = class {
|
|
|
293
303
|
.addBoolInput_(MessageIds.USE_HEADERS, 'cmcd.useHeaders');
|
|
294
304
|
}
|
|
295
305
|
|
|
306
|
+
/** @private */
|
|
307
|
+
addLcevcSection_() {
|
|
308
|
+
const MessageIds = shakaDemo.MessageIds;
|
|
309
|
+
const docLink = this.resolveExternLink_('.LcevcConfiguration');
|
|
310
|
+
this.addSection_(MessageIds.LCEVC_SECTION_HEADER, docLink)
|
|
311
|
+
.addBoolInput_(MessageIds.ENABLED, 'lcevc.enabled')
|
|
312
|
+
.addBoolInput_(MessageIds.LCEVC_DYNAMIC_PERFORMANCE_SCALING,
|
|
313
|
+
'lcevc.dynamicPerformanceScaling')
|
|
314
|
+
.addNumberInput_(MessageIds.LCEVC_LOG_LEVEL, 'lcevc.logLevel')
|
|
315
|
+
.addBoolInput_(MessageIds.LCEVC_DRAW_LOGO, 'lcevc.drawLogo');
|
|
316
|
+
}
|
|
317
|
+
|
|
296
318
|
/**
|
|
297
319
|
* @param {string} category
|
|
298
320
|
* @param {!shakaDemo.MessageIds} sectionName
|
|
@@ -414,8 +436,8 @@ shakaDemo.Config = class {
|
|
|
414
436
|
this.latestInput_.input().checked = true;
|
|
415
437
|
}
|
|
416
438
|
|
|
417
|
-
this.addBoolInput_(MessageIds.
|
|
418
|
-
'streaming.
|
|
439
|
+
this.addBoolInput_(MessageIds.FORCE_TRANSMUX,
|
|
440
|
+
'streaming.forceTransmux')
|
|
419
441
|
.addBoolInput_(MessageIds.START_AT_SEGMENT_BOUNDARY,
|
|
420
442
|
'streaming.startAtSegmentBoundary')
|
|
421
443
|
.addBoolInput_(MessageIds.IGNORE_TEXT_FAILURES,
|
|
@@ -428,14 +450,40 @@ shakaDemo.Config = class {
|
|
|
428
450
|
MessageIds.STREAMING_RETRY_SECTION_HEADER);
|
|
429
451
|
}
|
|
430
452
|
|
|
453
|
+
/** @private */
|
|
454
|
+
addMediaSourceSection_() {
|
|
455
|
+
const MessageIds = shakaDemo.MessageIds;
|
|
456
|
+
const docLink = this.resolveExternLink_('.MediaSourceConfiguration');
|
|
457
|
+
this.addSection_(MessageIds.MEDIA_SOURCE_SECTION_HEADER, docLink)
|
|
458
|
+
.addTextInput_(MessageIds.SOURCE_BUFFER_EXTRA_FEATURES,
|
|
459
|
+
'mediaSource.sourceBufferExtraFeatures');
|
|
460
|
+
}
|
|
461
|
+
|
|
431
462
|
/** @private */
|
|
432
463
|
addLanguageSection_() {
|
|
433
464
|
const MessageIds = shakaDemo.MessageIds;
|
|
434
465
|
const docLink = this.resolveExternLink_('.PlayerConfiguration');
|
|
466
|
+
|
|
467
|
+
const autoShowTextOptions = shaka.config.AutoShowText;
|
|
468
|
+
const localize = (name) => shakaDemoMain.getLocalizedString(name);
|
|
469
|
+
const autoShowTextOptionNames = {
|
|
470
|
+
'NEVER': localize(MessageIds.AUTO_SHOW_TEXT_NEVER),
|
|
471
|
+
'ALWAYS': localize(MessageIds.AUTO_SHOW_TEXT_ALWAYS),
|
|
472
|
+
'IF_PREFERRED_TEXT_LANGUAGE':
|
|
473
|
+
localize(MessageIds.AUTO_SHOW_TEXT_IF_PREFERRED_TEXT_LANGUAGE),
|
|
474
|
+
'IF_SUBTITLES_MAY_BE_NEEDED':
|
|
475
|
+
localize(MessageIds.AUTO_SHOW_TEXT_IF_SUBTITLES_MAY_BE_NEEDED),
|
|
476
|
+
};
|
|
477
|
+
|
|
435
478
|
this.addSection_(MessageIds.LANGUAGE_SECTION_HEADER, docLink)
|
|
436
479
|
.addTextInput_(MessageIds.AUDIO_LANGUAGE, 'preferredAudioLanguage')
|
|
437
480
|
.addTextInput_(MessageIds.TEXT_LANGUAGE, 'preferredTextLanguage')
|
|
438
|
-
.addTextInput_(MessageIds.TEXT_ROLE, 'preferredTextRole')
|
|
481
|
+
.addTextInput_(MessageIds.TEXT_ROLE, 'preferredTextRole')
|
|
482
|
+
.addSelectInput_(
|
|
483
|
+
MessageIds.AUTO_SHOW_TEXT,
|
|
484
|
+
'autoShowText',
|
|
485
|
+
autoShowTextOptions,
|
|
486
|
+
autoShowTextOptionNames);
|
|
439
487
|
const onChange = (input) => {
|
|
440
488
|
shakaDemoMain.setUILocale(input.value);
|
|
441
489
|
shakaDemoMain.remakeHash();
|
|
@@ -525,7 +573,7 @@ shakaDemo.Config = class {
|
|
|
525
573
|
}
|
|
526
574
|
shakaDemoMain.remakeHash();
|
|
527
575
|
};
|
|
528
|
-
this.
|
|
576
|
+
this.addCustomSelectInput_(MessageIds.LOG_LEVEL, logLevels, onChange);
|
|
529
577
|
const input = this.latestInput_.input();
|
|
530
578
|
switch (shaka['log']['currentLevel']) {
|
|
531
579
|
case Level['DEBUG']:
|
|
@@ -707,7 +755,7 @@ shakaDemo.Config = class {
|
|
|
707
755
|
* @return {!shakaDemo.Config}
|
|
708
756
|
* @private
|
|
709
757
|
*/
|
|
710
|
-
|
|
758
|
+
addCustomSelectInput_(name, values, onChange, tooltipMessage) {
|
|
711
759
|
this.createRow_(name, tooltipMessage);
|
|
712
760
|
// The input is not provided a name, as (in this enclosed space) it makes
|
|
713
761
|
// the actual field unreadable.
|
|
@@ -716,6 +764,42 @@ shakaDemo.Config = class {
|
|
|
716
764
|
return this;
|
|
717
765
|
}
|
|
718
766
|
|
|
767
|
+
/**
|
|
768
|
+
* @param {!shakaDemo.MessageIds} name
|
|
769
|
+
* @param {string} valueName
|
|
770
|
+
* @param {!Object.<string, ?>} options
|
|
771
|
+
* @param {!Object.<string, string>} optionNames
|
|
772
|
+
* @param {shakaDemo.MessageIds=} tooltipMessage
|
|
773
|
+
* @return {!shakaDemo.Config}
|
|
774
|
+
* @private
|
|
775
|
+
*/
|
|
776
|
+
addSelectInput_(name, valueName, options, optionNames, tooltipMessage) {
|
|
777
|
+
const onChange = (input) => {
|
|
778
|
+
shakaDemoMain.configure(valueName, options[input.value]);
|
|
779
|
+
shakaDemoMain.remakeHash();
|
|
780
|
+
};
|
|
781
|
+
|
|
782
|
+
// If there are any translations missing for option names, fill in the
|
|
783
|
+
// constant from the enum. This ensures new enum values are usable in the
|
|
784
|
+
// demo in some form, even if they are forgotten in the demo config.
|
|
785
|
+
for (const key in options) {
|
|
786
|
+
if (!(key in optionNames)) {
|
|
787
|
+
optionNames[key] = key;
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
this.addCustomSelectInput_(name, optionNames, onChange, tooltipMessage);
|
|
792
|
+
|
|
793
|
+
const initialValue = shakaDemoMain.getCurrentConfigValue(valueName);
|
|
794
|
+
for (const key in options) {
|
|
795
|
+
if (options[key] == initialValue) {
|
|
796
|
+
this.latestInput_.input().value = key;
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
return this;
|
|
801
|
+
}
|
|
802
|
+
|
|
719
803
|
/**
|
|
720
804
|
* @param {!shakaDemo.MessageIds} name
|
|
721
805
|
* @param {shakaDemo.MessageIds=} tooltipMessage
|