shaka-player 3.3.1 → 3.3.4
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/pull_request_template.md +6 -34
- 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 +147 -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 +1707 -1670
- 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/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/generateTsDefs.py +2 -0
- package/build/shaka-lab.yaml +163 -0
- package/build/shakaBuildHelpers.py +4 -29
- package/build/test.py +93 -28
- package/build/types/polyfill +1 -0
- 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 +3 -3
- 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 +233 -226
- package/dist/locales.js +32 -32
- 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 +250 -237
- package/dist/shaka-player.compiled.debug.d.ts +250 -237
- package/dist/shaka-player.compiled.debug.externs.js +31 -15
- package/dist/shaka-player.compiled.debug.js +252 -257
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +31 -15
- package/dist/shaka-player.compiled.js +844 -849
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +296 -292
- package/dist/shaka-player.ui.debug.d.ts +296 -292
- package/dist/shaka-player.ui.debug.externs.js +33 -26
- package/dist/shaka-player.ui.debug.js +345 -351
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +33 -26
- package/dist/shaka-player.ui.js +1002 -1008
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/REDESIGN.md +33 -33
- package/docs/design/bg-fetch.md +2 -2
- 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/externs/cmcd.js +1 -1
- package/karma.conf.js +156 -45
- package/lib/abr/simple_abr_manager.js +12 -6
- package/lib/ads/ad_manager.js +1 -0
- package/lib/cast/cast_proxy.js +6 -4
- package/lib/cast/cast_receiver.js +3 -0
- 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 +40 -30
- 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 +4 -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/quality_observer.js +17 -34
- package/lib/media/region_observer.js +39 -33
- package/lib/media/region_timeline.js +17 -19
- package/lib/media/streaming_engine.js +7 -7
- package/lib/media/time_ranges_utils.js +1 -3
- package/lib/media/video_wrapper.js +1 -1
- package/lib/net/networking_engine.js +5 -1
- package/lib/offline/storage.js +12 -13
- package/lib/player.js +65 -25
- 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/polyfill/symbol.js +46 -0
- 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/fake_event_target.js +21 -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 +10 -11
- 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 +62 -40
- package/roadmap.md +17 -17
- package/shaka-player.uncompiled.js +1 -0
- 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 +45 -15
- package/test/dash/dash_parser_manifest_unit.js +4 -17
- 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 +76 -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/quality_observer_unit.js +4 -5
- package/test/media/region_observer_unit.js +40 -10
- package/test/media/region_timeline_unit.js +40 -25
- 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 -27
- package/test/player_external.js +2 -10
- package/test/player_integration.js +22 -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 +15 -26
- 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 +9 -19
- 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/cmcd_manager_unit.js +0 -3
- 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/controls.js +3 -0
- package/ui/less/ad_controls.less +6 -6
- package/ui/less/buttons.less +6 -6
- package/ui/less/containers.less +13 -15
- package/ui/less/overflow_menu.less +4 -4
- package/ui/less/range_elements.less +7 -2
- package/ui/less/tooltip.less +4 -4
- package/ui/locales/sjn-translations.yaml +257 -0
- package/ui/locales/sjn.json +42 -0
- package/ui/localization.js +12 -36
- package/ui/seek_bar.js +2 -1
- package/externs/svgelement.js +0 -18
- package/externs/webcrypto.js +0 -18
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shaka-player",
|
|
3
3
|
"description": "DASH/EME video player library",
|
|
4
|
-
"version": "3.3.
|
|
5
|
-
"homepage": "https://github.com/
|
|
4
|
+
"version": "3.3.4",
|
|
5
|
+
"homepage": "https://github.com/shaka-project/shaka-player",
|
|
6
6
|
"author": "Google",
|
|
7
7
|
"maintainers": [
|
|
8
8
|
{
|
|
@@ -11,63 +11,85 @@
|
|
|
11
11
|
}
|
|
12
12
|
],
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@
|
|
15
|
-
"@
|
|
14
|
+
"@babel/core": "^7.17.5",
|
|
15
|
+
"@babel/polyfill": "^7.12.1",
|
|
16
|
+
"@babel/preset-env": "^7.16.11",
|
|
16
17
|
"@teppeis/clutz": "^1.0.29-4c95e12.v20190929",
|
|
17
|
-
"awesomplete": "^1.1.
|
|
18
|
-
"babel-
|
|
19
|
-
"babel-plugin-istanbul": "^4.1.6",
|
|
20
|
-
"babel-polyfill": "^6.26.0",
|
|
21
|
-
"babel-preset-env": "^1.7.0",
|
|
18
|
+
"awesomplete": "^1.1.5",
|
|
19
|
+
"babel-plugin-istanbul": "^6.1.1",
|
|
22
20
|
"cajon": "^0.4.4",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
21
|
+
"code-prettify": "^0.1.0",
|
|
22
|
+
"color-themes-for-google-code-prettify": "^2.0.4",
|
|
23
|
+
"core-js": "^3.21.1",
|
|
24
|
+
"dialog-polyfill": "^0.5.6",
|
|
25
25
|
"es6-promise-polyfill": "^1.2.0",
|
|
26
|
-
"eslint": "^
|
|
27
|
-
"eslint-config-google": "^0.
|
|
26
|
+
"eslint": "^8.9.0",
|
|
27
|
+
"eslint-config-google": "^0.14.0",
|
|
28
28
|
"eslint-plugin-shaka-rules": "file:./build/eslint-plugin-shaka-rules",
|
|
29
29
|
"esprima": "^4.0.1",
|
|
30
30
|
"fastestsmallesttextencoderdecoder": "^1.0.22",
|
|
31
31
|
"fontfaceonload": "^1.0.2",
|
|
32
|
-
"google-closure-compiler-java": "^
|
|
33
|
-
"google-closure-
|
|
34
|
-
"
|
|
32
|
+
"google-closure-compiler-java": "^20220301.0.0",
|
|
33
|
+
"google-closure-deps": "https://gitpkg.now.sh/google/closure-library/closure-deps?d7736da6",
|
|
34
|
+
"google-closure-library": "^20220301.0.0",
|
|
35
|
+
"htmlhint": "^1.1.3",
|
|
35
36
|
"jasmine-ajax": "^4.0.0",
|
|
36
|
-
"jimp": "^0.
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"karma
|
|
40
|
-
"karma-
|
|
41
|
-
"karma-coverage": "^
|
|
42
|
-
"karma-
|
|
43
|
-
"karma-firefox-launcher": "^1.1.0",
|
|
44
|
-
"karma-ie-launcher": "^1.0.0",
|
|
45
|
-
"karma-jasmine": "^3.3.1",
|
|
37
|
+
"jimp": "^0.16.1",
|
|
38
|
+
"js-yaml": "^4.1.0",
|
|
39
|
+
"jsdoc": "github:joeyparrish/jsdoc#2ca85bb6",
|
|
40
|
+
"karma": "^6.3.16",
|
|
41
|
+
"karma-babel-preprocessor": "^8.0.2",
|
|
42
|
+
"karma-coverage": "^2.2.0",
|
|
43
|
+
"karma-jasmine": "^4.0.1",
|
|
46
44
|
"karma-jasmine-ajax": "^0.1.13",
|
|
45
|
+
"karma-local-wd-launcher": "^1.6.1",
|
|
47
46
|
"karma-opera-launcher": "^1.0.0",
|
|
48
|
-
"karma-sourcemap-loader": "^0.3.
|
|
49
|
-
"karma-spec-reporter": "0.0.
|
|
47
|
+
"karma-sourcemap-loader": "^0.3.8",
|
|
48
|
+
"karma-spec-reporter": "^0.0.34",
|
|
50
49
|
"karma-webdriver-launcher": "^1.0.8",
|
|
51
|
-
"less": "
|
|
52
|
-
"less-plugin-clean-css": "
|
|
50
|
+
"less": "https://gitpkg.now.sh/joeyparrish/less.js/packages/less?28c63a43",
|
|
51
|
+
"less-plugin-clean-css": "github:austingardner/less-plugin-clean-css#4e9e77bf",
|
|
53
52
|
"material-design-lite": "^1.3.0",
|
|
54
|
-
"mux.js": "^5.
|
|
55
|
-
"
|
|
56
|
-
"
|
|
53
|
+
"mux.js": "^5.14.1",
|
|
54
|
+
"open-sans-fonts": "^1.6.2",
|
|
55
|
+
"postcss-less": "^6.0.0",
|
|
56
|
+
"pwacompat": "^2.0.17",
|
|
57
|
+
"rimraf": "^3.0.2",
|
|
57
58
|
"sprintf-js": "^1.1.2",
|
|
58
|
-
"
|
|
59
|
-
"stylelint
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"which": "^
|
|
59
|
+
"ssim.js": "^3.5.0",
|
|
60
|
+
"stylelint": "^14.5.1",
|
|
61
|
+
"stylelint-config-standard": "^25.0.0",
|
|
62
|
+
"tippy.js": "^4.3.5",
|
|
63
|
+
"which": "^2.0.2"
|
|
64
|
+
},
|
|
65
|
+
"shakaCustom": {
|
|
66
|
+
"purposeOfDemoDeps": "These are the files from node_modules that need to be deployed with the demo app.",
|
|
67
|
+
"demoDeps": [
|
|
68
|
+
"awesomplete/awesomplete.css",
|
|
69
|
+
"awesomplete/awesomplete.min.js",
|
|
70
|
+
"dialog-polyfill/dialog-polyfill.css",
|
|
71
|
+
"dialog-polyfill/dist/dialog-polyfill.js",
|
|
72
|
+
"eme-encryption-scheme-polyfill/index.js",
|
|
73
|
+
"es6-promise-polyfill/promise.min.js",
|
|
74
|
+
"fastestsmallesttextencoderdecoder/EncoderDecoderTogether.min.js",
|
|
75
|
+
"google-closure-library/closure/goog/base.js",
|
|
76
|
+
"less/dist/less.js",
|
|
77
|
+
"material-design-lite/dist/material.indigo-blue.min.css",
|
|
78
|
+
"material-design-lite/dist/material.min.js",
|
|
79
|
+
"mux.js/dist/mux.min.js",
|
|
80
|
+
"popper.js/dist/umd/popper.min.js",
|
|
81
|
+
"pwacompat/pwacompat.min.js",
|
|
82
|
+
"tippy.js/umd/index.min.js",
|
|
83
|
+
"tippy.js/index.css"
|
|
84
|
+
]
|
|
63
85
|
},
|
|
64
86
|
"main": "dist/shaka-player.compiled.js",
|
|
65
87
|
"repository": {
|
|
66
88
|
"type": "git",
|
|
67
|
-
"url": "https://github.com/
|
|
89
|
+
"url": "https://github.com/shaka-project/shaka-player.git"
|
|
68
90
|
},
|
|
69
91
|
"bugs": {
|
|
70
|
-
"url": "https://github.com/
|
|
92
|
+
"url": "https://github.com/shaka-project/shaka-player/issues"
|
|
71
93
|
},
|
|
72
94
|
"license": "Apache-2.0",
|
|
73
95
|
"scripts": {
|
package/roadmap.md
CHANGED
|
@@ -10,49 +10,49 @@ so the exact milestone for future features is not pre-determined.
|
|
|
10
10
|
|
|
11
11
|
Priority features up next:
|
|
12
12
|
- Support containerless formats
|
|
13
|
-
https://github.com/
|
|
13
|
+
https://github.com/shaka-project/shaka-player/issues/2337
|
|
14
14
|
- Preload API
|
|
15
|
-
https://github.com/
|
|
15
|
+
https://github.com/shaka-project/shaka-player/issues/880
|
|
16
16
|
- Codec-switching and order preference
|
|
17
|
-
https://github.com/
|
|
18
|
-
https://github.com/
|
|
17
|
+
https://github.com/shaka-project/shaka-player/issues/1528
|
|
18
|
+
https://github.com/shaka-project/shaka-player/issues/2179
|
|
19
19
|
|
|
20
20
|
Candidate features for future release cycles:
|
|
21
21
|
- HLS interstitial support
|
|
22
|
-
https://github.com/
|
|
22
|
+
https://github.com/shaka-project/shaka-player/issues/3364
|
|
23
23
|
- Support ID3 tags in mp4
|
|
24
|
-
https://github.com/
|
|
24
|
+
https://github.com/shaka-project/shaka-player/issues/3351
|
|
25
25
|
- MSE support for FairPlay
|
|
26
|
-
https://github.com/
|
|
26
|
+
https://github.com/shaka-project/shaka-player/issues/3346
|
|
27
27
|
- Smaller, more modular binary
|
|
28
28
|
- Official TypeScript defs, generated from source
|
|
29
|
-
https://github.com/
|
|
29
|
+
https://github.com/shaka-project/shaka-player/issues/1030
|
|
30
30
|
- Shaka Analytics Component and an integration with BigQuery Analytics
|
|
31
|
-
https://github.com/
|
|
31
|
+
https://github.com/shaka-project/shaka-player/issues/3359
|
|
32
32
|
- Integration with Google Video ML/Cloud AI
|
|
33
33
|
|
|
34
34
|
v3.3 - 2021 Q3 or Q4
|
|
35
35
|
- Background fetch for offline storage
|
|
36
|
-
https://github.com/
|
|
36
|
+
https://github.com/shaka-project/shaka-player/issues/879
|
|
37
37
|
- HLS performance improvements
|
|
38
|
-
https://github.com/
|
|
38
|
+
https://github.com/shaka-project/shaka-player/issues/3363
|
|
39
39
|
|
|
40
40
|
=====
|
|
41
41
|
|
|
42
42
|
v3.2 - 2021 Q3
|
|
43
43
|
- MediaCapabilities to make performance-based decisions
|
|
44
|
-
https://github.com/
|
|
44
|
+
https://github.com/shaka-project/shaka-player/issues/1391
|
|
45
45
|
- Configurable key-system priority
|
|
46
|
-
https://github.com/
|
|
46
|
+
https://github.com/shaka-project/shaka-player/issues/3002
|
|
47
47
|
|
|
48
48
|
v3.1 - 2021 Q2
|
|
49
49
|
- Low-latency live (LL-HLS, LL-DASH)
|
|
50
|
-
https://github.com/
|
|
50
|
+
https://github.com/shaka-project/shaka-player/issues/1525
|
|
51
51
|
- Own CEA parser, use mux.js only for TS
|
|
52
|
-
https://github.com/
|
|
52
|
+
https://github.com/shaka-project/shaka-player/issues/2648
|
|
53
53
|
- Thumbnail tracks
|
|
54
|
-
DASH: https://github.com/
|
|
55
|
-
HLS: https://github.com/
|
|
54
|
+
DASH: https://github.com/shaka-project/shaka-player/issues/559
|
|
55
|
+
HLS: https://github.com/shaka-project/shaka-player/issues/2429
|
|
56
56
|
|
|
57
57
|
v3.0 - 2020 Q2
|
|
58
58
|
- Code health improvements
|
|
@@ -45,6 +45,7 @@ goog.require('shaka.polyfill.PatchedMediaKeysNop');
|
|
|
45
45
|
goog.require('shaka.polyfill.PatchedMediaKeysWebkit');
|
|
46
46
|
goog.require('shaka.polyfill.PiPWebkit');
|
|
47
47
|
goog.require('shaka.polyfill.RandomUUID');
|
|
48
|
+
goog.require('shaka.polyfill.Symbol');
|
|
48
49
|
goog.require('shaka.polyfill.VTTCue');
|
|
49
50
|
goog.require('shaka.polyfill.VideoPlayPromise');
|
|
50
51
|
goog.require('shaka.polyfill.VideoPlaybackQuality');
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.abr.SimpleAbrManager');
|
|
8
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
11
|
-
|
|
12
7
|
describe('SimpleAbrManager', () => {
|
|
13
8
|
const sufficientBWMultiplier = 1.06;
|
|
14
9
|
const defaultBandwidthEstimate = 500e3; // 500kbps
|
|
@@ -91,7 +86,7 @@ describe('SimpleAbrManager', () => {
|
|
|
91
86
|
config.defaultBandwidthEstimate = 3e6;
|
|
92
87
|
abrManager.configure(config);
|
|
93
88
|
const chosen = abrManager.chooseVariant();
|
|
94
|
-
expect(chosen.id).toBe(
|
|
89
|
+
expect(chosen.id).toBe(103);
|
|
95
90
|
});
|
|
96
91
|
|
|
97
92
|
it('can handle empty variants', () => {
|
|
@@ -170,7 +165,7 @@ describe('SimpleAbrManager', () => {
|
|
|
170
165
|
it('can handle 0 duration segments', () => {
|
|
171
166
|
// Makes sure bandwidth estimate doesn't get set to NaN
|
|
172
167
|
// when a 0 duration segment is encountered.
|
|
173
|
-
// https://github.com/
|
|
168
|
+
// https://github.com/shaka-project/shaka-player/issues/582
|
|
174
169
|
const bandwidth = 5e5;
|
|
175
170
|
const bytesPerSecond = sufficientBWMultiplier * bandwidth / 8.0;
|
|
176
171
|
|
|
@@ -208,7 +203,7 @@ describe('SimpleAbrManager', () => {
|
|
|
208
203
|
abrManager.segmentDownloaded(1000, bytesPerSecond);
|
|
209
204
|
|
|
210
205
|
// Expect variants 4 to be chosen
|
|
211
|
-
const expectedVariant = variants[
|
|
206
|
+
const expectedVariant = variants[3];
|
|
212
207
|
|
|
213
208
|
expect(switchCallback).toHaveBeenCalledWith(expectedVariant);
|
|
214
209
|
});
|
|
@@ -4,12 +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.FakeVideo');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
|
|
13
7
|
describe('Ad manager', () => {
|
|
14
8
|
/** @type {!shaka.test.FakeVideo} */
|
|
15
9
|
let mockVideo;
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cast.CastProxy');
|
|
8
|
-
goog.require('shaka.cast.CastSender');
|
|
9
|
-
goog.require('shaka.test.FakeVideo');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.FakeEvent');
|
|
13
|
-
goog.require('shaka.util.PublicPromise');
|
|
14
|
-
|
|
15
7
|
describe('CastProxy', () => {
|
|
16
8
|
const CastProxy = shaka.cast.CastProxy;
|
|
17
9
|
const FakeEvent = shaka.util.FakeEvent;
|
|
@@ -4,22 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.Player');
|
|
8
|
-
goog.require('shaka.cast.CastReceiver');
|
|
9
|
-
goog.require('shaka.cast.CastUtils');
|
|
10
|
-
goog.require('shaka.log');
|
|
11
|
-
goog.require('shaka.media.DrmEngine');
|
|
12
|
-
goog.require('shaka.media.ManifestParser');
|
|
13
|
-
goog.require('shaka.media.StreamingEngine');
|
|
14
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
15
|
-
goog.require('shaka.test.TestScheme');
|
|
16
|
-
goog.require('shaka.test.UiUtils');
|
|
17
|
-
goog.require('shaka.util.EventManager');
|
|
18
|
-
goog.require('shaka.util.Functional');
|
|
19
|
-
goog.require('shaka.util.Iterables');
|
|
20
|
-
goog.require('shaka.util.Platform');
|
|
21
|
-
goog.require('shaka.util.PublicPromise');
|
|
22
|
-
|
|
23
7
|
// The receiver is only meant to run on the Chromecast, so we have the
|
|
24
8
|
// ability to use modern APIs there that may not be available on all of the
|
|
25
9
|
// browsers our library supports. Because of this, CastReceiver tests will
|
|
@@ -198,8 +182,7 @@ filterDescribe('CastReceiver', castReceiverIntegrationSupport, () => {
|
|
|
198
182
|
// the average length is expected to be lower than the length of the first
|
|
199
183
|
// update message.
|
|
200
184
|
let totalLength = 0;
|
|
201
|
-
for (
|
|
202
|
-
shaka.util.Functional.ignored(_);
|
|
185
|
+
for (let i = 0; i < 50; i++) {
|
|
203
186
|
// eslint-disable-next-line no-await-in-loop
|
|
204
187
|
const message = await waitForUpdateMessage();
|
|
205
188
|
totalLength += message.length;
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cast.CastReceiver');
|
|
8
|
-
goog.require('shaka.cast.CastUtils');
|
|
9
|
-
goog.require('shaka.test.FakeVideo');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.Platform');
|
|
13
|
-
goog.require('shaka.util.PublicPromise');
|
|
14
|
-
|
|
15
7
|
// The receiver is only meant to run on the Chromecast, so we have the
|
|
16
8
|
// ability to use modern APIs there that may not be available on all of the
|
|
17
9
|
// browsers our library supports. Because of this, CastReceiver tests will
|
|
@@ -756,7 +748,7 @@ filterDescribe('CastReceiver', castReceiverSupport, () => {
|
|
|
756
748
|
expect(mockGenericMessageBus.broadcast).toHaveBeenCalledTimes(1);
|
|
757
749
|
|
|
758
750
|
// This covers the lack of scrubber in the Google Home app, as described
|
|
759
|
-
// in https://github.com/
|
|
751
|
+
// in https://github.com/shaka-project/shaka-player/issues/2606
|
|
760
752
|
expectMediaInfo('URI A', 1);
|
|
761
753
|
});
|
|
762
754
|
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cast.CastSender');
|
|
8
|
-
goog.require('shaka.cast.CastUtils');
|
|
9
|
-
goog.require('shaka.test.StatusPromise');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
|
|
13
7
|
describe('CastSender', () => {
|
|
14
8
|
const CastSender = shaka.cast.CastSender;
|
|
15
9
|
const CastUtils = shaka.cast.CastUtils;
|
|
@@ -4,19 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.Player');
|
|
8
|
-
goog.require('shaka.cast.CastUtils');
|
|
9
|
-
goog.require('shaka.media.MediaSourceEngine');
|
|
10
|
-
goog.require('shaka.media.TimeRangesUtils');
|
|
11
|
-
goog.require('shaka.test.FakeClosedCaptionParser');
|
|
12
|
-
goog.require('shaka.test.FakeTextDisplayer');
|
|
13
|
-
goog.require('shaka.test.UiUtils');
|
|
14
|
-
goog.require('shaka.test.Util');
|
|
15
|
-
goog.require('shaka.util.EventManager');
|
|
16
|
-
goog.require('shaka.util.FakeEvent');
|
|
17
|
-
goog.require('shaka.util.FakeEventTarget');
|
|
18
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
19
|
-
|
|
20
7
|
describe('CastUtils', () => {
|
|
21
8
|
const CastUtils = shaka.cast.CastUtils;
|
|
22
9
|
const FakeEvent = shaka.util.FakeEvent;
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.Cea608Memory');
|
|
8
|
-
goog.require('shaka.cea.CeaUtils');
|
|
9
|
-
goog.require('shaka.test.CeaUtils');
|
|
10
|
-
goog.require('shaka.text.Cue');
|
|
11
|
-
|
|
12
7
|
describe('Cea608Memory', () => {
|
|
13
8
|
const CeaUtils = shaka.test.CeaUtils;
|
|
14
9
|
|
|
@@ -4,13 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.Cea708Service');
|
|
8
|
-
goog.require('shaka.cea.CeaUtils');
|
|
9
|
-
goog.require('shaka.cea.DtvccPacket');
|
|
10
|
-
goog.require('shaka.cea.DtvccPacketBuilder');
|
|
11
|
-
goog.require('shaka.test.CeaUtils');
|
|
12
|
-
goog.require('shaka.text.Cue');
|
|
13
|
-
|
|
14
7
|
describe('Cea708Service', () => {
|
|
15
8
|
const CeaUtils = shaka.test.CeaUtils;
|
|
16
9
|
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.Cea708Window');
|
|
8
|
-
goog.require('shaka.cea.CeaUtils');
|
|
9
|
-
goog.require('shaka.test.CeaUtils');
|
|
10
|
-
goog.require('shaka.text.Cue');
|
|
11
|
-
|
|
12
7
|
describe('Cea708Window', () => {
|
|
13
8
|
const CeaUtils = shaka.test.CeaUtils;
|
|
14
9
|
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.CeaDecoder');
|
|
8
|
-
goog.require('shaka.cea.CeaUtils');
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.test.CeaUtils');
|
|
11
|
-
goog.require('shaka.text.Cue');
|
|
12
|
-
|
|
13
7
|
describe('CeaDecoder', () => {
|
|
14
8
|
const CeaUtils = shaka.test.CeaUtils;
|
|
15
9
|
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.DtvccPacket');
|
|
8
|
-
goog.require('shaka.cea.DtvccPacketBuilder');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.util.Error');
|
|
11
|
-
|
|
12
7
|
describe('DtvccPacket', () => {
|
|
13
8
|
/** @type {!shaka.cea.DtvccPacket} */
|
|
14
9
|
let dtvccPacket;
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.Mp4CeaParser');
|
|
8
|
-
goog.require('shaka.test.Util');
|
|
9
|
-
goog.require('shaka.util.Error');
|
|
10
|
-
|
|
11
7
|
describe('Mp4CeaParser', () => {
|
|
12
8
|
const ceaInitSegmentUri = '/base/test/test/assets/cea-init.mp4';
|
|
13
9
|
const ceaSegmentUri = '/base/test/test/assets/cea-segment.mp4';
|
|
@@ -4,15 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.dash.ContentProtection');
|
|
8
|
-
goog.require('shaka.dash.DashParser');
|
|
9
|
-
goog.require('shaka.test.Dash');
|
|
10
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.Iterables');
|
|
13
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
14
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
15
|
-
|
|
16
7
|
// Test DRM-related parsing.
|
|
17
8
|
describe('DashParser ContentProtection', () => {
|
|
18
9
|
const Dash = shaka.test.Dash;
|
|
@@ -142,7 +133,7 @@ describe('DashParser ContentProtection', () => {
|
|
|
142
133
|
|
|
143
134
|
const variants = [];
|
|
144
135
|
const numVariants = 2;
|
|
145
|
-
for (
|
|
136
|
+
for (let i = 0; i < numVariants; i++) {
|
|
146
137
|
const variant = jasmine.objectContaining({
|
|
147
138
|
video: jasmine.objectContaining({
|
|
148
139
|
keyIds: new Set(keyIds[i] ? [keyIds[i]] : []),
|
|
@@ -4,19 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.dash.DashParser');
|
|
9
|
-
goog.require('shaka.media.SegmentReference');
|
|
10
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
11
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
12
|
-
goog.require('shaka.test.ManifestParser');
|
|
13
|
-
goog.require('shaka.test.Util');
|
|
14
|
-
goog.require('shaka.util.AbortableOperation');
|
|
15
|
-
goog.require('shaka.util.Error');
|
|
16
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
17
|
-
goog.require('shaka.util.StringUtils');
|
|
18
|
-
goog.requireType('shaka.util.PublicPromise');
|
|
19
|
-
|
|
20
7
|
describe('DashParser Live', () => {
|
|
21
8
|
const Util = shaka.test.Util;
|
|
22
9
|
const ManifestParser = shaka.test.ManifestParser;
|
|
@@ -1228,8 +1215,8 @@ describe('DashParser Live', () => {
|
|
|
1228
1215
|
const liveEdge =
|
|
1229
1216
|
manifest.presentationTimeline.getSegmentAvailabilityEnd();
|
|
1230
1217
|
|
|
1231
|
-
// In https://github.com/
|
|
1232
|
-
// final segment failed an assertion and returned endTime == 0.
|
|
1218
|
+
// In https://github.com/shaka-project/shaka-player/issues/1204, a get on
|
|
1219
|
+
// the final segment failed an assertion and returned endTime == 0.
|
|
1233
1220
|
// Find the last segment by looking just before the live edge. Looking
|
|
1234
1221
|
// right on the live edge creates test flake, and the segments are 2
|
|
1235
1222
|
// seconds in duration.
|
|
@@ -1389,6 +1376,49 @@ describe('DashParser Live', () => {
|
|
|
1389
1376
|
.toHaveBeenCalledWith(
|
|
1390
1377
|
jasmine.objectContaining({id: '2', startTime: 10, endTime: 25}));
|
|
1391
1378
|
});
|
|
1379
|
+
|
|
1380
|
+
it('will not add timeline regions outside the DVR window', async () => {
|
|
1381
|
+
const manifest = [
|
|
1382
|
+
'<MPD type="dynamic" minimumUpdatePeriod="PT' + updateTime + 'S"',
|
|
1383
|
+
' availabilityStartTime="1970-01-01T00:00:00Z"',
|
|
1384
|
+
' suggestedPresentationDelay="PT0S"',
|
|
1385
|
+
' timeShiftBufferDepth="PT30S">',
|
|
1386
|
+
' <Period id="1">',
|
|
1387
|
+
' <EventStream schemeIdUri="http://example.com" timescale="1">',
|
|
1388
|
+
' <Event id="0" presentationTime="0" duration="10"/>',
|
|
1389
|
+
' <Event id="1" presentationTime="10" duration="10"/>',
|
|
1390
|
+
' <Event id="2" presentationTime="20" duration="10"/>',
|
|
1391
|
+
' <Event id="3" presentationTime="30" duration="10"/>',
|
|
1392
|
+
' <Event id="4" presentationTime="40" duration="10"/>',
|
|
1393
|
+
' </EventStream>',
|
|
1394
|
+
' <AdaptationSet mimeType="video/mp4">',
|
|
1395
|
+
' <Representation bandwidth="1">',
|
|
1396
|
+
' <SegmentTemplate startNumber="1" media="s$Number$.mp4"',
|
|
1397
|
+
' duration="2" />',
|
|
1398
|
+
' </Representation>',
|
|
1399
|
+
' </AdaptationSet>',
|
|
1400
|
+
' </Period>',
|
|
1401
|
+
'</MPD>',
|
|
1402
|
+
].join('\n');
|
|
1403
|
+
|
|
1404
|
+
// 45 seconds after the epoch, which is also 45 seconds after the
|
|
1405
|
+
// presentation started. Only the last 30 seconds are available, from
|
|
1406
|
+
// time 15 to 45.
|
|
1407
|
+
Date.now = () => 45 * 1000;
|
|
1408
|
+
|
|
1409
|
+
fakeNetEngine.setResponseText('dummy://foo', manifest);
|
|
1410
|
+
await parser.start('dummy://foo', playerInterface);
|
|
1411
|
+
|
|
1412
|
+
expect(onTimelineRegionAddedSpy).toHaveBeenCalledTimes(4);
|
|
1413
|
+
expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
|
|
1414
|
+
jasmine.objectContaining({id: '1'}));
|
|
1415
|
+
expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
|
|
1416
|
+
jasmine.objectContaining({id: '2'}));
|
|
1417
|
+
expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
|
|
1418
|
+
jasmine.objectContaining({id: '3'}));
|
|
1419
|
+
expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
|
|
1420
|
+
jasmine.objectContaining({id: '4'}));
|
|
1421
|
+
});
|
|
1392
1422
|
});
|
|
1393
1423
|
|
|
1394
1424
|
it('honors clockSyncUri for in-progress recordings', async () => {
|
|
@@ -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.SegmentReference');
|
|
9
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
10
|
-
goog.require('shaka.test.Dash');
|
|
11
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
12
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
13
|
-
goog.require('shaka.test.Util');
|
|
14
|
-
goog.require('shaka.util.AbortableOperation');
|
|
15
|
-
goog.require('shaka.util.Error');
|
|
16
|
-
goog.require('shaka.util.LanguageUtils');
|
|
17
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
18
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
19
|
-
goog.require('shaka.util.StringUtils');
|
|
20
|
-
goog.requireType('shaka.dash.DashParser');
|
|
21
|
-
|
|
22
7
|
// Test basic manifest parsing functionality.
|
|
23
8
|
describe('DashParser Manifest', () => {
|
|
24
9
|
const ContentType = shaka.util.ManifestParserUtils.ContentType;
|
|
@@ -985,7 +970,8 @@ describe('DashParser Manifest', () => {
|
|
|
985
970
|
|
|
986
971
|
it('duplicate Representation ids with live', async () => {
|
|
987
972
|
const source = [
|
|
988
|
-
'<MPD minBufferTime="PT75S" type="dynamic"
|
|
973
|
+
'<MPD minBufferTime="PT75S" type="dynamic"',
|
|
974
|
+
' availabilityStartTime="1970-01-01T00:00:00Z">',
|
|
989
975
|
' <Period id="1" duration="PT30S">',
|
|
990
976
|
' <AdaptationSet mimeType="video/mp4">',
|
|
991
977
|
' <Representation id="1" bandwidth="1">',
|
|
@@ -1276,7 +1262,8 @@ describe('DashParser Manifest', () => {
|
|
|
1276
1262
|
});
|
|
1277
1263
|
|
|
1278
1264
|
it('handles bandwidth of 0 or missing', async () => {
|
|
1279
|
-
// Regression test for
|
|
1265
|
+
// Regression test for
|
|
1266
|
+
// https://github.com/shaka-project/shaka-player/issues/938
|
|
1280
1267
|
const source = [
|
|
1281
1268
|
'<MPD minBufferTime="PT75S">',
|
|
1282
1269
|
' <Period id="1" duration="PT30S">',
|
|
@@ -4,13 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.test.Dash');
|
|
9
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.requireType('shaka.dash.DashParser');
|
|
13
|
-
|
|
14
7
|
describe('DashParser SegmentBase', () => {
|
|
15
8
|
const Dash = shaka.test.Dash;
|
|
16
9
|
|
|
@@ -308,7 +301,7 @@ describe('DashParser SegmentBase', () => {
|
|
|
308
301
|
expect(reference.endTime).toBe(10); // would be 12 without PTO
|
|
309
302
|
});
|
|
310
303
|
|
|
311
|
-
// https://github.com/
|
|
304
|
+
// https://github.com/shaka-project/shaka-player/issues/3230
|
|
312
305
|
it('works with multi-Period with eviction', async () => {
|
|
313
306
|
const source = [
|
|
314
307
|
'<MPD mediaPresentationDuration="PT75S">',
|