shaka-player 3.2.4 → 3.2.7
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 +129 -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 +147 -0
- package/.github/workflows/safari-homedir-launcher.sh +18 -0
- package/.github/workflows/selenium-lab-tests.yaml +92 -0
- package/AUTHORS +2 -0
- package/CHANGELOG.md +1596 -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 +3 -3
- package/build/checkversion.py +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 +94 -29
- 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 +30 -30
- 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 +225 -224
- package/dist/shaka-player.compiled.debug.d.ts +225 -224
- package/dist/shaka-player.compiled.debug.externs.js +5 -3
- package/dist/shaka-player.compiled.debug.js +319 -323
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +5 -3
- package/dist/shaka-player.compiled.js +832 -833
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +267 -266
- package/dist/shaka-player.ui.debug.d.ts +267 -266
- package/dist/shaka-player.ui.debug.externs.js +5 -3
- package/dist/shaka-player.ui.debug.js +287 -291
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +5 -3
- package/dist/shaka-player.ui.js +981 -982
- 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 +141 -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 +11 -14
- 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 +34 -20
- 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 +10 -3
- 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/indexeddb/storage_mechanism.js +4 -2
- package/lib/offline/storage.js +4 -4
- package/lib/player.js +190 -114
- 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/config_utils.js +25 -0
- package/lib/util/ebml_parser.js +3 -3
- package/lib/util/error.js +8 -1
- package/lib/util/iterables.js +0 -46
- package/lib/util/manifest_parser_utils.js +1 -1
- package/lib/util/mime_utils.js +48 -1
- package/lib/util/mp4_box_parsers.js +1 -4
- package/lib/util/mp4_parser.js +5 -7
- package/lib/util/periods.js +13 -13
- package/lib/util/platform.js +3 -3
- package/lib/util/player_configuration.js +9 -14
- package/lib/util/pssh.js +1 -4
- package/lib/util/stream_utils.js +8 -5
- 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 +1 -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 -40
- 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 +28 -14
- package/test/hls/hls_parser_unit.js +2 -15
- package/test/hls/manifest_text_parser_unit.js +19 -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 +1 -7
- package/test/media/media_source_engine_unit.js +5 -18
- 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 +11 -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 +1 -7
- 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 +2 -15
- package/test/offline/storage_integration.js +1 -25
- package/test/player_external.js +9 -11
- package/test/player_integration.js +27 -38
- 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 +81 -90
- package/test/player_unit.js +150 -38
- package/test/routing/walker_unit.js +0 -8
- package/test/test/assets/large_file.mpd +1 -1
- package/test/test/boot.js +84 -22
- package/test/test/externs/filters.js +4 -0
- 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 +40 -28
- 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/mime_utils_unit.js +54 -0
- 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 +93 -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 +6 -6
- package/ui/less/buttons.less +6 -6
- package/ui/less/containers.less +9 -11
- package/ui/less/overflow_menu.less +4 -4
- package/ui/less/range_elements.less +7 -2
- package/ui/locales/sjn-translations.yaml +257 -0
- package/ui/locales/sjn.json +42 -0
- package/ui/seek_bar.js +2 -1
- package/.github/workflows/build_and_test.yaml +0 -73
- package/.github/workflows/release.yaml +0 -53
- package/docs/tutorials/gsoc-ideas-list.md +0 -3
- package/externs/svgelement.js +0 -18
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Shaka Player Demo - Poster Definitions
|
|
2
|
+
# Copyright 2022 Google LLC
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
# A Doodle-like service to change the poster on certain days.
|
|
6
|
+
# All posters are chosen based on the current date in PST.
|
|
7
|
+
|
|
8
|
+
# Month constants to make specific dates easier to read.
|
|
9
|
+
JANUARY = 1
|
|
10
|
+
FEBRUARY = 2
|
|
11
|
+
MARCH = 3
|
|
12
|
+
APRIL = 4
|
|
13
|
+
MAY = 5
|
|
14
|
+
JUNE = 6
|
|
15
|
+
JULY = 7
|
|
16
|
+
AUGUST = 8
|
|
17
|
+
SEPTEMBER = 9
|
|
18
|
+
OCTOBER = 10
|
|
19
|
+
NOVEMBER = 11
|
|
20
|
+
DECEMBER = 12
|
|
21
|
+
|
|
22
|
+
# Special posters for certain days.
|
|
23
|
+
VIDEO_POSTERS = {
|
|
24
|
+
# These are the same every year:
|
|
25
|
+
# =====
|
|
26
|
+
(FEBRUARY, 14): 'valentines.png',
|
|
27
|
+
(APRIL, 1): 'colorbars.gif',
|
|
28
|
+
(APRIL, 5): 'trek.jpg', # "First Contact Day": https://bit.ly/2CSXbxw
|
|
29
|
+
(OCTOBER, 31): 'zombie.jpg',
|
|
30
|
+
# =====
|
|
31
|
+
|
|
32
|
+
# These birthday posters changed each year:
|
|
33
|
+
(DECEMBER, 19, 2015): '1yo.jpg',
|
|
34
|
+
(DECEMBER, 19, 2016): '2yo.png',
|
|
35
|
+
(DECEMBER, 19, 2017): '3yo.png',
|
|
36
|
+
|
|
37
|
+
# After this, the birthday poster shows for a whole week:
|
|
38
|
+
(DECEMBER, 17, 2018): '4yo.png',
|
|
39
|
+
(DECEMBER, 18, 2018): '4yo.png',
|
|
40
|
+
(DECEMBER, 19, 2018): '4yo.png',
|
|
41
|
+
(DECEMBER, 20, 2018): '4yo.png',
|
|
42
|
+
|
|
43
|
+
(DECEMBER, 19, 2019): '5yo.png',
|
|
44
|
+
(DECEMBER, 20, 2019): '5yo.png',
|
|
45
|
+
(DECEMBER, 21, 2019): '5yo.png',
|
|
46
|
+
(DECEMBER, 22, 2019): '5yo.png',
|
|
47
|
+
(DECEMBER, 23, 2019): '5yo.png',
|
|
48
|
+
(DECEMBER, 24, 2019): '5yo.png',
|
|
49
|
+
(DECEMBER, 25, 2019): '5yo.png',
|
|
50
|
+
|
|
51
|
+
(DECEMBER, 19, 2020): '6yo.png',
|
|
52
|
+
(DECEMBER, 20, 2020): '6yo.png',
|
|
53
|
+
(DECEMBER, 21, 2020): '6yo.png',
|
|
54
|
+
(DECEMBER, 22, 2020): '6yo.png',
|
|
55
|
+
(DECEMBER, 23, 2020): '6yo.png',
|
|
56
|
+
(DECEMBER, 24, 2020): '6yo.png',
|
|
57
|
+
(DECEMBER, 25, 2020): '6yo.png',
|
|
58
|
+
|
|
59
|
+
(DECEMBER, 19, 2021): '7yo.png',
|
|
60
|
+
(DECEMBER, 20, 2021): '7yo.png',
|
|
61
|
+
(DECEMBER, 21, 2021): '7yo.png',
|
|
62
|
+
(DECEMBER, 22, 2021): '7yo.png',
|
|
63
|
+
(DECEMBER, 23, 2021): '7yo.png',
|
|
64
|
+
(DECEMBER, 24, 2021): '7yo.png',
|
|
65
|
+
(DECEMBER, 25, 2021): '7yo.png',
|
|
66
|
+
|
|
67
|
+
(DECEMBER, 19, 2022): '8yo.png',
|
|
68
|
+
(DECEMBER, 20, 2022): '8yo.png',
|
|
69
|
+
(DECEMBER, 21, 2022): '8yo.png',
|
|
70
|
+
(DECEMBER, 22, 2022): '8yo.png',
|
|
71
|
+
(DECEMBER, 23, 2022): '8yo.png',
|
|
72
|
+
(DECEMBER, 24, 2022): '8yo.png',
|
|
73
|
+
(DECEMBER, 25, 2022): '8yo.png',
|
|
74
|
+
|
|
75
|
+
(DECEMBER, 19, 2023): '9yo.png',
|
|
76
|
+
(DECEMBER, 20, 2023): '9yo.png',
|
|
77
|
+
(DECEMBER, 21, 2023): '9yo.png',
|
|
78
|
+
(DECEMBER, 22, 2023): '9yo.png',
|
|
79
|
+
(DECEMBER, 23, 2023): '9yo.png',
|
|
80
|
+
(DECEMBER, 24, 2023): '9yo.png',
|
|
81
|
+
(DECEMBER, 25, 2023): '9yo.png',
|
|
82
|
+
|
|
83
|
+
(DECEMBER, 19, 2024): '10yo.png',
|
|
84
|
+
(DECEMBER, 20, 2024): '10yo.png',
|
|
85
|
+
(DECEMBER, 21, 2024): '10yo.png',
|
|
86
|
+
(DECEMBER, 22, 2024): '10yo.png',
|
|
87
|
+
(DECEMBER, 23, 2024): '10yo.png',
|
|
88
|
+
(DECEMBER, 24, 2024): '10yo.png',
|
|
89
|
+
(DECEMBER, 25, 2024): '10yo.png',
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
# The default poster.
|
|
93
|
+
VIDEO_DEFAULT = 'standard.png'
|
|
94
|
+
|
|
95
|
+
# Special audio-only posters.
|
|
96
|
+
AUDIO_POSTERS = {
|
|
97
|
+
# http://discordia.wikia.com/wiki/Chaoflux
|
|
98
|
+
(FEBRUARY, 19): 'audioRickRoll.gif',
|
|
99
|
+
# http://discordia.wikia.com/wiki/Discoflux
|
|
100
|
+
(MAY, 3): 'audioRickRoll.gif',
|
|
101
|
+
# http://discordia.wikia.com/wiki/Confuflux
|
|
102
|
+
(JULY, 15): 'audioRickRoll.gif',
|
|
103
|
+
# http://discordia.wikia.com/wiki/Bureflux
|
|
104
|
+
(SEPTEMBER, 26): 'audioRickRoll.gif',
|
|
105
|
+
# http://discordia.wikia.com/wiki/Afflux
|
|
106
|
+
(DECEMBER, 8): 'audioRickRoll.gif',
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
# The default audio-only poster.
|
|
110
|
+
AUDIO_DEFAULT = 'audioOnly.gif'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Time is an illusion; lunchtime doubly so.
|
package/build/README.md
CHANGED
|
@@ -80,8 +80,8 @@ directly:
|
|
|
80
80
|
* `--external` will run integration tests against external assets. This will
|
|
81
81
|
take an extremely long time to run, and requires a fast and reliable internet
|
|
82
82
|
connection.
|
|
83
|
-
* `--drm` will
|
|
84
|
-
|
|
83
|
+
* `--no-drm` will skip integration tests against DRM license servers. Not
|
|
84
|
+
specifying this flag requires a connection to the open internet.
|
|
85
85
|
* `--uncompiled` will run integration tests using the uncompiled library instead
|
|
86
86
|
of the compiled version.
|
|
87
87
|
* `--random` will run the tests in a random order to isolate test dependencies.
|
|
@@ -99,7 +99,7 @@ will choose a defaults based on your platform. However, if you pass any
|
|
|
99
99
|
arguments to `test.py`, it will not choose browsers and you *must* pass
|
|
100
100
|
`--browsers`.
|
|
101
101
|
|
|
102
|
-
[lib/debug/log.js]: https://github.com/
|
|
102
|
+
[lib/debug/log.js]: https://github.com/shaka-project/shaka-player/blob/main/lib/debug/log.js
|
|
103
103
|
|
|
104
104
|
## Stats
|
|
105
105
|
|
package/build/checkversion.py
CHANGED
|
@@ -306,3 +306,16 @@ requirement: {
|
|
|
306
306
|
'instead.'
|
|
307
307
|
whitelist_regexp: 'lib/net/http_fetch_plugin.js'
|
|
308
308
|
}
|
|
309
|
+
|
|
310
|
+
# Disallow the use of generators, which are a major performance issue. See
|
|
311
|
+
# https://github.com/shaka-project/shaka-player/issues/4062#issuecomment-1079428268
|
|
312
|
+
requirement: {
|
|
313
|
+
type: BANNED_CODE_PATTERN
|
|
314
|
+
value:
|
|
315
|
+
"/** @param {*} x */ "
|
|
316
|
+
"function *template(x) { yield x; }"
|
|
317
|
+
error_message:
|
|
318
|
+
"ES6 generators are a major performance issue! Find another solution. "
|
|
319
|
+
"See also https://bit.ly/3wAsoj5"
|
|
320
|
+
whitelist_regexp: "node_modules/"
|
|
321
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Alpine was chosen by providing a node container less than 100mb
|
|
2
|
+
FROM node:17.7.1-alpine3.15
|
|
3
|
+
|
|
4
|
+
WORKDIR /usr/src/app
|
|
5
|
+
|
|
6
|
+
# Install dependencies
|
|
7
|
+
RUN apk add --update --no-cache openssh git python3 openjdk11-jre-headless
|
|
8
|
+
RUN ln -sf python3 /usr/bin/python
|
|
9
|
+
|
|
10
|
+
# Change to non-root user
|
|
11
|
+
USER node
|
|
12
|
+
|
|
13
|
+
# Prevent proxy timeout error (very slow connections)
|
|
14
|
+
RUN npm config set fetch-retry-mintimeout 20000
|
|
15
|
+
RUN npm config set fetch-retry-maxtimeout 120000
|
|
16
|
+
RUN npm config rm proxy
|
|
17
|
+
RUN npm config rm https-proxy
|
|
18
|
+
|
|
19
|
+
# Run compilation
|
|
20
|
+
CMD [ "python", "build/all.py" ]
|
package/build/gendeps.py
CHANGED
|
@@ -24,17 +24,6 @@ import sys
|
|
|
24
24
|
import shakaBuildHelpers
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
# The relative path in each of these is relative to Closure's base.js, which
|
|
28
|
-
# lives at node_modules/google-closure-library/closure/goog/base.js
|
|
29
|
-
deps_args = [
|
|
30
|
-
'--root_with_prefix=lib ../../../../lib',
|
|
31
|
-
'--root_with_prefix=ui ../../../../ui',
|
|
32
|
-
'--root_with_prefix=third_party ../../../../third_party',
|
|
33
|
-
'--root_with_prefix=dist ../../../../dist',
|
|
34
|
-
'--root_with_prefix=demo ../../../../demo',
|
|
35
|
-
]
|
|
36
|
-
|
|
37
|
-
|
|
38
27
|
def main(_):
|
|
39
28
|
"""Generates the uncompiled dependencies files."""
|
|
40
29
|
# Update node modules if needed.
|
|
@@ -50,13 +39,27 @@ def main(_):
|
|
|
50
39
|
except OSError:
|
|
51
40
|
pass
|
|
52
41
|
os.chdir(base)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
'closure', '
|
|
42
|
+
|
|
43
|
+
make_deps = shakaBuildHelpers.get_node_binary(
|
|
44
|
+
'google-closure-deps', 'closure-make-deps')
|
|
56
45
|
|
|
57
46
|
try:
|
|
58
|
-
cmd_line =
|
|
47
|
+
cmd_line = make_deps + [
|
|
48
|
+
# Folders to search for sources using goog.require/goog.provide
|
|
49
|
+
'-r', 'demo', 'lib', 'ui', 'third_party',
|
|
50
|
+
# Individual files to add to those
|
|
51
|
+
'-f', 'dist/locales.js',
|
|
52
|
+
# The path to the folder containing the Closure library's base.js
|
|
53
|
+
'--closure-path', 'node_modules/google-closure-library/closure/goog',
|
|
54
|
+
]
|
|
59
55
|
deps = shakaBuildHelpers.execute_get_output(cmd_line)
|
|
56
|
+
|
|
57
|
+
# This command doesn't use exit codes for some stupid reason.
|
|
58
|
+
# TODO: Remove when https://github.com/google/closure-library/issues/1162
|
|
59
|
+
# is resolved and we have upgraded.
|
|
60
|
+
if len(deps) == 0:
|
|
61
|
+
return 1
|
|
62
|
+
|
|
60
63
|
with open(os.path.join(base, 'dist', 'deps.js'), 'wb') as f:
|
|
61
64
|
f.write(deps)
|
|
62
65
|
return 0
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# Selenium grid config for the Shaka lab. This is the source of truth for the
|
|
2
|
+
# browsers and devices in the Shaka lab at Google.
|
|
3
|
+
|
|
4
|
+
# For syntax and general information, see docs/selenium-grid-config.md
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# A set of variables to contain repeated configurations which can then be
|
|
8
|
+
# referenced below. The syntax for the variable is "name: &name", which
|
|
9
|
+
# generates an "anchor" with the given name. Later, you can inject the
|
|
10
|
+
# contents of the variable with "*name".
|
|
11
|
+
vars:
|
|
12
|
+
firefox_config: &firefox_config
|
|
13
|
+
moz:firefoxOptions:
|
|
14
|
+
# Override Firefox default preferences in the temporary profile created
|
|
15
|
+
# for each test run.
|
|
16
|
+
prefs:
|
|
17
|
+
# Overrides Selenium's explicit default setting, to allow Firefox to
|
|
18
|
+
# install the Widevine CDM on demand.
|
|
19
|
+
media.gmp-manager.updateEnabled: true
|
|
20
|
+
# Overrides Firefox's Linux-specific default setting to disable DRM.
|
|
21
|
+
media.eme.enabled: true
|
|
22
|
+
|
|
23
|
+
minimum_chrome_args: &minimum_chrome_args
|
|
24
|
+
# On Chrome m59+ we can test EME on platforms with pop-up prompts, such as
|
|
25
|
+
# Android and ChromeOS. Note that this flag does not take a port number
|
|
26
|
+
# (domain vs origin).
|
|
27
|
+
# This flag requires setting --user-data-dir as well, however, webdriver
|
|
28
|
+
# already takes care of that for us (except on Android).
|
|
29
|
+
- "--unsafely-allow-protected-media-identifier-for-domain=karma.shakalab.rocks"
|
|
30
|
+
# Normally, Chrome disallows autoplaying videos in many cases. Enable it
|
|
31
|
+
# for testing.
|
|
32
|
+
- "--autoplay-policy=no-user-gesture-required"
|
|
33
|
+
|
|
34
|
+
minimum_chrome_android_args: &minimum_chrome_android_args
|
|
35
|
+
# There is no way in YAML to natively merge arrays, so we start by
|
|
36
|
+
# duplicating the flags from minimum_chrome_args above.
|
|
37
|
+
- "--unsafely-allow-protected-media-identifier-for-domain=karma.shakalab.rocks"
|
|
38
|
+
- "--autoplay-policy=no-user-gesture-required"
|
|
39
|
+
# On Android we must set --user-data-dir. WebDriver does not do it for
|
|
40
|
+
# us as it does on other platforms. Without --user-data-dir,
|
|
41
|
+
# --unsafely-allow... does not work.
|
|
42
|
+
- "--user-data-dir=/data/data/com.android.chrome/cache"
|
|
43
|
+
|
|
44
|
+
minimum_chromeos_args: &minimum_chromeos_args
|
|
45
|
+
# There is no way in YAML to natively merge arrays, so we start by
|
|
46
|
+
# duplicating the flags from minimum_chrome_args above.
|
|
47
|
+
- "--unsafely-allow-protected-media-identifier-for-domain=karma.shakalab.rocks"
|
|
48
|
+
- "--autoplay-policy=no-user-gesture-required"
|
|
49
|
+
# Allow remote attestation even though the device may be in dev mode. This
|
|
50
|
+
# is critical for testing involving L1 content licenses.
|
|
51
|
+
- "--allow-ra-in-dev-mode"
|
|
52
|
+
|
|
53
|
+
chrome_config: &chrome_config
|
|
54
|
+
goog:chromeOptions:
|
|
55
|
+
args: *minimum_chrome_args
|
|
56
|
+
|
|
57
|
+
# Instruct chromedriver not to disable component updater. The
|
|
58
|
+
# component updater must run in order for the Widevine CDM to be
|
|
59
|
+
# available when using a new user-data-dir.
|
|
60
|
+
# TODO(http://crbug.com/613581): Remove once Chrome bug is fixed.
|
|
61
|
+
excludeSwitches:
|
|
62
|
+
- "disable-component-update"
|
|
63
|
+
|
|
64
|
+
chrome_android_config: &chrome_android_config
|
|
65
|
+
goog:chromeOptions:
|
|
66
|
+
args: *minimum_chrome_android_args
|
|
67
|
+
|
|
68
|
+
# Once the new session request reaches chromedriver, it will take
|
|
69
|
+
# the androidPackage option as a request to start Chrome through
|
|
70
|
+
# adb on the tethered device.
|
|
71
|
+
androidPackage: com.android.chrome
|
|
72
|
+
|
|
73
|
+
chromeos_config: &chromeos_config
|
|
74
|
+
# Pass these client-specified arguments through generic-webdriver-server.
|
|
75
|
+
# This array will be appended after "--" instead of being set through one
|
|
76
|
+
# specific flag. For example, with ["--foo", "--bar=baz"] in the args,
|
|
77
|
+
# this would generate a command like:
|
|
78
|
+
# chromeos-webdriver-server.js -- --foo --bar=baz
|
|
79
|
+
# Those parameters will be passed on to Chrome instead of used by the
|
|
80
|
+
# WebDriver server.
|
|
81
|
+
generic:args: *minimum_chromeos_args
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
ChromeMac:
|
|
85
|
+
browser: chrome
|
|
86
|
+
os: Mac
|
|
87
|
+
extra_config: *chrome_config
|
|
88
|
+
|
|
89
|
+
FirefoxMac:
|
|
90
|
+
browser: firefox
|
|
91
|
+
os: Mac
|
|
92
|
+
extra_config: *firefox_config
|
|
93
|
+
|
|
94
|
+
Safari:
|
|
95
|
+
browser: safari
|
|
96
|
+
os: Mac
|
|
97
|
+
|
|
98
|
+
SafariTP:
|
|
99
|
+
# TODO(b/152646297): Safari TP not launching as of Safari 15.4
|
|
100
|
+
disabled: true
|
|
101
|
+
browser: safari
|
|
102
|
+
os: Mac
|
|
103
|
+
extra_config:
|
|
104
|
+
safari.options:
|
|
105
|
+
technologyPreview: true
|
|
106
|
+
|
|
107
|
+
ChromeWindows:
|
|
108
|
+
browser: chrome
|
|
109
|
+
os: Windows
|
|
110
|
+
extra_config: *chrome_config
|
|
111
|
+
|
|
112
|
+
FirefoxWindows:
|
|
113
|
+
browser: firefox
|
|
114
|
+
os: Windows
|
|
115
|
+
extra_config: *firefox_config
|
|
116
|
+
|
|
117
|
+
IE11:
|
|
118
|
+
# IE11 support has been removed from the latest release branch.
|
|
119
|
+
disabled: true
|
|
120
|
+
browser: internet explorer
|
|
121
|
+
os: Windows
|
|
122
|
+
extra_config:
|
|
123
|
+
se:ieOptions:
|
|
124
|
+
# The zoom setting must be checked, or screenshot tests will be way off!
|
|
125
|
+
ignoreZoomSetting: false
|
|
126
|
+
ignoreProtectedModeSettings: true
|
|
127
|
+
|
|
128
|
+
Edge:
|
|
129
|
+
browser: msedge
|
|
130
|
+
os: Windows
|
|
131
|
+
|
|
132
|
+
ChromeLinux:
|
|
133
|
+
browser: chrome
|
|
134
|
+
os: Linux
|
|
135
|
+
extra_config: *chrome_config
|
|
136
|
+
|
|
137
|
+
FirefoxLinux:
|
|
138
|
+
browser: firefox
|
|
139
|
+
os: Linux
|
|
140
|
+
extra_config: *firefox_config
|
|
141
|
+
|
|
142
|
+
ChromeAndroid:
|
|
143
|
+
browser: chrome
|
|
144
|
+
os: Android
|
|
145
|
+
extra_config: *chrome_android_config
|
|
146
|
+
|
|
147
|
+
Chromecast:
|
|
148
|
+
browser: chromecast
|
|
149
|
+
|
|
150
|
+
Chromebook:
|
|
151
|
+
# TODO(b/145916766): Persistent license tests failing
|
|
152
|
+
disabled: true
|
|
153
|
+
browser: chromeos
|
|
154
|
+
version: Pixelbook
|
|
155
|
+
extra_config: *chromeos_config
|
|
156
|
+
|
|
157
|
+
Tizen:
|
|
158
|
+
# TODO(joeyparrish): Get Tizen TV mounted in the lab and connected
|
|
159
|
+
disabled: true
|
|
160
|
+
browser: tizen
|
|
161
|
+
|
|
162
|
+
XboxOne:
|
|
163
|
+
browser: xboxone
|
|
@@ -63,23 +63,6 @@ def _modules_need_update():
|
|
|
63
63
|
|
|
64
64
|
return False
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
def _parse_version(version):
|
|
68
|
-
"""Converts the given string version to a tuple of numbers."""
|
|
69
|
-
# Handle any prerelease or build metadata, such as -beta or -g1234
|
|
70
|
-
if '-' in version:
|
|
71
|
-
version, trailer = version.split('-')
|
|
72
|
-
else:
|
|
73
|
-
# Versions without a trailer should sort later than those with a trailer.
|
|
74
|
-
# For example, 2.5.0-beta comes before 2.5.0.
|
|
75
|
-
# To accomplish this, we synthesize a trailer which sorts later than any
|
|
76
|
-
# _reasonable_ alphanumeric version trailer would. These characters have a
|
|
77
|
-
# high value in ASCII.
|
|
78
|
-
trailer = '}}}'
|
|
79
|
-
numeric_parts = [int(i) for i in version.split('.')]
|
|
80
|
-
return tuple(numeric_parts + [trailer])
|
|
81
|
-
|
|
82
|
-
|
|
83
66
|
def get_source_base():
|
|
84
67
|
"""Returns the absolute path to the source code base."""
|
|
85
68
|
return os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
|
|
@@ -338,21 +321,13 @@ def update_node_modules():
|
|
|
338
321
|
|
|
339
322
|
base = cygwin_safe_path(get_source_base())
|
|
340
323
|
|
|
341
|
-
# Check the version of npm.
|
|
342
|
-
version = execute_get_output(['npm', '-v']).decode('utf8')
|
|
343
|
-
|
|
344
|
-
if _parse_version(version) < _parse_version('5.0.0'):
|
|
345
|
-
logging.error('npm version is too old, please upgrade. e.g.:')
|
|
346
|
-
logging.error(' npm install -g npm')
|
|
347
|
-
return False
|
|
348
|
-
|
|
349
324
|
# Update the modules.
|
|
350
325
|
# Actually change directories instead of using npm --prefix.
|
|
351
|
-
# See npm/npm#17027 and
|
|
326
|
+
# See npm/npm#17027 and shaka-project/shaka-player#776 for more details.
|
|
352
327
|
with InDir(base):
|
|
353
|
-
# npm
|
|
354
|
-
#
|
|
355
|
-
execute_get_output(['npm', '
|
|
328
|
+
# npm ci uses package-lock.json to get a stable, reproducible set of
|
|
329
|
+
# packages installed.
|
|
330
|
+
execute_get_output(['npm', 'ci'])
|
|
356
331
|
|
|
357
332
|
# Update the timestamp of the file that tracks when we last updated.
|
|
358
333
|
open(_node_modules_last_update_path(), 'wb').close()
|