shaka-player 4.6.4 → 4.7.0
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/README.md +1 -0
- package/dist/controls.css +1 -1
- package/dist/controls.css.map +1 -1
- package/dist/deps.js +9 -5
- package/dist/locales.js +29 -29
- package/dist/shaka-player.compiled.d.ts +46 -3
- package/dist/shaka-player.compiled.debug.d.ts +46 -3
- package/dist/shaka-player.compiled.debug.externs.js +45 -0
- package/dist/shaka-player.compiled.debug.js +382 -351
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +45 -0
- package/dist/shaka-player.compiled.js +1135 -1121
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +68 -4
- package/dist/shaka-player.ui.debug.d.ts +68 -4
- package/dist/shaka-player.ui.debug.externs.js +77 -0
- package/dist/shaka-player.ui.debug.js +428 -392
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +77 -0
- package/dist/shaka-player.ui.js +1304 -1290
- package/dist/shaka-player.ui.map +4 -4
- package/externs/mediasession.js +7 -0
- package/externs/shaka/abr_manager.js +8 -0
- package/externs/shaka/manifest.js +3 -3
- package/externs/shaka/player.js +59 -4
- package/lib/abr/simple_abr_manager.js +41 -15
- package/lib/cea/cea708_service.js +1 -1
- package/lib/cea/cea708_window.js +95 -7
- package/lib/dash/dash_parser.js +55 -11
- package/lib/media/adaptation_set_criteria.js +76 -10
- package/lib/media/media_source_engine.js +42 -18
- package/lib/media/segment_reference.js +12 -0
- package/lib/media/streaming_engine.js +55 -3
- package/lib/player.js +92 -6
- package/lib/util/cmsd_manager.js +269 -0
- package/lib/util/content_steering_manager.js +5 -1
- package/lib/util/mime_utils.js +6 -2
- package/lib/util/periods.js +108 -39
- package/lib/util/player_configuration.js +19 -5
- package/lib/util/stream_utils.js +82 -13
- package/package.json +1 -1
- package/ui/audio_language_selection.js +3 -0
- package/ui/controls.js +60 -0
- package/ui/externs/ui.js +12 -1
- package/ui/hidden_fast_forward_button.js +32 -0
- package/ui/hidden_rewind_button.js +32 -0
- package/ui/hidden_seek_button.js +121 -0
- package/ui/less/buttons.less +50 -0
- package/ui/less/containers.less +18 -0
- package/ui/resolution_selection.js +2 -0
- package/ui/ui.js +2 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -75
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -26
- package/.github/ISSUE_TEMPLATE/question.md +0 -26
- package/.github/config.yml +0 -1
- package/.github/workflows/appspot.yaml +0 -39
- package/.github/workflows/build-and-test.yaml +0 -222
- package/.github/workflows/compute-incremental-coverage.py +0 -265
- package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +0 -56
- package/.github/workflows/custom-actions/set-commit-status/action.yaml +0 -37
- package/.github/workflows/deflake.yaml +0 -31
- package/.github/workflows/demo-version-index.yaml +0 -43
- package/.github/workflows/nightly-demo.yaml +0 -42
- package/.github/workflows/release-please.yaml +0 -193
- package/.github/workflows/report-incremental-coverage.yaml +0 -39
- package/.github/workflows/safari-homedir-launcher.sh +0 -18
- package/.github/workflows/selenium-lab-tests.yaml +0 -370
- package/.github/workflows/shaka-bot-commands/command-help.sh +0 -27
- package/.github/workflows/shaka-bot-commands/command-test.sh +0 -56
- package/.github/workflows/shaka-bot-commands/lib.sh +0 -83
- package/.github/workflows/shaka-bot-commands/main.sh +0 -51
- package/.github/workflows/sync-labels.yaml +0 -33
- package/.github/workflows/talk-to-shaka-bot.yaml +0 -29
- package/.github/workflows/update-issues.yaml +0 -31
- package/.github/workflows/update-screenshots.yaml +0 -142
- package/.github/workflows/validate-pr-title.yaml +0 -27
- package/CHANGELOG.md +0 -5774
- package/CODE_OF_CONDUCT.md +0 -93
- package/CONTRIBUTING.md +0 -76
- package/demo/TengwarTelcontar.woff2 +0 -0
- package/demo/app_logo_144.png +0 -0
- package/demo/app_logo_192.png +0 -0
- package/demo/app_logo_256.png +0 -0
- package/demo/app_logo_384.png +0 -0
- package/demo/app_logo_512.png +0 -0
- package/demo/app_manifest.json +0 -29
- package/demo/asset_card.js +0 -410
- package/demo/autoTemplate.txt +0 -61
- package/demo/cast_receiver/idle1.jpg +0 -0
- package/demo/cast_receiver/idle2.jpg +0 -0
- package/demo/cast_receiver/idle3.jpg +0 -0
- package/demo/cast_receiver/index.html +0 -75
- package/demo/cast_receiver/receiver_app.css +0 -111
- package/demo/cast_receiver/receiver_app.js +0 -158
- package/demo/close_button.js +0 -60
- package/demo/common/asset.js +0 -510
- package/demo/common/assets.js +0 -1634
- package/demo/config.js +0 -859
- package/demo/custom.js +0 -907
- package/demo/customWarning.txt +0 -8
- package/demo/demo.less +0 -591
- package/demo/demo_uncompiled.js +0 -11
- package/demo/demo_utils.js +0 -113
- package/demo/favicon.ico +0 -0
- package/demo/front.js +0 -156
- package/demo/icons/README.md +0 -4
- package/demo/icons/baseline-audiotrack-24px.svg +0 -1
- package/demo/icons/baseline-closed_caption-24px.svg +0 -1
- package/demo/icons/baseline-fast_forward-24px.svg +0 -1
- package/demo/icons/baseline-language-24px.svg +0 -1
- package/demo/icons/baseline-live_tv-24px.svg +0 -1
- package/demo/icons/baseline-subtitles-24px.svg +0 -1
- package/demo/icons/baseline-surround_sound-24px.svg +0 -1
- package/demo/icons/custom_ad.svg +0 -1
- package/demo/icons/custom_box_with_text.svg +0 -1
- package/demo/icons/custom_clear_key.svg +0 -1
- package/demo/icons/custom_high_definition.svg +0 -1
- package/demo/icons/custom_playready.svg +0 -1
- package/demo/icons/custom_ultra_high_definition.svg +0 -1
- package/demo/icons/custom_widevine.svg +0 -1
- package/demo/index.html +0 -173
- package/demo/input.js +0 -270
- package/demo/input_container.js +0 -218
- package/demo/load.js +0 -156
- package/demo/main.js +0 -1854
- package/demo/search.js +0 -452
- package/demo/service_worker.js +0 -355
- package/demo/shaka_logo_trans.png +0 -0
- package/demo/tooltip.js +0 -29
- package/demo/visualizer.js +0 -335
- package/demo/visualizer_button.js +0 -84
- package/dist/demo.compiled.debug.js +0 -340
- package/dist/demo.compiled.debug.map +0 -8
- package/dist/demo.compiled.js +0 -340
- package/dist/demo.compiled.map +0 -8
- package/dist/demo.css +0 -6
- package/dist/demo.css.map +0 -1
- package/dist/receiver.compiled.debug.js +0 -187
- package/dist/receiver.compiled.debug.map +0 -8
- package/dist/receiver.compiled.js +0 -187
- package/dist/receiver.compiled.map +0 -8
- package/docs/announcement-list-join-group.png +0 -0
- package/docs/api-mainpage.md +0 -28
- package/docs/design/REDESIGN.md +0 -283
- package/docs/design/architecture.md +0 -13
- package/docs/design/bg-fetch-after.gv +0 -29
- package/docs/design/bg-fetch-after.gv.png +0 -0
- package/docs/design/bg-fetch-before.gv +0 -18
- package/docs/design/bg-fetch-before.gv.png +0 -0
- package/docs/design/bg-fetch.md +0 -134
- package/docs/design/cast.gv +0 -35
- package/docs/design/cast.gv.png +0 -0
- package/docs/design/chromecast.md +0 -151
- package/docs/design/codec_preferences.md +0 -158
- package/docs/design/dash-audio-channels.md +0 -123
- package/docs/design/dash-manifests.md +0 -248
- package/docs/design/dash-timeline.svg +0 -4
- package/docs/design/dataflow.gv +0 -66
- package/docs/design/dataflow.gv.png +0 -0
- package/docs/design/export.md +0 -70
- package/docs/design/fuzzy-locale-matching.md +0 -40
- package/docs/design/gap-jumping.md +0 -151
- package/docs/design/lcevc-architecture.png +0 -0
- package/docs/design/lcevc-demo.png +0 -0
- package/docs/design/lcevc-integration.md +0 -72
- package/docs/design/locale_compatibility.svg +0 -1
- package/docs/design/locales_tree.svg +0 -1
- package/docs/design/localization-design-principles.md +0 -158
- package/docs/design/newdemo.gv +0 -83
- package/docs/design/newdemo.gv.png +0 -0
- package/docs/design/offline.gv +0 -43
- package/docs/design/offline.gv.png +0 -0
- package/docs/design/offline.md +0 -153
- package/docs/design/ownership.gv +0 -76
- package/docs/design/ownership.gv.png +0 -0
- package/docs/design/preload.md +0 -299
- package/docs/design/preload.png +0 -0
- package/docs/design/talking-about-languages.md +0 -46
- package/docs/design/timeline.svg +0 -152
- package/docs/design/ui.md +0 -31
- package/docs/design/ui_player_relationships.svg +0 -1
- package/docs/jsdoc-plugin.js +0 -74
- package/docs/jsdoc-template/README.md +0 -1
- package/docs/jsdoc-template/publish.js +0 -879
- package/docs/jsdoc-template/static/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docs/jsdoc-template/static/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docs/jsdoc-template/static/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docs/jsdoc-template/static/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docs/jsdoc-template/static/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docs/jsdoc-template/static/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/jsdoc-template/static/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docs/jsdoc-template/static/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/jsdoc-template/static/scripts/linenumber.js +0 -44
- package/docs/jsdoc-template/static/scripts/show-widget.js +0 -55
- package/docs/jsdoc-template/static/styles/jsdoc-default.css +0 -438
- package/docs/jsdoc-template/tmpl/augments.tmpl +0 -10
- package/docs/jsdoc-template/tmpl/container.tmpl +0 -205
- package/docs/jsdoc-template/tmpl/details.tmpl +0 -152
- package/docs/jsdoc-template/tmpl/example.tmpl +0 -2
- package/docs/jsdoc-template/tmpl/examples.tmpl +0 -13
- package/docs/jsdoc-template/tmpl/exceptions.tmpl +0 -32
- package/docs/jsdoc-template/tmpl/layout.tmpl +0 -50
- package/docs/jsdoc-template/tmpl/mainpage.tmpl +0 -14
- package/docs/jsdoc-template/tmpl/members.tmpl +0 -47
- package/docs/jsdoc-template/tmpl/method.tmpl +0 -140
- package/docs/jsdoc-template/tmpl/modifies.tmpl +0 -14
- package/docs/jsdoc-template/tmpl/params.tmpl +0 -131
- package/docs/jsdoc-template/tmpl/properties.tmpl +0 -125
- package/docs/jsdoc-template/tmpl/returns.tmpl +0 -19
- package/docs/jsdoc-template/tmpl/source.tmpl +0 -8
- package/docs/jsdoc-template/tmpl/tutorial.tmpl +0 -21
- package/docs/jsdoc-template/tmpl/type.tmpl +0 -7
- package/docs/jsdoc.conf.json +0 -38
- package/docs/shaka-player-logo.png +0 -0
- package/docs/style.md +0 -174
- package/docs/tutorials/a11y.md +0 -64
- package/docs/tutorials/ad_monetization.md +0 -292
- package/docs/tutorials/application-level-redirects.md +0 -94
- package/docs/tutorials/architecture.md +0 -32
- package/docs/tutorials/basic-usage.md +0 -89
- package/docs/tutorials/blob-url.md +0 -15
- package/docs/tutorials/config.md +0 -148
- package/docs/tutorials/debugging.md +0 -189
- package/docs/tutorials/drm-config.md +0 -274
- package/docs/tutorials/errors.md +0 -95
- package/docs/tutorials/fairplay.md +0 -242
- package/docs/tutorials/faq.md +0 -252
- package/docs/tutorials/index.json +0 -29
- package/docs/tutorials/lcevc.md +0 -118
- package/docs/tutorials/license-server-auth.md +0 -248
- package/docs/tutorials/license-wrapping.md +0 -168
- package/docs/tutorials/manifest-parser.md +0 -365
- package/docs/tutorials/network-and-buffering-config.md +0 -119
- package/docs/tutorials/offline.md +0 -683
- package/docs/tutorials/plugins.md +0 -184
- package/docs/tutorials/selenium-grid-config.md +0 -174
- package/docs/tutorials/service-worker.md +0 -106
- package/docs/tutorials/ui-customization.md +0 -288
- package/docs/tutorials/ui.md +0 -232
- package/docs/tutorials/upgrade-manifest.md +0 -281
- package/docs/tutorials/upgrade.md +0 -104
- package/docs/tutorials/welcome.md +0 -108
- package/docs/tutorials/widevine-service-certs.md +0 -45
- package/karma.conf.js +0 -879
- package/maintained-branches.md +0 -15
- package/roadmap.md +0 -186
- package/test/abr/simple_abr_manager_unit.js +0 -398
- package/test/ads/ad_manager_unit.js +0 -260
- package/test/assumptions/uint8_array_unit.js +0 -22
- package/test/cast/cast_proxy_unit.js +0 -736
- package/test/cast/cast_receiver_integration.js +0 -488
- package/test/cast/cast_receiver_unit.js +0 -1183
- package/test/cast/cast_sender_unit.js +0 -973
- package/test/cast/cast_utils_unit.js +0 -311
- package/test/cea/cea608_memory_unit.js +0 -411
- package/test/cea/cea708_service_unit.js +0 -674
- package/test/cea/cea708_window_unit.js +0 -373
- package/test/cea/cea_decoder_unit.js +0 -615
- package/test/cea/dtvcc_packet_builder_unit.js +0 -158
- package/test/cea/dtvcc_packet_unit.js +0 -60
- package/test/cea/mp4_cea_parser_unit.js +0 -127
- package/test/codec_switching/codec_switching_integration.js +0 -182
- package/test/dash/dash_parser_content_protection_unit.js +0 -998
- package/test/dash/dash_parser_integration.js +0 -74
- package/test/dash/dash_parser_live_unit.js +0 -1542
- package/test/dash/dash_parser_manifest_unit.js +0 -3121
- package/test/dash/dash_parser_segment_base_unit.js +0 -421
- package/test/dash/dash_parser_segment_list_unit.js +0 -380
- package/test/dash/dash_parser_segment_template_unit.js +0 -910
- package/test/dash/mpd_utils_unit.js +0 -794
- package/test/demo/demo_unit.js +0 -108
- package/test/deprecate/enforcer_unit.js +0 -74
- package/test/deprecate/version_unit.js +0 -57
- package/test/hls/hls_live_unit.js +0 -1330
- package/test/hls/hls_parser_unit.js +0 -5276
- package/test/hls/manifest_text_parser_unit.js +0 -545
- package/test/media/adaptation_set_criteria_unit.js +0 -806
- package/test/media/adaptation_set_unit.js +0 -229
- package/test/media/buffering_observer_unit.js +0 -143
- package/test/media/closed_caption_parser_unit.js +0 -18
- package/test/media/content_workarounds_unit.js +0 -43
- package/test/media/drm_engine_integration.js +0 -356
- package/test/media/drm_engine_unit.js +0 -2805
- package/test/media/media_source_engine_integration.js +0 -691
- package/test/media/media_source_engine_unit.js +0 -1512
- package/test/media/mp4_segment_index_parser_unit.js +0 -80
- package/test/media/play_rate_controller_unit.js +0 -69
- package/test/media/playhead_unit.js +0 -1394
- package/test/media/presentation_timeline_unit.js +0 -477
- package/test/media/quality_observer_unit.js +0 -138
- package/test/media/region_observer_unit.js +0 -374
- package/test/media/region_timeline_unit.js +0 -139
- package/test/media/segment_index_unit.js +0 -1080
- package/test/media/segment_prefetch_unit.js +0 -243
- package/test/media/segment_reference_unit.js +0 -63
- package/test/media/stall_detector_unit.js +0 -184
- package/test/media/streaming_engine_integration.js +0 -632
- package/test/media/streaming_engine_unit.js +0 -4211
- package/test/media/time_ranges_utils_unit.js +0 -123
- package/test/media/webm_segment_index_parser_unit.js +0 -90
- package/test/mss/mss_parser_content_protection_unit.js +0 -49
- package/test/mss/mss_parser_unit.js +0 -474
- package/test/mss/mss_player_integration.js +0 -124
- package/test/net/data_uri_plugin_unit.js +0 -105
- package/test/net/http_plugin_unit.js +0 -439
- package/test/net/networking_engine_unit.js +0 -1236
- package/test/net/networking_utils_unit.js +0 -37
- package/test/offline/download_progress_estimator_unit.js +0 -90
- package/test/offline/indexeddb_storage_unit.js +0 -192
- package/test/offline/manifest_convert_unit.js +0 -622
- package/test/offline/offline_integration.js +0 -168
- package/test/offline/offline_manifest_parser_unit.js +0 -231
- package/test/offline/offline_scheme_unit.js +0 -154
- package/test/offline/offline_uri_unit.js +0 -59
- package/test/offline/storage_compatibility_unit.js +0 -344
- package/test/offline/storage_integration.js +0 -1858
- package/test/player_external.js +0 -237
- package/test/player_integration.js +0 -1371
- package/test/player_load_graph_integration.js +0 -865
- package/test/player_src_equals_external.js +0 -154
- package/test/player_src_equals_integration.js +0 -527
- package/test/player_unit.js +0 -4434
- package/test/polyfill/media_capabilities_unit.js +0 -277
- package/test/polyfill/patchedmediakeys_apple_unit.js +0 -130
- package/test/test/assets/3675/chunk-stream0-00001.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00002.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00003.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00004.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00005.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00006.m4s +0 -0
- package/test/test/assets/3675/chunk-stream0-00007.m4s +0 -0
- package/test/test/assets/3675/dash_0.mpd +0 -30
- package/test/test/assets/3675/dash_1.mpd +0 -30
- package/test/test/assets/3675/dash_2.mpd +0 -30
- package/test/test/assets/3675/dash_3.mpd +0 -30
- package/test/test/assets/3675/dash_4.mpd +0 -30
- package/test/test/assets/3675/dash_5.mpd +0 -26
- package/test/test/assets/3675/init-stream0.m4s +0 -0
- package/test/test/assets/audio-xhe-aac.mp4 +0 -0
- package/test/test/assets/audio.ts +0 -0
- package/test/test/assets/captions-test.ts +0 -0
- package/test/test/assets/cea-init.mp4 +0 -0
- package/test/test/assets/cea-segment.mp4 +0 -0
- package/test/test/assets/chapters.srt +0 -11
- package/test/test/assets/chapters.vtt +0 -10
- package/test/test/assets/chapters2.vtt +0 -10
- package/test/test/assets/dash-aes-128/Fragments(video=0,format=mpd-time-csf) +0 -0
- package/test/test/assets/dash-aes-128/Fragments(video=20000000,format=mpd-time-csf) +0 -0
- package/test/test/assets/dash-aes-128/Fragments(video=40000000,format=mpd-time-csf) +0 -0
- package/test/test/assets/dash-aes-128/Fragments(video=60000000,format=mpd-time-csf) +0 -0
- package/test/test/assets/dash-aes-128/Fragments(video=i,format=mpd-time-csf) +0 -0
- package/test/test/assets/dash-aes-128/dash.mpd +0 -18
- package/test/test/assets/dash-aes-128/license +0 -1
- package/test/test/assets/dash-multi-codec/audio_en_2c_128k_aac.mp4 +0 -0
- package/test/test/assets/dash-multi-codec/audio_es_2c_64k_opus.webm +0 -0
- package/test/test/assets/dash-multi-codec/dash.mpd +0 -32
- package/test/test/assets/dash-multi-codec/video_144p_108k_h264.mp4 +0 -0
- package/test/test/assets/db-dump-v1.json +0 -1
- package/test/test/assets/db-dump-v2-broken.json +0 -1
- package/test/test/assets/db-dump-v2-clean.json +0 -1
- package/test/test/assets/db-dump-v3.json +0 -1
- package/test/test/assets/db-dump-v4-broken.json +0 -1
- package/test/test/assets/db-dump-v5.json +0 -1
- package/test/test/assets/empty_caption_video_init.mp4 +0 -0
- package/test/test/assets/empty_caption_video_segment.mp4 +0 -0
- package/test/test/assets/encrypted-sintel-audio-init.mp4 +0 -0
- package/test/test/assets/encrypted-sintel-audio-segment.mp4 +0 -0
- package/test/test/assets/encrypted-sintel-video-init.mp4 +0 -0
- package/test/test/assets/encrypted-sintel-video-segment.mp4 +0 -0
- package/test/test/assets/green-pixel.mp4 +0 -0
- package/test/test/assets/green-pixel.txt +0 -15
- package/test/test/assets/h265-cea-init.mp4 +0 -0
- package/test/test/assets/h265-cea-segment.mp4 +0 -0
- package/test/test/assets/hls-raw-aac/fileSequence0.aac +0 -0
- package/test/test/assets/hls-raw-aac/fileSequence1.aac +0 -0
- package/test/test/assets/hls-raw-aac/fileSequence2.aac +0 -0
- package/test/test/assets/hls-raw-aac/fileSequence3.aac +0 -0
- package/test/test/assets/hls-raw-aac/manifest.m3u8 +0 -4
- package/test/test/assets/hls-raw-aac/stream.m4a.m3u8 +0 -14
- package/test/test/assets/hls-raw-ac3/fileSequence0.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence1.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence2.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence3.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence4.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence5.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence6.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/fileSequence7.ac3 +0 -0
- package/test/test/assets/hls-raw-ac3/prog_index.m3u8 +0 -31
- package/test/test/assets/hls-raw-ec3/fileSequence0.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence1.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence2.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence3.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence4.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence5.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence6.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/fileSequence7.ec3 +0 -0
- package/test/test/assets/hls-raw-ec3/prog_index.m3u8 +0 -31
- package/test/test/assets/hls-raw-mp3/chunklist_w905519204.m3u8 +0 -13
- package/test/test/assets/hls-raw-mp3/media_w905519204_0.mp3 +0 -0
- package/test/test/assets/hls-raw-mp3/media_w905519204_1.mp3 +0 -0
- package/test/test/assets/hls-raw-mp3/media_w905519204_2.mp3 +0 -0
- package/test/test/assets/hls-raw-mp3/media_w905519204_3.mp3 +0 -0
- package/test/test/assets/hls-raw-mp3/playlist.m3u8 +0 -4
- package/test/test/assets/hls-ts-aac/playlist.m3u8 +0 -23
- package/test/test/assets/hls-ts-aac/segment_0.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_1.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_2.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_3.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_4.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_5.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_6.ts +0 -0
- package/test/test/assets/hls-ts-aac/segment_7.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0000.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0001.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0002.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0003.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0004.ts +0 -0
- package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0005.ts +0 -0
- package/test/test/assets/hls-ts-ac3/prog_index.m3u8 +0 -19
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0000.ts +0 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0001.ts +0 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0002.ts +0 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0003.ts +0 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0004.ts +0 -0
- package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0005.ts +0 -0
- package/test/test/assets/hls-ts-ec3/prog_index.m3u8 +0 -19
- package/test/test/assets/hls-ts-h264/fileSequence0.ts +0 -0
- package/test/test/assets/hls-ts-h264/fileSequence1.ts +0 -0
- package/test/test/assets/hls-ts-h264/fileSequence2.ts +0 -0
- package/test/test/assets/hls-ts-h264/fileSequence3.ts +0 -0
- package/test/test/assets/hls-ts-h264/fileSequence4.ts +0 -0
- package/test/test/assets/hls-ts-h264/fileSequence5.ts +0 -0
- package/test/test/assets/hls-ts-h264/prog_index.m3u8 +0 -25
- package/test/test/assets/hls-ts-h265/0.ts +0 -0
- package/test/test/assets/hls-ts-h265/hevc.m3u8 +0 -6
- package/test/test/assets/hls-ts-h265/index.m3u8 +0 -7
- package/test/test/assets/hls-ts-mp3/manifest.m3u8 +0 -13
- package/test/test/assets/hls-ts-mp3/media_w239891843_0.ts +0 -0
- package/test/test/assets/hls-ts-mp3/media_w239891843_1.ts +0 -0
- package/test/test/assets/hls-ts-mp3/media_w239891843_2.ts +0 -0
- package/test/test/assets/hls-ts-mp3/media_w239891843_3.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/chunk.m3u8 +0 -17
- package/test/test/assets/hls-ts-muxed-aac-h264/n_0_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_1_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_2_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_3_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_4_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/n_5_0_0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h264/playlist.m3u8 +0 -4
- package/test/test/assets/hls-ts-muxed-aac-h265/0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h265/1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h265/media.m3u8 +0 -9
- package/test/test/assets/hls-ts-muxed-ac3-h264/media.m3u8 +0 -24
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00000.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00001.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00002.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00003.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00004.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00005.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0000.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0001.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0002.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0003.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ec3-h264/prog_index.m3u8 +0 -14
- package/test/test/assets/hls-ts-muxed-mp3-h264/index.m3u8 +0 -23
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-1-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-2-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-3-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-4-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-5-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-6-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-7-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-8-v1-a1.ts +0 -0
- package/test/test/assets/id3-metadata.aac +0 -0
- package/test/test/assets/id3-metadata.ts +0 -0
- package/test/test/assets/index-segment.mp4 +0 -0
- package/test/test/assets/index-segment.webm +0 -0
- package/test/test/assets/init-segment.webm +0 -0
- package/test/test/assets/large_file.mpd +0 -4930
- package/test/test/assets/multidrm-audio-init.mp4 +0 -0
- package/test/test/assets/multidrm-audio-segment.mp4 +0 -0
- package/test/test/assets/multidrm-video-init.mp4 +0 -0
- package/test/test/assets/multidrm-video-segment.mp4 +0 -0
- package/test/test/assets/multiple-trun-init.mp4 +0 -0
- package/test/test/assets/multiple-trun-segment.mp4 +0 -0
- package/test/test/assets/sintel-audio-init.mp4 +0 -0
- package/test/test/assets/sintel-audio-segment.mp4 +0 -0
- package/test/test/assets/sintel-video-init.mp4 +0 -0
- package/test/test/assets/sintel-video-segment.mp4 +0 -0
- package/test/test/assets/small.mp4 +0 -0
- package/test/test/assets/text-clip-alt.vtt +0 -63
- package/test/test/assets/text-clip.vtt +0 -63
- package/test/test/assets/thumbnails-sprites.vtt +0 -10
- package/test/test/assets/thumbnails.vtt +0 -10
- package/test/test/assets/ttml-init.mp4 +0 -0
- package/test/test/assets/ttml-segment-multiplemdat.mp4 +0 -0
- package/test/test/assets/ttml-segment.mp4 +0 -0
- package/test/test/assets/video.ts +0 -0
- package/test/test/assets/vtt-init.mp4 +0 -0
- package/test/test/assets/vtt-segment-multi-payload.mp4 +0 -0
- package/test/test/assets/vtt-segment-no-duration.mp4 +0 -0
- package/test/test/assets/vtt-segment-settings.mp4 +0 -0
- package/test/test/assets/vtt-segment.mp4 +0 -0
- package/test/test/boot.js +0 -495
- package/test/test/externs/filters.js +0 -44
- package/test/test/externs/fontfaceonload.js +0 -29
- package/test/test/externs/jasmine.js +0 -670
- package/test/test/externs/karma.js +0 -26
- package/test/test/externs/require.js +0 -21
- package/test/test/externs/sprintf.js +0 -18
- package/test/test/namespace.js +0 -10
- package/test/test/util/canned_idb.js +0 -379
- package/test/test/util/cea_utils.js +0 -60
- package/test/test/util/dash_parser_util.js +0 -329
- package/test/test/util/fake_ad.js +0 -321
- package/test/test/util/fake_ad_manager.js +0 -122
- package/test/test/util/fake_demo_main.js +0 -144
- package/test/test/util/fake_drm_engine.js +0 -103
- package/test/test/util/fake_media_source_engine.js +0 -464
- package/test/test/util/fake_networking_engine.js +0 -381
- package/test/test/util/fake_segment_prefetch.js +0 -84
- package/test/test/util/fake_text_displayer.js +0 -60
- package/test/test/util/id3_generator.js +0 -100
- package/test/test/util/indexeddb_utils.js +0 -124
- package/test/test/util/jasmine_fetch.js +0 -382
- package/test/test/util/layout_tests.js +0 -435
- package/test/test/util/loader.js +0 -88
- package/test/test/util/manifest_generator.js +0 -705
- package/test/test/util/manifest_parser_util.js +0 -101
- package/test/test/util/mss_parser_util.js +0 -119
- package/test/test/util/offline_utils.js +0 -105
- package/test/test/util/simple_fakes.js +0 -535
- package/test/test/util/stream_generator.js +0 -676
- package/test/test/util/streaming_engine_util.js +0 -506
- package/test/test/util/test_scheme.js +0 -778
- package/test/test/util/ttml_utils.js +0 -77
- package/test/test/util/ui_utils.js +0 -183
- package/test/test/util/util.js +0 -374
- package/test/test/util/waiter.js +0 -406
- package/test/text/cue_integration.js +0 -51
- package/test/text/lrc_text_parser_unit.js +0 -98
- package/test/text/mp4_ttml_parser_unit.js +0 -171
- package/test/text/mp4_vtt_parser_unit.js +0 -195
- package/test/text/sbv_text_parser_unit.js +0 -81
- package/test/text/simple_text_displayer_unit.js +0 -468
- package/test/text/srt_text_parser_unit.js +0 -163
- package/test/text/ssa_text_parser_unit.js +0 -382
- package/test/text/text_displayer_layout_unit.js +0 -323
- package/test/text/text_engine_unit.js +0 -500
- package/test/text/text_track_integration.js +0 -186
- package/test/text/ttml_text_parser_unit.js +0 -2176
- package/test/text/ui_text_displayer_unit.js +0 -608
- package/test/text/vtt_text_parser_unit.js +0 -1363
- package/test/text/web_vtt_generator_unit.js +0 -144
- package/test/text/web_vtt_layout_integration.js +0 -524
- package/test/transmuxer/transmuxer_engine_integration.js +0 -69
- package/test/transmuxer/transmuxer_integration.js +0 -443
- package/test/ui/ad_ui_unit.js +0 -369
- package/test/ui/localization_unit.js +0 -508
- package/test/ui/ui_customization_unit.js +0 -208
- package/test/ui/ui_integration.js +0 -669
- package/test/ui/ui_unit.js +0 -902
- package/test/util/abortable_operation_unit.js +0 -624
- package/test/util/array_utils_unit.js +0 -58
- package/test/util/buffer_utils_unit.js +0 -185
- package/test/util/cmcd_manager_unit.js +0 -440
- package/test/util/content_steering_manager_unit.js +0 -427
- package/test/util/data_view_reader_unit.js +0 -254
- package/test/util/ebml_parser_unit.js +0 -297
- package/test/util/event_manager_unit.js +0 -185
- package/test/util/fake_event_target_unit.js +0 -123
- package/test/util/id3_utils_unit.js +0 -168
- package/test/util/iterables_unit.js +0 -68
- package/test/util/language_utils_unit.js +0 -240
- package/test/util/manifest_parser_utils_unit.js +0 -55
- package/test/util/mime_utils_unit.js +0 -64
- package/test/util/mp4_box_parsers_unit.js +0 -246
- package/test/util/mp4_parser_unit.js +0 -373
- package/test/util/multi_map_unit.js +0 -94
- package/test/util/object_utils_unit.js +0 -79
- package/test/util/periods_unit.js +0 -1623
- package/test/util/pssh_unit.js +0 -226
- package/test/util/state_history_unit.js +0 -101
- package/test/util/stream_utils_unit.js +0 -1068
- package/test/util/string_utils_unit.js +0 -166
- package/test/util/text_parser_unit.js +0 -165
- package/test/util/ts_parser_unit.js +0 -77
- package/test/util/xml_utils_unit.js +0 -444
package/test/test/namespace.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
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 = {};
|
|
@@ -1,379 +0,0 @@
|
|
|
1
|
-
/*! @license
|
|
2
|
-
* Shaka Player
|
|
3
|
-
* Copyright 2016 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* A testing utility that can be used to dump and restore entire IndexedDB
|
|
9
|
-
* databases. This can be inserted into a running app to snapshot databases
|
|
10
|
-
* for testing.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* shaka.test = shaka.test || {};
|
|
14
|
-
* s = document.createElement('script');
|
|
15
|
-
* s.src = '../test/test/util/canned_idb.js';
|
|
16
|
-
* document.head.appendChild(s);
|
|
17
|
-
* dump = await shaka.test.CannedIDB.dumpJSON('shaka_offline_db', true);
|
|
18
|
-
*/
|
|
19
|
-
shaka.test.CannedIDB = class {
|
|
20
|
-
/**
|
|
21
|
-
* @param {string} name The name of the database to dump.
|
|
22
|
-
* @param {boolean=} dummyArrayBuffers If true, replace array buffer data with
|
|
23
|
-
* dummy data, as you might want for generating unit test data. Defaults to
|
|
24
|
-
* false.
|
|
25
|
-
* @return {!Promise.<string>} A JSON string that can be used to recreate the
|
|
26
|
-
* database later in a call to restoreJSON().
|
|
27
|
-
*/
|
|
28
|
-
static async dumpJSON(name, dummyArrayBuffers) {
|
|
29
|
-
const savedDatabase = await this.dump(name);
|
|
30
|
-
const replacer =
|
|
31
|
-
(key, value) => this.replacer_(dummyArrayBuffers || false, key, value);
|
|
32
|
-
return JSON.stringify(savedDatabase, replacer);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* @param {string} name The name of the database to dump.
|
|
37
|
-
* @return {!Promise.<shaka.test.CannedIDB.SavedDatabase>} An object that can
|
|
38
|
-
* be used to recreate the database later in a call to restore().
|
|
39
|
-
*/
|
|
40
|
-
static async dump(name) {
|
|
41
|
-
// Open the database, which should exist already.
|
|
42
|
-
const db = await this.openDatabase_(name);
|
|
43
|
-
|
|
44
|
-
try {
|
|
45
|
-
const savedDatabase = {
|
|
46
|
-
version: db.version,
|
|
47
|
-
stores: {},
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
// For each store, dump the store parameters and data.
|
|
51
|
-
const dumpOperations = [];
|
|
52
|
-
for (const storeName of db.objectStoreNames) {
|
|
53
|
-
dumpOperations.push(this.dumpStore_(db, storeName, savedDatabase));
|
|
54
|
-
}
|
|
55
|
-
await Promise.all(dumpOperations);
|
|
56
|
-
|
|
57
|
-
return savedDatabase;
|
|
58
|
-
} finally {
|
|
59
|
-
// Make sure the DB gets closed no matter what.
|
|
60
|
-
db.close();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @param {string} name The name of the database to restore.
|
|
66
|
-
* @param {string} savedDatabaseJson A JSON string containing the database
|
|
67
|
-
* definition and the data to populate it with.
|
|
68
|
-
* @param {boolean=} wipeDatabase If true, wipe the database before loading
|
|
69
|
-
* the saved data. If false, add stores and data, but keep any existing
|
|
70
|
-
* stores and data. Defaults to true.
|
|
71
|
-
* @return {!Promise} Resolved when the operation is complete.
|
|
72
|
-
*/
|
|
73
|
-
static async restoreJSON(name, savedDatabaseJson, wipeDatabase) {
|
|
74
|
-
const savedDatabase =
|
|
75
|
-
/** @type {shaka.test.CannedIDB.SavedDatabase} */(JSON.parse(
|
|
76
|
-
savedDatabaseJson, this.reviver_));
|
|
77
|
-
await this.restore(name, savedDatabase, wipeDatabase);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* @param {string} name The name of the database to restore.
|
|
82
|
-
* @param {shaka.test.CannedIDB.SavedDatabase} savedDatabase An object
|
|
83
|
-
* containing the database definition and the data to populate it with.
|
|
84
|
-
* @param {boolean=} wipeDatabase If true, wipe the database before loading
|
|
85
|
-
* the saved data. If false, add stores and data, but keep any existing
|
|
86
|
-
* stores and data. Defaults to true.
|
|
87
|
-
* @return {!Promise} Resolved when the operation is complete.
|
|
88
|
-
*/
|
|
89
|
-
static async restore(name, savedDatabase, wipeDatabase) {
|
|
90
|
-
wipeDatabase = (wipeDatabase == undefined) ? true : wipeDatabase;
|
|
91
|
-
|
|
92
|
-
if (wipeDatabase) {
|
|
93
|
-
// Wipe out any existing data.
|
|
94
|
-
await this.deleteDatabase_(name);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Create a new DB, or open an existing one, and add the stores we need.
|
|
98
|
-
const db = await this.createDatabase_(name, savedDatabase);
|
|
99
|
-
|
|
100
|
-
try {
|
|
101
|
-
// Populate it with data.
|
|
102
|
-
await this.populateDatabase_(db, savedDatabase);
|
|
103
|
-
} finally {
|
|
104
|
-
// Make sure the DB gets closed no matter what.
|
|
105
|
-
db.close();
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* A replacer callback for JSON.stringify. It creates special objects to
|
|
111
|
-
* represent types that can't be directly stringified into JSON, such as
|
|
112
|
-
* ArrayBuffer. Should be used with bind() to supply the dummyArrayBuffers
|
|
113
|
-
* argument.
|
|
114
|
-
*
|
|
115
|
-
* @param {boolean} dummyArrayBuffers
|
|
116
|
-
* @param {string} key
|
|
117
|
-
* @param {?} value
|
|
118
|
-
* @return {?}
|
|
119
|
-
* @private
|
|
120
|
-
*/
|
|
121
|
-
static replacer_(dummyArrayBuffers, key, value) {
|
|
122
|
-
if (value instanceof ArrayBuffer) {
|
|
123
|
-
/** @type {string} */
|
|
124
|
-
let data;
|
|
125
|
-
if (dummyArrayBuffers) {
|
|
126
|
-
data = '';
|
|
127
|
-
} else {
|
|
128
|
-
data = shaka.util.Uint8ArrayUtils.toBase64(value);
|
|
129
|
-
}
|
|
130
|
-
return {
|
|
131
|
-
__type__: 'ArrayBuffer',
|
|
132
|
-
__value__: data,
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
return value;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* A reviver callback for JSON.parse. It recognizes special objects from
|
|
140
|
-
* replacer_ and turns them back into their original format.
|
|
141
|
-
*
|
|
142
|
-
* @param {string} key
|
|
143
|
-
* @param {?} value
|
|
144
|
-
* @return {?}
|
|
145
|
-
* @private
|
|
146
|
-
*/
|
|
147
|
-
static reviver_(key, value) {
|
|
148
|
-
if (value && value.__type__ == 'ArrayBuffer') {
|
|
149
|
-
return shaka.util.BufferUtils.toArrayBuffer(
|
|
150
|
-
shaka.util.Uint8ArrayUtils.fromBase64(value.__value__));
|
|
151
|
-
}
|
|
152
|
-
return value;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* @param {string} name The name of the database to open.
|
|
157
|
-
* @return {!Promise.<!IDBDatabase>} Resolved when the named DB has been
|
|
158
|
-
* opened.
|
|
159
|
-
* @private
|
|
160
|
-
*/
|
|
161
|
-
static openDatabase_(name) {
|
|
162
|
-
return new Promise((resolve, reject) => {
|
|
163
|
-
const request = indexedDB.open(name);
|
|
164
|
-
|
|
165
|
-
request.onupgradeneeded = (event) => {
|
|
166
|
-
reject(new Error('DB did not exist!'));
|
|
167
|
-
const transaction = event.target.transaction;
|
|
168
|
-
transaction.abort();
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
request.onsuccess = (event) => {
|
|
172
|
-
/** @type {IDBDatabase} */
|
|
173
|
-
const db = event.target.result;
|
|
174
|
-
resolve(db);
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
request.onerror = (event) => {
|
|
178
|
-
event.preventDefault();
|
|
179
|
-
reject(request.error);
|
|
180
|
-
};
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* @param {IDBDatabase} db An open database connection.
|
|
186
|
-
* @param {string} name The store name to dump.
|
|
187
|
-
* @param {shaka.test.CannedIDB.SavedDatabase} savedDatabase An object where
|
|
188
|
-
* we write the store parameters and the data from the named store.
|
|
189
|
-
* @return {!Promise} Resolved when the store has been written to
|
|
190
|
-
* savedDatabase.stores.
|
|
191
|
-
* @private
|
|
192
|
-
*/
|
|
193
|
-
static async dumpStore_(db, name, savedDatabase) {
|
|
194
|
-
const transactionType = 'readonly';
|
|
195
|
-
const transaction = db.transaction([name], transactionType);
|
|
196
|
-
/** @type {!IDBObjectStore} */
|
|
197
|
-
const store = transaction.objectStore(name);
|
|
198
|
-
/** @type {!shaka.offline.indexeddb.DBOperation} */
|
|
199
|
-
const op = new shaka.offline.indexeddb.DBOperation(transaction, name);
|
|
200
|
-
shaka.log.debug('Dumping store', name);
|
|
201
|
-
|
|
202
|
-
/** @type {shaka.test.CannedIDB.SavedStore} */
|
|
203
|
-
const savedStore = {
|
|
204
|
-
parameters: {
|
|
205
|
-
keyPath: store.keyPath,
|
|
206
|
-
autoIncrement: store.autoIncrement,
|
|
207
|
-
},
|
|
208
|
-
data: [],
|
|
209
|
-
};
|
|
210
|
-
|
|
211
|
-
await op.forEachEntry((key, value) => {
|
|
212
|
-
// Only store the key if there is no explicit keyPath for this store.
|
|
213
|
-
const data = {value: value};
|
|
214
|
-
if (!store.keyPath) {
|
|
215
|
-
data.key = key;
|
|
216
|
-
}
|
|
217
|
-
savedStore.data.push(data);
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
await op.promise();
|
|
221
|
-
shaka.log.debug('Dumped', savedStore.data.length, 'entries from store',
|
|
222
|
-
name);
|
|
223
|
-
savedDatabase.stores[name] = savedStore;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* @param {string} name The name of the database to delete.
|
|
228
|
-
* @return {!Promise} Resolved when the named DB has been deleted.
|
|
229
|
-
* @private
|
|
230
|
-
*/
|
|
231
|
-
static deleteDatabase_(name) {
|
|
232
|
-
return new Promise((resolve, reject) => {
|
|
233
|
-
const request = indexedDB.deleteDatabase(name);
|
|
234
|
-
|
|
235
|
-
request.onsuccess = (event) => {
|
|
236
|
-
resolve();
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
request.onerror = (event) => {
|
|
240
|
-
event.preventDefault();
|
|
241
|
-
resolve();
|
|
242
|
-
};
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* Creates a database. Does not populate it.
|
|
248
|
-
*
|
|
249
|
-
* @param {string} name The name of the database to create.
|
|
250
|
-
* @param {shaka.test.CannedIDB.SavedDatabase} savedDatabase An object
|
|
251
|
-
* containing the database definition and the data to populate it with.
|
|
252
|
-
* @return {!Promise.<IDBDatabase>} Resolved when the named DB has been
|
|
253
|
-
* created.
|
|
254
|
-
* @private
|
|
255
|
-
*/
|
|
256
|
-
static createDatabase_(name, savedDatabase) {
|
|
257
|
-
return new Promise((resolve, reject) => {
|
|
258
|
-
const request = indexedDB.open(name, savedDatabase.version);
|
|
259
|
-
|
|
260
|
-
request.onupgradeneeded = (event) => {
|
|
261
|
-
shaka.log.debug('DB upgrade from', event.oldVersion, 'to',
|
|
262
|
-
savedDatabase.version);
|
|
263
|
-
const transaction = event.target.transaction;
|
|
264
|
-
const db = transaction.db;
|
|
265
|
-
|
|
266
|
-
// We will ignore existing stores, so first make a map of them.
|
|
267
|
-
const existingStoreMap = {};
|
|
268
|
-
for (const storeName of db.objectStoreNames) {
|
|
269
|
-
existingStoreMap[storeName] = true;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
for (const storeName in savedDatabase.stores) {
|
|
273
|
-
if (storeName in existingStoreMap) {
|
|
274
|
-
shaka.log.debug('Ignoring existing store', storeName);
|
|
275
|
-
} else {
|
|
276
|
-
const storeInfo = savedDatabase.stores[storeName];
|
|
277
|
-
|
|
278
|
-
// Legacy Edge can't handle a null keyPath, and throws errors if you
|
|
279
|
-
// specify that. So delete it if it's null.
|
|
280
|
-
if (storeInfo.parameters.keyPath == null) {
|
|
281
|
-
delete storeInfo.parameters.keyPath;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
shaka.log.debug('Creating store', storeName, storeInfo.parameters);
|
|
285
|
-
db.createObjectStore(storeName, storeInfo.parameters);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
// If there isn't an oncomplete on transaction, we seem not to get a
|
|
290
|
-
// call to request.onsuccess. Perhaps the browser blocks the
|
|
291
|
-
// transaction or request until there is an oncomplete handler.
|
|
292
|
-
transaction.oncomplete = (event) => {};
|
|
293
|
-
};
|
|
294
|
-
|
|
295
|
-
request.onsuccess = (event) => {
|
|
296
|
-
/** @type {IDBDatabase} */
|
|
297
|
-
const db = event.target.result;
|
|
298
|
-
resolve(db);
|
|
299
|
-
};
|
|
300
|
-
|
|
301
|
-
request.onerror = (event) => {
|
|
302
|
-
event.preventDefault();
|
|
303
|
-
reject(request.error);
|
|
304
|
-
};
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
/**
|
|
309
|
-
* @param {IDBDatabase} db An open database connection.
|
|
310
|
-
* @param {shaka.test.CannedIDB.SavedDatabase} savedDatabase An object
|
|
311
|
-
* containing the database definition and the data to populate it with.
|
|
312
|
-
* @return {!Promise} Resolved when the named DB has been populated with data.
|
|
313
|
-
* @private
|
|
314
|
-
*/
|
|
315
|
-
static populateDatabase_(db, savedDatabase) {
|
|
316
|
-
return new Promise((resolve, reject) => {
|
|
317
|
-
const transactionType = 'readwrite';
|
|
318
|
-
const storeNames = Object.keys(savedDatabase.stores);
|
|
319
|
-
const transaction = db.transaction(storeNames, transactionType);
|
|
320
|
-
|
|
321
|
-
for (const storeName in savedDatabase.stores) {
|
|
322
|
-
const store = transaction.objectStore(storeName);
|
|
323
|
-
const storeInfo = savedDatabase.stores[storeName];
|
|
324
|
-
|
|
325
|
-
shaka.log.debug('Populating store', storeName, 'with',
|
|
326
|
-
storeInfo.data.length, 'entries');
|
|
327
|
-
for (const item of storeInfo.data) {
|
|
328
|
-
// If this store uses an explicit keyPath, we can't specify a key.
|
|
329
|
-
if (storeInfo.parameters.keyPath) {
|
|
330
|
-
store.add(item.value);
|
|
331
|
-
} else {
|
|
332
|
-
store.add(item.value, item.key);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
transaction.oncomplete = (event) => {
|
|
338
|
-
resolve();
|
|
339
|
-
};
|
|
340
|
-
|
|
341
|
-
transaction.onerror = (event) => {
|
|
342
|
-
reject(event.error);
|
|
343
|
-
event.preventDefault();
|
|
344
|
-
};
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
/**
|
|
350
|
-
* @typedef {{
|
|
351
|
-
* keyPath: ?,
|
|
352
|
-
* autoIncrement: boolean,
|
|
353
|
-
* }}
|
|
354
|
-
*/
|
|
355
|
-
shaka.test.CannedIDB.SavedStoreParameters;
|
|
356
|
-
|
|
357
|
-
/**
|
|
358
|
-
* @typedef {{
|
|
359
|
-
* key: ?,
|
|
360
|
-
* value: ?,
|
|
361
|
-
* }}
|
|
362
|
-
*/
|
|
363
|
-
shaka.test.CannedIDB.SavedStoreDataItem;
|
|
364
|
-
|
|
365
|
-
/**
|
|
366
|
-
* @typedef {{
|
|
367
|
-
* parameters: shaka.test.CannedIDB.SavedStoreParameters,
|
|
368
|
-
* data: !Array.<shaka.test.CannedIDB.SavedStoreDataItem>,
|
|
369
|
-
* }}
|
|
370
|
-
*/
|
|
371
|
-
shaka.test.CannedIDB.SavedStore;
|
|
372
|
-
|
|
373
|
-
/**
|
|
374
|
-
* @typedef {{
|
|
375
|
-
* version: number,
|
|
376
|
-
* stores: !Object.<string, shaka.test.CannedIDB.SavedStore>,
|
|
377
|
-
* }}
|
|
378
|
-
*/
|
|
379
|
-
shaka.test.CannedIDB.SavedDatabase;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/*! @license
|
|
2
|
-
* Shaka Player
|
|
3
|
-
* Copyright 2016 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Testing helpers to assist tests for Closed Caption decoders for CEA captions.
|
|
9
|
-
*/
|
|
10
|
-
shaka.test.CeaUtils = class {
|
|
11
|
-
/**
|
|
12
|
-
* Returns a cue with no underline/italics, and default colors
|
|
13
|
-
* @param {number} startTime
|
|
14
|
-
* @param {number} endTime
|
|
15
|
-
* @param {string} payload
|
|
16
|
-
*/
|
|
17
|
-
static createDefaultCue(startTime, endTime, payload) {
|
|
18
|
-
const cue = new shaka.text.Cue(startTime, endTime, payload);
|
|
19
|
-
cue.color = shaka.cea.CeaUtils.DEFAULT_TXT_COLOR;
|
|
20
|
-
cue.backgroundColor = shaka.cea.CeaUtils.DEFAULT_BG_COLOR;
|
|
21
|
-
return cue;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Returns a cue with custom underline, italics, color, background color.
|
|
26
|
-
* @param {number} startTime
|
|
27
|
-
* @param {number} endTime
|
|
28
|
-
* @param {string} payload
|
|
29
|
-
* @param {boolean} underline
|
|
30
|
-
* @param {boolean} italics
|
|
31
|
-
* @param {string} textColor
|
|
32
|
-
* @param {string} backgroundColor
|
|
33
|
-
* @return {!shaka.text.Cue}
|
|
34
|
-
*/
|
|
35
|
-
static createStyledCue(startTime, endTime, payload, underline,
|
|
36
|
-
italics, textColor, backgroundColor) {
|
|
37
|
-
const cue = new shaka.text.Cue(startTime, endTime, payload);
|
|
38
|
-
if (italics) {
|
|
39
|
-
cue.fontStyle = shaka.text.Cue.fontStyle.ITALIC;
|
|
40
|
-
}
|
|
41
|
-
if (underline) {
|
|
42
|
-
cue.textDecoration.push(shaka.text.Cue.textDecoration.UNDERLINE);
|
|
43
|
-
}
|
|
44
|
-
cue.color = textColor;
|
|
45
|
-
cue.backgroundColor = backgroundColor;
|
|
46
|
-
return cue;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Returns a cue that corresponds to a linebreak.
|
|
51
|
-
* @param {number} startTime
|
|
52
|
-
* @param {number} endTime
|
|
53
|
-
* @return {!shaka.text.Cue}
|
|
54
|
-
*/
|
|
55
|
-
static createLineBreakCue(startTime, endTime) {
|
|
56
|
-
const cue = new shaka.text.Cue(startTime, endTime, /* payload= */ '');
|
|
57
|
-
cue.lineBreak = true;
|
|
58
|
-
return cue;
|
|
59
|
-
}
|
|
60
|
-
};
|