shaka-player 3.1.4 → 3.1.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 +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 +1540 -1474
- 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/shaka-lab.yaml +163 -0
- package/build/shakaBuildHelpers.py +4 -29
- package/build/test.py +93 -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 +224 -218
- 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 +237 -222
- package/dist/shaka-player.compiled.debug.d.ts +237 -222
- package/dist/shaka-player.compiled.debug.externs.js +20 -3
- package/dist/shaka-player.compiled.debug.js +361 -365
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +20 -3
- package/dist/shaka-player.compiled.js +811 -815
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +281 -275
- package/dist/shaka-player.ui.debug.d.ts +281 -275
- package/dist/shaka-player.ui.debug.externs.js +34 -26
- package/dist/shaka-player.ui.debug.js +384 -389
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +34 -26
- package/dist/shaka-player.ui.js +945 -950
- 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/externs/shaka/text.js +10 -0
- 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 +3 -3
- package/lib/cea/cea608_memory.js +1 -1
- package/lib/cea/cea708_service.js +6 -5
- package/lib/cea/cea_decoder.js +1 -1
- package/lib/cea/i_caption_decoder.js +2 -3
- package/lib/cea/mp4_cea_parser.js +11 -5
- package/lib/cea/sei_processor.js +6 -3
- package/lib/dash/dash_parser.js +43 -31
- 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/closed_caption_parser.js +0 -1
- 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/region_observer.js +39 -33
- package/lib/media/region_timeline.js +17 -19
- package/lib/media/streaming_engine.js +12 -9
- 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 +14 -15
- package/lib/player.js +52 -22
- package/lib/polyfill/all.js +2 -3
- package/lib/polyfill/encryption_scheme.js +1 -1
- package/lib/polyfill/media_capabilities.js +32 -17
- package/lib/polyfill/mediasource.js +1 -1
- package/lib/routing/walker.js +2 -3
- package/lib/text/cue.js +7 -1
- package/lib/text/simple_text_displayer.js +2 -1
- package/lib/text/text_engine.js +1 -1
- package/lib/text/ttml_text_parser.js +92 -63
- package/lib/text/ui_text_displayer.js +18 -12
- 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 +8 -9
- package/lib/util/platform.js +3 -3
- package/lib/util/pssh.js +1 -4
- package/lib/util/stream_utils.js +60 -8
- package/lib/util/string_utils.js +3 -5
- package/lib/util/uint8array_utils.js +3 -5
- package/lib/util/xml_utils.js +34 -7
- package/package.json +62 -40
- 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 +45 -15
- package/test/dash/dash_parser_manifest_unit.js +37 -18
- 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 +3 -17
- package/test/media/drm_engine_unit.js +7 -26
- 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 +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 +11 -37
- package/test/media/streaming_engine_unit.js +155 -34
- 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 +57 -42
- 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 +79 -0
- 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 +10 -23
- 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 +495 -237
- 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/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 +38 -37
- 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 +4 -4
- package/ui/less/buttons.less +5 -9
- 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/ui/localization.js +12 -36
- package/ui/text_selection.js +1 -0
- package/externs/media_capabilities.js +0 -16
- package/externs/svgelement.js +0 -18
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.offline.OfflineManifestParser');
|
|
8
|
-
goog.require('shaka.offline.OfflineUri');
|
|
9
|
-
goog.require('shaka.offline.StorageMuxer');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
|
|
13
7
|
/** @return {boolean} */
|
|
14
8
|
const offlineManifestParserSupport = () => shaka.offline.StorageMuxer.support();
|
|
15
9
|
filterDescribe('OfflineManifestParser', offlineManifestParserSupport, () => {
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
8
|
-
goog.require('shaka.net.NetworkingEngine.RequestType');
|
|
9
|
-
goog.require('shaka.offline.OfflineScheme');
|
|
10
|
-
goog.require('shaka.offline.OfflineUri');
|
|
11
|
-
goog.require('shaka.offline.StorageMuxer');
|
|
12
|
-
goog.require('shaka.test.Util');
|
|
13
|
-
goog.require('shaka.util.Error');
|
|
14
|
-
|
|
15
7
|
/** @return {boolean} */
|
|
16
8
|
const offlineSchemeSupport = () => shaka.offline.StorageMuxer.support();
|
|
17
9
|
filterDescribe('OfflineScheme', offlineSchemeSupport, () => {
|
|
@@ -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.offline.ManifestConverter');
|
|
9
|
-
goog.require('shaka.offline.indexeddb.V1StorageCell');
|
|
10
|
-
goog.require('shaka.offline.indexeddb.V2StorageCell');
|
|
11
|
-
goog.require('shaka.offline.indexeddb.V5StorageCell');
|
|
12
|
-
goog.require('shaka.test.CannedIDB');
|
|
13
|
-
goog.require('shaka.test.IndexedDBUtils');
|
|
14
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
15
|
-
goog.require('shaka.test.Util');
|
|
16
|
-
goog.require('shaka.util.Error');
|
|
17
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
18
|
-
goog.require('shaka.util.StringUtils');
|
|
19
|
-
|
|
20
7
|
// All of the database dumps referenced below were originally made from the
|
|
21
8
|
// "Heliocentrism" content in our demo app.
|
|
22
9
|
// https://storage.googleapis.com/shaka-demo-assets/heliocentrism/heliocentrism.mpd
|
|
@@ -80,7 +67,7 @@ const compatibilityTestsMetadata = [
|
|
|
80
67
|
// This is the v4 version of the database as written by v2.5.0 - v2.5.9. A
|
|
81
68
|
// bug in v2.5 caused the stream metadata from all periods to be written to
|
|
82
69
|
// each period. This was corrected in v2.5.10.
|
|
83
|
-
// See https://github.com/
|
|
70
|
+
// See https://github.com/shaka-project/shaka-player/issues/2389
|
|
84
71
|
name: 'v4-broken',
|
|
85
72
|
dbImagePath: '/base/test/test/assets/db-dump-v4-broken.json',
|
|
86
73
|
manifestKey: 1,
|
|
@@ -4,30 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.Player');
|
|
9
|
-
goog.require('shaka.media.DrmEngine');
|
|
10
|
-
goog.require('shaka.media.ManifestParser');
|
|
11
|
-
goog.require('shaka.media.SegmentIndex');
|
|
12
|
-
goog.require('shaka.net.NetworkingEngine.RequestType');
|
|
13
|
-
goog.require('shaka.offline.ManifestConverter');
|
|
14
|
-
goog.require('shaka.offline.OfflineUri');
|
|
15
|
-
goog.require('shaka.offline.Storage');
|
|
16
|
-
goog.require('shaka.offline.StorageMuxer');
|
|
17
|
-
goog.require('shaka.test.FakeDrmEngine');
|
|
18
|
-
goog.require('shaka.test.FakeManifestParser');
|
|
19
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
20
|
-
goog.require('shaka.test.Loader');
|
|
21
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
22
|
-
goog.require('shaka.test.TestScheme');
|
|
23
|
-
goog.require('shaka.test.Util');
|
|
24
|
-
goog.require('shaka.util.AbortableOperation');
|
|
25
|
-
goog.require('shaka.util.Error');
|
|
26
|
-
goog.require('shaka.util.EventManager');
|
|
27
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
28
|
-
goog.require('shaka.util.PublicPromise');
|
|
29
|
-
goog.requireType('shaka.media.SegmentReference');
|
|
30
|
-
|
|
31
7
|
/** @return {boolean} */
|
|
32
8
|
function storageSupport() {
|
|
33
9
|
return shaka.offline.Storage.support();
|
|
@@ -1286,7 +1262,7 @@ filterDescribe('Storage', storageSupport, () => {
|
|
|
1286
1262
|
const testSchemeMimeType = 'application/x-test-manifest';
|
|
1287
1263
|
const manifestUri = 'test:sintel';
|
|
1288
1264
|
|
|
1289
|
-
// Regression test for https://github.com/
|
|
1265
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/2781
|
|
1290
1266
|
it('does not cache failures or cancellations', async () => {
|
|
1291
1267
|
/** @type {shaka.offline.Storage} */
|
|
1292
1268
|
const storage = new shaka.offline.Storage();
|
package/test/player_external.js
CHANGED
|
@@ -4,15 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('ShakaDemoAssetInfo');
|
|
8
|
-
goog.require('shaka.test.Loader');
|
|
9
|
-
goog.require('shaka.test.UiUtils');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.test.Waiter');
|
|
12
|
-
goog.require('shaka.util.EventManager');
|
|
13
|
-
goog.requireType('shaka.Player');
|
|
14
|
-
goog.requireType('shaka.net.NetworkingEngine.RequestType');
|
|
15
|
-
|
|
16
7
|
describe('Player', () => {
|
|
17
8
|
const Util = shaka.test.Util;
|
|
18
9
|
const Feature = shakaAssets.Feature;
|
|
@@ -48,6 +39,7 @@ describe('Player', () => {
|
|
|
48
39
|
// Grab event manager from the uncompiled library:
|
|
49
40
|
eventManager = new shaka.util.EventManager();
|
|
50
41
|
waiter = new shaka.test.Waiter(eventManager);
|
|
42
|
+
waiter.setPlayer(player);
|
|
51
43
|
|
|
52
44
|
onErrorSpy = jasmine.createSpy('onError');
|
|
53
45
|
onErrorSpy.and.callFake((event) => fail(event.detail));
|
|
@@ -117,7 +109,7 @@ describe('Player', () => {
|
|
|
117
109
|
|
|
118
110
|
// Make sure we don't get stuck on gaps that only appear in some
|
|
119
111
|
// browsers (Safari, Firefox).
|
|
120
|
-
// TODO(https://github.com/
|
|
112
|
+
// TODO(https://github.com/shaka-project/shaka-player/issues/1702):
|
|
121
113
|
// Is this necessary because of a bug in Shaka Player?
|
|
122
114
|
player.configure('streaming.jumpLargeGaps', true);
|
|
123
115
|
|
|
@@ -4,22 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.Uri');
|
|
8
|
-
goog.require('shaka.Player');
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.media.DrmEngine');
|
|
11
|
-
goog.require('shaka.media.TimeRangesUtils');
|
|
12
|
-
goog.require('shaka.test.FakeAbrManager');
|
|
13
|
-
goog.require('shaka.test.FakeTextDisplayer');
|
|
14
|
-
goog.require('shaka.test.Loader');
|
|
15
|
-
goog.require('shaka.test.TestScheme');
|
|
16
|
-
goog.require('shaka.test.UiUtils');
|
|
17
|
-
goog.require('shaka.test.Util');
|
|
18
|
-
goog.require('shaka.test.Waiter');
|
|
19
|
-
goog.require('shaka.util.EventManager');
|
|
20
|
-
goog.require('shaka.util.Functional');
|
|
21
|
-
goog.require('shaka.util.Iterables');
|
|
22
|
-
|
|
23
7
|
describe('Player', () => {
|
|
24
8
|
/** @type {!jasmine.Spy} */
|
|
25
9
|
let onErrorSpy;
|
|
@@ -53,6 +37,7 @@ describe('Player', () => {
|
|
|
53
37
|
// Grab event manager from the uncompiled library:
|
|
54
38
|
eventManager = new shaka.util.EventManager();
|
|
55
39
|
waiter = new shaka.test.Waiter(eventManager);
|
|
40
|
+
waiter.setPlayer(player);
|
|
56
41
|
|
|
57
42
|
onErrorSpy = jasmine.createSpy('onError');
|
|
58
43
|
onErrorSpy.and.callFake((event) => {
|
|
@@ -264,7 +249,7 @@ describe('Player', () => {
|
|
|
264
249
|
expect(variantTrack.language).toBe(textTrack.language);
|
|
265
250
|
});
|
|
266
251
|
|
|
267
|
-
// Repro for https://github.com/
|
|
252
|
+
// Repro for https://github.com/shaka-project/shaka-player/issues/1879.
|
|
268
253
|
it('appends cues when enabled initially', async () => {
|
|
269
254
|
let cues = [];
|
|
270
255
|
/** @const {!shaka.test.FakeTextDisplayer} */
|
|
@@ -321,7 +306,7 @@ describe('Player', () => {
|
|
|
321
306
|
expect(cues.length).toBeGreaterThan(0);
|
|
322
307
|
});
|
|
323
308
|
|
|
324
|
-
// https://github.com/
|
|
309
|
+
// https://github.com/shaka-project/shaka-player/issues/2553
|
|
325
310
|
it('does not change the selected track', async () => {
|
|
326
311
|
player.configure('streaming.alwaysStreamText', false);
|
|
327
312
|
await player.load('test:forced_subs_simulation_compiled');
|
|
@@ -447,7 +432,7 @@ describe('Player', () => {
|
|
|
447
432
|
expect(configuredTextDisplayer).toBe(textDisplayer);
|
|
448
433
|
});
|
|
449
434
|
|
|
450
|
-
// Regression test for https://github.com/
|
|
435
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/1187
|
|
451
436
|
it('does not throw on destroy', async () => {
|
|
452
437
|
await player.load('test:sintel_compiled');
|
|
453
438
|
video.play();
|
|
@@ -478,7 +463,7 @@ describe('Player', () => {
|
|
|
478
463
|
// and the track selection was ignored. Because this bug involved
|
|
479
464
|
// interactions between Player and StreamingEngine, it is an integration
|
|
480
465
|
// test and not a unit test.
|
|
481
|
-
// https://github.com/
|
|
466
|
+
// https://github.com/shaka-project/shaka-player/issues/1119
|
|
482
467
|
it('allows early selection of specific tracks', async () => {
|
|
483
468
|
/** @type {!jasmine.Spy} */
|
|
484
469
|
const streamingListener = jasmine.createSpy('listener');
|
|
@@ -513,7 +498,7 @@ describe('Player', () => {
|
|
|
513
498
|
// switchingPeriods_ in Player. Because this bug involved interactions
|
|
514
499
|
// between Player and StreamingEngine, it is an integration test and not a
|
|
515
500
|
// unit test.
|
|
516
|
-
// https://github.com/
|
|
501
|
+
// https://github.com/shaka-project/shaka-player/issues/1119
|
|
517
502
|
it('allows selection of tracks in subsequent loads', async () => {
|
|
518
503
|
/** @type {!jasmine.Spy} */
|
|
519
504
|
const streamingListener = jasmine.createSpy('listener');
|
|
@@ -611,7 +596,9 @@ describe('Player', () => {
|
|
|
611
596
|
eventManager.listen(video, 'waiting', checkOnEvent);
|
|
612
597
|
eventManager.listen(player, 'trackschanged', checkOnEvent);
|
|
613
598
|
|
|
614
|
-
const waiter =
|
|
599
|
+
const waiter = new shaka.test.Waiter(eventManager)
|
|
600
|
+
.setPlayer(player)
|
|
601
|
+
.timeoutAfter(10);
|
|
615
602
|
const canPlayThrough = waiter.waitForEvent(video, 'canplaythrough');
|
|
616
603
|
|
|
617
604
|
await player.load('test:sintel_compiled', 5);
|
|
@@ -678,7 +665,9 @@ describe('Player', () => {
|
|
|
678
665
|
eventManager.listen(player, 'error', Util.spyFunc(onErrorSpy));
|
|
679
666
|
/** @type {shaka.test.Waiter} */
|
|
680
667
|
const waiter = new shaka.test.Waiter(eventManager)
|
|
681
|
-
.
|
|
668
|
+
.setPlayer(player)
|
|
669
|
+
.timeoutAfter(20)
|
|
670
|
+
.failOnTimeout(true);
|
|
682
671
|
await waiter.waitForEnd(video);
|
|
683
672
|
|
|
684
673
|
// The stream should have transitioned to VOD by now.
|
|
@@ -686,7 +675,7 @@ describe('Player', () => {
|
|
|
686
675
|
|
|
687
676
|
// Check that the final seek range is as expected.
|
|
688
677
|
const seekRange = player.seekRange();
|
|
689
|
-
expect(seekRange.end).
|
|
678
|
+
expect(seekRange.end).toBeCloseTo(14);
|
|
690
679
|
});
|
|
691
680
|
});
|
|
692
681
|
|
|
@@ -703,6 +692,7 @@ describe('Player', () => {
|
|
|
703
692
|
player.addEventListener('buffering', Util.spyFunc(onBuffering));
|
|
704
693
|
|
|
705
694
|
waiter = new shaka.test.Waiter(eventManager)
|
|
695
|
+
.setPlayer(player)
|
|
706
696
|
.timeoutAfter(10)
|
|
707
697
|
.failOnTimeout(true);
|
|
708
698
|
});
|
|
@@ -816,8 +806,7 @@ describe('Player', () => {
|
|
|
816
806
|
}
|
|
817
807
|
|
|
818
808
|
async function waitUntilBuffered(amount) {
|
|
819
|
-
for (
|
|
820
|
-
shaka.util.Functional.ignored(_);
|
|
809
|
+
for (let i = 0; i < 25; i++) {
|
|
821
810
|
// We buffer from an internal segment, so this shouldn't take long to
|
|
822
811
|
// buffer.
|
|
823
812
|
await Util.delay(0.1); // eslint-disable-line no-await-in-loop
|
|
@@ -894,7 +883,9 @@ describe('Player', () => {
|
|
|
894
883
|
|
|
895
884
|
/** @type {shaka.test.Waiter} */
|
|
896
885
|
const waiter = new shaka.test.Waiter(eventManager)
|
|
897
|
-
.
|
|
886
|
+
.setPlayer(player)
|
|
887
|
+
.timeoutAfter(1)
|
|
888
|
+
.failOnTimeout(true);
|
|
898
889
|
|
|
899
890
|
await waiter.waitForPromise(abrEnabled, 'AbrManager enabled');
|
|
900
891
|
|
|
@@ -914,7 +905,9 @@ describe('Player', () => {
|
|
|
914
905
|
|
|
915
906
|
/** @type {shaka.test.Waiter} */
|
|
916
907
|
const waiter = new shaka.test.Waiter(eventManager)
|
|
917
|
-
.
|
|
908
|
+
.setPlayer(player)
|
|
909
|
+
.timeoutAfter(1)
|
|
910
|
+
.failOnTimeout(true);
|
|
918
911
|
|
|
919
912
|
await waiter.waitForPromise(abrEnabled, 'AbrManager enabled');
|
|
920
913
|
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.Player');
|
|
8
|
-
goog.require('shaka.test.UiUtils');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.util.Error');
|
|
11
|
-
|
|
12
7
|
describe('Player Load Graph', () => {
|
|
13
8
|
const SMALL_MP4_CONTENT_URI = '/base/test/test/assets/small.mp4';
|
|
14
9
|
|
|
@@ -124,7 +119,7 @@ describe('Player Load Graph', () => {
|
|
|
124
119
|
|
|
125
120
|
// There was a bug when calling unload before calling load would cause
|
|
126
121
|
// the load to continue before the (first) unload was complete.
|
|
127
|
-
// https://github.com/
|
|
122
|
+
// https://github.com/shaka-project/shaka-player/issues/612
|
|
128
123
|
it('load will wait for unload to finish', async () => {
|
|
129
124
|
createPlayer(/* attachedTo= */ null);
|
|
130
125
|
|
|
@@ -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.test.UiUtils');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.test.Waiter');
|
|
11
|
-
goog.require('shaka.util.EventManager');
|
|
12
|
-
|
|
13
7
|
describe('Player Src Equals', () => {
|
|
14
8
|
// This asset needs to be (1) long and (2) high bitrate so that we can
|
|
15
9
|
// invoke unbuffered seeks.
|
|
@@ -88,7 +82,7 @@ describe('Player Src Equals', () => {
|
|
|
88
82
|
expect(player.isBuffering()).toBeTruthy();
|
|
89
83
|
});
|
|
90
84
|
|
|
91
|
-
// A regression test for https://github.com/
|
|
85
|
+
// A regression test for https://github.com/shaka-project/shaka-player/issues/2523
|
|
92
86
|
it('detects subtitles in native HLS', async () => {
|
|
93
87
|
const supportsNativeHls =
|
|
94
88
|
video.canPlayType('application/vnd.apple.mpegurl') != '';
|
|
@@ -103,8 +97,8 @@ describe('Player Src Equals', () => {
|
|
|
103
97
|
});
|
|
104
98
|
|
|
105
99
|
// A regression test for
|
|
106
|
-
// https://github.com/
|
|
107
|
-
// and https://github.com/
|
|
100
|
+
// https://github.com/shaka-project/shaka-player/issues/2483#issuecomment-633412527
|
|
101
|
+
// and https://github.com/shaka-project/shaka-player/issues/2593
|
|
108
102
|
it('honors preferred audio and text languages', async () => {
|
|
109
103
|
const supportsNativeHls =
|
|
110
104
|
video.canPlayType('application/vnd.apple.mpegurl') != '';
|
|
@@ -4,13 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.Uri');
|
|
8
|
-
goog.require('shaka.Player');
|
|
9
|
-
goog.require('shaka.test.UiUtils');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.test.Waiter');
|
|
12
|
-
goog.require('shaka.util.EventManager');
|
|
13
|
-
|
|
14
7
|
// These tests are for testing Shaka Player's integration with
|
|
15
8
|
// |HTMLMediaElement.src=|. These tests are to verify that all |shaka.Player|
|
|
16
9
|
// public methods behaviour correctly when playing content video |src=|.
|
package/test/player_unit.js
CHANGED
|
@@ -4,30 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.Player');
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.media.BufferingObserver');
|
|
11
|
-
goog.require('shaka.media.ManifestParser');
|
|
12
|
-
goog.require('shaka.media.PresentationTimeline');
|
|
13
|
-
goog.require('shaka.media.SegmentReference');
|
|
14
|
-
goog.require('shaka.media.SegmentIndex');
|
|
15
|
-
goog.require('shaka.test.FakeAbrManager');
|
|
16
|
-
goog.require('shaka.test.FakeDrmEngine');
|
|
17
|
-
goog.require('shaka.test.FakeManifestParser');
|
|
18
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
19
|
-
goog.require('shaka.test.FakePlayhead');
|
|
20
|
-
goog.require('shaka.test.FakeStreamingEngine');
|
|
21
|
-
goog.require('shaka.test.FakeTextDisplayer');
|
|
22
|
-
goog.require('shaka.test.FakeVideo');
|
|
23
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
24
|
-
goog.require('shaka.test.Util');
|
|
25
|
-
goog.require('shaka.util.ConfigUtils');
|
|
26
|
-
goog.require('shaka.util.Error');
|
|
27
|
-
goog.require('shaka.util.Iterables');
|
|
28
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
29
|
-
goog.requireType('shaka.media.Playhead');
|
|
30
|
-
|
|
31
7
|
describe('Player', () => {
|
|
32
8
|
const ContentType = shaka.util.ManifestParserUtils.ContentType;
|
|
33
9
|
const Util = shaka.test.Util;
|
|
@@ -36,7 +12,7 @@ describe('Player', () => {
|
|
|
36
12
|
const originalLogWarn = shaka.log.warning;
|
|
37
13
|
const originalLogAlwaysWarn = shaka.log.alwaysWarn;
|
|
38
14
|
const originalIsTypeSupported = window.MediaSource.isTypeSupported;
|
|
39
|
-
const originalDecodingInfo =
|
|
15
|
+
const originalDecodingInfo = navigator.mediaCapabilities.decodingInfo;
|
|
40
16
|
|
|
41
17
|
const fakeManifestUri = 'fake-manifest-uri';
|
|
42
18
|
const fakeMimeType = 'application/test';
|
|
@@ -93,7 +69,7 @@ describe('Player', () => {
|
|
|
93
69
|
// Since this is not an integration test, we don't want MediaCapabilities to
|
|
94
70
|
// fail assertions based on browser support for types. Pretend that all
|
|
95
71
|
// video and audio types are supported.
|
|
96
|
-
|
|
72
|
+
navigator.mediaCapabilities.decodingInfo = async (config) => {
|
|
97
73
|
await Promise.resolve();
|
|
98
74
|
const videoType = config['video'] ?
|
|
99
75
|
config['video'].contentType.split('/')[0] : null;
|
|
@@ -177,7 +153,7 @@ describe('Player', () => {
|
|
|
177
153
|
shaka.log.alwaysWarn = originalLogAlwaysWarn;
|
|
178
154
|
window.MediaSource.isTypeSupported = originalIsTypeSupported;
|
|
179
155
|
shaka.media.ManifestParser.unregisterParserByMime(fakeMimeType);
|
|
180
|
-
|
|
156
|
+
navigator.mediaCapabilities.decodingInfo = originalDecodingInfo;
|
|
181
157
|
}
|
|
182
158
|
});
|
|
183
159
|
|
|
@@ -325,7 +301,7 @@ describe('Player', () => {
|
|
|
325
301
|
// We used to fire the event /before/ filtering, which meant that for
|
|
326
302
|
// multi-codec content, the application might select something which will
|
|
327
303
|
// later be removed during filtering.
|
|
328
|
-
// https://github.com/
|
|
304
|
+
// https://github.com/shaka-project/shaka-player/issues/1119
|
|
329
305
|
it('fires after tracks have been filtered', async () => {
|
|
330
306
|
streamingListener.and.callFake(() => {
|
|
331
307
|
const tracks = player.getVariantTracks();
|
|
@@ -621,7 +597,7 @@ describe('Player', () => {
|
|
|
621
597
|
expect(logWarnSpy).not.toHaveBeenCalled();
|
|
622
598
|
});
|
|
623
599
|
|
|
624
|
-
// Regression test for https://github.com/
|
|
600
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/784
|
|
625
601
|
it('does not throw when overwriting serverCertificate', () => {
|
|
626
602
|
player.configure({
|
|
627
603
|
drm: {
|
|
@@ -687,9 +663,9 @@ describe('Player', () => {
|
|
|
687
663
|
});
|
|
688
664
|
|
|
689
665
|
it('configures play and seek range for VOD', async () => {
|
|
690
|
-
player.configure({playRangeStart: 5, playRangeEnd: 10});
|
|
691
666
|
const timeline = new shaka.media.PresentationTimeline(300, 0);
|
|
692
667
|
timeline.setStatic(true);
|
|
668
|
+
timeline.setDuration(300);
|
|
693
669
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
694
670
|
manifest.presentationTimeline = timeline;
|
|
695
671
|
manifest.addVariant(0, (variant) => {
|
|
@@ -697,7 +673,46 @@ describe('Player', () => {
|
|
|
697
673
|
});
|
|
698
674
|
});
|
|
699
675
|
goog.asserts.assert(manifest, 'manifest must be non-null');
|
|
676
|
+
|
|
677
|
+
player.configure({playRangeStart: 5, playRangeEnd: 10});
|
|
700
678
|
await player.load(fakeManifestUri, 0, fakeMimeType);
|
|
679
|
+
|
|
680
|
+
const seekRange = player.seekRange();
|
|
681
|
+
expect(seekRange.start).toBe(5);
|
|
682
|
+
expect(seekRange.end).toBe(10);
|
|
683
|
+
});
|
|
684
|
+
|
|
685
|
+
// Test for https://github.com/shaka-project/shaka-player/issues/4026
|
|
686
|
+
it('configures play and seek range with notifySegments', async () => {
|
|
687
|
+
const timeline = new shaka.media.PresentationTimeline(300, 0);
|
|
688
|
+
timeline.setStatic(true);
|
|
689
|
+
// This duration is used by useSegmentTemplate below to decide how many
|
|
690
|
+
// references to generate.
|
|
691
|
+
timeline.setDuration(300);
|
|
692
|
+
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
693
|
+
manifest.presentationTimeline = timeline;
|
|
694
|
+
manifest.addVariant(0, (variant) => {
|
|
695
|
+
variant.addVideo(1, (stream) => {
|
|
696
|
+
stream.useSegmentTemplate(
|
|
697
|
+
'$Number$.mp4', /* segmentDuration= */ 10);
|
|
698
|
+
});
|
|
699
|
+
});
|
|
700
|
+
});
|
|
701
|
+
goog.asserts.assert(manifest, 'manifest must be non-null');
|
|
702
|
+
|
|
703
|
+
// Explicitly notify the timeline of the segment references.
|
|
704
|
+
const videoStream = manifest.variants[0].video;
|
|
705
|
+
await videoStream.createSegmentIndex();
|
|
706
|
+
goog.asserts.assert(videoStream.segmentIndex,
|
|
707
|
+
'SegmentIndex must be non-null');
|
|
708
|
+
const references = Array.from(videoStream.segmentIndex);
|
|
709
|
+
goog.asserts.assert(references.length != 0,
|
|
710
|
+
'Must have references for this test!');
|
|
711
|
+
timeline.notifySegments(references);
|
|
712
|
+
|
|
713
|
+
player.configure({playRangeStart: 5, playRangeEnd: 10});
|
|
714
|
+
await player.load(fakeManifestUri, 0, fakeMimeType);
|
|
715
|
+
|
|
701
716
|
const seekRange = player.seekRange();
|
|
702
717
|
expect(seekRange.start).toBe(5);
|
|
703
718
|
expect(seekRange.end).toBe(10);
|
|
@@ -798,7 +813,7 @@ describe('Player', () => {
|
|
|
798
813
|
expect(newConfig.streaming.bufferBehind).toBe(77);
|
|
799
814
|
});
|
|
800
815
|
|
|
801
|
-
// https://github.com/
|
|
816
|
+
// https://github.com/shaka-project/shaka-player/issues/1524
|
|
802
817
|
it('does not pollute other advanced DRM configs', () => {
|
|
803
818
|
player.configure('drm.advanced.foo', {});
|
|
804
819
|
player.configure('drm.advanced.bar', {});
|
|
@@ -1668,8 +1683,8 @@ describe('Player', () => {
|
|
|
1668
1683
|
expect(getActiveTextTrack().id).toBe(spanishTextTrack.id);
|
|
1669
1684
|
});
|
|
1670
1685
|
|
|
1671
|
-
// Regression test for https://github.com/
|
|
1672
|
-
// and https://github.com/
|
|
1686
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/2906
|
|
1687
|
+
// and https://github.com/shaka-project/shaka-player/issues/2909.
|
|
1673
1688
|
it('selectAudioLanguage() can choose role-less tracks', async () => {
|
|
1674
1689
|
// For this test, we use a different (and simpler) manifest.
|
|
1675
1690
|
// Both audio tracks are English; one has a role, and one has no roles.
|
|
@@ -1729,7 +1744,7 @@ describe('Player', () => {
|
|
|
1729
1744
|
expect(getActiveVariantTrack().audioRoles).toEqual([]);
|
|
1730
1745
|
});
|
|
1731
1746
|
|
|
1732
|
-
// https://github.com/
|
|
1747
|
+
// https://github.com/shaka-project/shaka-player/issues/3262
|
|
1733
1748
|
it('selectAudioLanguage() doesn\'t change resolution', () => {
|
|
1734
1749
|
player.configure('abr.enabled', false);
|
|
1735
1750
|
abrManager.chooseIndex = 1;
|
|
@@ -1807,7 +1822,7 @@ describe('Player', () => {
|
|
|
1807
1822
|
expect(getActiveTextTrack().language).toBe('en');
|
|
1808
1823
|
});
|
|
1809
1824
|
|
|
1810
|
-
// https://github.com/
|
|
1825
|
+
// https://github.com/shaka-project/shaka-player/issues/2010
|
|
1811
1826
|
it('changing text lang changes active stream when not streaming', () => {
|
|
1812
1827
|
player.setTextTrackVisibility(false);
|
|
1813
1828
|
|
|
@@ -2112,8 +2127,8 @@ describe('Player', () => {
|
|
|
2112
2127
|
async function runTest(languages, preference, expectedIndex) {
|
|
2113
2128
|
// A manifest we can use to test language selection.
|
|
2114
2129
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
2115
|
-
|
|
2116
|
-
|
|
2130
|
+
for (let i = 0; i < languages.length; i++) {
|
|
2131
|
+
const lang = languages[i];
|
|
2117
2132
|
if (lang.charAt(0) == '*') {
|
|
2118
2133
|
manifest.addVariant(i, (variant) => {
|
|
2119
2134
|
variant.primary = true;
|
|
@@ -2463,7 +2478,7 @@ describe('Player', () => {
|
|
|
2463
2478
|
it('throws CONTENT_UNSUPPORTED_BY_BROWSER', async () => {
|
|
2464
2479
|
window.MediaSource.isTypeSupported = (mimeType) => false;
|
|
2465
2480
|
|
|
2466
|
-
|
|
2481
|
+
navigator.mediaCapabilities.decodingInfo = async (config) => {
|
|
2467
2482
|
await Promise.resolve();
|
|
2468
2483
|
return {supported: false};
|
|
2469
2484
|
};
|
|
@@ -2548,7 +2563,7 @@ describe('Player', () => {
|
|
|
2548
2563
|
expect(variants[0].id).toBe(2);
|
|
2549
2564
|
|
|
2550
2565
|
// Now increase the restriction, AbrManager should still be updated.
|
|
2551
|
-
// https://github.com/
|
|
2566
|
+
// https://github.com/shaka-project/shaka-player/issues/1533
|
|
2552
2567
|
abrManager.setVariants.calls.reset();
|
|
2553
2568
|
player.configure({restrictions: {maxBandwidth: Infinity}});
|
|
2554
2569
|
expect(abrManager.setVariants).toHaveBeenCalledTimes(1);
|
|
@@ -2837,7 +2852,7 @@ describe('Player', () => {
|
|
|
2837
2852
|
});
|
|
2838
2853
|
|
|
2839
2854
|
if (useMediaCapabilities) {
|
|
2840
|
-
|
|
2855
|
+
navigator.mediaCapabilities.decodingInfo = async (config) => {
|
|
2841
2856
|
await Promise.resolve();
|
|
2842
2857
|
const videoType = config['video'] ? config['video'].contentType : '';
|
|
2843
2858
|
if (videoType.includes('video') &&
|
|
@@ -3208,7 +3223,7 @@ describe('Player', () => {
|
|
|
3208
3223
|
// Most of our Player unit tests never adapt. This allowed some assertions
|
|
3209
3224
|
// to creep in that went uncaught until they happened during manual testing.
|
|
3210
3225
|
// Repro only happens with audio+video variants in which we only adapt one
|
|
3211
|
-
// type. This test covers https://github.com/
|
|
3226
|
+
// type. This test covers https://github.com/shaka-project/shaka-player/issues/954
|
|
3212
3227
|
|
|
3213
3228
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
3214
3229
|
manifest.addVariant(0, (variant) => {
|
|
@@ -3290,7 +3305,7 @@ describe('Player', () => {
|
|
|
3290
3305
|
|
|
3291
3306
|
describe('load', () => {
|
|
3292
3307
|
it('tolerates bandwidth of NaN, undefined, or 0', async () => {
|
|
3293
|
-
// Regression test for https://github.com/
|
|
3308
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/938
|
|
3294
3309
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
3295
3310
|
manifest.addVariant(0, (variant) => {
|
|
3296
3311
|
variant.bandwidth = /** @type {?} */(undefined);
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.routing.Walker');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.util.AbortableOperation');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.PublicPromise');
|
|
13
|
-
goog.requireType('shaka.routing.Node');
|
|
14
|
-
|
|
15
7
|
describe('Walker', () => {
|
|
16
8
|
const AbortableOperation = shaka.util.AbortableOperation;
|
|
17
9
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!--Generated with https://github.com/
|
|
2
|
+
<!--Generated with https://github.com/shaka-project/shaka-packager version v2.4.1-c731217-release-->
|
|
3
3
|
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" minBufferTime="PT2S" type="static" mediaPresentationDuration="PT60S">
|
|
4
4
|
<Period id="0">
|
|
5
5
|
<!-- This comment is very long:
|