shaka-player 3.2.4 → 3.2.5
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/.csslintrc +11 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- package/.github/workflows/build-and-test.yaml +130 -0
- package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
- package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
- package/.github/workflows/demo-version-index.yaml +29 -0
- package/.github/workflows/nightly-demo.yaml +42 -0
- package/.github/workflows/release-please.yaml +145 -0
- package/.github/workflows/safari-homedir-launcher.sh +18 -0
- package/.github/workflows/selenium-lab-tests.yaml +93 -0
- package/AUTHORS +2 -0
- package/CHANGELOG.md +1571 -1556
- package/CONTRIBUTING.md +2 -2
- package/CONTRIBUTORS +2 -0
- package/README.md +7 -7
- package/app-engine/README.md +9 -0
- package/app-engine/demo-version-index/README.md +14 -0
- package/app-engine/demo-version-index/app.yaml +2 -0
- package/app-engine/demo-version-index/main.py +162 -0
- package/app-engine/demo-version-index/requirements.txt +6 -0
- package/app-engine/demo-version-index/templates/index.html +114 -0
- package/app-engine/shaka-player-demo/README.md +18 -0
- package/app-engine/shaka-player-demo/app.yaml +61 -0
- package/app-engine/shaka-player-demo/main.py +95 -0
- package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
- package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
- package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
- package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
- package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
- package/app-engine/shaka-player-demo/posters/standard.png +0 -0
- package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
- package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
- package/app-engine/shaka-player-demo/posters.py +110 -0
- package/app-engine/shaka-player-demo/requirements.txt +5 -0
- package/app-engine/shaka-player-demo/time.txt +1 -0
- package/build/README.md +1 -1
- package/build/conformance.textproto +13 -0
- package/build/docker/Dockerfile +20 -0
- package/build/docker/docker-compose.yml +10 -0
- package/build/gendeps.py +18 -15
- package/build/shaka-lab.yaml +163 -0
- package/build/shakaBuildHelpers.py +4 -29
- package/build/test.py +87 -28
- package/build/wrapper.template.js +2 -2
- package/demo/TengwarTelcontar.woff2 +0 -0
- package/demo/asset_card.js +1 -2
- package/demo/cast_receiver/index.html +1 -1
- package/demo/cast_receiver/receiver_app.css +14 -14
- package/demo/common/assets.js +2 -0
- package/demo/config.js +0 -1
- package/demo/custom.js +0 -1
- package/demo/customWarning.txt +2 -2
- package/demo/demo.less +29 -18
- package/demo/demo_uncompiled.js +1 -13
- package/demo/index.html +1 -1
- package/demo/main.js +3 -3
- package/dist/controls.css +2 -2
- package/dist/controls.css.map +1 -1
- package/dist/demo.compiled.debug.js +191 -194
- package/dist/demo.compiled.debug.map +4 -4
- package/dist/demo.compiled.js +191 -194
- package/dist/demo.compiled.map +4 -4
- package/dist/demo.css +1 -1
- package/dist/demo.css.map +1 -1
- package/dist/deps.js +225 -219
- package/dist/locales.js +28 -28
- package/dist/receiver.compiled.debug.js +43 -45
- package/dist/receiver.compiled.debug.map +4 -4
- package/dist/receiver.compiled.js +43 -45
- package/dist/receiver.compiled.map +4 -4
- package/dist/shaka-player.compiled.d.ts +224 -224
- package/dist/shaka-player.compiled.debug.d.ts +224 -224
- package/dist/shaka-player.compiled.debug.externs.js +4 -3
- package/dist/shaka-player.compiled.debug.js +294 -303
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +4 -3
- package/dist/shaka-player.compiled.js +817 -822
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +266 -266
- package/dist/shaka-player.ui.debug.d.ts +266 -266
- package/dist/shaka-player.ui.debug.externs.js +4 -3
- package/dist/shaka-player.ui.debug.js +220 -229
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +4 -3
- package/dist/shaka-player.ui.js +964 -970
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/REDESIGN.md +33 -33
- package/docs/design/codec_preferences.md +1 -1
- package/docs/design/dash-audio-channels.md +3 -3
- package/docs/design/dash-manifests.md +1 -1
- package/docs/design/gap-jumping.md +3 -3
- package/docs/design/preload.md +2 -2
- package/docs/tutorials/faq.md +8 -8
- package/docs/tutorials/index.json +1 -0
- package/docs/tutorials/plugins.md +3 -3
- package/docs/tutorials/selenium-grid-config.md +122 -0
- package/docs/tutorials/welcome.md +10 -2
- package/karma.conf.js +137 -30
- package/lib/abr/simple_abr_manager.js +12 -6
- package/lib/cast/cast_proxy.js +3 -4
- package/lib/cea/cea608_data_channel.js +2 -2
- package/lib/cea/cea708_service.js +5 -4
- package/lib/cea/mp4_cea_parser.js +11 -5
- package/lib/cea/sei_processor.js +6 -3
- package/lib/dash/dash_parser.js +9 -11
- package/lib/dash/mpd_utils.js +4 -5
- package/lib/dash/segment_list.js +1 -2
- package/lib/dash/segment_template.js +3 -3
- package/lib/hls/hls_parser.js +11 -9
- package/lib/hls/manifest_text_parser.js +3 -3
- package/lib/media/adaptation_set.js +1 -2
- package/lib/media/content_workarounds.js +2 -2
- package/lib/media/drm_engine.js +3 -2
- package/lib/media/media_source_engine.js +3 -2
- package/lib/media/mp4_segment_index_parser.js +1 -4
- package/lib/media/playhead.js +2 -2
- package/lib/media/presentation_timeline.js +18 -8
- package/lib/media/streaming_engine.js +6 -6
- package/lib/media/time_ranges_utils.js +1 -3
- package/lib/media/video_wrapper.js +1 -1
- package/lib/net/networking_engine.js +1 -1
- package/lib/offline/storage.js +4 -4
- package/lib/player.js +34 -16
- package/lib/polyfill/all.js +2 -3
- package/lib/polyfill/encryption_scheme.js +1 -1
- package/lib/polyfill/media_capabilities.js +3 -3
- package/lib/polyfill/mediasource.js +1 -1
- package/lib/text/cue.js +1 -1
- package/lib/text/simple_text_displayer.js +2 -1
- package/lib/text/ttml_text_parser.js +8 -5
- package/lib/text/ui_text_displayer.js +1 -1
- package/lib/util/buffer_utils.js +1 -3
- package/lib/util/ebml_parser.js +3 -3
- package/lib/util/error.js +1 -1
- package/lib/util/iterables.js +0 -46
- package/lib/util/mp4_box_parsers.js +1 -4
- package/lib/util/mp4_parser.js +5 -7
- package/lib/util/periods.js +8 -9
- package/lib/util/platform.js +3 -3
- package/lib/util/pssh.js +1 -4
- package/lib/util/stream_utils.js +4 -3
- package/lib/util/string_utils.js +3 -5
- package/lib/util/uint8array_utils.js +3 -5
- package/lib/util/xml_utils.js +15 -7
- package/package.json +61 -36
- package/roadmap.md +17 -17
- package/test/abr/simple_abr_manager_unit.js +3 -8
- package/test/ads/ad_manager_unit.js +0 -6
- package/test/cast/cast_proxy_unit.js +0 -8
- package/test/cast/cast_receiver_integration.js +1 -18
- package/test/cast/cast_receiver_unit.js +1 -9
- package/test/cast/cast_sender_unit.js +0 -6
- package/test/cast/cast_utils_unit.js +0 -13
- package/test/cea/cea608_memory_unit.js +0 -5
- package/test/cea/cea708_service_unit.js +0 -7
- package/test/cea/cea708_window_unit.js +0 -5
- package/test/cea/cea_decoder_unit.js +0 -6
- package/test/cea/dtvcc_packet_builder_unit.js +0 -3
- package/test/cea/dtvcc_packet_unit.js +0 -5
- package/test/cea/mp4_cea_parser_unit.js +0 -4
- package/test/dash/dash_parser_content_protection_unit.js +1 -10
- package/test/dash/dash_parser_live_unit.js +2 -15
- package/test/dash/dash_parser_manifest_unit.js +2 -16
- package/test/dash/dash_parser_segment_base_unit.js +1 -8
- package/test/dash/dash_parser_segment_list_unit.js +1 -7
- package/test/dash/dash_parser_segment_template_unit.js +0 -9
- package/test/dash/mpd_utils_unit.js +3 -11
- package/test/demo/demo_unit.js +0 -5
- package/test/deprecate/enforcer_unit.js +0 -4
- package/test/deprecate/version_unit.js +0 -2
- package/test/hls/hls_live_unit.js +2 -14
- package/test/hls/hls_parser_unit.js +2 -15
- package/test/hls/manifest_text_parser_unit.js +0 -10
- package/test/media/adaptation_set_criteria_unit.js +3 -7
- package/test/media/adaptation_set_unit.js +0 -2
- package/test/media/buffering_observer_unit.js +1 -4
- package/test/media/closed_caption_parser_unit.js +0 -3
- package/test/media/drm_engine_integration.js +2 -15
- package/test/media/drm_engine_unit.js +4 -24
- package/test/media/manifest_parser_unit.js +0 -4
- package/test/media/media_source_engine_integration.js +0 -7
- package/test/media/media_source_engine_unit.js +1 -14
- package/test/media/mp4_segment_index_parser_unit.js +0 -4
- package/test/media/play_rate_controller_unit.js +0 -4
- package/test/media/playhead_unit.js +8 -16
- package/test/media/presentation_timeline_unit.js +4 -7
- package/test/media/region_observer_unit.js +1 -6
- package/test/media/region_timeline_unit.js +0 -3
- package/test/media/segment_index_unit.js +0 -6
- package/test/media/segment_reference_unit.js +0 -3
- package/test/media/stall_detector_unit.js +0 -5
- package/test/media/streaming_engine_integration.js +9 -36
- package/test/media/streaming_engine_unit.js +11 -35
- package/test/media/time_ranges_utils_unit.js +0 -2
- package/test/media/transmuxer_integration.js +0 -6
- package/test/media/webm_segment_index_parser_unit.js +0 -4
- package/test/net/data_uri_plugin_unit.js +0 -7
- package/test/net/http_plugin_unit.js +0 -9
- package/test/net/networking_engine_unit.js +0 -11
- package/test/offline/download_progress_estimator_unit.js +0 -2
- package/test/offline/indexeddb_storage_unit.js +0 -6
- package/test/offline/manifest_convert_unit.js +0 -8
- package/test/offline/offline_integration.js +1 -10
- package/test/offline/offline_manifest_parser_unit.js +0 -6
- package/test/offline/offline_scheme_unit.js +0 -8
- package/test/offline/offline_uri_unit.js +0 -2
- package/test/offline/storage_compatibility_unit.js +1 -14
- package/test/offline/storage_integration.js +1 -25
- package/test/player_external.js +2 -10
- package/test/player_integration.js +21 -28
- package/test/player_load_graph_integration.js +1 -6
- package/test/player_src_equals_external.js +3 -9
- package/test/player_src_equals_integration.js +0 -7
- package/test/player_unit.js +52 -37
- package/test/routing/walker_unit.js +0 -8
- package/test/test/assets/large_file.mpd +1 -1
- package/test/test/boot.js +75 -22
- package/test/test/externs/jasmine.js +2 -2
- package/test/test/externs/karma.js +4 -0
- package/test/test/namespace.js +10 -0
- package/test/test/util/canned_idb.js +0 -8
- package/test/test/util/cea_utils.js +0 -6
- package/test/test/util/dash_parser_util.js +0 -13
- package/test/test/util/fake_ad.js +0 -3
- package/test/test/util/fake_ad_manager.js +0 -9
- package/test/test/util/fake_demo_main.js +0 -5
- package/test/test/util/fake_drm_engine.js +0 -6
- package/test/test/util/fake_media_source_engine.js +0 -7
- package/test/test/util/fake_networking_engine.js +0 -5
- package/test/test/util/fake_text_displayer.js +0 -5
- package/test/test/util/indexeddb_utils.js +1 -10
- package/test/test/util/jasmine_fetch.js +0 -1
- package/test/test/util/loader.js +0 -18
- package/test/test/util/manifest_generator.js +9 -14
- package/test/test/util/manifest_parser_util.js +0 -6
- package/test/test/util/offline_utils.js +0 -5
- package/test/test/util/simple_fakes.js +9 -26
- package/test/test/util/stream_generator.js +0 -14
- package/test/test/util/streaming_engine_util.js +0 -15
- package/test/test/util/test_scheme.js +1 -19
- package/test/test/util/ttml_utils.js +0 -2
- package/test/test/util/ui_utils.js +0 -9
- package/test/test/util/util.js +5 -19
- package/test/test/util/waiter.js +84 -43
- package/test/text/cue_integration.js +0 -4
- package/test/text/lrc_text_parser_unit.js +0 -4
- package/test/text/mp4_ttml_parser_unit.js +0 -6
- package/test/text/mp4_vtt_parser_unit.js +1 -7
- package/test/text/sbv_text_parser_unit.js +0 -4
- package/test/text/simple_text_displayer_unit.js +1 -8
- package/test/text/srt_text_parser_unit.js +0 -4
- package/test/text/ssa_text_parser_unit.js +0 -5
- package/test/text/text_engine_unit.js +2 -7
- package/test/text/text_track_integration.js +0 -2
- package/test/text/ttml_text_parser_unit.js +2 -11
- package/test/text/ui_text_displayer_unit.js +44 -41
- package/test/text/vtt_text_parser_unit.js +0 -9
- package/test/text/web_vtt_generator_unit.js +0 -3
- package/test/ui/ad_ui_unit.js +0 -11
- package/test/ui/localization_unit.js +0 -3
- package/test/ui/text_displayer_layout_unit.js +1 -12
- package/test/ui/ui_customization_unit.js +0 -6
- package/test/ui/ui_integration.js +0 -16
- package/test/ui/ui_unit.js +1 -17
- package/test/util/abortable_operation_unit.js +4 -9
- package/test/util/array_utils_unit.js +0 -2
- package/test/util/buffer_utils_unit.js +0 -2
- package/test/util/data_view_reader_unit.js +0 -4
- package/test/util/ebml_parser_unit.js +0 -4
- package/test/util/event_manager_unit.js +0 -3
- package/test/util/fake_event_target_unit.js +0 -5
- package/test/util/functional_unit.js +1 -1
- package/test/util/iterables_unit.js +0 -64
- package/test/util/language_utils_unit.js +0 -3
- package/test/util/manifest_parser_utils_unit.js +0 -2
- package/test/util/mp4_box_parsers_unit.js +0 -5
- package/test/util/mp4_parser_unit.js +0 -4
- package/test/util/multi_map_unit.js +0 -3
- package/test/util/object_utils_unit.js +0 -2
- package/test/util/periods_unit.js +14 -7
- package/test/util/pssh_unit.js +0 -5
- package/test/util/state_history_unit.js +0 -2
- package/test/util/stream_utils_unit.js +3 -8
- package/test/util/string_utils_unit.js +0 -6
- package/test/util/text_parser_unit.js +0 -2
- package/test/util/xml_utils_unit.js +0 -4
- package/ui/less/ad_controls.less +4 -4
- package/ui/less/buttons.less +5 -5
- package/ui/less/containers.less +5 -7
- package/ui/less/overflow_menu.less +4 -4
- package/ui/less/range_elements.less +5 -0
- package/ui/locales/sjn-translations.yaml +257 -0
- package/ui/locales/sjn.json +42 -0
- package/.github/workflows/build_and_test.yaml +0 -73
- package/.github/workflows/release.yaml +0 -53
- package/externs/svgelement.js +0 -18
package/test/ui/ad_ui_unit.js
CHANGED
|
@@ -4,17 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.Player');
|
|
8
|
-
goog.require('shaka.ads.AdManager');
|
|
9
|
-
goog.require('shaka.test.FakeAd');
|
|
10
|
-
goog.require('shaka.test.FakeAdManager');
|
|
11
|
-
goog.require('shaka.test.UiUtils');
|
|
12
|
-
goog.require('shaka.test.Util');
|
|
13
|
-
goog.require('shaka.test.Waiter');
|
|
14
|
-
goog.require('shaka.ui.Locales');
|
|
15
|
-
goog.require('shaka.util.EventManager');
|
|
16
|
-
goog.requireType('shaka.ui.Localization');
|
|
17
|
-
|
|
18
7
|
describe('Ad UI', () => {
|
|
19
8
|
const UiUtils = shaka.test.UiUtils;
|
|
20
9
|
/** @type {!HTMLLinkElement} */
|
|
@@ -4,17 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.Player');
|
|
8
|
-
goog.require('shaka.test.FakeVideo');
|
|
9
|
-
goog.require('shaka.test.UiUtils');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.test.Waiter');
|
|
12
|
-
goog.require('shaka.text.Cue');
|
|
13
|
-
goog.require('shaka.text.SimpleTextDisplayer');
|
|
14
|
-
goog.require('shaka.text.UITextDisplayer');
|
|
15
|
-
goog.require('shaka.ui.Overlay');
|
|
16
|
-
goog.require('shaka.util.EventManager');
|
|
17
|
-
|
|
18
7
|
// TODO: Move this suite to the text/ folder where it belongs
|
|
19
8
|
const supportsScreenshots = () => shaka.test.Util.supportsScreenshots();
|
|
20
9
|
filterDescribe('TextDisplayer layout', supportsScreenshots, () => {
|
|
@@ -416,7 +405,7 @@ filterDescribe('TextDisplayer layout', supportsScreenshots, () => {
|
|
|
416
405
|
await checkScreenshot(prefix, 'flat-cue-bg');
|
|
417
406
|
});
|
|
418
407
|
|
|
419
|
-
// https://github.com/
|
|
408
|
+
// https://github.com/shaka-project/shaka-player/issues/2761
|
|
420
409
|
it('deeply-nested cues', async () => {
|
|
421
410
|
const makeCue = (text, fg = '', bg = '', nestedCues = []) => {
|
|
422
411
|
const cue = new shaka.text.Cue(0, 1, text);
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.test.UiUtils');
|
|
9
|
-
goog.require('shaka.test.Waiter');
|
|
10
|
-
goog.require('shaka.util.EventManager');
|
|
11
|
-
goog.requireType('shaka.ui.Overlay');
|
|
12
|
-
|
|
13
7
|
describe('UI Customization', () => {
|
|
14
8
|
const UiUtils = shaka.test.UiUtils;
|
|
15
9
|
/** @type {!HTMLLinkElement} */
|
|
@@ -4,22 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('mozilla.LanguageMapping');
|
|
9
|
-
goog.require('shaka.test.Loader');
|
|
10
|
-
goog.require('shaka.test.TestScheme');
|
|
11
|
-
goog.require('shaka.test.UiUtils');
|
|
12
|
-
goog.require('shaka.test.Util');
|
|
13
|
-
goog.require('shaka.test.Waiter');
|
|
14
|
-
goog.require('shaka.ui.Element');
|
|
15
|
-
goog.require('shaka.util.Dom');
|
|
16
|
-
goog.require('shaka.util.EventManager');
|
|
17
|
-
goog.require('shaka.util.Iterables');
|
|
18
|
-
goog.requireType('shaka.Player');
|
|
19
|
-
goog.requireType('shaka.ui.Controls');
|
|
20
|
-
goog.requireType('shaka.ui.Overlay');
|
|
21
|
-
|
|
22
|
-
|
|
23
7
|
describe('UI', () => {
|
|
24
8
|
const Util = shaka.test.Util;
|
|
25
9
|
const UiUtils = shaka.test.UiUtils;
|
package/test/ui/ui_unit.js
CHANGED
|
@@ -4,21 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.media.ManifestParser');
|
|
9
|
-
goog.require('shaka.test.FakeManifestParser');
|
|
10
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
11
|
-
goog.require('shaka.test.UiUtils');
|
|
12
|
-
goog.require('shaka.test.Util');
|
|
13
|
-
goog.require('shaka.ui.OverflowMenu');
|
|
14
|
-
goog.require('shaka.ui.ResolutionSelection');
|
|
15
|
-
goog.require('shaka.util.Functional');
|
|
16
|
-
goog.require('shaka.util.Iterables');
|
|
17
|
-
goog.require('shaka.util.Platform');
|
|
18
|
-
goog.requireType('shaka.Player');
|
|
19
|
-
goog.requireType('shaka.ui.Controls');
|
|
20
|
-
goog.requireType('shaka.ui.Overlay');
|
|
21
|
-
|
|
22
7
|
describe('UI', () => {
|
|
23
8
|
const UiUtils = shaka.test.UiUtils;
|
|
24
9
|
const Util = shaka.test.Util;
|
|
@@ -137,8 +122,7 @@ describe('UI', () => {
|
|
|
137
122
|
// Four is just a random number I (ismena) came up with to test a
|
|
138
123
|
// multi-video use case. It could be replaces with any other
|
|
139
124
|
// (reasonable) number.
|
|
140
|
-
for (
|
|
141
|
-
shaka.util.Functional.ignored(_);
|
|
125
|
+
for (let i = 0; i < 4; i++) {
|
|
142
126
|
const video = /** @type {!HTMLVideoElement} */
|
|
143
127
|
(document.createElement('video'));
|
|
144
128
|
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.test.Util');
|
|
8
|
-
goog.require('shaka.util.AbortableOperation');
|
|
9
|
-
goog.require('shaka.util.Error');
|
|
10
|
-
goog.require('shaka.util.PublicPromise');
|
|
11
|
-
|
|
12
7
|
describe('AbortableOperation', () => {
|
|
13
8
|
const Util = shaka.test.Util;
|
|
14
9
|
|
|
@@ -392,10 +387,10 @@ describe('AbortableOperation', () => {
|
|
|
392
387
|
expect(value).toBe(500);
|
|
393
388
|
}).finally((ok) => {
|
|
394
389
|
expect(ok).toBe(true);
|
|
395
|
-
// The bug https://github.com/
|
|
396
|
-
// expectation fail because some stages were skipped.
|
|
397
|
-
// check, the test would pass, even though the bug shows
|
|
398
|
-
// basic functionality of 'chain'.
|
|
390
|
+
// The bug https://github.com/shaka-project/shaka-player/issues/1260
|
|
391
|
+
// makes this expectation fail because some stages were skipped.
|
|
392
|
+
// Without this check, the test would pass, even though the bug shows
|
|
393
|
+
// up first in the basic functionality of 'chain'.
|
|
399
394
|
expect(values).toEqual([100, 200, 300, 400, 500]);
|
|
400
395
|
});
|
|
401
396
|
await op.promise;
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.test.Util');
|
|
8
|
-
goog.require('shaka.util.EbmlParser');
|
|
9
|
-
goog.require('shaka.util.Error');
|
|
10
|
-
|
|
11
7
|
describe('EbmlParser', /** @suppress {accessControls} */ () => {
|
|
12
8
|
const Util = shaka.test.Util;
|
|
13
9
|
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.log');
|
|
8
|
-
goog.require('shaka.test.Util');
|
|
9
|
-
goog.require('shaka.util.FakeEvent');
|
|
10
|
-
goog.require('shaka.util.FakeEventTarget');
|
|
11
|
-
|
|
12
7
|
describe('FakeEventTarget', () => {
|
|
13
8
|
const Util = shaka.test.Util;
|
|
14
9
|
const originalLogError = shaka.log.error;
|
|
@@ -73,7 +73,7 @@ describe('Functional', () => {
|
|
|
73
73
|
expect(obj.val).toBe(1);
|
|
74
74
|
});
|
|
75
75
|
|
|
76
|
-
// Regression test for https://github.com/
|
|
76
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/2958
|
|
77
77
|
it('supports ES6 classes', () => {
|
|
78
78
|
const obj = Functional.callFactory(Es6Class);
|
|
79
79
|
expect(obj.val).toBe(1);
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.util.Iterables');
|
|
8
|
-
|
|
9
7
|
describe('Iterables', () => {
|
|
10
8
|
const Iterables = shaka.util.Iterables;
|
|
11
9
|
|
|
@@ -67,66 +65,4 @@ describe('Iterables', () => {
|
|
|
67
65
|
expect(Iterables.filter(input, (x) => x < 0)).toEqual([]);
|
|
68
66
|
});
|
|
69
67
|
});
|
|
70
|
-
|
|
71
|
-
describe('enumerate', () => {
|
|
72
|
-
function enumerate(it) {
|
|
73
|
-
return Array.from(Iterables.enumerate(it));
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
it('works with no items', () => {
|
|
77
|
-
expect(enumerate([])).toEqual([]);
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
it('works with one item', () => {
|
|
81
|
-
expect(enumerate([999]))
|
|
82
|
-
.toEqual([{i: 0, item: 999, prev: undefined, next: undefined}]);
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
it('works with special values', () => {
|
|
86
|
-
expect(enumerate([[]]))
|
|
87
|
-
.toEqual([{i: 0, item: [], prev: undefined, next: undefined}]);
|
|
88
|
-
expect(enumerate([0]))
|
|
89
|
-
.toEqual([{i: 0, item: 0, prev: undefined, next: undefined}]);
|
|
90
|
-
expect(enumerate([null]))
|
|
91
|
-
.toEqual([{i: 0, item: null, prev: undefined, next: undefined}]);
|
|
92
|
-
expect(enumerate([undefined]))
|
|
93
|
-
.toEqual([{i: 0, item: undefined, prev: undefined, next: undefined}]);
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it('works with two items', () => {
|
|
97
|
-
expect(enumerate([888, 999]))
|
|
98
|
-
.toEqual([
|
|
99
|
-
{i: 0, item: 888, prev: undefined, next: 999},
|
|
100
|
-
{i: 1, item: 999, prev: 888, next: undefined},
|
|
101
|
-
]);
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
it('works with three items', () => {
|
|
105
|
-
expect(enumerate([777, 888, 999]))
|
|
106
|
-
.toEqual([
|
|
107
|
-
{i: 0, item: 777, prev: undefined, next: 888},
|
|
108
|
-
{i: 1, item: 888, prev: 777, next: 999},
|
|
109
|
-
{i: 2, item: 999, prev: 888, next: undefined},
|
|
110
|
-
]);
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it('keeps references', () => {
|
|
114
|
-
const expected = [
|
|
115
|
-
{a: 'x'},
|
|
116
|
-
{b: 'y'},
|
|
117
|
-
{c: 'z'},
|
|
118
|
-
];
|
|
119
|
-
const actual = enumerate(expected);
|
|
120
|
-
|
|
121
|
-
expect(actual[0].item).toBe(expected[0]);
|
|
122
|
-
expect(actual[0].next).toBe(expected[1]);
|
|
123
|
-
|
|
124
|
-
expect(actual[1].prev).toBe(expected[0]);
|
|
125
|
-
expect(actual[1].item).toBe(expected[1]);
|
|
126
|
-
expect(actual[1].next).toBe(expected[2]);
|
|
127
|
-
|
|
128
|
-
expect(actual[2].prev).toBe(expected[1]);
|
|
129
|
-
expect(actual[2].item).toBe(expected[2]);
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
68
|
});
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.test.Util');
|
|
9
|
-
goog.require('shaka.util.Mp4BoxParsers');
|
|
10
|
-
goog.require('shaka.util.Mp4Parser');
|
|
11
|
-
|
|
12
7
|
describe('Mp4BoxParsers', () => {
|
|
13
8
|
const videoInitSegmentUri = '/base/test/test/assets/sintel-video-init.mp4';
|
|
14
9
|
const videoSegmentUri = '/base/test/test/assets/sintel-video-segment.mp4';
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
8
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
9
|
-
goog.require('shaka.util.PeriodCombiner');
|
|
10
|
-
|
|
11
7
|
describe('PeriodCombiner', () => {
|
|
12
8
|
// These test cases don't really read well as "it" statements. Phrasing them
|
|
13
9
|
// that way would make the names very long, so here we break with that
|
|
@@ -477,7 +473,7 @@ describe('PeriodCombiner', () => {
|
|
|
477
473
|
a3.originalId = 'a3';
|
|
478
474
|
a3.bandwidth = 97065;
|
|
479
475
|
a3.roles = ['role1', 'role2'];
|
|
480
|
-
|
|
476
|
+
a3.codecs = 'mp4a.40.2';
|
|
481
477
|
|
|
482
478
|
// a4 has a different label from a3, and should not
|
|
483
479
|
// be filtered out.
|
|
@@ -500,14 +496,24 @@ describe('PeriodCombiner', () => {
|
|
|
500
496
|
const t1 = makeTextStream('en');
|
|
501
497
|
t1.originalId = 't1';
|
|
502
498
|
t1.roles = ['role1'];
|
|
499
|
+
t1.bandwidth = 1158;
|
|
503
500
|
|
|
504
501
|
const t2 = makeTextStream('en');
|
|
505
502
|
t2.originalId = 't2';
|
|
506
503
|
t2.roles = ['role1', 'role2'];
|
|
504
|
+
t2.bandwidth = 1172;
|
|
507
505
|
|
|
508
506
|
const t3 = makeTextStream('en');
|
|
509
507
|
t3.originalId = 't3';
|
|
510
508
|
t3.roles = ['role1'];
|
|
509
|
+
t3.bandwidth = 1158;
|
|
510
|
+
|
|
511
|
+
// t4 has a different bandwidth from t3, and should not
|
|
512
|
+
// be filtered out.
|
|
513
|
+
const t4 = makeTextStream('en');
|
|
514
|
+
t4.originalId = 't4';
|
|
515
|
+
t4.roles = ['role1'];
|
|
516
|
+
t4.bandwidth = 1186;
|
|
511
517
|
|
|
512
518
|
// i1 and i3 are duplicates.
|
|
513
519
|
const i1 = makeImageStream(240);
|
|
@@ -539,6 +545,7 @@ describe('PeriodCombiner', () => {
|
|
|
539
545
|
t1,
|
|
540
546
|
t2,
|
|
541
547
|
t3,
|
|
548
|
+
t4,
|
|
542
549
|
],
|
|
543
550
|
imageStreams: [
|
|
544
551
|
i1,
|
|
@@ -565,7 +572,7 @@ describe('PeriodCombiner', () => {
|
|
|
565
572
|
}
|
|
566
573
|
|
|
567
574
|
const textStreams = combiner.getTextStreams();
|
|
568
|
-
expect(textStreams.length).toBe(
|
|
575
|
+
expect(textStreams.length).toBe(3);
|
|
569
576
|
|
|
570
577
|
// t3 should've been filtered out
|
|
571
578
|
const textIds = textStreams.map((t) => t.originalId);
|
|
@@ -1059,7 +1066,7 @@ describe('PeriodCombiner', () => {
|
|
|
1059
1066
|
it('The number of variants stays stable after many periods ' +
|
|
1060
1067
|
'when going between similar content and varying ads', async () => {
|
|
1061
1068
|
// This test is based on the content from
|
|
1062
|
-
// https://github.com/
|
|
1069
|
+
// https://github.com/shaka-project/shaka-player/issues/2716
|
|
1063
1070
|
// that used to cause our period flattening logic to keep
|
|
1064
1071
|
// creating new variants for every new period added.
|
|
1065
1072
|
// It's ok to create a few additional varinats/streams,
|
package/test/util/pssh_unit.js
CHANGED
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.test.Util');
|
|
8
|
-
goog.require('shaka.util.Error');
|
|
9
|
-
goog.require('shaka.util.Pssh');
|
|
10
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
11
|
-
|
|
12
7
|
describe('Pssh', () => {
|
|
13
8
|
const Uint8ArrayUtils = shaka.util.Uint8ArrayUtils;
|
|
14
9
|
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.test.FakeDrmEngine');
|
|
8
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.util.StreamUtils');
|
|
11
|
-
|
|
12
7
|
describe('StreamUtils', () => {
|
|
13
8
|
const StreamUtils = shaka.util.StreamUtils;
|
|
14
9
|
|
|
@@ -184,7 +179,7 @@ describe('StreamUtils', () => {
|
|
|
184
179
|
});
|
|
185
180
|
|
|
186
181
|
it('chooses only one role, even if none is preferred', () => {
|
|
187
|
-
// Regression test for https://github.com/
|
|
182
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/949
|
|
188
183
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
189
184
|
manifest.addTextStream(0, (stream) => {
|
|
190
185
|
stream.language = 'en';
|
|
@@ -223,7 +218,7 @@ describe('StreamUtils', () => {
|
|
|
223
218
|
});
|
|
224
219
|
|
|
225
220
|
it('chooses only one role, even if all are primary', () => {
|
|
226
|
-
// Regression test for https://github.com/
|
|
221
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/949
|
|
227
222
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
228
223
|
manifest.addTextStream(0, (stream) => {
|
|
229
224
|
stream.language = 'en';
|
|
@@ -269,7 +264,7 @@ describe('StreamUtils', () => {
|
|
|
269
264
|
});
|
|
270
265
|
|
|
271
266
|
it('chooses only one language, even if all are primary', () => {
|
|
272
|
-
// Regression test for https://github.com/
|
|
267
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/918
|
|
273
268
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
274
269
|
manifest.addTextStream(0, (stream) => {
|
|
275
270
|
stream.language = 'en';
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.test.Util');
|
|
8
|
-
goog.require('shaka.util.BufferUtils');
|
|
9
|
-
goog.require('shaka.util.Error');
|
|
10
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
11
|
-
goog.require('shaka.util.StringUtils');
|
|
12
|
-
|
|
13
7
|
describe('StringUtils', () => {
|
|
14
8
|
const StringUtils = shaka.util.StringUtils;
|
|
15
9
|
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.util.XmlUtils');
|
|
9
|
-
|
|
10
|
-
|
|
11
7
|
describe('XmlUtils', () => {
|
|
12
8
|
// A number that cannot be represented as a Javascript number.
|
|
13
9
|
const HUGE_NUMBER_STRING = new Array(500).join('7');
|
package/ui/less/ad_controls.less
CHANGED
|
@@ -90,18 +90,18 @@
|
|
|
90
90
|
|
|
91
91
|
.shaka-skip-ad-button {
|
|
92
92
|
padding: 5px 15px;
|
|
93
|
-
background: rgba(0
|
|
93
|
+
background: rgba(0 0 0 / 70%);
|
|
94
94
|
border: none;
|
|
95
95
|
|
|
96
96
|
&:disabled {
|
|
97
|
-
background: rgba(0
|
|
97
|
+
background: rgba(0 0 0 / 30%);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
cursor: pointer;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
.shaka-skip-ad-counter {
|
|
104
|
-
padding: 5px
|
|
105
|
-
background: rgba(0
|
|
104
|
+
padding: 5px;
|
|
105
|
+
background: rgba(0 0 0 / 70%);
|
|
106
106
|
margin: 0;
|
|
107
107
|
}
|
package/ui/less/buttons.less
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
border-radius: 50%;
|
|
39
39
|
|
|
40
40
|
/* A small drop shadow below the button. */
|
|
41
|
-
box-shadow: rgba(0
|
|
41
|
+
box-shadow: rgba(0 0 0 / 10%) 0 0 20px 0;
|
|
42
42
|
|
|
43
43
|
/* No border. */
|
|
44
44
|
border: none;
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
background-position: center center;
|
|
52
52
|
|
|
53
53
|
/* A background color behind the play arrow. */
|
|
54
|
-
background-color: rgba(255
|
|
54
|
+
background-color: rgba(255 255 255 / 90%);
|
|
55
55
|
|
|
56
56
|
.show-when-controls-shown();
|
|
57
57
|
|
|
@@ -60,11 +60,11 @@
|
|
|
60
60
|
* deployed separately from the compiled CSS.
|
|
61
61
|
* Note that these URIs should relative to ui/controls.less, not this file. */
|
|
62
62
|
&[icon="play"] {
|
|
63
|
-
background-image: data-uri(
|
|
63
|
+
background-image: data-uri("images/play_arrow.svg");
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
&[icon="pause"] {
|
|
67
|
-
background-image: data-uri(
|
|
67
|
+
background-image: data-uri("images/pause.svg");
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
*/
|
|
75
75
|
.shaka-current-time {
|
|
76
76
|
font-size: 14px;
|
|
77
|
-
color:
|
|
77
|
+
color: white;
|
|
78
78
|
cursor: pointer;
|
|
79
79
|
|
|
80
80
|
&[disabled] {
|
package/ui/less/containers.less
CHANGED
|
@@ -6,8 +6,6 @@
|
|
|
6
6
|
|
|
7
7
|
/* All of the top-level containers into which various visible features go. */
|
|
8
8
|
|
|
9
|
-
@transparent: rgba(0, 0, 0, 0);
|
|
10
|
-
|
|
11
9
|
/* A container for the entire video + controls combo. This is the auto-setup
|
|
12
10
|
* div which we populate. */
|
|
13
11
|
.shaka-video-container {
|
|
@@ -19,13 +17,13 @@
|
|
|
19
17
|
|
|
20
18
|
/* Set a special font for material design icons. */
|
|
21
19
|
.material-icons-round {
|
|
22
|
-
font-family:
|
|
20
|
+
font-family: "Material Icons Round";
|
|
23
21
|
font-size: 24px;
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
/* Set the fonts for all other content. */
|
|
27
25
|
* {
|
|
28
|
-
font-family: Roboto-Regular, Roboto, sans-serif;
|
|
26
|
+
font-family: Roboto-Regular, Roboto, sans-serif, TengwarTelcontar;
|
|
29
27
|
}
|
|
30
28
|
}
|
|
31
29
|
|
|
@@ -203,7 +201,7 @@
|
|
|
203
201
|
.show-when-controls-shown();
|
|
204
202
|
|
|
205
203
|
/* A black gradient at the bottom, behind the controls, but only so high. */
|
|
206
|
-
background: linear-gradient(to top,
|
|
204
|
+
background: linear-gradient(to top, black 0, transparent 15%);
|
|
207
205
|
}
|
|
208
206
|
|
|
209
207
|
.shaka-text-container {
|
|
@@ -231,7 +229,7 @@
|
|
|
231
229
|
/* These are defaults which are overridden by JS or cue styles. */
|
|
232
230
|
font-size: 20px;
|
|
233
231
|
line-height: 1.4; // relative to font size.
|
|
234
|
-
color:
|
|
232
|
+
color: white;
|
|
235
233
|
|
|
236
234
|
span.shaka-text-wrapper {
|
|
237
235
|
display: inline;
|
|
@@ -280,5 +278,5 @@
|
|
|
280
278
|
|
|
281
279
|
/* Add a bit of a white shadow to keep our black spinner visible
|
|
282
280
|
on a black background. */
|
|
283
|
-
filter: drop-shadow(0 0 2px rgba(255
|
|
281
|
+
filter: drop-shadow(0 0 2px rgba(255 255 255 / 50%));
|
|
284
282
|
}
|