shaka-player 3.3.2 → 3.3.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/pull_request_template.md +6 -34
- package/.github/workflows/build-and-test.yaml +129 -0
- package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
- package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
- package/.github/workflows/demo-version-index.yaml +29 -0
- package/.github/workflows/nightly-demo.yaml +42 -0
- package/.github/workflows/release-please.yaml +147 -0
- package/.github/workflows/safari-homedir-launcher.sh +18 -0
- package/.github/workflows/selenium-lab-tests.yaml +92 -0
- package/AUTHORS +2 -0
- package/CHANGELOG.md +1718 -1675
- package/CONTRIBUTING.md +2 -2
- package/CONTRIBUTORS +2 -0
- package/README.md +7 -7
- package/app-engine/README.md +9 -0
- package/app-engine/demo-version-index/README.md +14 -0
- package/app-engine/demo-version-index/app.yaml +2 -0
- package/app-engine/demo-version-index/main.py +162 -0
- package/app-engine/demo-version-index/requirements.txt +6 -0
- package/app-engine/demo-version-index/templates/index.html +114 -0
- package/app-engine/shaka-player-demo/README.md +18 -0
- package/app-engine/shaka-player-demo/app.yaml +61 -0
- package/app-engine/shaka-player-demo/main.py +95 -0
- package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
- package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
- package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
- package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
- package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
- package/app-engine/shaka-player-demo/posters/standard.png +0 -0
- package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
- package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
- package/app-engine/shaka-player-demo/posters.py +110 -0
- package/app-engine/shaka-player-demo/requirements.txt +5 -0
- package/app-engine/shaka-player-demo/time.txt +1 -0
- package/build/README.md +3 -3
- package/build/checkversion.py +2 -2
- package/build/conformance.textproto +13 -0
- package/build/docker/Dockerfile +20 -0
- package/build/docker/docker-compose.yml +10 -0
- package/build/gendeps.py +18 -15
- package/build/shaka-lab.yaml +163 -0
- package/build/shakaBuildHelpers.py +4 -29
- package/build/test.py +94 -29
- package/build/types/core +0 -1
- 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 +232 -226
- 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 +247 -236
- package/dist/shaka-player.compiled.debug.d.ts +247 -236
- package/dist/shaka-player.compiled.debug.externs.js +15 -3
- package/dist/shaka-player.compiled.debug.js +284 -290
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +15 -3
- package/dist/shaka-player.compiled.js +855 -859
- 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 +15 -3
- package/dist/shaka-player.ui.debug.js +296 -302
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +15 -3
- package/dist/shaka-player.ui.js +1005 -1009
- 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 +141 -30
- package/lib/abr/simple_abr_manager.js +12 -6
- package/lib/cast/cast_proxy.js +3 -4
- package/lib/cea/cea608_data_channel.js +2 -2
- package/lib/cea/cea708_service.js +5 -4
- package/lib/cea/mp4_cea_parser.js +11 -5
- package/lib/cea/sei_processor.js +6 -3
- package/lib/dash/dash_parser.js +11 -14
- package/lib/dash/mpd_utils.js +4 -5
- package/lib/dash/segment_list.js +1 -2
- package/lib/dash/segment_template.js +3 -3
- package/lib/hls/hls_parser.js +34 -20
- package/lib/hls/manifest_text_parser.js +3 -3
- package/lib/media/adaptation_set.js +1 -2
- package/lib/media/content_workarounds.js +2 -2
- package/lib/media/drm_engine.js +3 -2
- package/lib/media/media_source_engine.js +10 -3
- package/lib/media/mp4_segment_index_parser.js +1 -4
- package/lib/media/playhead.js +2 -2
- package/lib/media/presentation_timeline.js +18 -8
- package/lib/media/streaming_engine.js +6 -6
- package/lib/media/time_ranges_utils.js +1 -3
- package/lib/media/video_wrapper.js +1 -1
- package/lib/net/networking_engine.js +1 -1
- package/lib/offline/indexeddb/storage_mechanism.js +4 -2
- package/lib/offline/storage.js +96 -95
- package/lib/player.js +190 -114
- package/lib/polyfill/all.js +2 -3
- package/lib/polyfill/encryption_scheme.js +1 -1
- package/lib/polyfill/media_capabilities.js +3 -3
- package/lib/polyfill/mediasource.js +1 -1
- package/lib/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/config_utils.js +25 -0
- package/lib/util/ebml_parser.js +3 -3
- package/lib/util/error.js +8 -1
- package/lib/util/iterables.js +0 -46
- package/lib/util/manifest_parser_utils.js +1 -1
- package/lib/util/mime_utils.js +48 -1
- package/lib/util/mp4_box_parsers.js +1 -4
- package/lib/util/mp4_parser.js +5 -7
- package/lib/util/periods.js +15 -15
- package/lib/util/platform.js +3 -3
- package/lib/util/player_configuration.js +9 -14
- package/lib/util/pssh.js +1 -4
- package/lib/util/stream_utils.js +8 -5
- package/lib/util/string_utils.js +3 -5
- package/lib/util/uint8array_utils.js +3 -5
- package/lib/util/xml_utils.js +15 -7
- package/package.json +61 -36
- package/roadmap.md +17 -17
- package/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 +1 -13
- package/test/cea/cea608_memory_unit.js +0 -5
- package/test/cea/cea708_service_unit.js +0 -7
- package/test/cea/cea708_window_unit.js +0 -5
- package/test/cea/cea_decoder_unit.js +0 -6
- package/test/cea/dtvcc_packet_builder_unit.js +0 -3
- package/test/cea/dtvcc_packet_unit.js +0 -5
- package/test/cea/mp4_cea_parser_unit.js +0 -4
- package/test/dash/dash_parser_content_protection_unit.js +1 -10
- package/test/dash/dash_parser_live_unit.js +2 -15
- package/test/dash/dash_parser_manifest_unit.js +2 -40
- package/test/dash/dash_parser_segment_base_unit.js +1 -8
- package/test/dash/dash_parser_segment_list_unit.js +1 -7
- package/test/dash/dash_parser_segment_template_unit.js +0 -9
- package/test/dash/mpd_utils_unit.js +3 -11
- package/test/demo/demo_unit.js +0 -5
- package/test/deprecate/enforcer_unit.js +0 -4
- package/test/deprecate/version_unit.js +0 -2
- package/test/hls/hls_live_unit.js +28 -14
- package/test/hls/hls_parser_unit.js +2 -15
- package/test/hls/manifest_text_parser_unit.js +19 -10
- package/test/media/adaptation_set_criteria_unit.js +3 -7
- package/test/media/adaptation_set_unit.js +0 -2
- package/test/media/buffering_observer_unit.js +1 -4
- package/test/media/closed_caption_parser_unit.js +0 -3
- package/test/media/drm_engine_integration.js +2 -15
- package/test/media/drm_engine_unit.js +4 -24
- package/test/media/manifest_parser_unit.js +0 -4
- package/test/media/media_source_engine_integration.js +1 -7
- package/test/media/media_source_engine_unit.js +5 -18
- package/test/media/mp4_segment_index_parser_unit.js +0 -4
- package/test/media/play_rate_controller_unit.js +0 -4
- package/test/media/playhead_unit.js +8 -16
- package/test/media/presentation_timeline_unit.js +4 -7
- package/test/media/quality_observer_unit.js +0 -4
- package/test/media/region_observer_unit.js +1 -6
- package/test/media/region_timeline_unit.js +0 -3
- package/test/media/segment_index_unit.js +0 -6
- package/test/media/segment_reference_unit.js +0 -3
- package/test/media/stall_detector_unit.js +0 -5
- package/test/media/streaming_engine_integration.js +11 -36
- package/test/media/streaming_engine_unit.js +11 -35
- package/test/media/time_ranges_utils_unit.js +0 -2
- package/test/media/transmuxer_integration.js +0 -6
- package/test/media/webm_segment_index_parser_unit.js +0 -4
- package/test/net/data_uri_plugin_unit.js +0 -7
- package/test/net/http_plugin_unit.js +0 -9
- package/test/net/networking_engine_unit.js +0 -11
- package/test/offline/download_progress_estimator_unit.js +0 -2
- package/test/offline/indexeddb_storage_unit.js +1 -7
- package/test/offline/manifest_convert_unit.js +0 -8
- package/test/offline/offline_integration.js +1 -10
- package/test/offline/offline_manifest_parser_unit.js +0 -6
- package/test/offline/offline_scheme_unit.js +0 -8
- package/test/offline/offline_uri_unit.js +0 -2
- package/test/offline/storage_compatibility_unit.js +2 -15
- package/test/offline/storage_integration.js +1 -27
- package/test/player_external.js +9 -11
- package/test/player_integration.js +28 -38
- package/test/player_load_graph_integration.js +1 -6
- package/test/player_src_equals_external.js +3 -9
- package/test/player_src_equals_integration.js +81 -90
- package/test/player_unit.js +150 -38
- package/test/routing/walker_unit.js +0 -8
- package/test/test/assets/large_file.mpd +1 -1
- package/test/test/boot.js +84 -22
- package/test/test/externs/filters.js +4 -0
- package/test/test/externs/jasmine.js +2 -2
- package/test/test/externs/karma.js +4 -0
- package/test/test/namespace.js +10 -0
- package/test/test/util/canned_idb.js +0 -8
- package/test/test/util/cea_utils.js +0 -6
- package/test/test/util/dash_parser_util.js +0 -13
- package/test/test/util/fake_ad.js +0 -3
- package/test/test/util/fake_ad_manager.js +0 -9
- package/test/test/util/fake_demo_main.js +0 -5
- package/test/test/util/fake_drm_engine.js +0 -6
- package/test/test/util/fake_media_source_engine.js +0 -7
- package/test/test/util/fake_networking_engine.js +0 -5
- package/test/test/util/fake_text_displayer.js +0 -5
- package/test/test/util/indexeddb_utils.js +1 -10
- package/test/test/util/jasmine_fetch.js +0 -1
- package/test/test/util/loader.js +0 -18
- package/test/test/util/manifest_generator.js +9 -14
- package/test/test/util/manifest_parser_util.js +0 -6
- package/test/test/util/offline_utils.js +0 -5
- package/test/test/util/simple_fakes.js +40 -28
- package/test/test/util/stream_generator.js +0 -14
- package/test/test/util/streaming_engine_util.js +0 -15
- package/test/test/util/test_scheme.js +1 -19
- package/test/test/util/ttml_utils.js +0 -2
- package/test/test/util/ui_utils.js +0 -9
- package/test/test/util/util.js +5 -19
- package/test/test/util/waiter.js +84 -43
- package/test/text/cue_integration.js +0 -4
- package/test/text/lrc_text_parser_unit.js +0 -4
- package/test/text/mp4_ttml_parser_unit.js +0 -6
- package/test/text/mp4_vtt_parser_unit.js +1 -7
- package/test/text/sbv_text_parser_unit.js +0 -4
- package/test/text/simple_text_displayer_unit.js +1 -8
- package/test/text/srt_text_parser_unit.js +0 -4
- package/test/text/ssa_text_parser_unit.js +0 -5
- package/test/text/text_engine_unit.js +2 -7
- package/test/text/text_track_integration.js +0 -2
- package/test/text/ttml_text_parser_unit.js +2 -11
- package/test/text/ui_text_displayer_unit.js +44 -41
- package/test/text/vtt_text_parser_unit.js +0 -9
- package/test/text/web_vtt_generator_unit.js +0 -3
- package/test/ui/ad_ui_unit.js +0 -11
- package/test/ui/localization_unit.js +0 -3
- package/test/ui/text_displayer_layout_unit.js +1 -12
- package/test/ui/ui_customization_unit.js +0 -6
- package/test/ui/ui_integration.js +0 -16
- package/test/ui/ui_unit.js +1 -17
- package/test/util/abortable_operation_unit.js +4 -9
- package/test/util/array_utils_unit.js +0 -2
- package/test/util/buffer_utils_unit.js +0 -2
- package/test/util/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/mime_utils_unit.js +54 -0
- package/test/util/mp4_box_parsers_unit.js +0 -5
- package/test/util/mp4_parser_unit.js +0 -4
- package/test/util/multi_map_unit.js +0 -3
- package/test/util/object_utils_unit.js +0 -2
- package/test/util/periods_unit.js +93 -7
- package/test/util/pssh_unit.js +0 -5
- package/test/util/state_history_unit.js +0 -2
- package/test/util/stream_utils_unit.js +3 -8
- package/test/util/string_utils_unit.js +0 -6
- package/test/util/text_parser_unit.js +0 -2
- package/test/util/xml_utils_unit.js +0 -4
- package/ui/less/ad_controls.less +6 -6
- package/ui/less/buttons.less +6 -6
- package/ui/less/containers.less +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/seek_bar.js +2 -1
- package/.github/workflows/build_and_test.yaml +0 -73
- package/.github/workflows/release.yaml +0 -53
- package/docs/tutorials/gsoc-ideas-list.md +0 -3
- package/externs/svgelement.js +0 -18
- package/externs/webcrypto.js +0 -18
- package/lib/util/mutex.js +0 -52
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;
|
|
@@ -146,7 +122,13 @@ describe('Player', () => {
|
|
|
146
122
|
|
|
147
123
|
player.createDrmEngine = () => drmEngine;
|
|
148
124
|
player.createNetworkingEngine = () => networkingEngine;
|
|
149
|
-
player.createPlayhead = () =>
|
|
125
|
+
player.createPlayhead = (startTime) => {
|
|
126
|
+
const callableSetStartTime =
|
|
127
|
+
shaka.test.Util.spyFunc(playhead.setStartTime);
|
|
128
|
+
callableSetStartTime(startTime);
|
|
129
|
+
playhead.setStartTime.calls.reset();
|
|
130
|
+
return playhead;
|
|
131
|
+
};
|
|
150
132
|
player.createMediaSourceEngine = () => mediaSourceEngine;
|
|
151
133
|
player.createStreamingEngine = () => streamingEngine;
|
|
152
134
|
}
|
|
@@ -178,6 +160,7 @@ describe('Player', () => {
|
|
|
178
160
|
window.MediaSource.isTypeSupported = originalIsTypeSupported;
|
|
179
161
|
shaka.media.ManifestParser.unregisterParserByMime(fakeMimeType);
|
|
180
162
|
navigator.mediaCapabilities.decodingInfo = originalDecodingInfo;
|
|
163
|
+
onError.calls.reset();
|
|
181
164
|
}
|
|
182
165
|
});
|
|
183
166
|
|
|
@@ -325,7 +308,7 @@ describe('Player', () => {
|
|
|
325
308
|
// We used to fire the event /before/ filtering, which meant that for
|
|
326
309
|
// multi-codec content, the application might select something which will
|
|
327
310
|
// later be removed during filtering.
|
|
328
|
-
// https://github.com/
|
|
311
|
+
// https://github.com/shaka-project/shaka-player/issues/1119
|
|
329
312
|
it('fires after tracks have been filtered', async () => {
|
|
330
313
|
streamingListener.and.callFake(() => {
|
|
331
314
|
const tracks = player.getVariantTracks();
|
|
@@ -621,7 +604,7 @@ describe('Player', () => {
|
|
|
621
604
|
expect(logWarnSpy).not.toHaveBeenCalled();
|
|
622
605
|
});
|
|
623
606
|
|
|
624
|
-
// Regression test for https://github.com/
|
|
607
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/784
|
|
625
608
|
it('does not throw when overwriting serverCertificate', () => {
|
|
626
609
|
player.configure({
|
|
627
610
|
drm: {
|
|
@@ -687,9 +670,9 @@ describe('Player', () => {
|
|
|
687
670
|
});
|
|
688
671
|
|
|
689
672
|
it('configures play and seek range for VOD', async () => {
|
|
690
|
-
player.configure({playRangeStart: 5, playRangeEnd: 10});
|
|
691
673
|
const timeline = new shaka.media.PresentationTimeline(300, 0);
|
|
692
674
|
timeline.setStatic(true);
|
|
675
|
+
timeline.setDuration(300);
|
|
693
676
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
694
677
|
manifest.presentationTimeline = timeline;
|
|
695
678
|
manifest.addVariant(0, (variant) => {
|
|
@@ -697,7 +680,46 @@ describe('Player', () => {
|
|
|
697
680
|
});
|
|
698
681
|
});
|
|
699
682
|
goog.asserts.assert(manifest, 'manifest must be non-null');
|
|
683
|
+
|
|
684
|
+
player.configure({playRangeStart: 5, playRangeEnd: 10});
|
|
700
685
|
await player.load(fakeManifestUri, 0, fakeMimeType);
|
|
686
|
+
|
|
687
|
+
const seekRange = player.seekRange();
|
|
688
|
+
expect(seekRange.start).toBe(5);
|
|
689
|
+
expect(seekRange.end).toBe(10);
|
|
690
|
+
});
|
|
691
|
+
|
|
692
|
+
// Test for https://github.com/shaka-project/shaka-player/issues/4026
|
|
693
|
+
it('configures play and seek range with notifySegments', async () => {
|
|
694
|
+
const timeline = new shaka.media.PresentationTimeline(300, 0);
|
|
695
|
+
timeline.setStatic(true);
|
|
696
|
+
// This duration is used by useSegmentTemplate below to decide how many
|
|
697
|
+
// references to generate.
|
|
698
|
+
timeline.setDuration(300);
|
|
699
|
+
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
700
|
+
manifest.presentationTimeline = timeline;
|
|
701
|
+
manifest.addVariant(0, (variant) => {
|
|
702
|
+
variant.addVideo(1, (stream) => {
|
|
703
|
+
stream.useSegmentTemplate(
|
|
704
|
+
'$Number$.mp4', /* segmentDuration= */ 10);
|
|
705
|
+
});
|
|
706
|
+
});
|
|
707
|
+
});
|
|
708
|
+
goog.asserts.assert(manifest, 'manifest must be non-null');
|
|
709
|
+
|
|
710
|
+
// Explicitly notify the timeline of the segment references.
|
|
711
|
+
const videoStream = manifest.variants[0].video;
|
|
712
|
+
await videoStream.createSegmentIndex();
|
|
713
|
+
goog.asserts.assert(videoStream.segmentIndex,
|
|
714
|
+
'SegmentIndex must be non-null');
|
|
715
|
+
const references = Array.from(videoStream.segmentIndex);
|
|
716
|
+
goog.asserts.assert(references.length != 0,
|
|
717
|
+
'Must have references for this test!');
|
|
718
|
+
timeline.notifySegments(references);
|
|
719
|
+
|
|
720
|
+
player.configure({playRangeStart: 5, playRangeEnd: 10});
|
|
721
|
+
await player.load(fakeManifestUri, 0, fakeMimeType);
|
|
722
|
+
|
|
701
723
|
const seekRange = player.seekRange();
|
|
702
724
|
expect(seekRange.start).toBe(5);
|
|
703
725
|
expect(seekRange.end).toBe(10);
|
|
@@ -798,7 +820,7 @@ describe('Player', () => {
|
|
|
798
820
|
expect(newConfig.streaming.bufferBehind).toBe(77);
|
|
799
821
|
});
|
|
800
822
|
|
|
801
|
-
// https://github.com/
|
|
823
|
+
// https://github.com/shaka-project/shaka-player/issues/1524
|
|
802
824
|
it('does not pollute other advanced DRM configs', () => {
|
|
803
825
|
player.configure('drm.advanced.foo', {});
|
|
804
826
|
player.configure('drm.advanced.bar', {});
|
|
@@ -1668,8 +1690,8 @@ describe('Player', () => {
|
|
|
1668
1690
|
expect(getActiveTextTrack().id).toBe(spanishTextTrack.id);
|
|
1669
1691
|
});
|
|
1670
1692
|
|
|
1671
|
-
// Regression test for https://github.com/
|
|
1672
|
-
// and https://github.com/
|
|
1693
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/2906
|
|
1694
|
+
// and https://github.com/shaka-project/shaka-player/issues/2909.
|
|
1673
1695
|
it('selectAudioLanguage() can choose role-less tracks', async () => {
|
|
1674
1696
|
// For this test, we use a different (and simpler) manifest.
|
|
1675
1697
|
// Both audio tracks are English; one has a role, and one has no roles.
|
|
@@ -1729,7 +1751,7 @@ describe('Player', () => {
|
|
|
1729
1751
|
expect(getActiveVariantTrack().audioRoles).toEqual([]);
|
|
1730
1752
|
});
|
|
1731
1753
|
|
|
1732
|
-
// https://github.com/
|
|
1754
|
+
// https://github.com/shaka-project/shaka-player/issues/3262
|
|
1733
1755
|
it('selectAudioLanguage() doesn\'t change resolution', () => {
|
|
1734
1756
|
player.configure('abr.enabled', false);
|
|
1735
1757
|
abrManager.chooseIndex = 1;
|
|
@@ -1807,7 +1829,7 @@ describe('Player', () => {
|
|
|
1807
1829
|
expect(getActiveTextTrack().language).toBe('en');
|
|
1808
1830
|
});
|
|
1809
1831
|
|
|
1810
|
-
// https://github.com/
|
|
1832
|
+
// https://github.com/shaka-project/shaka-player/issues/2010
|
|
1811
1833
|
it('changing text lang changes active stream when not streaming', () => {
|
|
1812
1834
|
player.setTextTrackVisibility(false);
|
|
1813
1835
|
|
|
@@ -2112,8 +2134,8 @@ describe('Player', () => {
|
|
|
2112
2134
|
async function runTest(languages, preference, expectedIndex) {
|
|
2113
2135
|
// A manifest we can use to test language selection.
|
|
2114
2136
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
2115
|
-
|
|
2116
|
-
|
|
2137
|
+
for (let i = 0; i < languages.length; i++) {
|
|
2138
|
+
const lang = languages[i];
|
|
2117
2139
|
if (lang.charAt(0) == '*') {
|
|
2118
2140
|
manifest.addVariant(i, (variant) => {
|
|
2119
2141
|
variant.primary = true;
|
|
@@ -2548,7 +2570,7 @@ describe('Player', () => {
|
|
|
2548
2570
|
expect(variants[0].id).toBe(2);
|
|
2549
2571
|
|
|
2550
2572
|
// Now increase the restriction, AbrManager should still be updated.
|
|
2551
|
-
// https://github.com/
|
|
2573
|
+
// https://github.com/shaka-project/shaka-player/issues/1533
|
|
2552
2574
|
abrManager.setVariants.calls.reset();
|
|
2553
2575
|
player.configure({restrictions: {maxBandwidth: Infinity}});
|
|
2554
2576
|
expect(abrManager.setVariants).toHaveBeenCalledTimes(1);
|
|
@@ -2617,6 +2639,51 @@ describe('Player', () => {
|
|
|
2617
2639
|
expect(activeVariant.id).toBe(1);
|
|
2618
2640
|
});
|
|
2619
2641
|
|
|
2642
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/4190
|
|
2643
|
+
it('throws only one RESTRICTIONS_CANNOT_BE_MET error', async () => {
|
|
2644
|
+
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
2645
|
+
manifest.addVariant(0, (variant) => {
|
|
2646
|
+
variant.addVideo(1, (stream) => {
|
|
2647
|
+
stream.keyIds = new Set(['abc']);
|
|
2648
|
+
});
|
|
2649
|
+
});
|
|
2650
|
+
});
|
|
2651
|
+
|
|
2652
|
+
// Check that error is RESTRICTIONS_CANNOT_BE_MET
|
|
2653
|
+
onError.and.callFake((e) => {
|
|
2654
|
+
const error = e.detail;
|
|
2655
|
+
shaka.test.Util.expectToEqualError(
|
|
2656
|
+
error,
|
|
2657
|
+
new shaka.util.Error(
|
|
2658
|
+
shaka.util.Error.Severity.CRITICAL,
|
|
2659
|
+
shaka.util.Error.Category.MANIFEST,
|
|
2660
|
+
shaka.util.Error.Code.RESTRICTIONS_CANNOT_BE_MET, {
|
|
2661
|
+
hasAppRestrictions: false,
|
|
2662
|
+
missingKeys: ['abc'],
|
|
2663
|
+
restrictedKeyStatuses: [],
|
|
2664
|
+
}));
|
|
2665
|
+
});
|
|
2666
|
+
|
|
2667
|
+
await player.load(fakeManifestUri, 0, fakeMimeType);
|
|
2668
|
+
const activeVariant = getActiveVariantTrack();
|
|
2669
|
+
expect(activeVariant.id).toBe(0);
|
|
2670
|
+
|
|
2671
|
+
abrManager.chooseIndex = 0;
|
|
2672
|
+
abrManager.chooseVariant.calls.reset();
|
|
2673
|
+
|
|
2674
|
+
onKeyStatus({'abc': 'output-restricted'});
|
|
2675
|
+
|
|
2676
|
+
// Ensure that RESTRICTIONS_CANNOT_BE_MET is thrown once
|
|
2677
|
+
expect(onError).toHaveBeenCalledTimes(1);
|
|
2678
|
+
|
|
2679
|
+
// It does not call chooseVariant
|
|
2680
|
+
expect(abrManager.chooseVariant).not.toHaveBeenCalled();
|
|
2681
|
+
|
|
2682
|
+
// The first variant is disallowed.
|
|
2683
|
+
expect(manifest.variants[0].id).toBe(0);
|
|
2684
|
+
expect(manifest.variants[0].allowedByKeySystem).toBe(false);
|
|
2685
|
+
});
|
|
2686
|
+
|
|
2620
2687
|
it('doesn\'t switch if the active stream isn\'t restricted', async () => {
|
|
2621
2688
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
2622
2689
|
manifest.addVariant(0, (variant) => {
|
|
@@ -3186,7 +3253,7 @@ describe('Player', () => {
|
|
|
3186
3253
|
// Most of our Player unit tests never adapt. This allowed some assertions
|
|
3187
3254
|
// to creep in that went uncaught until they happened during manual testing.
|
|
3188
3255
|
// Repro only happens with audio+video variants in which we only adapt one
|
|
3189
|
-
// type. This test covers https://github.com/
|
|
3256
|
+
// type. This test covers https://github.com/shaka-project/shaka-player/issues/954
|
|
3190
3257
|
|
|
3191
3258
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
3192
3259
|
manifest.addVariant(0, (variant) => {
|
|
@@ -3268,7 +3335,7 @@ describe('Player', () => {
|
|
|
3268
3335
|
|
|
3269
3336
|
describe('load', () => {
|
|
3270
3337
|
it('tolerates bandwidth of NaN, undefined, or 0', async () => {
|
|
3271
|
-
// Regression test for https://github.com/
|
|
3338
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/938
|
|
3272
3339
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
3273
3340
|
manifest.addVariant(0, (variant) => {
|
|
3274
3341
|
variant.bandwidth = /** @type {?} */(undefined);
|
|
@@ -3623,6 +3690,51 @@ describe('Player', () => {
|
|
|
3623
3690
|
});
|
|
3624
3691
|
});
|
|
3625
3692
|
|
|
3693
|
+
describe('config streaming.startAtSegmentBoundary', () => {
|
|
3694
|
+
// Test for https://github.com/shaka-project/shaka-player/issues/4188
|
|
3695
|
+
// In that issue, using streaming.startAtSegmentBoundary in v4.0.0 caused
|
|
3696
|
+
// an exception due to the use of a removed method.
|
|
3697
|
+
it('adjusts start time', async () => {
|
|
3698
|
+
player.configure('streaming.startAtSegmentBoundary', true);
|
|
3699
|
+
|
|
3700
|
+
// In order to adjust the start time to a segment boundary, we need
|
|
3701
|
+
// segment descriptions in the segment index. So create a non-default
|
|
3702
|
+
// fake manifest.
|
|
3703
|
+
const timeline = new shaka.media.PresentationTimeline(300, 0);
|
|
3704
|
+
timeline.setStatic(true);
|
|
3705
|
+
// This duration is used by useSegmentTemplate below to decide how many
|
|
3706
|
+
// references to generate.
|
|
3707
|
+
timeline.setDuration(300);
|
|
3708
|
+
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
3709
|
+
manifest.presentationTimeline = timeline;
|
|
3710
|
+
manifest.addVariant(0, (variant) => {
|
|
3711
|
+
variant.addVideo(1, (stream) => {
|
|
3712
|
+
stream.useSegmentTemplate(
|
|
3713
|
+
'$Number$.mp4', /* segmentDuration= */ 10);
|
|
3714
|
+
});
|
|
3715
|
+
});
|
|
3716
|
+
});
|
|
3717
|
+
|
|
3718
|
+
await player.load(fakeManifestUri, 12, fakeMimeType);
|
|
3719
|
+
|
|
3720
|
+
expect(playhead.setStartTime).toHaveBeenCalledWith(10);
|
|
3721
|
+
});
|
|
3722
|
+
|
|
3723
|
+
it('does not fail with no segments', async () => {
|
|
3724
|
+
player.configure('streaming.startAtSegmentBoundary', true);
|
|
3725
|
+
|
|
3726
|
+
// Without useSegmentTemplate in the fake manifest, the call to
|
|
3727
|
+
// getIteratorForTime() in Player produces a null iterator. Using the
|
|
3728
|
+
// default fake manifest should cover that case. But just to make sure,
|
|
3729
|
+
// verify that we have no segments before calling load().
|
|
3730
|
+
const variant = manifest.variants[0];
|
|
3731
|
+
expect(variant.video.segmentIndex.getIteratorForTime(0)).toBeNull();
|
|
3732
|
+
expect(variant.audio.segmentIndex.getIteratorForTime(0)).toBeNull();
|
|
3733
|
+
|
|
3734
|
+
await player.load(fakeManifestUri, 0, fakeMimeType);
|
|
3735
|
+
});
|
|
3736
|
+
});
|
|
3737
|
+
|
|
3626
3738
|
/**
|
|
3627
3739
|
* Gets the currently active variant track.
|
|
3628
3740
|
* @return {shaka.extern.Track}
|
|
@@ -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:
|
package/test/test/boot.js
CHANGED
|
@@ -4,18 +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.polyfill');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.Platform');
|
|
13
|
-
|
|
14
|
-
// If ENABLE_DEBUG_LOADER is not set to false, goog.require() will try to load
|
|
15
|
-
// extra sources on-the-fly using pre-computed pathes in deps.js, which is not
|
|
16
|
-
// applicable for the tests.
|
|
17
|
-
goog['ENABLE_DEBUG_LOADER'] = false;
|
|
18
|
-
|
|
19
7
|
/**
|
|
20
8
|
* Gets the value of an argument passed from karma.
|
|
21
9
|
* @param {string} name
|
|
@@ -254,6 +242,15 @@ window.xfilterDescribe = (describeName, cond, describeBody) => {
|
|
|
254
242
|
window['describe'] = oldDescribe;
|
|
255
243
|
};
|
|
256
244
|
|
|
245
|
+
/**
|
|
246
|
+
* A very short alias for filtering offline integration tests.
|
|
247
|
+
*
|
|
248
|
+
* @return {boolean}
|
|
249
|
+
*/
|
|
250
|
+
window.offlineSupported = () => {
|
|
251
|
+
return shaka.offline.StorageMuxer.support();
|
|
252
|
+
};
|
|
253
|
+
|
|
257
254
|
/**
|
|
258
255
|
* Load node modules used in testing and install them into window.
|
|
259
256
|
* @return {!Promise}
|
|
@@ -384,9 +381,10 @@ function configureJasmineEnvironment() {
|
|
|
384
381
|
};
|
|
385
382
|
}
|
|
386
383
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
384
|
+
/**
|
|
385
|
+
* Set up the Shaka Player test environment.
|
|
386
|
+
*/
|
|
387
|
+
function setupTestEnvironment() {
|
|
390
388
|
failTestsOnFailedAssertions();
|
|
391
389
|
failTestsOnNamespacedElementOrAttributeNames();
|
|
392
390
|
failTestsOnUnhandledRejections();
|
|
@@ -399,12 +397,76 @@ try {
|
|
|
399
397
|
shaka.polyfill.installAll();
|
|
400
398
|
|
|
401
399
|
configureJasmineEnvironment();
|
|
400
|
+
}
|
|
402
401
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
402
|
+
/**
|
|
403
|
+
* Load a script dynamically and await completion.
|
|
404
|
+
*
|
|
405
|
+
* @param {string} file
|
|
406
|
+
* @return {!Promise}
|
|
407
|
+
*/
|
|
408
|
+
function loadScript(file) {
|
|
409
|
+
return new Promise((resolve, reject) => {
|
|
410
|
+
const script = /** @type {!HTMLScriptElement} */(
|
|
411
|
+
document.createElement('script'));
|
|
412
|
+
script.defer = false;
|
|
413
|
+
script['async'] = false;
|
|
414
|
+
script.onload = resolve;
|
|
415
|
+
script.onerror = reject;
|
|
416
|
+
script.setAttribute('src', '/base/' + file);
|
|
417
|
+
document.head.appendChild(script);
|
|
418
|
+
});
|
|
410
419
|
}
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Load all test scripts and await completion.
|
|
423
|
+
*
|
|
424
|
+
* @return {!Promise}
|
|
425
|
+
*/
|
|
426
|
+
function loadTests() {
|
|
427
|
+
const loadPromises = [];
|
|
428
|
+
for (const file of getClientArg('testFiles')) {
|
|
429
|
+
loadPromises.push(loadScript(file));
|
|
430
|
+
}
|
|
431
|
+
return Promise.all(loadPromises);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
// Hijack Karma's start() method and start things our way.
|
|
435
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
436
|
+
const originalStart = window.__karma__.start.bind(window.__karma__);
|
|
437
|
+
window.__karma__.start = async () => {
|
|
438
|
+
// Executed when Karma has finished loading everything it loads for us.
|
|
439
|
+
// Those things were all loaded in parallel, and had no interdependencies
|
|
440
|
+
// other than those in the Shaka Player library, tracked by the Closure
|
|
441
|
+
// library's goog.require/goog.provide.
|
|
442
|
+
|
|
443
|
+
// Now we load the tests from here, rather than letting Karma do it. This
|
|
444
|
+
// give us control over the order, so that everything else is loaded and
|
|
445
|
+
// complete before any tests are requested. Then we may reference test
|
|
446
|
+
// utilities and library namespaces in the body of describe() blocks, which
|
|
447
|
+
// are executed synchronously as the test scripts are loaded. Without this
|
|
448
|
+
// ordering, we would have to either:
|
|
449
|
+
// 1. very carefully avoid references in describe() and defer them to
|
|
450
|
+
// beforeAll()
|
|
451
|
+
// or 2. strictly adopt goog.provide/goog.require throughout our tests
|
|
452
|
+
// In those scenarios, failure to do so would only manifest some of the time
|
|
453
|
+
// and on certain platforms. So this seems to be the more robust solution.
|
|
454
|
+
|
|
455
|
+
// See https://github.com/shaka-project/shaka-player/issues/4094
|
|
456
|
+
|
|
457
|
+
try {
|
|
458
|
+
setupTestEnvironment();
|
|
459
|
+
console.log('Set up test environment.');
|
|
460
|
+
await loadTests();
|
|
461
|
+
console.log('Loaded all tests.');
|
|
462
|
+
|
|
463
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
464
|
+
} catch (error) {
|
|
465
|
+
console.error('Error during setup:', error);
|
|
466
|
+
window.__karma__.error(error);
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
// Finally, start the tests.
|
|
471
|
+
originalStart();
|
|
472
|
+
};
|
|
@@ -343,7 +343,7 @@ jasmine.Spy.prototype.and;
|
|
|
343
343
|
/**
|
|
344
344
|
* @param {string} name
|
|
345
345
|
* @return {!jasmine.Spy}
|
|
346
|
-
* @see https://github.com/
|
|
346
|
+
* @see https://github.com/shaka-project/closure-compiler/issues/1422
|
|
347
347
|
*/
|
|
348
348
|
jasmine.createSpy = function(name) {};
|
|
349
349
|
|
|
@@ -360,7 +360,7 @@ jasmine.createSpyObj = function(name, members) {};
|
|
|
360
360
|
* @param {*} obj
|
|
361
361
|
* @param {string} name
|
|
362
362
|
* @return {!jasmine.Spy}
|
|
363
|
-
* @see https://github.com/
|
|
363
|
+
* @see https://github.com/shaka-project/closure-compiler/issues/1422
|
|
364
364
|
*/
|
|
365
365
|
var spyOn = function(obj, name) {};
|
|
366
366
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*! @license
|
|
2
|
+
* Shaka Player
|
|
3
|
+
* Copyright 2016 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Define the shaka.test namespace before we load the test utilities.
|
|
8
|
+
// Without goog.provide in the test utils, this has to be explicit and come
|
|
9
|
+
// before we load the utils.
|
|
10
|
+
shaka.test = {};
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.CannedIDB');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.offline.indexeddb.DBOperation');
|
|
11
|
-
goog.require('shaka.util.BufferUtils');
|
|
12
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
13
|
-
|
|
14
|
-
|
|
15
7
|
/**
|
|
16
8
|
* A testing utility that can be used to dump and restore entire IndexedDB
|
|
17
9
|
* databases. This can be inserted into a running app to snapshot databases
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.CeaUtils');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.cea.CeaUtils');
|
|
10
|
-
goog.require('shaka.text.Cue');
|
|
11
|
-
|
|
12
|
-
|
|
13
7
|
/**
|
|
14
8
|
* Testing helpers to assist tests for Closed Caption decoders for CEA captions.
|
|
15
9
|
*/
|
|
@@ -4,19 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.Dash');
|
|
8
|
-
|
|
9
|
-
goog.require('goog.asserts');
|
|
10
|
-
goog.require('shaka.dash.DashParser');
|
|
11
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
12
|
-
goog.require('shaka.test.ManifestParser');
|
|
13
|
-
goog.require('shaka.test.Util');
|
|
14
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
15
|
-
goog.require('shaka.util.StringUtils');
|
|
16
|
-
goog.requireType('shaka.media.SegmentReference');
|
|
17
|
-
goog.requireType('shaka.util.Error');
|
|
18
|
-
|
|
19
|
-
|
|
20
7
|
/** @summary Utilities for working with the DASH parser. */
|
|
21
8
|
shaka.test.Dash = class {
|
|
22
9
|
/**
|
|
@@ -4,15 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.FakeAdManager');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.ads.AdManager');
|
|
10
|
-
goog.require('shaka.ads.AdsStats');
|
|
11
|
-
goog.require('shaka.util.FakeEvent');
|
|
12
|
-
goog.require('shaka.util.FakeEventTarget');
|
|
13
|
-
goog.requireType('shaka.test.FakeAd');
|
|
14
|
-
|
|
15
|
-
|
|
16
7
|
/**
|
|
17
8
|
* @implements {shaka.extern.IAdManager}
|
|
18
9
|
* @final
|
|
@@ -4,13 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.FakeMediaSourceEngine');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.media.MediaSourceEngine');
|
|
10
|
-
goog.require('shaka.test.FakeTextDisplayer');
|
|
11
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
12
|
-
|
|
13
|
-
|
|
14
7
|
/**
|
|
15
8
|
* @summary
|
|
16
9
|
* This simulates multiple SourceBuffers. However, it only
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.FakeNetworkingEngine');
|
|
8
|
-
|
|
9
|
-
/** @fileoverview @suppress {missingRequire} */
|
|
10
|
-
|
|
11
|
-
|
|
12
7
|
/**
|
|
13
8
|
* A fake networking engine that returns constant data. The request member
|
|
14
9
|
* is a jasmine spy and can be used to check the actual calls that occurred.
|