shaka-player 3.2.2 → 3.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.csslintrc +11 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- package/.github/workflows/build-and-test.yaml +130 -0
- package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
- package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
- package/.github/workflows/demo-version-index.yaml +29 -0
- package/.github/workflows/nightly-demo.yaml +42 -0
- package/.github/workflows/release-please.yaml +145 -0
- package/.github/workflows/safari-homedir-launcher.sh +18 -0
- package/.github/workflows/selenium-lab-tests.yaml +93 -0
- package/AUTHORS +2 -0
- package/CHANGELOG.md +1598 -1525
- 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 +225 -219
- package/dist/locales.js +31 -31
- 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 +247 -227
- package/dist/shaka-player.compiled.debug.d.ts +247 -227
- package/dist/shaka-player.compiled.debug.externs.js +43 -16
- package/dist/shaka-player.compiled.debug.js +384 -388
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +43 -16
- package/dist/shaka-player.compiled.js +818 -817
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +291 -280
- package/dist/shaka-player.ui.debug.d.ts +291 -280
- package/dist/shaka-player.ui.debug.externs.js +45 -27
- package/dist/shaka-player.ui.debug.js +389 -394
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +45 -27
- package/dist/shaka-player.ui.js +964 -965
- 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/player.js +8 -0
- 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 +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 +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 +41 -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/region_observer.js +39 -33
- package/lib/media/region_timeline.js +17 -19
- package/lib/media/segment_index.js +2 -1
- package/lib/media/segment_reference.js +19 -1
- 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 +12 -13
- package/lib/player.js +77 -36
- 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/text/cue.js +7 -1
- package/lib/text/simple_text_displayer.js +2 -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 +88 -11
- 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 +2 -15
- package/test/media/drm_engine_unit.js +7 -27
- 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 +62 -36
- 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 +41 -15
- package/test/player_unit.js +71 -46
- package/test/routing/walker_unit.js +0 -8
- package/test/test/assets/chapters.vtt +2 -2
- package/test/test/assets/chapters2.vtt +10 -0
- 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 +39 -38
- 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();
|
|
@@ -1277,7 +1253,7 @@ filterDescribe('Storage', storageSupport, () => {
|
|
|
1277
1253
|
const testSchemeMimeType = 'application/x-test-manifest';
|
|
1278
1254
|
const manifestUri = 'test:sintel';
|
|
1279
1255
|
|
|
1280
|
-
// Regression test for https://github.com/
|
|
1256
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/2781
|
|
1281
1257
|
it('does not cache failures or cancellations', async () => {
|
|
1282
1258
|
/** @type {shaka.offline.Storage} */
|
|
1283
1259
|
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
|
|
|
@@ -964,9 +957,9 @@ describe('Player', () => {
|
|
|
964
957
|
it('add external chapters in vtt format', async () => {
|
|
965
958
|
await player.load('test:sintel_no_text_compiled');
|
|
966
959
|
const locationUri = new goog.Uri(location.href);
|
|
967
|
-
const
|
|
968
|
-
const
|
|
969
|
-
await player.addChaptersTrack(
|
|
960
|
+
const partialUri1 = new goog.Uri('/base/test/test/assets/chapters.vtt');
|
|
961
|
+
const absoluteUri1 = locationUri.resolve(partialUri1);
|
|
962
|
+
await player.addChaptersTrack(absoluteUri1.toString(), 'en');
|
|
970
963
|
|
|
971
964
|
await shaka.test.Util.delay(1.5);
|
|
972
965
|
|
|
@@ -979,11 +972,44 @@ describe('Player', () => {
|
|
|
979
972
|
const chapter2 = chapters[1];
|
|
980
973
|
expect(chapter2.title).toBe('Chapter 2');
|
|
981
974
|
expect(chapter2.startTime).toBe(5);
|
|
982
|
-
expect(chapter2.endTime).toBe(
|
|
975
|
+
expect(chapter2.endTime).toBe(10);
|
|
983
976
|
const chapter3 = chapters[2];
|
|
984
977
|
expect(chapter3.title).toBe('Chapter 3');
|
|
985
|
-
expect(chapter3.startTime).toBe(
|
|
986
|
-
expect(chapter3.endTime).toBe(
|
|
978
|
+
expect(chapter3.startTime).toBe(10);
|
|
979
|
+
expect(chapter3.endTime).toBe(20);
|
|
980
|
+
|
|
981
|
+
const partialUri2 = new goog.Uri('/base/test/test/assets/chapters2.vtt');
|
|
982
|
+
const absoluteUri2 = locationUri.resolve(partialUri2);
|
|
983
|
+
await player.addChaptersTrack(absoluteUri2.toString(), 'en');
|
|
984
|
+
|
|
985
|
+
await shaka.test.Util.delay(1.5);
|
|
986
|
+
|
|
987
|
+
const chaptersUpdated = player.getChapters('en');
|
|
988
|
+
expect(chaptersUpdated.length).toBe(6);
|
|
989
|
+
const chapterUpdated1 = chaptersUpdated[0];
|
|
990
|
+
expect(chapterUpdated1.title).toBe('Chapter 1');
|
|
991
|
+
expect(chapterUpdated1.startTime).toBe(0);
|
|
992
|
+
expect(chapterUpdated1.endTime).toBe(5);
|
|
993
|
+
const chapterUpdated2 = chaptersUpdated[1];
|
|
994
|
+
expect(chapterUpdated2.title).toBe('Chapter 2');
|
|
995
|
+
expect(chapterUpdated2.startTime).toBe(5);
|
|
996
|
+
expect(chapterUpdated2.endTime).toBe(10);
|
|
997
|
+
const chapterUpdated3 = chaptersUpdated[2];
|
|
998
|
+
expect(chapterUpdated3.title).toBe('Chapter 3');
|
|
999
|
+
expect(chapterUpdated3.startTime).toBe(10);
|
|
1000
|
+
expect(chapterUpdated3.endTime).toBe(20);
|
|
1001
|
+
const chapterUpdated4 = chaptersUpdated[3];
|
|
1002
|
+
expect(chapterUpdated4.title).toBe('Chapter 4');
|
|
1003
|
+
expect(chapterUpdated4.startTime).toBe(20);
|
|
1004
|
+
expect(chapterUpdated4.endTime).toBe(30);
|
|
1005
|
+
const chapterUpdated5 = chaptersUpdated[4];
|
|
1006
|
+
expect(chapterUpdated5.title).toBe('Chapter 5');
|
|
1007
|
+
expect(chapterUpdated5.startTime).toBe(30);
|
|
1008
|
+
expect(chapterUpdated5.endTime).toBe(40);
|
|
1009
|
+
const chapterUpdated6 = chaptersUpdated[5];
|
|
1010
|
+
expect(chapterUpdated6.title).toBe('Chapter 6');
|
|
1011
|
+
expect(chapterUpdated6.startTime).toBe(40);
|
|
1012
|
+
expect(chapterUpdated6.endTime).toBe(61.349);
|
|
987
1013
|
});
|
|
988
1014
|
|
|
989
1015
|
it('add external chapters in srt format', async () => {
|
|
@@ -991,11 +1017,11 @@ describe('Player', () => {
|
|
|
991
1017
|
const locationUri = new goog.Uri(location.href);
|
|
992
1018
|
const partialUri = new goog.Uri('/base/test/test/assets/chapters.srt');
|
|
993
1019
|
const absoluteUri = locationUri.resolve(partialUri);
|
|
994
|
-
await player.addChaptersTrack(absoluteUri.toString(), '
|
|
1020
|
+
await player.addChaptersTrack(absoluteUri.toString(), 'es');
|
|
995
1021
|
|
|
996
1022
|
await shaka.test.Util.delay(1.5);
|
|
997
1023
|
|
|
998
|
-
const chapters = player.getChapters('
|
|
1024
|
+
const chapters = player.getChapters('es');
|
|
999
1025
|
expect(chapters.length).toBe(3);
|
|
1000
1026
|
const chapter1 = chapters[0];
|
|
1001
1027
|
expect(chapter1.title).toBe('Chapter 1');
|
|
@@ -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=|.
|
|
@@ -330,9 +323,9 @@ describe('Player Src Equals', () => {
|
|
|
330
323
|
await loadWithSrcEquals(SMALL_MP4_CONTENT_URI, /* startTime= */ null);
|
|
331
324
|
|
|
332
325
|
const locationUri = new goog.Uri(location.href);
|
|
333
|
-
const
|
|
334
|
-
const
|
|
335
|
-
await player.addChaptersTrack(
|
|
326
|
+
const partialUri1 = new goog.Uri('/base/test/test/assets/chapters.vtt');
|
|
327
|
+
const absoluteUri1 = locationUri.resolve(partialUri1);
|
|
328
|
+
await player.addChaptersTrack(absoluteUri1.toString(), 'en');
|
|
336
329
|
|
|
337
330
|
await shaka.test.Util.delay(1.5);
|
|
338
331
|
|
|
@@ -345,11 +338,44 @@ describe('Player Src Equals', () => {
|
|
|
345
338
|
const chapter2 = chapters[1];
|
|
346
339
|
expect(chapter2.title).toBe('Chapter 2');
|
|
347
340
|
expect(chapter2.startTime).toBe(5);
|
|
348
|
-
expect(chapter2.endTime).toBe(
|
|
341
|
+
expect(chapter2.endTime).toBe(10);
|
|
349
342
|
const chapter3 = chapters[2];
|
|
350
343
|
expect(chapter3.title).toBe('Chapter 3');
|
|
351
|
-
expect(chapter3.startTime).toBe(
|
|
352
|
-
expect(chapter3.endTime).toBe(
|
|
344
|
+
expect(chapter3.startTime).toBe(10);
|
|
345
|
+
expect(chapter3.endTime).toBe(20);
|
|
346
|
+
|
|
347
|
+
const partialUri2 = new goog.Uri('/base/test/test/assets/chapters2.vtt');
|
|
348
|
+
const absoluteUri2 = locationUri.resolve(partialUri2);
|
|
349
|
+
await player.addChaptersTrack(absoluteUri2.toString(), 'en');
|
|
350
|
+
|
|
351
|
+
await shaka.test.Util.delay(1.5);
|
|
352
|
+
|
|
353
|
+
const chaptersUpdated = player.getChapters('en');
|
|
354
|
+
expect(chaptersUpdated.length).toBe(6);
|
|
355
|
+
const chapterUpdated1 = chaptersUpdated[0];
|
|
356
|
+
expect(chapterUpdated1.title).toBe('Chapter 1');
|
|
357
|
+
expect(chapterUpdated1.startTime).toBe(0);
|
|
358
|
+
expect(chapterUpdated1.endTime).toBe(5);
|
|
359
|
+
const chapterUpdated2 = chaptersUpdated[1];
|
|
360
|
+
expect(chapterUpdated2.title).toBe('Chapter 2');
|
|
361
|
+
expect(chapterUpdated2.startTime).toBe(5);
|
|
362
|
+
expect(chapterUpdated2.endTime).toBe(10);
|
|
363
|
+
const chapterUpdated3 = chaptersUpdated[2];
|
|
364
|
+
expect(chapterUpdated3.title).toBe('Chapter 3');
|
|
365
|
+
expect(chapterUpdated3.startTime).toBe(10);
|
|
366
|
+
expect(chapterUpdated3.endTime).toBe(20);
|
|
367
|
+
const chapterUpdated4 = chaptersUpdated[3];
|
|
368
|
+
expect(chapterUpdated4.title).toBe('Chapter 4');
|
|
369
|
+
expect(chapterUpdated4.startTime).toBe(20);
|
|
370
|
+
expect(chapterUpdated4.endTime).toBe(30);
|
|
371
|
+
const chapterUpdated5 = chaptersUpdated[4];
|
|
372
|
+
expect(chapterUpdated5.title).toBe('Chapter 5');
|
|
373
|
+
expect(chapterUpdated5.startTime).toBe(30);
|
|
374
|
+
expect(chapterUpdated5.endTime).toBe(40);
|
|
375
|
+
const chapterUpdated6 = chaptersUpdated[5];
|
|
376
|
+
expect(chapterUpdated6.title).toBe('Chapter 6');
|
|
377
|
+
expect(chapterUpdated6.startTime).toBe(40);
|
|
378
|
+
expect(chapterUpdated6.endTime).toBe(61.349);
|
|
353
379
|
});
|
|
354
380
|
|
|
355
381
|
it('add external chapters in srt format', async () => {
|
|
@@ -358,11 +384,11 @@ describe('Player Src Equals', () => {
|
|
|
358
384
|
const locationUri = new goog.Uri(location.href);
|
|
359
385
|
const partialUri = new goog.Uri('/base/test/test/assets/chapters.srt');
|
|
360
386
|
const absoluteUri = locationUri.resolve(partialUri);
|
|
361
|
-
await player.addChaptersTrack(absoluteUri.toString(), '
|
|
387
|
+
await player.addChaptersTrack(absoluteUri.toString(), 'es');
|
|
362
388
|
|
|
363
389
|
await shaka.test.Util.delay(1.5);
|
|
364
390
|
|
|
365
|
-
const chapters = player.getChapters('
|
|
391
|
+
const chapters = player.getChapters('es');
|
|
366
392
|
expect(chapters.length).toBe(3);
|
|
367
393
|
const chapter1 = chapters[0];
|
|
368
394
|
expect(chapter1.title).toBe('Chapter 1');
|