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
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.media.QualityObserver');
|
|
8
|
-
goog.require('shaka.test.Util');
|
|
9
|
-
|
|
10
|
-
|
|
11
7
|
describe('QualityObserver', () => {
|
|
12
8
|
/** @type {!shaka.media.QualityObserver} */
|
|
13
9
|
let observer;
|
|
@@ -50,7 +46,10 @@ describe('QualityObserver', () => {
|
|
|
50
46
|
beforeEach(() => {
|
|
51
47
|
onQualityChange = jasmine.createSpy('onQualityChange');
|
|
52
48
|
observer = new shaka.media.QualityObserver(getBufferedInfo);
|
|
53
|
-
observer.
|
|
49
|
+
observer.addEventListener('qualitychange', (event) => {
|
|
50
|
+
shaka.test.Util.spyFunc(onQualityChange)(
|
|
51
|
+
event['quality'], event['position']);
|
|
52
|
+
});
|
|
54
53
|
emptyBuffer = true;
|
|
55
54
|
bufferStart = 0;
|
|
56
55
|
bufferEnd = 0;
|
|
@@ -4,17 +4,15 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.media.RegionObserver');
|
|
8
|
-
goog.require('shaka.media.RegionTimeline');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.requireType('shaka.media.IPlayheadObserver');
|
|
11
|
-
|
|
12
7
|
describe('RegionObserver', () => {
|
|
13
8
|
/** @type {!shaka.media.RegionTimeline} */
|
|
14
9
|
let timeline;
|
|
15
10
|
/** @type {!shaka.media.RegionObserver} */
|
|
16
11
|
let observer;
|
|
17
12
|
|
|
13
|
+
/** @type {!jasmine.Spy} */
|
|
14
|
+
let onSeekRange;
|
|
15
|
+
|
|
18
16
|
/** @type {!jasmine.Spy} */
|
|
19
17
|
let onEnterRegion;
|
|
20
18
|
/** @type {!jasmine.Spy} */
|
|
@@ -23,18 +21,26 @@ describe('RegionObserver', () => {
|
|
|
23
21
|
let onSkipRegion;
|
|
24
22
|
|
|
25
23
|
beforeEach(() => {
|
|
24
|
+
onSeekRange = jasmine.createSpy('onSeekRange');
|
|
25
|
+
onSeekRange.and.returnValue({start: 0, end: 100});
|
|
26
|
+
|
|
26
27
|
onEnterRegion = jasmine.createSpy('onEnterRegion');
|
|
27
28
|
onExitRegion = jasmine.createSpy('onExitRegion');
|
|
28
29
|
onSkipRegion = jasmine.createSpy('onSkipRegion');
|
|
29
30
|
|
|
30
31
|
timeline = new shaka.media.RegionTimeline(
|
|
31
|
-
()
|
|
32
|
+
shaka.test.Util.spyFunc(onSeekRange));
|
|
32
33
|
|
|
33
34
|
observer = new shaka.media.RegionObserver(timeline);
|
|
34
|
-
observer.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
observer.addEventListener('enter', (event) => {
|
|
36
|
+
shaka.test.Util.spyFunc(onEnterRegion)(event['region'], event['seeking']);
|
|
37
|
+
});
|
|
38
|
+
observer.addEventListener('exit', (event) => {
|
|
39
|
+
shaka.test.Util.spyFunc(onExitRegion)(event['region'], event['seeking']);
|
|
40
|
+
});
|
|
41
|
+
observer.addEventListener('skip', (event) => {
|
|
42
|
+
shaka.test.Util.spyFunc(onSkipRegion)(event['region'], event['seeking']);
|
|
43
|
+
});
|
|
38
44
|
});
|
|
39
45
|
|
|
40
46
|
it('fires enter event when adding a region the playhead is in', () => {
|
|
@@ -313,6 +319,30 @@ describe('RegionObserver', () => {
|
|
|
313
319
|
expect(onSkipRegion).not.toHaveBeenCalled();
|
|
314
320
|
});
|
|
315
321
|
|
|
322
|
+
// See https://github.com/shaka-project/shaka-player/issues/3949
|
|
323
|
+
it('cleans up references to regions', async () => {
|
|
324
|
+
const region = createRegion('my-region', 0, 10);
|
|
325
|
+
timeline.addRegion(region);
|
|
326
|
+
|
|
327
|
+
// Poll so that RegionObserver will store regions.
|
|
328
|
+
poll(observer,
|
|
329
|
+
/* timeInSeconds= */ 5,
|
|
330
|
+
/* seeking= */ false);
|
|
331
|
+
|
|
332
|
+
// Hack to get a private member without the compiler complaining:
|
|
333
|
+
/** @type {Map} */
|
|
334
|
+
const regionMap = (/** @type {?} */(observer))['oldPosition_'];
|
|
335
|
+
expect(regionMap.size).not.toBe(0);
|
|
336
|
+
|
|
337
|
+
// Move the seek range so that the region will be removed.
|
|
338
|
+
onSeekRange.and.returnValue({start: 20, end: 100});
|
|
339
|
+
// Give the timeline time to filter regions
|
|
340
|
+
await shaka.test.Util.delay(
|
|
341
|
+
shaka.media.RegionTimeline.REGION_FILTER_INTERVAL * 2);
|
|
342
|
+
|
|
343
|
+
expect(regionMap.size).toBe(0);
|
|
344
|
+
});
|
|
345
|
+
|
|
316
346
|
/**
|
|
317
347
|
* @param {string} id
|
|
318
348
|
* @param {number} startTimeSeconds
|
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.media.RegionTimeline');
|
|
8
|
-
goog.require('shaka.test.Util');
|
|
9
|
-
|
|
10
7
|
describe('RegionTimeline', () => {
|
|
11
8
|
/** @type {!shaka.media.RegionTimeline} */
|
|
12
9
|
let timeline;
|
|
@@ -14,18 +11,27 @@ describe('RegionTimeline', () => {
|
|
|
14
11
|
/** @type {!jasmine.Spy} */
|
|
15
12
|
let onNewRegion;
|
|
16
13
|
|
|
14
|
+
/** @type {!jasmine.Spy} */
|
|
15
|
+
let onRemoveRegion;
|
|
16
|
+
|
|
17
17
|
/** @type {!jasmine.Spy} */
|
|
18
18
|
let onSeekRange;
|
|
19
19
|
|
|
20
20
|
beforeEach(() => {
|
|
21
|
-
onNewRegion = jasmine.createSpy('onNewRegion');
|
|
22
|
-
|
|
23
21
|
onSeekRange = jasmine.createSpy('onSeekRange');
|
|
24
22
|
onSeekRange.and.returnValue({start: 0, end: 100});
|
|
25
|
-
|
|
26
23
|
timeline = new shaka.media.RegionTimeline(
|
|
27
24
|
shaka.test.Util.spyFunc(onSeekRange));
|
|
28
|
-
|
|
25
|
+
|
|
26
|
+
onNewRegion = jasmine.createSpy('onNewRegion');
|
|
27
|
+
timeline.addEventListener('regionadd', (event) => {
|
|
28
|
+
shaka.test.Util.spyFunc(onNewRegion)(event['region']);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
onRemoveRegion = jasmine.createSpy('onRemoveRegion');
|
|
32
|
+
timeline.addEventListener('regionremove', (event) => {
|
|
33
|
+
shaka.test.Util.spyFunc(onRemoveRegion)(event['region']);
|
|
34
|
+
});
|
|
29
35
|
});
|
|
30
36
|
|
|
31
37
|
afterEach(() => {
|
|
@@ -85,24 +91,33 @@ describe('RegionTimeline', () => {
|
|
|
85
91
|
]);
|
|
86
92
|
});
|
|
87
93
|
|
|
88
|
-
it('filters
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
94
|
+
it('filters regions that end before the seek range', async () => {
|
|
95
|
+
onSeekRange.and.returnValue({start: 5, end: 100});
|
|
96
|
+
|
|
97
|
+
const region1 = createRegion('urn:foo', 'my-region', 0, 3);
|
|
98
|
+
const region2 = createRegion('urn:foo', 'my-region', 3, 10);
|
|
99
|
+
const region3 = createRegion('urn:foo', 'my-region', 5, 10);
|
|
100
|
+
|
|
101
|
+
timeline.addRegion(region1);
|
|
102
|
+
timeline.addRegion(region2);
|
|
103
|
+
timeline.addRegion(region3);
|
|
104
|
+
expect(onNewRegion).toHaveBeenCalledTimes(3);
|
|
105
|
+
expect(onNewRegion).toHaveBeenCalledWith(region1);
|
|
106
|
+
expect(onNewRegion).toHaveBeenCalledWith(region2);
|
|
107
|
+
expect(onNewRegion).toHaveBeenCalledWith(region3);
|
|
108
|
+
|
|
109
|
+
let regions = Array.from(timeline.regions());
|
|
110
|
+
expect(regions.length).toBe(3);
|
|
111
|
+
|
|
112
|
+
// Give the timeline time to filter regions
|
|
113
|
+
await shaka.test.Util.delay(
|
|
114
|
+
shaka.media.RegionTimeline.REGION_FILTER_INTERVAL * 2);
|
|
115
|
+
|
|
116
|
+
regions = Array.from(timeline.regions());
|
|
117
|
+
expect(regions).toEqual([region2, region3]);
|
|
118
|
+
|
|
119
|
+
expect(onRemoveRegion).toHaveBeenCalledWith(region1);
|
|
120
|
+
});
|
|
106
121
|
|
|
107
122
|
/**
|
|
108
123
|
* @param {string} schemeIdUri
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.media.MetaSegmentIndex');
|
|
9
|
-
goog.require('shaka.media.SegmentIndex');
|
|
10
|
-
goog.require('shaka.media.SegmentReference');
|
|
11
|
-
goog.require('shaka.test.Util');
|
|
12
|
-
|
|
13
7
|
describe('SegmentIndex', /** @suppress {accessControls} */ () => {
|
|
14
8
|
const actual1 = makeReference(uri(0), 0, 10);
|
|
15
9
|
const actual2 = makeReference(uri(20), 10, 20);
|
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.media.InitSegmentReference');
|
|
8
|
-
goog.require('shaka.media.SegmentReference');
|
|
9
|
-
|
|
10
7
|
describe('SegmentReference', () => {
|
|
11
8
|
it('returns in getters values from constructor parameters', () => {
|
|
12
9
|
const initSegmentReference = new shaka.media.InitSegmentReference(
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
goog.require('shaka.media.StallDetector');
|
|
9
|
-
goog.require('shaka.media.StallDetector.Implementation');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
|
|
12
7
|
describe('StallDetector', () => {
|
|
13
8
|
/**
|
|
14
9
|
* @implements {shaka.media.StallDetector.Implementation}
|
|
@@ -4,31 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.media.InitSegmentReference');
|
|
8
|
-
goog.require('shaka.media.MediaSourceEngine');
|
|
9
|
-
goog.require('shaka.media.MediaSourcePlayhead');
|
|
10
|
-
goog.require('shaka.media.SegmentIndex');
|
|
11
|
-
goog.require('shaka.media.SegmentReference');
|
|
12
|
-
goog.require('shaka.media.StreamingEngine');
|
|
13
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
14
|
-
goog.require('shaka.test.FakeClosedCaptionParser');
|
|
15
|
-
goog.require('shaka.test.FakeTextDisplayer');
|
|
16
|
-
goog.require('shaka.test.Mp4LiveStreamGenerator');
|
|
17
|
-
goog.require('shaka.test.Mp4VodStreamGenerator');
|
|
18
|
-
goog.require('shaka.test.StreamingEngineUtil');
|
|
19
|
-
goog.require('shaka.test.TestScheme');
|
|
20
|
-
goog.require('shaka.test.UiUtils');
|
|
21
|
-
goog.require('shaka.test.Util');
|
|
22
|
-
goog.require('shaka.test.Waiter');
|
|
23
|
-
goog.require('shaka.util.EventManager');
|
|
24
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
25
|
-
goog.require('shaka.util.Platform');
|
|
26
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
27
|
-
goog.requireType('shaka.media.Playhead');
|
|
28
|
-
goog.requireType('shaka.media.PresentationTimeline');
|
|
29
|
-
goog.requireType('shaka.test.FakeNetworkingEngine');
|
|
30
|
-
goog.requireType('shaka.test.FakePresentationTimeline');
|
|
31
|
-
|
|
32
7
|
describe('StreamingEngine', () => {
|
|
33
8
|
const ContentType = shaka.util.ManifestParserUtils.ContentType;
|
|
34
9
|
const Util = shaka.test.Util;
|
|
@@ -93,6 +68,7 @@ describe('StreamingEngine', () => {
|
|
|
93
68
|
video,
|
|
94
69
|
new shaka.test.FakeClosedCaptionParser(),
|
|
95
70
|
new shaka.test.FakeTextDisplayer());
|
|
71
|
+
waiter.setMediaSourceEngine(mediaSourceEngine);
|
|
96
72
|
});
|
|
97
73
|
|
|
98
74
|
afterEach(async () => {
|
|
@@ -287,7 +263,11 @@ describe('StreamingEngine', () => {
|
|
|
287
263
|
streamingEngine.switchVariant(variant);
|
|
288
264
|
await streamingEngine.start();
|
|
289
265
|
video.play();
|
|
290
|
-
|
|
266
|
+
// The overall test timeout is 120 seconds, and the content is 60
|
|
267
|
+
// seconds. It should be possible to complete this test in 100 seconds,
|
|
268
|
+
// and if not, we want the error thrown to be within the overall test's
|
|
269
|
+
// timeout window.
|
|
270
|
+
await waiter.timeoutAfter(100).waitForEnd(video);
|
|
291
271
|
});
|
|
292
272
|
|
|
293
273
|
it('plays at high playback rates', async () => {
|
|
@@ -308,14 +288,7 @@ describe('StreamingEngine', () => {
|
|
|
308
288
|
await waiter.timeoutAfter(10).waitForMovement(video);
|
|
309
289
|
video.playbackRate = 10;
|
|
310
290
|
|
|
311
|
-
|
|
312
|
-
// Edge, and Safari) where the playhead can go past duration.
|
|
313
|
-
// To cope with this, don't fail on timeout. If the video never got
|
|
314
|
-
// flagged as "ended", check for the playhead to be near or past the end.
|
|
315
|
-
await waiter.timeoutAfter(30).failOnTimeout(false).waitForEnd(video);
|
|
316
|
-
if (!video.ended) {
|
|
317
|
-
expect(video.currentTime).toBeGreaterThan(video.duration - 0.1);
|
|
318
|
-
}
|
|
291
|
+
await waiter.timeoutAfter(30).waitForEnd(video);
|
|
319
292
|
});
|
|
320
293
|
|
|
321
294
|
it('can handle buffered seeks', async () => {
|
|
@@ -325,9 +298,9 @@ describe('StreamingEngine', () => {
|
|
|
325
298
|
video.play();
|
|
326
299
|
|
|
327
300
|
// After 35 seconds seek back 10 seconds into the first Period.
|
|
328
|
-
await waiter.timeoutAfter(
|
|
301
|
+
await waiter.timeoutAfter(80).waitUntilPlayheadReaches(video, 35);
|
|
329
302
|
video.currentTime = 25;
|
|
330
|
-
await waiter.timeoutAfter(
|
|
303
|
+
await waiter.timeoutAfter(80).waitForEnd(video);
|
|
331
304
|
});
|
|
332
305
|
|
|
333
306
|
it('can handle unbuffered seeks', async () => {
|
|
@@ -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.log');
|
|
9
|
-
goog.require('shaka.media.InitSegmentReference');
|
|
10
|
-
goog.require('shaka.media.SegmentReference');
|
|
11
|
-
goog.require('shaka.media.StreamingEngine');
|
|
12
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
13
|
-
goog.require('shaka.net.NetworkingEngine.PendingRequest');
|
|
14
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
15
|
-
goog.require('shaka.test.FakeMediaSourceEngine');
|
|
16
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
17
|
-
goog.require('shaka.test.StreamingEngineUtil');
|
|
18
|
-
goog.require('shaka.test.Util');
|
|
19
|
-
goog.require('shaka.util.AbortableOperation');
|
|
20
|
-
goog.require('shaka.util.Error');
|
|
21
|
-
goog.require('shaka.util.Iterables');
|
|
22
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
23
|
-
goog.require('shaka.util.MimeUtils');
|
|
24
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
25
|
-
goog.require('shaka.util.PublicPromise');
|
|
26
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
27
|
-
goog.requireType('shaka.media.PresentationTimeline');
|
|
28
|
-
goog.requireType('shaka.test.FakeNetworkingEngine');
|
|
29
|
-
goog.requireType('shaka.test.FakePresentationTimeline');
|
|
30
|
-
|
|
31
7
|
describe('StreamingEngine', () => {
|
|
32
8
|
const Util = shaka.test.Util;
|
|
33
9
|
const ContentType = shaka.util.ManifestParserUtils.ContentType;
|
|
@@ -284,7 +260,7 @@ describe('StreamingEngine', () => {
|
|
|
284
260
|
};
|
|
285
261
|
|
|
286
262
|
const segmentsInFirstPeriod = 12;
|
|
287
|
-
for (
|
|
263
|
+
for (let i = 0; i < segmentsInFirstPeriod; i++) {
|
|
288
264
|
segmentData[ContentType.AUDIO].segments.push(
|
|
289
265
|
makeBuffer(segmentSizes[ContentType.AUDIO]));
|
|
290
266
|
segmentData[ContentType.VIDEO].segments.push(
|
|
@@ -298,7 +274,7 @@ describe('StreamingEngine', () => {
|
|
|
298
274
|
}
|
|
299
275
|
|
|
300
276
|
const segmentsInSecondPeriod = 2;
|
|
301
|
-
for (
|
|
277
|
+
for (let i = 0; i < segmentsInSecondPeriod; i++) {
|
|
302
278
|
segmentData[ContentType.AUDIO].segments.push(
|
|
303
279
|
makeBuffer(segmentSizes[ContentType.AUDIO]));
|
|
304
280
|
segmentData[ContentType.VIDEO].segments.push(
|
|
@@ -651,7 +627,7 @@ describe('StreamingEngine', () => {
|
|
|
651
627
|
// should be buffered. Those segment numbers are 1-based, and this array
|
|
652
628
|
// is 0-based, so we expect i >= 9 to be downloaded.
|
|
653
629
|
const segments = mediaSourceEngine.segments;
|
|
654
|
-
for (
|
|
630
|
+
for (let i = 0; i < 14; i++) {
|
|
655
631
|
expect(segments[ContentType.AUDIO][i]).withContext(i).toBe(i >= 9);
|
|
656
632
|
expect(segments[ContentType.VIDEO][i]).withContext(i).toBe(i >= 9);
|
|
657
633
|
expect(segments[ContentType.TEXT][i]).withContext(i).toBe(i >= 9);
|
|
@@ -757,7 +733,7 @@ describe('StreamingEngine', () => {
|
|
|
757
733
|
expect(timeline.setDuration).toHaveBeenCalledWith(35);
|
|
758
734
|
});
|
|
759
735
|
|
|
760
|
-
// https://github.com/
|
|
736
|
+
// https://github.com/shaka-project/shaka-player/issues/979
|
|
761
737
|
it('does not expand the timeline duration', async () => {
|
|
762
738
|
setupVod();
|
|
763
739
|
mediaSourceEngine = new shaka.test.FakeMediaSourceEngine(segmentData);
|
|
@@ -783,7 +759,7 @@ describe('StreamingEngine', () => {
|
|
|
783
759
|
expect(timeline.setDuration).not.toHaveBeenCalled();
|
|
784
760
|
});
|
|
785
761
|
|
|
786
|
-
// https://github.com/
|
|
762
|
+
// https://github.com/shaka-project/shaka-player/issues/1967
|
|
787
763
|
it('does not change duration when 0', async () => {
|
|
788
764
|
setupVod();
|
|
789
765
|
mediaSourceEngine = new shaka.test.FakeMediaSourceEngine(segmentData);
|
|
@@ -828,7 +804,7 @@ describe('StreamingEngine', () => {
|
|
|
828
804
|
.toHaveBeenCalledWith('video', 0, lt20, gt40);
|
|
829
805
|
});
|
|
830
806
|
|
|
831
|
-
// Regression test for https://github.com/
|
|
807
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/3717
|
|
832
808
|
it('applies fudge factors for the duration', async () => {
|
|
833
809
|
setupVod();
|
|
834
810
|
|
|
@@ -931,7 +907,7 @@ describe('StreamingEngine', () => {
|
|
|
931
907
|
expect(mediaSourceEngine.appendBuffer).toHaveBeenCalled();
|
|
932
908
|
});
|
|
933
909
|
|
|
934
|
-
// https://github.com/
|
|
910
|
+
// https://github.com/shaka-project/shaka-player/issues/2957
|
|
935
911
|
it('plays with fewer text segments', async () => {
|
|
936
912
|
setupVod();
|
|
937
913
|
|
|
@@ -1093,7 +1069,7 @@ describe('StreamingEngine', () => {
|
|
|
1093
1069
|
expect(mediaSourceEngine.resetCaptionParser).not.toHaveBeenCalled();
|
|
1094
1070
|
});
|
|
1095
1071
|
|
|
1096
|
-
// See https://github.com/
|
|
1072
|
+
// See https://github.com/shaka-project/shaka-player/issues/2956
|
|
1097
1073
|
it('works with fast variant switches during update', async () => {
|
|
1098
1074
|
// Delay the appendBuffer call until later so we are waiting for this to
|
|
1099
1075
|
// finish when we switch.
|
|
@@ -1661,7 +1637,7 @@ describe('StreamingEngine', () => {
|
|
|
1661
1637
|
});
|
|
1662
1638
|
});
|
|
1663
1639
|
|
|
1664
|
-
// https://github.com/
|
|
1640
|
+
// https://github.com/shaka-project/shaka-player/issues/2670
|
|
1665
1641
|
it('rapid unbuffered seeks', async () => {
|
|
1666
1642
|
// This test simulates rapid dragging of the seek bar, as in #2670.
|
|
1667
1643
|
// In that issue, we would buffer the wrong segments due to a race
|
|
@@ -1800,7 +1776,7 @@ describe('StreamingEngine', () => {
|
|
|
1800
1776
|
|
|
1801
1777
|
// Since we performed an unbuffered seek into the second Period, the
|
|
1802
1778
|
// first 12 segments should not be buffered.
|
|
1803
|
-
for (
|
|
1779
|
+
for (let i = 0; i < 14; i++) {
|
|
1804
1780
|
expect(mediaSourceEngine.segments[ContentType.AUDIO][i]).toBe(i >= 12);
|
|
1805
1781
|
expect(mediaSourceEngine.segments[ContentType.VIDEO][i]).toBe(i >= 12);
|
|
1806
1782
|
expect(mediaSourceEngine.segments[ContentType.TEXT][i]).toBe(i >= 12);
|
|
@@ -2602,7 +2578,7 @@ describe('StreamingEngine', () => {
|
|
|
2602
2578
|
// should be buffered. Those segment numbers are 1-based, and this array
|
|
2603
2579
|
// is 0-based, so we expect i >= 9 to be downloaded.
|
|
2604
2580
|
const segments = mediaSourceEngine.segments;
|
|
2605
|
-
for (
|
|
2581
|
+
for (let i = 0; i < 14; i++) {
|
|
2606
2582
|
expect(segments[ContentType.AUDIO][i]).withContext(i).toBe(i >= 9);
|
|
2607
2583
|
expect(segments[ContentType.VIDEO][i]).withContext(i).toBe(i >= 9);
|
|
2608
2584
|
expect(segments[ContentType.TEXT][i]).withContext(i).toBe(i >= 9);
|
|
@@ -3,12 +3,6 @@
|
|
|
3
3
|
* Copyright 2016 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
goog.require('goog.asserts');
|
|
7
|
-
goog.require('shaka.media.Transmuxer');
|
|
8
|
-
goog.require('shaka.test.Util');
|
|
9
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
10
|
-
goog.require('shaka.util.Mp4BoxParsers');
|
|
11
|
-
goog.require('shaka.util.Mp4Parser');
|
|
12
6
|
|
|
13
7
|
describe('Transmuxer', () => {
|
|
14
8
|
const ContentType = shaka.util.ManifestParserUtils.ContentType;
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.media.WebmSegmentIndexParser');
|
|
8
|
-
goog.require('shaka.test.Util');
|
|
9
|
-
goog.require('shaka.util.Error');
|
|
10
|
-
|
|
11
7
|
describe('WebmSegmentIndexParser', () => {
|
|
12
8
|
const indexSegmentUri = '/base/test/test/assets/index-segment.webm';
|
|
13
9
|
const initSegmentUri = '/base/test/test/assets/init-segment.webm';
|
|
@@ -4,13 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.net.DataUriPlugin');
|
|
8
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
9
|
-
goog.require('shaka.net.NetworkingEngine.RequestType');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.StringUtils');
|
|
13
|
-
|
|
14
7
|
describe('DataUriPlugin', () => {
|
|
15
8
|
const retryParameters = shaka.net.NetworkingEngine.defaultRetryParameters();
|
|
16
9
|
|
|
@@ -4,15 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
goog.require('shaka.net.HttpFetchPlugin');
|
|
9
|
-
goog.require('shaka.net.HttpXHRPlugin');
|
|
10
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
11
|
-
goog.require('shaka.net.NetworkingEngine.RequestType');
|
|
12
|
-
goog.require('shaka.test.Util');
|
|
13
|
-
goog.require('shaka.util.BufferUtils');
|
|
14
|
-
goog.require('shaka.util.Error');
|
|
15
|
-
|
|
16
7
|
/**
|
|
17
8
|
* Add a set of http plugin tests, for the given scheme plugin.
|
|
18
9
|
*
|
|
@@ -4,17 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.net.Backoff');
|
|
8
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
9
|
-
goog.require('shaka.net.NetworkingEngine.RequestType');
|
|
10
|
-
goog.require('shaka.test.StatusPromise');
|
|
11
|
-
goog.require('shaka.test.Util');
|
|
12
|
-
goog.require('shaka.util.AbortableOperation');
|
|
13
|
-
goog.require('shaka.util.Error');
|
|
14
|
-
goog.require('shaka.util.Networking');
|
|
15
|
-
goog.require('shaka.util.PublicPromise');
|
|
16
|
-
goog.requireType('shaka.net.NetworkingEngine.PendingRequest');
|
|
17
|
-
|
|
18
7
|
describe('NetworkingEngine', /** @suppress {accessControls} */ () => {
|
|
19
8
|
const StatusPromise = shaka.test.StatusPromise;
|
|
20
9
|
const Util = shaka.test.Util;
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.offline.indexeddb.V5StorageCell');
|
|
8
|
-
goog.require('shaka.test.IndexedDBUtils');
|
|
9
|
-
goog.require('shaka.test.OfflineUtils');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
|
|
13
7
|
filterDescribe('IndexeddbStorageCell', () => window.indexedDB, () => {
|
|
14
8
|
const IndexedDBUtils = shaka.test.IndexedDBUtils;
|
|
15
9
|
const OfflineUtils = shaka.test.OfflineUtils;
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.media.InitSegmentReference');
|
|
8
|
-
goog.require('shaka.media.PresentationTimeline');
|
|
9
|
-
goog.require('shaka.media.SegmentIndex');
|
|
10
|
-
goog.require('shaka.offline.ManifestConverter');
|
|
11
|
-
goog.require('shaka.offline.OfflineUri');
|
|
12
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
13
|
-
goog.requireType('shaka.media.SegmentReference');
|
|
14
|
-
|
|
15
7
|
describe('ManifestConverter', () => {
|
|
16
8
|
describe('createVariants', () => {
|
|
17
9
|
const audioType = 'audio';
|
|
@@ -4,16 +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.offline.Storage');
|
|
10
|
-
goog.require('shaka.test.TestScheme');
|
|
11
|
-
goog.require('shaka.test.UiUtils');
|
|
12
|
-
goog.require('shaka.test.Util');
|
|
13
|
-
goog.require('shaka.test.Waiter');
|
|
14
|
-
goog.require('shaka.util.EventManager');
|
|
15
|
-
goog.require('shaka.util.Platform');
|
|
16
|
-
|
|
17
7
|
/** @return {boolean} */
|
|
18
8
|
const supportsStorage = () => shaka.offline.Storage.support();
|
|
19
9
|
|
|
@@ -45,6 +35,7 @@ filterDescribe('Offline', supportsStorage, () => {
|
|
|
45
35
|
|
|
46
36
|
eventManager = new shaka.util.EventManager();
|
|
47
37
|
waiter = new shaka.test.Waiter(eventManager);
|
|
38
|
+
waiter.setPlayer(player);
|
|
48
39
|
|
|
49
40
|
// Make sure we are starting with a blank slate.
|
|
50
41
|
await shaka.offline.Storage.deleteAll();
|
|
@@ -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, () => {
|