shaka-player 3.3.0 → 3.3.3
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 +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 +1722 -1640
- 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 +196 -169
- 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/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 +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 +272 -238
- package/dist/shaka-player.compiled.debug.d.ts +272 -238
- package/dist/shaka-player.compiled.debug.externs.js +53 -16
- package/dist/shaka-player.compiled.debug.js +393 -394
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +53 -16
- package/dist/shaka-player.compiled.js +840 -843
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +318 -293
- package/dist/shaka-player.ui.debug.d.ts +318 -293
- package/dist/shaka-player.ui.debug.externs.js +55 -27
- package/dist/shaka-player.ui.debug.js +415 -417
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +55 -27
- package/dist/shaka-player.ui.js +997 -1000
- 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 +186 -0
- 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 +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 +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/quality_observer.js +17 -34
- 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 +87 -41
- 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/polyfill/symbol.js +46 -0
- 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/cmcd_manager.js +47 -201
- 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 +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/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 +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/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 +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 -27
- package/test/player_external.js +2 -10
- package/test/player_integration.js +63 -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 +499 -239
- 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 +29 -18
- 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/third_party/closure-uri/uri.js +21 -0
- package/ui/controls.js +3 -0
- package/ui/less/ad_controls.less +4 -4
- package/ui/less/buttons.less +5 -5
- package/ui/less/containers.less +9 -11
- package/ui/less/overflow_menu.less +4 -4
- package/ui/less/range_elements.less +5 -0
- package/ui/less/tooltip.less +1 -1
- 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
- package/externs/webcrypto.js +0 -18
|
@@ -4,19 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.Player');
|
|
8
|
-
goog.require('shaka.cast.CastUtils');
|
|
9
|
-
goog.require('shaka.media.MediaSourceEngine');
|
|
10
|
-
goog.require('shaka.media.TimeRangesUtils');
|
|
11
|
-
goog.require('shaka.test.FakeClosedCaptionParser');
|
|
12
|
-
goog.require('shaka.test.FakeTextDisplayer');
|
|
13
|
-
goog.require('shaka.test.UiUtils');
|
|
14
|
-
goog.require('shaka.test.Util');
|
|
15
|
-
goog.require('shaka.util.EventManager');
|
|
16
|
-
goog.require('shaka.util.FakeEvent');
|
|
17
|
-
goog.require('shaka.util.FakeEventTarget');
|
|
18
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
19
|
-
|
|
20
7
|
describe('CastUtils', () => {
|
|
21
8
|
const CastUtils = shaka.cast.CastUtils;
|
|
22
9
|
const FakeEvent = shaka.util.FakeEvent;
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.Cea608Memory');
|
|
8
|
-
goog.require('shaka.cea.CeaUtils');
|
|
9
|
-
goog.require('shaka.test.CeaUtils');
|
|
10
|
-
goog.require('shaka.text.Cue');
|
|
11
|
-
|
|
12
7
|
describe('Cea608Memory', () => {
|
|
13
8
|
const CeaUtils = shaka.test.CeaUtils;
|
|
14
9
|
|
|
@@ -4,13 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.Cea708Service');
|
|
8
|
-
goog.require('shaka.cea.CeaUtils');
|
|
9
|
-
goog.require('shaka.cea.DtvccPacket');
|
|
10
|
-
goog.require('shaka.cea.DtvccPacketBuilder');
|
|
11
|
-
goog.require('shaka.test.CeaUtils');
|
|
12
|
-
goog.require('shaka.text.Cue');
|
|
13
|
-
|
|
14
7
|
describe('Cea708Service', () => {
|
|
15
8
|
const CeaUtils = shaka.test.CeaUtils;
|
|
16
9
|
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.Cea708Window');
|
|
8
|
-
goog.require('shaka.cea.CeaUtils');
|
|
9
|
-
goog.require('shaka.test.CeaUtils');
|
|
10
|
-
goog.require('shaka.text.Cue');
|
|
11
|
-
|
|
12
7
|
describe('Cea708Window', () => {
|
|
13
8
|
const CeaUtils = shaka.test.CeaUtils;
|
|
14
9
|
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.CeaDecoder');
|
|
8
|
-
goog.require('shaka.cea.CeaUtils');
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.test.CeaUtils');
|
|
11
|
-
goog.require('shaka.text.Cue');
|
|
12
|
-
|
|
13
7
|
describe('CeaDecoder', () => {
|
|
14
8
|
const CeaUtils = shaka.test.CeaUtils;
|
|
15
9
|
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.DtvccPacket');
|
|
8
|
-
goog.require('shaka.cea.DtvccPacketBuilder');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.util.Error');
|
|
11
|
-
|
|
12
7
|
describe('DtvccPacket', () => {
|
|
13
8
|
/** @type {!shaka.cea.DtvccPacket} */
|
|
14
9
|
let dtvccPacket;
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.cea.Mp4CeaParser');
|
|
8
|
-
goog.require('shaka.test.Util');
|
|
9
|
-
goog.require('shaka.util.Error');
|
|
10
|
-
|
|
11
7
|
describe('Mp4CeaParser', () => {
|
|
12
8
|
const ceaInitSegmentUri = '/base/test/test/assets/cea-init.mp4';
|
|
13
9
|
const ceaSegmentUri = '/base/test/test/assets/cea-segment.mp4';
|
|
@@ -4,15 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.dash.ContentProtection');
|
|
8
|
-
goog.require('shaka.dash.DashParser');
|
|
9
|
-
goog.require('shaka.test.Dash');
|
|
10
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.Iterables');
|
|
13
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
14
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
15
|
-
|
|
16
7
|
// Test DRM-related parsing.
|
|
17
8
|
describe('DashParser ContentProtection', () => {
|
|
18
9
|
const Dash = shaka.test.Dash;
|
|
@@ -142,7 +133,7 @@ describe('DashParser ContentProtection', () => {
|
|
|
142
133
|
|
|
143
134
|
const variants = [];
|
|
144
135
|
const numVariants = 2;
|
|
145
|
-
for (
|
|
136
|
+
for (let i = 0; i < numVariants; i++) {
|
|
146
137
|
const variant = jasmine.objectContaining({
|
|
147
138
|
video: jasmine.objectContaining({
|
|
148
139
|
keyIds: new Set(keyIds[i] ? [keyIds[i]] : []),
|
|
@@ -4,19 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.dash.DashParser');
|
|
9
|
-
goog.require('shaka.media.SegmentReference');
|
|
10
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
11
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
12
|
-
goog.require('shaka.test.ManifestParser');
|
|
13
|
-
goog.require('shaka.test.Util');
|
|
14
|
-
goog.require('shaka.util.AbortableOperation');
|
|
15
|
-
goog.require('shaka.util.Error');
|
|
16
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
17
|
-
goog.require('shaka.util.StringUtils');
|
|
18
|
-
goog.requireType('shaka.util.PublicPromise');
|
|
19
|
-
|
|
20
7
|
describe('DashParser Live', () => {
|
|
21
8
|
const Util = shaka.test.Util;
|
|
22
9
|
const ManifestParser = shaka.test.ManifestParser;
|
|
@@ -1228,8 +1215,8 @@ describe('DashParser Live', () => {
|
|
|
1228
1215
|
const liveEdge =
|
|
1229
1216
|
manifest.presentationTimeline.getSegmentAvailabilityEnd();
|
|
1230
1217
|
|
|
1231
|
-
// In https://github.com/
|
|
1232
|
-
// final segment failed an assertion and returned endTime == 0.
|
|
1218
|
+
// In https://github.com/shaka-project/shaka-player/issues/1204, a get on
|
|
1219
|
+
// the final segment failed an assertion and returned endTime == 0.
|
|
1233
1220
|
// Find the last segment by looking just before the live edge. Looking
|
|
1234
1221
|
// right on the live edge creates test flake, and the segments are 2
|
|
1235
1222
|
// seconds in duration.
|
|
@@ -1389,6 +1376,49 @@ describe('DashParser Live', () => {
|
|
|
1389
1376
|
.toHaveBeenCalledWith(
|
|
1390
1377
|
jasmine.objectContaining({id: '2', startTime: 10, endTime: 25}));
|
|
1391
1378
|
});
|
|
1379
|
+
|
|
1380
|
+
it('will not add timeline regions outside the DVR window', async () => {
|
|
1381
|
+
const manifest = [
|
|
1382
|
+
'<MPD type="dynamic" minimumUpdatePeriod="PT' + updateTime + 'S"',
|
|
1383
|
+
' availabilityStartTime="1970-01-01T00:00:00Z"',
|
|
1384
|
+
' suggestedPresentationDelay="PT0S"',
|
|
1385
|
+
' timeShiftBufferDepth="PT30S">',
|
|
1386
|
+
' <Period id="1">',
|
|
1387
|
+
' <EventStream schemeIdUri="http://example.com" timescale="1">',
|
|
1388
|
+
' <Event id="0" presentationTime="0" duration="10"/>',
|
|
1389
|
+
' <Event id="1" presentationTime="10" duration="10"/>',
|
|
1390
|
+
' <Event id="2" presentationTime="20" duration="10"/>',
|
|
1391
|
+
' <Event id="3" presentationTime="30" duration="10"/>',
|
|
1392
|
+
' <Event id="4" presentationTime="40" duration="10"/>',
|
|
1393
|
+
' </EventStream>',
|
|
1394
|
+
' <AdaptationSet mimeType="video/mp4">',
|
|
1395
|
+
' <Representation bandwidth="1">',
|
|
1396
|
+
' <SegmentTemplate startNumber="1" media="s$Number$.mp4"',
|
|
1397
|
+
' duration="2" />',
|
|
1398
|
+
' </Representation>',
|
|
1399
|
+
' </AdaptationSet>',
|
|
1400
|
+
' </Period>',
|
|
1401
|
+
'</MPD>',
|
|
1402
|
+
].join('\n');
|
|
1403
|
+
|
|
1404
|
+
// 45 seconds after the epoch, which is also 45 seconds after the
|
|
1405
|
+
// presentation started. Only the last 30 seconds are available, from
|
|
1406
|
+
// time 15 to 45.
|
|
1407
|
+
Date.now = () => 45 * 1000;
|
|
1408
|
+
|
|
1409
|
+
fakeNetEngine.setResponseText('dummy://foo', manifest);
|
|
1410
|
+
await parser.start('dummy://foo', playerInterface);
|
|
1411
|
+
|
|
1412
|
+
expect(onTimelineRegionAddedSpy).toHaveBeenCalledTimes(4);
|
|
1413
|
+
expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
|
|
1414
|
+
jasmine.objectContaining({id: '1'}));
|
|
1415
|
+
expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
|
|
1416
|
+
jasmine.objectContaining({id: '2'}));
|
|
1417
|
+
expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
|
|
1418
|
+
jasmine.objectContaining({id: '3'}));
|
|
1419
|
+
expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
|
|
1420
|
+
jasmine.objectContaining({id: '4'}));
|
|
1421
|
+
});
|
|
1392
1422
|
});
|
|
1393
1423
|
|
|
1394
1424
|
it('honors clockSyncUri for in-progress recordings', async () => {
|
|
@@ -4,21 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.media.SegmentReference');
|
|
9
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
10
|
-
goog.require('shaka.test.Dash');
|
|
11
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
12
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
13
|
-
goog.require('shaka.test.Util');
|
|
14
|
-
goog.require('shaka.util.AbortableOperation');
|
|
15
|
-
goog.require('shaka.util.Error');
|
|
16
|
-
goog.require('shaka.util.LanguageUtils');
|
|
17
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
18
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
19
|
-
goog.require('shaka.util.StringUtils');
|
|
20
|
-
goog.requireType('shaka.dash.DashParser');
|
|
21
|
-
|
|
22
7
|
// Test basic manifest parsing functionality.
|
|
23
8
|
describe('DashParser Manifest', () => {
|
|
24
9
|
const ContentType = shaka.util.ManifestParserUtils.ContentType;
|
|
@@ -985,7 +970,8 @@ describe('DashParser Manifest', () => {
|
|
|
985
970
|
|
|
986
971
|
it('duplicate Representation ids with live', async () => {
|
|
987
972
|
const source = [
|
|
988
|
-
'<MPD minBufferTime="PT75S" type="dynamic"
|
|
973
|
+
'<MPD minBufferTime="PT75S" type="dynamic"',
|
|
974
|
+
' availabilityStartTime="1970-01-01T00:00:00Z">',
|
|
989
975
|
' <Period id="1" duration="PT30S">',
|
|
990
976
|
' <AdaptationSet mimeType="video/mp4">',
|
|
991
977
|
' <Representation id="1" bandwidth="1">',
|
|
@@ -1276,7 +1262,8 @@ describe('DashParser Manifest', () => {
|
|
|
1276
1262
|
});
|
|
1277
1263
|
|
|
1278
1264
|
it('handles bandwidth of 0 or missing', async () => {
|
|
1279
|
-
// Regression test for
|
|
1265
|
+
// Regression test for
|
|
1266
|
+
// https://github.com/shaka-project/shaka-player/issues/938
|
|
1280
1267
|
const source = [
|
|
1281
1268
|
'<MPD minBufferTime="PT75S">',
|
|
1282
1269
|
' <Period id="1" duration="PT30S">',
|
|
@@ -4,13 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.test.Dash');
|
|
9
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.requireType('shaka.dash.DashParser');
|
|
13
|
-
|
|
14
7
|
describe('DashParser SegmentBase', () => {
|
|
15
8
|
const Dash = shaka.test.Dash;
|
|
16
9
|
|
|
@@ -308,7 +301,7 @@ describe('DashParser SegmentBase', () => {
|
|
|
308
301
|
expect(reference.endTime).toBe(10); // would be 12 without PTO
|
|
309
302
|
});
|
|
310
303
|
|
|
311
|
-
// https://github.com/
|
|
304
|
+
// https://github.com/shaka-project/shaka-player/issues/3230
|
|
312
305
|
it('works with multi-Period with eviction', async () => {
|
|
313
306
|
const source = [
|
|
314
307
|
'<MPD mediaPresentationDuration="PT75S">',
|
|
@@ -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.test.Dash');
|
|
9
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
10
|
-
goog.require('shaka.test.ManifestParser');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
|
|
13
7
|
describe('DashParser SegmentList', () => {
|
|
14
8
|
const Dash = shaka.test.Dash;
|
|
15
9
|
const ManifestParser = shaka.test.ManifestParser;
|
|
@@ -308,7 +302,7 @@ describe('DashParser SegmentList', () => {
|
|
|
308
302
|
});
|
|
309
303
|
});
|
|
310
304
|
|
|
311
|
-
// https://github.com/
|
|
305
|
+
// https://github.com/shaka-project/shaka-player/issues/3230
|
|
312
306
|
it('works with multi-Period with eviction', async () => {
|
|
313
307
|
const setFormat = [
|
|
314
308
|
' <AdaptationSet mimeType="video/mp4">',
|
|
@@ -4,15 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.test.Dash');
|
|
9
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
10
|
-
goog.require('shaka.test.ManifestParser');
|
|
11
|
-
goog.require('shaka.test.Util');
|
|
12
|
-
goog.require('shaka.util.Error');
|
|
13
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
14
|
-
goog.requireType('shaka.dash.DashParser');
|
|
15
|
-
|
|
16
7
|
describe('DashParser SegmentTemplate', () => {
|
|
17
8
|
const Dash = shaka.test.Dash;
|
|
18
9
|
const ManifestParser = shaka.test.ManifestParser;
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.dash.MpdUtils');
|
|
8
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
9
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.Iterables');
|
|
13
|
-
goog.requireType('shaka.util.PublicPromise');
|
|
14
|
-
|
|
15
7
|
describe('MpdUtils', () => {
|
|
16
8
|
const MpdUtils = shaka.dash.MpdUtils;
|
|
17
9
|
|
|
@@ -384,7 +376,7 @@ describe('MpdUtils', () => {
|
|
|
384
376
|
|
|
385
377
|
it('adjust start time w/ t missing', () => {
|
|
386
378
|
// No S@t is equivalent to t=0, which should use PTO to make negative.
|
|
387
|
-
// See https://github.com/
|
|
379
|
+
// See https://github.com/shaka-project/shaka-player/issues/2590
|
|
388
380
|
const timePoints = [
|
|
389
381
|
createTimePoint(null, 10, 0),
|
|
390
382
|
createTimePoint(10, 10, 0),
|
|
@@ -536,7 +528,7 @@ describe('MpdUtils', () => {
|
|
|
536
528
|
'<ToReplace xlink:href="https://xlink0" xlink:actuate="onLoad" />');
|
|
537
529
|
// Create a large but finite number of links, so this won't
|
|
538
530
|
// infinitely recurse if there isn't a depth limit.
|
|
539
|
-
for (
|
|
531
|
+
for (let i = 0; i < 20; i++) {
|
|
540
532
|
const key = 'https://xlink' + i;
|
|
541
533
|
const value = makeRecursiveXMLString(0, 'https://xlink' + (i + 1));
|
|
542
534
|
|
|
@@ -659,7 +651,7 @@ describe('MpdUtils', () => {
|
|
|
659
651
|
'<ToReplace xlink:href="https://xlink0" xlink:actuate="onLoad" />');
|
|
660
652
|
// Create a few links. This is few enough that it would succeed if we
|
|
661
653
|
// didn't abort it.
|
|
662
|
-
for (
|
|
654
|
+
for (let i = 0; i < 4; i++) {
|
|
663
655
|
const key = 'https://xlink' + i;
|
|
664
656
|
const value = makeRecursiveXMLString(0, 'https://xlink' + (i + 1));
|
|
665
657
|
|
package/test/demo/demo_unit.js
CHANGED
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.test.FakeDemoMain');
|
|
8
|
-
goog.require('shaka.test.Util');
|
|
9
|
-
goog.require('shaka.util.StringUtils');
|
|
10
|
-
goog.require('shakaDemo.MessageIds');
|
|
11
|
-
|
|
12
7
|
describe('Demo', () => {
|
|
13
8
|
beforeEach(() => {
|
|
14
9
|
// Make mock versions of misc third-party libraries.
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.deprecate.Enforcer');
|
|
8
|
-
goog.require('shaka.deprecate.Version');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
|
|
11
7
|
describe('Enforcer', () => {
|
|
12
8
|
const Enforcer = shaka.deprecate.Enforcer;
|
|
13
9
|
const Version = shaka.deprecate.Version;
|
|
@@ -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.hls.HlsParser');
|
|
9
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
10
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
11
|
-
goog.require('shaka.test.ManifestParser');
|
|
12
|
-
goog.require('shaka.test.Util');
|
|
13
|
-
goog.require('shaka.util.Functional');
|
|
14
|
-
goog.require('shaka.util.Iterables');
|
|
15
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
16
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
17
|
-
goog.requireType('shaka.util.PublicPromise');
|
|
18
|
-
|
|
19
7
|
describe('HlsParser live', () => {
|
|
20
8
|
const ManifestParser = shaka.test.ManifestParser;
|
|
21
9
|
|
|
@@ -437,8 +425,8 @@ describe('HlsParser live', () => {
|
|
|
437
425
|
'#EXT-X-MAP:URI="init.mp4",BYTERANGE="616@0"\n',
|
|
438
426
|
'#EXT-X-MEDIA-SEQUENCE:0\n',
|
|
439
427
|
].join('');
|
|
440
|
-
|
|
441
|
-
|
|
428
|
+
|
|
429
|
+
for (let i = 0; i < 1000; i++) {
|
|
442
430
|
mediaWithManySegments += '#EXTINF:2,\n';
|
|
443
431
|
mediaWithManySegments += 'main.mp4\n';
|
|
444
432
|
}
|
|
@@ -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.hls.HlsParser');
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
11
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
12
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
13
|
-
goog.require('shaka.test.ManifestParser');
|
|
14
|
-
goog.require('shaka.test.Util');
|
|
15
|
-
goog.require('shaka.util.Error');
|
|
16
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
17
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
18
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
19
|
-
|
|
20
7
|
describe('HlsParser', () => {
|
|
21
8
|
const ContentType = shaka.util.ManifestParserUtils.ContentType;
|
|
22
9
|
const ManifestParser = shaka.test.ManifestParser;
|
|
@@ -211,6 +198,80 @@ describe('HlsParser', () => {
|
|
|
211
198
|
expect(actual).toEqual(manifest);
|
|
212
199
|
});
|
|
213
200
|
|
|
201
|
+
it('parses manifest attributes with space', async () => {
|
|
202
|
+
const master = [
|
|
203
|
+
'#EXTM3U\n',
|
|
204
|
+
'#EXT-X-MEDIA:TYPE=AUDIO, GROUP-ID="aud1", LANGUAGE="eng", ',
|
|
205
|
+
'CHANNELS="16/JOC", URI="audio"\n',
|
|
206
|
+
'#EXT-X-MEDIA:TYPE=SUBTITLES, GROUP-ID="sub1", LANGUAGE="eng", ',
|
|
207
|
+
'URI="text"\n',
|
|
208
|
+
'#EXT-X-MEDIA:TYPE=SUBTITLES, GROUP-ID="sub2", LANGUAGE="es", ',
|
|
209
|
+
'URI="text2"\n',
|
|
210
|
+
'#EXT-X-STREAM-INF:BANDWIDTH=200, CODECS="avc1,mp4a", ',
|
|
211
|
+
'RESOLUTION=960x540, FRAME-RATE=60, AUDIO="aud1"\n',
|
|
212
|
+
'video\n',
|
|
213
|
+
].join('');
|
|
214
|
+
|
|
215
|
+
const media = [
|
|
216
|
+
'#EXTM3U\n',
|
|
217
|
+
'#EXT-X-PLAYLIST-TYPE:VOD\n',
|
|
218
|
+
'#EXT-X-MAP:URI="init.mp4",BYTERANGE="616@0"\n',
|
|
219
|
+
'#EXTINF:5,\n',
|
|
220
|
+
'#EXT-X-BYTERANGE:121090@616\n',
|
|
221
|
+
'main.mp4',
|
|
222
|
+
].join('');
|
|
223
|
+
|
|
224
|
+
const textMedia = [
|
|
225
|
+
'#EXTM3U\n',
|
|
226
|
+
'#EXT-X-PLAYLIST-TYPE:VOD\n',
|
|
227
|
+
'#EXTINF:5,\n',
|
|
228
|
+
'#EXT-X-BYTERANGE:121090@616\n',
|
|
229
|
+
'main.vtt',
|
|
230
|
+
].join('');
|
|
231
|
+
|
|
232
|
+
const manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
233
|
+
manifest.anyTimeline();
|
|
234
|
+
manifest.addPartialVariant((variant) => {
|
|
235
|
+
variant.language = 'en';
|
|
236
|
+
variant.bandwidth = 200;
|
|
237
|
+
variant.addPartialStream(ContentType.VIDEO, (stream) => {
|
|
238
|
+
stream.frameRate = 60;
|
|
239
|
+
stream.mime('video/mp4', 'avc1');
|
|
240
|
+
stream.size(960, 540);
|
|
241
|
+
});
|
|
242
|
+
variant.addPartialStream(ContentType.AUDIO, (stream) => {
|
|
243
|
+
stream.language = 'en';
|
|
244
|
+
stream.channelsCount = 16;
|
|
245
|
+
stream.spatialAudio = true;
|
|
246
|
+
stream.mime('audio/mp4', 'mp4a');
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
manifest.addPartialTextStream((stream) => {
|
|
250
|
+
stream.language = 'en';
|
|
251
|
+
stream.kind = TextStreamKind.SUBTITLE;
|
|
252
|
+
stream.mime('text/vtt', '');
|
|
253
|
+
});
|
|
254
|
+
manifest.addPartialTextStream((stream) => {
|
|
255
|
+
stream.language = 'es';
|
|
256
|
+
stream.kind = TextStreamKind.SUBTITLE;
|
|
257
|
+
stream.mime('text/vtt', '');
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
fakeNetEngine
|
|
262
|
+
.setResponseText('test:/master', master)
|
|
263
|
+
.setResponseText('test:/audio', media)
|
|
264
|
+
.setResponseText('test:/video', media)
|
|
265
|
+
.setResponseText('test:/text', textMedia)
|
|
266
|
+
.setResponseText('test:/text2', textMedia)
|
|
267
|
+
.setResponseText('test:/main.vtt', vttText)
|
|
268
|
+
.setResponseValue('test:/init.mp4', initSegmentData)
|
|
269
|
+
.setResponseValue('test:/main.mp4', segmentData);
|
|
270
|
+
|
|
271
|
+
const actual = await parser.start('test:/master', playerInterface);
|
|
272
|
+
expect(actual).toEqual(manifest);
|
|
273
|
+
});
|
|
274
|
+
|
|
214
275
|
it('prioritize AVERAGE-BANDWIDTH to BANDWIDTH', async () => {
|
|
215
276
|
const master = [
|
|
216
277
|
'#EXTM3U\n',
|
|
@@ -2870,7 +2931,7 @@ describe('HlsParser', () => {
|
|
|
2870
2931
|
expect(audio0).toBe(audio1);
|
|
2871
2932
|
});
|
|
2872
2933
|
|
|
2873
|
-
// https://github.com/
|
|
2934
|
+
// https://github.com/shaka-project/shaka-player/issues/1664
|
|
2874
2935
|
it('correctly resolves relative playlist URIs', async () => {
|
|
2875
2936
|
const master = [
|
|
2876
2937
|
'#EXTM3U\n',
|
|
@@ -2913,7 +2974,7 @@ describe('HlsParser', () => {
|
|
|
2913
2974
|
expect(manifest.variants.length).toBe(1);
|
|
2914
2975
|
});
|
|
2915
2976
|
|
|
2916
|
-
// https://github.com/
|
|
2977
|
+
// https://github.com/shaka-project/shaka-player/issues/1908
|
|
2917
2978
|
it('correctly pairs variants with multiple video and audio', async () => {
|
|
2918
2979
|
const master = [
|
|
2919
2980
|
'#EXTM3U\n',
|
|
@@ -4,16 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
goog.require('shaka.hls.Attribute');
|
|
9
|
-
goog.require('shaka.hls.ManifestTextParser');
|
|
10
|
-
goog.require('shaka.hls.PlaylistType');
|
|
11
|
-
goog.require('shaka.hls.Segment');
|
|
12
|
-
goog.require('shaka.hls.Tag');
|
|
13
|
-
goog.require('shaka.test.Util');
|
|
14
|
-
goog.require('shaka.util.Error');
|
|
15
|
-
goog.require('shaka.util.StringUtils');
|
|
16
|
-
|
|
17
7
|
describe('ManifestTextParser', () => {
|
|
18
8
|
/** @type {!shaka.hls.ManifestTextParser} */
|
|
19
9
|
let parser;
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.media.PreferenceBasedCriteria');
|
|
8
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
9
|
-
goog.requireType('shaka.media.AdaptationSet');
|
|
10
|
-
|
|
11
7
|
describe('AdaptationSetCriteria', () => {
|
|
12
8
|
describe('preference based selection', () => {
|
|
13
9
|
it('chooses variants in user\'s preferred language', () => {
|
|
@@ -84,7 +80,7 @@ describe('AdaptationSetCriteria', () => {
|
|
|
84
80
|
});
|
|
85
81
|
|
|
86
82
|
it('chooses only one role, even if none is preferred', () => {
|
|
87
|
-
// Regression test for https://github.com/
|
|
83
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/949
|
|
88
84
|
const manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
89
85
|
manifest.addVariant(1, (variant) => {
|
|
90
86
|
variant.language = 'en';
|
|
@@ -136,7 +132,7 @@ describe('AdaptationSetCriteria', () => {
|
|
|
136
132
|
});
|
|
137
133
|
|
|
138
134
|
it('chooses only one role, even if all are primary', () => {
|
|
139
|
-
// Regression test for https://github.com/
|
|
135
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/949
|
|
140
136
|
const manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
141
137
|
manifest.addVariant(1, (variant) => {
|
|
142
138
|
variant.language = 'en';
|
|
@@ -194,7 +190,7 @@ describe('AdaptationSetCriteria', () => {
|
|
|
194
190
|
});
|
|
195
191
|
|
|
196
192
|
it('chooses only one language, even if all are primary', () => {
|
|
197
|
-
// Regression test for https://github.com/
|
|
193
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/918
|
|
198
194
|
const manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
199
195
|
manifest.addVariant(1, (variant) => {
|
|
200
196
|
variant.language = 'en';
|
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.media.BufferingObserver');
|
|
8
|
-
goog.require('shaka.util.Iterables');
|
|
9
|
-
|
|
10
7
|
describe('BufferingObserver', () => {
|
|
11
8
|
const BufferingObserver = shaka.media.BufferingObserver;
|
|
12
9
|
const State = shaka.media.BufferingObserver.State;
|
|
@@ -115,7 +112,7 @@ describe('BufferingObserver', () => {
|
|
|
115
112
|
/** @type {boolean} */
|
|
116
113
|
let changed;
|
|
117
114
|
|
|
118
|
-
for (
|
|
115
|
+
for (let lead = 0; lead < 5; lead++) {
|
|
119
116
|
changed = controller.update(lead, /* toEnd= */ false);
|
|
120
117
|
expect(changed).toBeFalsy();
|
|
121
118
|
}
|
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.media.ClosedCaptionParser');
|
|
8
|
-
goog.require('shaka.test.Util');
|
|
9
|
-
|
|
10
7
|
describe('ClosedCaptionParser', () => {
|
|
11
8
|
it('can handle empty caption packets', async () => {
|
|
12
9
|
const initSegment = await shaka.test.Util.fetch(
|