shaka-player 4.4.2 → 4.5.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/.github/workflows/release-please.yaml +2 -27
- package/CHANGELOG.md +67 -25
- package/README.md +16 -10
- package/demo/asset_card.js +18 -21
- package/demo/cast_receiver/index.html +0 -1
- package/demo/close_button.js +0 -3
- package/demo/common/asset.js +27 -5
- package/demo/common/assets.js +150 -52
- package/demo/config.js +192 -253
- package/demo/custom.js +39 -98
- package/demo/front.js +7 -10
- package/demo/index.html +19 -22
- package/demo/input.js +6 -11
- package/demo/input_container.js +8 -9
- package/demo/main.js +52 -124
- package/demo/search.js +23 -35
- package/demo/service_worker.js +0 -3
- package/demo/tooltip.js +3 -5
- package/demo/visualizer.js +3 -5
- package/demo/visualizer_button.js +1 -20
- package/dist/demo.compiled.debug.js +187 -211
- package/dist/demo.compiled.debug.map +4 -4
- package/dist/demo.compiled.js +187 -211
- package/dist/demo.compiled.map +4 -4
- package/dist/deps.js +27 -24
- package/dist/locales.js +31 -31
- package/dist/receiver.compiled.debug.js +42 -61
- package/dist/receiver.compiled.debug.map +4 -4
- package/dist/receiver.compiled.js +42 -61
- package/dist/receiver.compiled.map +4 -4
- package/dist/shaka-player.compiled.d.ts +728 -365
- package/dist/shaka-player.compiled.debug.d.ts +728 -365
- package/dist/shaka-player.compiled.debug.externs.js +475 -51
- package/dist/shaka-player.compiled.debug.js +576 -480
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +475 -51
- package/dist/shaka-player.compiled.js +1117 -1056
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +783 -410
- package/dist/shaka-player.ui.debug.d.ts +783 -410
- package/dist/shaka-player.ui.debug.externs.js +496 -51
- package/dist/shaka-player.ui.debug.js +647 -542
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +496 -51
- package/dist/shaka-player.ui.js +1260 -1194
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/lcevc-integration.md +14 -14
- package/docs/tutorials/faq.md +27 -55
- package/docs/tutorials/index.json +2 -1
- package/docs/tutorials/lcevc.md +118 -0
- package/docs/tutorials/offline.md +1 -1
- package/docs/tutorials/ui-customization.md +4 -0
- package/externs/css_style_declaration.js +19 -0
- package/externs/lcevc.js +37 -13
- package/externs/media_remote.js +68 -0
- package/externs/mediatailor.js +193 -0
- package/externs/pictureinpicture.js +11 -0
- package/externs/shaka/ads.js +27 -0
- package/externs/shaka/manifest.js +10 -5
- package/externs/shaka/manifest_parser.js +7 -1
- package/externs/shaka/offline.js +4 -0
- package/externs/shaka/player.js +12 -1
- package/karma.conf.js +7 -3
- package/lib/abr/simple_abr_manager.js +43 -3
- package/lib/ads/ad_manager.js +104 -50
- package/lib/ads/media_tailor_ad.js +297 -0
- package/lib/ads/media_tailor_ad_manager.js +828 -0
- package/lib/cea/ts_cea_parser.js +15 -2
- package/lib/config/codec_switching_strategy.js +24 -0
- package/lib/dash/content_protection.js +120 -2
- package/lib/dash/dash_parser.js +79 -13
- package/lib/dash/mpd_utils.js +10 -6
- package/lib/dash/segment_base.js +13 -5
- package/lib/dash/segment_list.js +13 -5
- package/lib/dash/segment_template.js +43 -85
- package/lib/dependencies/all.js +8 -7
- package/lib/hls/hls_parser.js +101 -37
- package/lib/lcevc/lcevc_dec.js +220 -0
- package/lib/media/adaptation_set.js +22 -11
- package/lib/media/adaptation_set_criteria.js +25 -7
- package/lib/media/media_source_engine.js +215 -27
- package/lib/media/segment_index.js +5 -5
- package/lib/media/segment_reference.js +10 -5
- package/lib/media/streaming_engine.js +44 -39
- package/lib/mss/mss_parser.js +1 -0
- package/lib/net/networking_engine.js +1 -0
- package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
- package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
- package/lib/offline/manifest_converter.js +1 -0
- package/lib/offline/storage.js +3 -0
- package/lib/player.js +142 -72
- package/lib/routing/payload.js +5 -1
- package/lib/text/cue.js +62 -47
- package/lib/text/ttml_text_parser.js +17 -0
- package/lib/text/ui_text_displayer.js +4 -0
- package/lib/text/vtt_text_parser.js +35 -22
- package/lib/transmuxer/h265.js +862 -0
- package/lib/transmuxer/mpeg_ts_transmuxer.js +3 -2
- package/lib/transmuxer/ts_transmuxer.js +160 -15
- package/lib/util/cmcd_manager.js +6 -1
- package/lib/util/error.js +28 -9
- package/lib/util/exp_golomb.js +30 -2
- package/lib/util/fake_event.js +3 -0
- package/lib/util/manifest_parser_utils.js +10 -4
- package/lib/util/mp4_generator.js +4 -4
- package/lib/util/periods.js +2 -0
- package/lib/util/platform.js +54 -0
- package/lib/util/player_configuration.js +8 -0
- package/lib/util/state_history.js +6 -2
- package/lib/util/stream_utils.js +133 -217
- package/lib/util/ts_parser.js +229 -43
- package/maintained-branches.md +3 -2
- package/package.json +4 -6
- package/roadmap.md +15 -5
- package/shaka-player.uncompiled.js +2 -1
- package/support.html +0 -1
- package/test/cast/cast_receiver_integration.js +47 -0
- package/test/codec_switching/codec_switching_integration.js +181 -0
- package/test/dash/dash_parser_content_protection_unit.js +2 -0
- package/test/dash/dash_parser_integration.js +73 -0
- package/test/dash/dash_parser_live_unit.js +2 -0
- package/test/dash/dash_parser_manifest_unit.js +47 -0
- package/test/dash/dash_parser_segment_base_unit.js +7 -0
- package/test/dash/dash_parser_segment_list_unit.js +23 -17
- package/test/dash/dash_parser_segment_template_unit.js +49 -0
- package/test/demo/demo_unit.js +0 -16
- package/test/hls/hls_live_unit.js +35 -0
- package/test/hls/hls_parser_unit.js +8 -61
- package/test/media/adaptation_set_criteria_unit.js +118 -0
- package/test/media/adaptation_set_unit.js +1 -0
- package/test/media/media_source_engine_unit.js +165 -1
- package/test/media/segment_index_unit.js +4 -4
- package/test/media/segment_prefetch_unit.js +1 -1
- package/test/media/streaming_engine_unit.js +17 -17
- package/test/mss/mss_parser_unit.js +2 -0
- package/test/offline/manifest_convert_unit.js +5 -0
- package/test/offline/storage_integration.js +1 -4
- package/test/player_unit.js +102 -131
- package/test/routing/walker_unit.js +1 -0
- 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 +18 -0
- package/test/test/assets/dash-aes-128/license +1 -0
- 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 +32 -0
- package/test/test/assets/dash-multi-codec/video_144p_108k_h264.mp4 +0 -0
- package/test/test/assets/hls-ts-h265/0.ts +0 -0
- package/test/test/assets/hls-ts-h265/hevc.m3u8 +6 -0
- package/test/test/assets/hls-ts-h265/index.m3u8 +7 -0
- 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 +9 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/media.m3u8 +24 -0
- 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 +14 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/index.m3u8 +23 -0
- 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/util/dash_parser_util.js +20 -7
- package/test/test/util/fake_ad_manager.js +20 -0
- package/test/test/util/fake_media_source_engine.js +8 -2
- package/test/test/util/manifest_generator.js +7 -3
- package/test/test/util/mss_parser_util.js +4 -0
- package/test/test/util/offline_utils.js +1 -0
- package/test/test/util/streaming_engine_util.js +7 -4
- package/test/text/ttml_text_parser_unit.js +52 -0
- package/test/text/vtt_text_parser_unit.js +105 -48
- package/test/transmuxer/transmuxer_integration.js +121 -4
- package/test/ui/ui_unit.js +3 -10
- package/test/util/stream_utils_unit.js +208 -74
- package/test/util/ts_parser_unit.js +1 -1
- package/ui/controls.js +125 -0
- package/ui/externs/ui.js +8 -1
- package/ui/pip_button.js +22 -120
- package/ui/remote_button.js +201 -0
- package/ui/ui.js +5 -2
- package/demo/common/message_ids.js +0 -309
- package/demo/locales/en.json +0 -287
- package/demo/locales/source.json +0 -1142
- package/externs/mux.js +0 -69
- package/lib/lcevc/lcevc_dil.js +0 -152
- package/lib/transmuxer/muxjs_transmuxer.js +0 -242
- package/test/transmuxer/muxjs_transmuxer_integration.js +0 -177
|
@@ -23,33 +23,8 @@ jobs:
|
|
|
23
23
|
default-branch: ${{ github.ref_name }}
|
|
24
24
|
# Use a special shaka-bot access token for releases.
|
|
25
25
|
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
# Check out the code, then update the Player version in the PR.
|
|
29
|
-
- uses: actions/checkout@v3
|
|
30
|
-
if: steps.release.outputs.release_created == false
|
|
31
|
-
with:
|
|
32
|
-
# Use a special shaka-bot access token for releases.
|
|
33
|
-
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
|
|
34
|
-
- name: Custom update Player version
|
|
35
|
-
if: steps.release.outputs.release_created == false
|
|
36
|
-
run: |
|
|
37
|
-
# Check out the branch that release-please created.
|
|
38
|
-
# If it does not exist, FAIL!
|
|
39
|
-
git fetch
|
|
40
|
-
git checkout release-please--branches--${{ github.ref_name }}--components--shaka-player || exit 1
|
|
41
|
-
# If it does exist, update lib/player.js in the PR branch, so that the
|
|
42
|
-
# -uncompiled tag remains in the player version in that context.
|
|
43
|
-
VERSION="v$(jq -r .version package.json)-uncompiled"
|
|
44
|
-
sed -e "s/^\\(shaka.Player.version =\\).*/\\1 '$VERSION';/" \
|
|
45
|
-
-i lib/player.js
|
|
46
|
-
git add lib/player.js
|
|
47
|
-
# Set missing git config for the commit.
|
|
48
|
-
git config user.name "shaka-bot"
|
|
49
|
-
git config user.email "shaka-bot@users.noreply.github.com"
|
|
50
|
-
# Update the PR.
|
|
51
|
-
git commit --amend --no-edit
|
|
52
|
-
git push -f
|
|
26
|
+
# Update these additional files containing version numbers.
|
|
27
|
+
extra-files: lib/player.js
|
|
53
28
|
|
|
54
29
|
# The jobs below are all conditional on a release having been created by
|
|
55
30
|
# someone merging the release PR. They all run in parallel.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,37 +1,79 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [4.
|
|
3
|
+
## [4.5.0](https://github.com/shaka-project/shaka-player/compare/v4.4.0...v4.5.0) (2023-10-04)
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
###
|
|
7
|
-
|
|
8
|
-
* com.apple.fps should work with the default initDataTransform when using legacy Apple Media Keys ([#5603](https://github.com/shaka-project/shaka-player/issues/5603)) ([1a6fcf7](https://github.com/shaka-project/shaka-player/commit/1a6fcf71bc27b37ca44dc2dabdf5e4608a12dea4))
|
|
9
|
-
* Compute correctly the positionAlign in UITextDisplayer ([#5630](https://github.com/shaka-project/shaka-player/issues/5630)) ([b19c5e7](https://github.com/shaka-project/shaka-player/commit/b19c5e720882dd9211f9455f12dff0485b121175))
|
|
10
|
-
* **DASH:** Fix race condition error while switching audio tracks ([#5619](https://github.com/shaka-project/shaka-player/issues/5619)) ([c140ea3](https://github.com/shaka-project/shaka-player/commit/c140ea3d3e5550e1e89e7e0ad8fc50d637c0ed57))
|
|
11
|
-
* **Demo:** Allow com.apple.fps.1_0 in the custom DRM System field ([#5600](https://github.com/shaka-project/shaka-player/issues/5600)) ([30597ed](https://github.com/shaka-project/shaka-player/commit/30597ed5d9f64c5ea56fc70043b46a8f8fdd774d))
|
|
12
|
-
* Fix compiled-mode error formatting ([#5623](https://github.com/shaka-project/shaka-player/issues/5623)) ([838cb16](https://github.com/shaka-project/shaka-player/commit/838cb160653692c378afda9ec77b8fbc996cfd56))
|
|
13
|
-
* fix preferred track selection on Safari ([#5601](https://github.com/shaka-project/shaka-player/issues/5601)) ([0e4a021](https://github.com/shaka-project/shaka-player/commit/0e4a02154ee4588c88e7526eac841aca46902c4f))
|
|
14
|
-
* Fix transmuxed audio timestamps ([#5595](https://github.com/shaka-project/shaka-player/issues/5595)) ([258a91f](https://github.com/shaka-project/shaka-player/commit/258a91f2b70da7267067800e5e571a48f5c17be2))
|
|
15
|
-
* **HLS:** Get the correct video codec for TS segments ([#5598](https://github.com/shaka-project/shaka-player/issues/5598)) ([0020afe](https://github.com/shaka-project/shaka-player/commit/0020afe02ef961581cfdcefbc412d7ae454a8128))
|
|
16
|
-
* **HLS:** Show WebVTT subtitles with X-TIMESTAMP-MAP in segments mode ([#5643](https://github.com/shaka-project/shaka-player/issues/5643)) ([58298e2](https://github.com/shaka-project/shaka-player/commit/58298e24758c27a1fa409246098e3c186a0ab1e4))
|
|
17
|
-
* Improve TsParse to avoid parsing errors ([#5615](https://github.com/shaka-project/shaka-player/issues/5615)) ([c57bb6f](https://github.com/shaka-project/shaka-player/commit/c57bb6f89081c0492dbc75a9b7c1ae7580caf0a7))
|
|
18
|
-
* **TTML:** Fix wrong writing-mode in nested cues ([#5646](https://github.com/shaka-project/shaka-player/issues/5646)) ([521c239](https://github.com/shaka-project/shaka-player/commit/521c2398f2503b04be9f79ed62fb17ecb8d000d1))
|
|
19
|
-
* **UI:** Fix broken language names on Google TV ([#5613](https://github.com/shaka-project/shaka-player/issues/5613)) ([4a84d8e](https://github.com/shaka-project/shaka-player/commit/4a84d8e25250871c3e4cda967b13ee80fe371913))
|
|
20
|
-
* **WebVTT:** Fix support for line:0 vertical alignment ([#5632](https://github.com/shaka-project/shaka-player/issues/5632)) ([14cdc11](https://github.com/shaka-project/shaka-player/commit/14cdc11968e0e7782a9924a9a9be84882a031806))
|
|
21
|
-
* **WebVTT:** Fix wrong writing-mode in nested cues ([#5641](https://github.com/shaka-project/shaka-player/issues/5641)) ([8a7e32e](https://github.com/shaka-project/shaka-player/commit/8a7e32e111fbab76e5989a7df8ea8efc00955eb3))
|
|
6
|
+
### Features
|
|
22
7
|
|
|
23
|
-
|
|
8
|
+
* **ABR:** Allow some downscale when use restrictToElementSize or restrictToScreenSize ([#5631](https://github.com/shaka-project/shaka-player/issues/5631)) ([cad1ac8](https://github.com/shaka-project/shaka-player/commit/cad1ac82837123282248a0766147390d5c21bcb9))
|
|
9
|
+
* Add getBandwidthEstimate to the player interface for custom manifest parser ([#5714](https://github.com/shaka-project/shaka-player/issues/5714)) ([1271a18](https://github.com/shaka-project/shaka-player/commit/1271a18fec65551508a734615c9c1619ebd87e04))
|
|
10
|
+
* Add H.265 TS transmuxer ([#5611](https://github.com/shaka-project/shaka-player/issues/5611)) ([3c2c095](https://github.com/shaka-project/shaka-player/commit/3c2c0955cbd230f2360e2fb9d82e59cb19dab591))
|
|
11
|
+
* Add KeyStatusChanged and UpdateState events ([#5695](https://github.com/shaka-project/shaka-player/issues/5695)) ([2f97fa7](https://github.com/shaka-project/shaka-player/commit/2f97fa7ee3497261af038046f1de14095c6d4481))
|
|
12
|
+
* Add manifestupdated event ([#5602](https://github.com/shaka-project/shaka-player/issues/5602)) ([b16d2f0](https://github.com/shaka-project/shaka-player/commit/b16d2f0bf3691ef7cc2de4eea095df21814a2027))
|
|
13
|
+
* Add TS transmuxer for muxed content ([#5571](https://github.com/shaka-project/shaka-player/issues/5571)) ([7df3321](https://github.com/shaka-project/shaka-player/commit/7df33212726d0040ba5d5a4cc0c049f174a06c83))
|
|
14
|
+
* **Ads:** Add support for AWS Elemental MediaTailor ([#5679](https://github.com/shaka-project/shaka-player/issues/5679)) ([cf5a72b](https://github.com/shaka-project/shaka-player/commit/cf5a72bb513ff74e5b0f8ca7fd334313cd78370d))
|
|
15
|
+
* **CEA:** Parse CEA from TS with H.265 ([#5610](https://github.com/shaka-project/shaka-player/issues/5610)) ([54eaf63](https://github.com/shaka-project/shaka-player/commit/54eaf6371aeb2fb8b860d52b75a0c27555aaaaca))
|
|
16
|
+
* **DASH:** Add new config to prevent mixing of audio representations from different adaptation sets ([#5620](https://github.com/shaka-project/shaka-player/issues/5620)) ([0bbb470](https://github.com/shaka-project/shaka-player/commit/0bbb47025e347d321a9d764666a355b2d2a485a5))
|
|
17
|
+
* **DASH:** Add support for AES-128 ([#5656](https://github.com/shaka-project/shaka-player/issues/5656)) ([96ae7f2](https://github.com/shaka-project/shaka-player/commit/96ae7f2fe614402d1ee410591eb86a2868796c38))
|
|
18
|
+
* **DASH:** Allow the playback of DASH with $time$ and large timescale value ([#5621](https://github.com/shaka-project/shaka-player/issues/5621)) ([4a1c96e](https://github.com/shaka-project/shaka-player/commit/4a1c96e630de1ee259ed3a5ee582dddd0f844e04))
|
|
19
|
+
* **demo:** Added icons for new demo assets ([#5691](https://github.com/shaka-project/shaka-player/issues/5691)) ([12400b1](https://github.com/shaka-project/shaka-player/commit/12400b160b51c7ea87ecb9e8bb77ae481bb707d7))
|
|
20
|
+
* Enable codec switching ([#5470](https://github.com/shaka-project/shaka-player/issues/5470)) ([0078137](https://github.com/shaka-project/shaka-player/commit/0078137d1bd6bd471b5e1405e27d7fc76b5668ac))
|
|
21
|
+
* **HLS:** Get the correct video info for TS segments with H.265 ([#5616](https://github.com/shaka-project/shaka-player/issues/5616)) ([e191c75](https://github.com/shaka-project/shaka-player/commit/e191c755167abd8658e9e3aae35cd99d07d15ee6))
|
|
22
|
+
* **HLS:** Take into account the parsing time for manifest schedule update ([#5678](https://github.com/shaka-project/shaka-player/issues/5678)) ([f7e33a3](https://github.com/shaka-project/shaka-player/commit/f7e33a3ba529e13052bfaa8762b78379bb8c8e03))
|
|
23
|
+
* Migration of LCEVC DIL (Decoder Integration Layer) to LCEVC Dec (Decoder) ([#5459](https://github.com/shaka-project/shaka-player/issues/5459)) ([c1e18d3](https://github.com/shaka-project/shaka-player/commit/c1e18d358361392332372760b90c724047cf1310))
|
|
24
|
+
* **TTML:** Add support to tts:ruby ([#5645](https://github.com/shaka-project/shaka-player/issues/5645)) ([9fd220e](https://github.com/shaka-project/shaka-player/commit/9fd220e73f7ef0e9b5774717347b2d3fa7590e99))
|
|
25
|
+
* **TTML:** Add support to tts:textCombine ([#5644](https://github.com/shaka-project/shaka-player/issues/5644)) ([73a3bd9](https://github.com/shaka-project/shaka-player/commit/73a3bd931ebc7c9690f3d0aefb0639f2230fa594))
|
|
26
|
+
* **UI:** Add config to preferDocumentPictureInPicture ([#5690](https://github.com/shaka-project/shaka-player/issues/5690)) ([025502a](https://github.com/shaka-project/shaka-player/commit/025502a70c885216b9bbc063025ae80a72780fe6))
|
|
27
|
+
* **UI:** Add PiP function to controls ([#5629](https://github.com/shaka-project/shaka-player/issues/5629)) ([b422847](https://github.com/shaka-project/shaka-player/commit/b4228479dae3469e5a3a1e8190bef9c4e3e1a843))
|
|
28
|
+
* **UI:** Add remote button with RemotePlayback API ([#5650](https://github.com/shaka-project/shaka-player/issues/5650)) ([1ef5ae0](https://github.com/shaka-project/shaka-player/commit/1ef5ae0615a14baa26ff9ffa9fa5e083bfa19c7e))
|
|
29
|
+
* **WebVTT:** Add support to ruby, rt, rp html tags ([#5642](https://github.com/shaka-project/shaka-player/issues/5642)) ([76ffd38](https://github.com/shaka-project/shaka-player/commit/76ffd38c1d78042acac220df202a9abdd77489e9))
|
|
30
|
+
* **WebVTT:** Add support to text-combine-upright ([#5633](https://github.com/shaka-project/shaka-player/issues/5633)) ([a2f253f](https://github.com/shaka-project/shaka-player/commit/a2f253f8d619d2959c0195a8e1260657b5d34a3a))
|
|
24
31
|
|
|
25
32
|
|
|
26
33
|
### Bug Fixes
|
|
27
34
|
|
|
28
|
-
*
|
|
29
|
-
* Fix
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* **
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
+
* Allow PID change in TsParser ([#5681](https://github.com/shaka-project/shaka-player/issues/5681)) ([d9b49d9](https://github.com/shaka-project/shaka-player/commit/d9b49d992f533bf7664932d547253b860064ea03))
|
|
36
|
+
* **CMCD:** Fix CMCD for some mimetypes in src= ([#5699](https://github.com/shaka-project/shaka-player/issues/5699)) ([e2c32c5](https://github.com/shaka-project/shaka-player/commit/e2c32c52f0ae347083bcc6b4b7dceca903b5546b))
|
|
37
|
+
* com.apple.fps should work with the default initDataTransform when using legacy Apple Media Keys ([#5603](https://github.com/shaka-project/shaka-player/issues/5603)) ([76fdda6](https://github.com/shaka-project/shaka-player/commit/76fdda65231905c945db6a5eedeece65f8d7711e))
|
|
38
|
+
* Compute correctly the positionAlign in UITextDisplayer ([#5630](https://github.com/shaka-project/shaka-player/issues/5630)) ([3a2dbc3](https://github.com/shaka-project/shaka-player/commit/3a2dbc3deaf1e1ee5384eed41c6c9e79817a8a09))
|
|
39
|
+
* **DASH:** Fix bigint implementation ([#5707](https://github.com/shaka-project/shaka-player/issues/5707)) ([45009d2](https://github.com/shaka-project/shaka-player/commit/45009d2c0cbbb203ecb864bc4b742ed4ad9a0d9a))
|
|
40
|
+
* **DASH:** Fix race condition error while switching audio tracks ([#5619](https://github.com/shaka-project/shaka-player/issues/5619)) ([29d9a10](https://github.com/shaka-project/shaka-player/commit/29d9a107054fff16ec2abe2cbdbb8fa0c0cfd882))
|
|
41
|
+
* **Demo:** Allow com.apple.fps.1_0 in the custom DRM System field ([#5600](https://github.com/shaka-project/shaka-player/issues/5600)) ([ab86000](https://github.com/shaka-project/shaka-player/commit/ab86000dc75a352505875fe6dbc37fe0bdd2857a))
|
|
42
|
+
* **Demo:** Fix url of "Low Latency HLS Live" asset ([#5708](https://github.com/shaka-project/shaka-player/issues/5708)) ([146d3ec](https://github.com/shaka-project/shaka-player/commit/146d3ecd280b8b985e1fae6fc9262fa04dcf6126))
|
|
43
|
+
* Fix compiled-mode error formatting ([#5623](https://github.com/shaka-project/shaka-player/issues/5623)) ([a19912e](https://github.com/shaka-project/shaka-player/commit/a19912e5bf9ec5425a366b07745d5bac631a9dd2))
|
|
44
|
+
* Fix creation of new Stream object for each manifest request in DASH Live when using CEA ([#5674](https://github.com/shaka-project/shaka-player/issues/5674)) ([0a8b519](https://github.com/shaka-project/shaka-player/commit/0a8b5193f2de0b83ddd24aacda09523926b1cdb9))
|
|
45
|
+
* Fix MediaSourceEngine reset operation ([#5576](https://github.com/shaka-project/shaka-player/issues/5576)) ([9f5e91f](https://github.com/shaka-project/shaka-player/commit/9f5e91f4a37a8e504adcf1dd756fac9c777c2051))
|
|
46
|
+
* Fix Mp4Generator ([#5566](https://github.com/shaka-project/shaka-player/issues/5566)) ([effafbc](https://github.com/shaka-project/shaka-player/commit/effafbc849cc83c732fe113f5da479513b884f9f))
|
|
47
|
+
* Fix NALU parsing in some HLS muxed live streams ([#5688](https://github.com/shaka-project/shaka-player/issues/5688)) ([756a576](https://github.com/shaka-project/shaka-player/commit/756a57658608b3d8e674ae810afc692a25dc85cf))
|
|
48
|
+
* Fix PES parsing ([#5559](https://github.com/shaka-project/shaka-player/issues/5559)) ([5c6ab9e](https://github.com/shaka-project/shaka-player/commit/5c6ab9e0c8ba1236710209b36ea08d7a44fb1bf3))
|
|
49
|
+
* fix preferred track selection on Safari ([#5601](https://github.com/shaka-project/shaka-player/issues/5601)) ([d021d6f](https://github.com/shaka-project/shaka-player/commit/d021d6f932b3a64d826b919b5a7b252599e2ecd5))
|
|
50
|
+
* Fix some properties on the shaka.text.Cue that are mangled ([#5673](https://github.com/shaka-project/shaka-player/issues/5673)) ([d2b7cb2](https://github.com/shaka-project/shaka-player/commit/d2b7cb28212d5fc82b70169c77826333e0fc081f))
|
|
51
|
+
* Fix transmuxed audio timestamps ([#5595](https://github.com/shaka-project/shaka-player/issues/5595)) ([0260aef](https://github.com/shaka-project/shaka-player/commit/0260aefcdbdda2184ea32d3d8678a04491cc6fd3))
|
|
52
|
+
* Fix transmuxing of muxed content ([#5686](https://github.com/shaka-project/shaka-player/issues/5686)) ([f20d50a](https://github.com/shaka-project/shaka-player/commit/f20d50a37b8629d5429b22e2fa0ced4729335af3))
|
|
53
|
+
* Fix TS transmuxer when the main content is muxed ([#5575](https://github.com/shaka-project/shaka-player/issues/5575)) ([65b3037](https://github.com/shaka-project/shaka-player/commit/65b3037181b30274b1cedf52283f5726cf7df0b9))
|
|
54
|
+
* Fix unreleased stack overflow on statechanged ([#5712](https://github.com/shaka-project/shaka-player/issues/5712)) ([ebacf32](https://github.com/shaka-project/shaka-player/commit/ebacf32127dfc7b8b5227d66f7d53d3eee54fdd3))
|
|
55
|
+
* **HLS:** Allow audio groups on audio-only content ([#5578](https://github.com/shaka-project/shaka-player/issues/5578)) ([3cbc444](https://github.com/shaka-project/shaka-player/commit/3cbc444c95ab2e8c124d2caaaac6ce7bc5fdf02f))
|
|
56
|
+
* **HLS:** Fix audio and video out of sync ([#5658](https://github.com/shaka-project/shaka-player/issues/5658)) ([4cc4143](https://github.com/shaka-project/shaka-player/commit/4cc4143d5f3d78fc5839d6e61d7464ac62479253))
|
|
57
|
+
* **HLS:** Fix display CEA-708 in HLS ([#5694](https://github.com/shaka-project/shaka-player/issues/5694)) ([2097193](https://github.com/shaka-project/shaka-player/commit/2097193c1d16b2fc7478959257e45dd0d8233ffa))
|
|
58
|
+
* **HLS:** Fix presentation delay for small live playlists (eg: 3-4 segments) ([#5687](https://github.com/shaka-project/shaka-player/issues/5687)) ([caef5a4](https://github.com/shaka-project/shaka-player/commit/caef5a41edb3b7ac09d58249990bc2fa14ac5adb))
|
|
59
|
+
* **HLS:** Get the correct video codec for TS segments ([#5598](https://github.com/shaka-project/shaka-player/issues/5598)) ([1135115](https://github.com/shaka-project/shaka-player/commit/11351150694814813cb1cfeab4dc78fdefcce6fa))
|
|
60
|
+
* **HLS:** Show WebVTT subtitles with X-TIMESTAMP-MAP in segments mode ([#5643](https://github.com/shaka-project/shaka-player/issues/5643)) ([bd636d4](https://github.com/shaka-project/shaka-player/commit/bd636d4edffed3e845c79666547dc5af91af4055))
|
|
61
|
+
* **HLS:** Skip segments without duration and without partial segments ([#5705](https://github.com/shaka-project/shaka-player/issues/5705)) ([f53d50d](https://github.com/shaka-project/shaka-player/commit/f53d50dc3620736add47f4db2f4e71b4d8eea526))
|
|
62
|
+
* **HLS:** Support AES-128 in init segment according the RFC ([#5677](https://github.com/shaka-project/shaka-player/issues/5677)) ([806d91a](https://github.com/shaka-project/shaka-player/commit/806d91af4da9e71f9e11af406ffebf14232c5e9f))
|
|
63
|
+
* Improve TsParse to avoid parsing errors ([#5615](https://github.com/shaka-project/shaka-player/issues/5615)) ([5fa8b42](https://github.com/shaka-project/shaka-player/commit/5fa8b42118103ee8bb32394feb3aeb57b6d47553))
|
|
64
|
+
* Prevent codecs override in the transmuxer ([#5568](https://github.com/shaka-project/shaka-player/issues/5568)) ([66c625f](https://github.com/shaka-project/shaka-player/commit/66c625f55ab00989ff74419e8f85ca7619446dd0))
|
|
65
|
+
* Remove debugging code on Simple Text ([#5582](https://github.com/shaka-project/shaka-player/issues/5582)) ([991130a](https://github.com/shaka-project/shaka-player/commit/991130a6d875fd41ff585254563c5a879057603a))
|
|
66
|
+
* seeking in segment timeline returns incorrect index ([#5716](https://github.com/shaka-project/shaka-player/issues/5716)) ([c02ccee](https://github.com/shaka-project/shaka-player/commit/c02cceeeca0590a9b9b3161783142d89ba4948d4)), closes [#5664](https://github.com/shaka-project/shaka-player/issues/5664)
|
|
67
|
+
* **TTML:** Fix wrong writing-mode in nested cues ([#5646](https://github.com/shaka-project/shaka-player/issues/5646)) ([3a4f108](https://github.com/shaka-project/shaka-player/commit/3a4f10878a91c7d30f71862f2cec780b0f5e1bac))
|
|
68
|
+
* **UI:** Fix broken language names on Google TV ([#5613](https://github.com/shaka-project/shaka-player/issues/5613)) ([fc93292](https://github.com/shaka-project/shaka-player/commit/fc93292d9e4f8d38561dea8320cbcd5fd25f2c75))
|
|
69
|
+
* **WebVTT:** Fix support for line:0 vertical alignment ([#5632](https://github.com/shaka-project/shaka-player/issues/5632)) ([eed393f](https://github.com/shaka-project/shaka-player/commit/eed393f1bf777f00f1e7242c96bf9124ad3dec30))
|
|
70
|
+
* **WebVTT:** Fix text displayed out of picture and with overlapping lines ([#5662](https://github.com/shaka-project/shaka-player/issues/5662)) ([6975be9](https://github.com/shaka-project/shaka-player/commit/6975be92d47fd5368492e861a6ea63e627a4846c)), closes [#5661](https://github.com/shaka-project/shaka-player/issues/5661)
|
|
71
|
+
* **WebVTT:** Fix wrong writing-mode in nested cues ([#5641](https://github.com/shaka-project/shaka-player/issues/5641)) ([56a4cea](https://github.com/shaka-project/shaka-player/commit/56a4cea5789f15b5e78c9a5d8d0cb97eb542bafc))
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
### Performance Improvements
|
|
75
|
+
|
|
76
|
+
* Optimization to resolve uris ([#5657](https://github.com/shaka-project/shaka-player/issues/5657)) ([bd17c2b](https://github.com/shaka-project/shaka-player/commit/bd17c2bfd077c596d77a2a3fdd865041ed08012c))
|
|
35
77
|
|
|
36
78
|
## [4.4.0](https://github.com/shaka-project/shaka-player/compare/v4.4.0...v4.4.0) (2023-08-30)
|
|
37
79
|
|
package/README.md
CHANGED
|
@@ -115,7 +115,6 @@ DASH features **not** supported:
|
|
|
115
115
|
- Xlink with actuate=onRequest
|
|
116
116
|
- Manifests without any segment info:
|
|
117
117
|
https://github.com/shaka-project/shaka-player/issues/1088
|
|
118
|
-
- Changing codecs during a presentation (unsupported by MSE)
|
|
119
118
|
- Multiple trick mode tracks for the same resolution at varying framerates or
|
|
120
119
|
bitrates
|
|
121
120
|
- Timescales so large that timestamps cannot be represented as integers in
|
|
@@ -132,8 +131,7 @@ HLS features supported:
|
|
|
132
131
|
blocking playlist reload
|
|
133
132
|
- Discontinuity
|
|
134
133
|
- ISO-BMFF / MP4 / CMAF support
|
|
135
|
-
- MPEG-2 TS support
|
|
136
|
-
separately included)
|
|
134
|
+
- MPEG-2 TS support
|
|
137
135
|
- WebVTT and TTML
|
|
138
136
|
- CEA-608/708 captions
|
|
139
137
|
- Encrypted content with PlayReady and Widevine
|
|
@@ -144,20 +142,19 @@ HLS features supported:
|
|
|
144
142
|
HLS features **not** supported:
|
|
145
143
|
- I-frame-only playlists: https://github.com/shaka-project/shaka-player/issues/742
|
|
146
144
|
|
|
147
|
-
[mux.js]: https://github.com/videojs/mux.js/releases
|
|
148
145
|
|
|
149
146
|
## MPEG-5 Part2 LCEVC Support
|
|
150
147
|
|
|
151
148
|
**Only supported on browsers with Media Source Extensions SourceBuffer support**
|
|
152
149
|
|
|
153
|
-
- MPEG-5 Part2 LCEVC decoding support (decoding provided by [
|
|
150
|
+
- MPEG-5 Part2 LCEVC decoding support (decoding provided by [lcevc_dec.js][], must be
|
|
154
151
|
separately included)
|
|
155
152
|
|
|
156
153
|
- Integration documentation : [docs](docs/design/lcevc-integration.md)
|
|
157
154
|
|
|
158
155
|
- More on [MPEG-5 Part2 LCEVC][]
|
|
159
156
|
|
|
160
|
-
[
|
|
157
|
+
[lcevc_dec.js]: https://www.npmjs.com/package/lcevc_dec.js
|
|
161
158
|
[MPEG-5 Part2 LCEVC]: https://www.lcevc.org
|
|
162
159
|
|
|
163
160
|
|
|
@@ -235,8 +232,7 @@ Shaka Player supports:
|
|
|
235
232
|
SegmentTemplate@index
|
|
236
233
|
- Not supported in HLS
|
|
237
234
|
- MPEG-2 TS
|
|
238
|
-
-
|
|
239
|
-
supports MP4
|
|
235
|
+
- Can be played on any browser which supports MP4
|
|
240
236
|
- Can find and parse timestamps to find segment start time in HLS
|
|
241
237
|
- WebVTT
|
|
242
238
|
- Supported in both text form and embedded in MP4
|
|
@@ -289,8 +285,8 @@ Shaka Player supports:
|
|
|
289
285
|
- MP3 in MPEG-2 TS to MP3 in MP4
|
|
290
286
|
- MP3 in MPEG-2 TS to raw MP3
|
|
291
287
|
- H.264 in MPEG-2 TS to H.264 in MP4
|
|
292
|
-
-
|
|
293
|
-
|
|
288
|
+
- H.265 in MPEG-2 TS to H.265 in MP4
|
|
289
|
+
- Muxed content in MPEG-2 TS with the previous codecs
|
|
294
290
|
|
|
295
291
|
|
|
296
292
|
## Thumbnails support
|
|
@@ -301,6 +297,16 @@ Shaka Player supports:
|
|
|
301
297
|
- External WebVTT with images/sprites (only for VoD)
|
|
302
298
|
|
|
303
299
|
|
|
300
|
+
## Monetization with Ads
|
|
301
|
+
|
|
302
|
+
Shaka Player supports:
|
|
303
|
+
- IMA SDK for Client-Side Ad Insertion
|
|
304
|
+
- IMA DAI SDK for Server-Side Ad Insertion
|
|
305
|
+
- AWS MediaTailor for Client-Side
|
|
306
|
+
- AWS MediaTailor for Server-Side
|
|
307
|
+
- AWS MediaTailor overlays
|
|
308
|
+
|
|
309
|
+
|
|
304
310
|
## Documentation & Important Links ##
|
|
305
311
|
|
|
306
312
|
* [Demo](https://shaka-player-demo.appspot.com)([sources](demo/))
|
package/demo/asset_card.js
CHANGED
|
@@ -8,7 +8,6 @@ goog.provide('shakaDemo.AssetCard');
|
|
|
8
8
|
|
|
9
9
|
goog.require('goog.asserts');
|
|
10
10
|
goog.require('shakaAssets');
|
|
11
|
-
goog.require('shakaDemo.MessageIds');
|
|
12
11
|
goog.require('shakaDemo.Tooltips');
|
|
13
12
|
goog.requireType('ShakaDemoAssetInfo');
|
|
14
13
|
|
|
@@ -134,7 +133,7 @@ shakaDemo.AssetCard = class {
|
|
|
134
133
|
|
|
135
134
|
/**
|
|
136
135
|
* @param {string} icon
|
|
137
|
-
* @param {
|
|
136
|
+
* @param {string} title
|
|
138
137
|
* @private
|
|
139
138
|
*/
|
|
140
139
|
addFeatureIcon_(icon, title) {
|
|
@@ -190,18 +189,17 @@ shakaDemo.AssetCard = class {
|
|
|
190
189
|
|
|
191
190
|
/**
|
|
192
191
|
* Modify an asset to make it clear that it is unsupported.
|
|
193
|
-
* @param {
|
|
192
|
+
* @param {string} unsupportedReason
|
|
194
193
|
*/
|
|
195
194
|
markAsUnsupported(unsupportedReason) {
|
|
196
195
|
this.card_.classList.add('asset-card-unsupported');
|
|
197
|
-
this.makeUnsupportedButton_(
|
|
198
|
-
shakaDemo.MessageIds.UNSUPPORTED, unsupportedReason);
|
|
196
|
+
this.makeUnsupportedButton_('Not Available', unsupportedReason);
|
|
199
197
|
}
|
|
200
198
|
|
|
201
199
|
/**
|
|
202
200
|
* Make a button that represents the lack of a working button.
|
|
203
|
-
* @param {?
|
|
204
|
-
* @param {
|
|
201
|
+
* @param {?string} buttonName
|
|
202
|
+
* @param {string} unsupportedReason
|
|
205
203
|
* @return {!Element}
|
|
206
204
|
* @private
|
|
207
205
|
*/
|
|
@@ -306,16 +304,15 @@ shakaDemo.AssetCard = class {
|
|
|
306
304
|
return;
|
|
307
305
|
}
|
|
308
306
|
|
|
309
|
-
this.makeYesNoDialogue_(parentDiv,
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
});
|
|
307
|
+
this.makeYesNoDialogue_(parentDiv, 'Delete the offline copy?', async () => {
|
|
308
|
+
deleteButton.disabled = true;
|
|
309
|
+
await this.asset_.unstoreCallback();
|
|
310
|
+
});
|
|
314
311
|
}
|
|
315
312
|
|
|
316
313
|
/**
|
|
317
314
|
* @param {!Element} parentDiv
|
|
318
|
-
* @param {
|
|
315
|
+
* @param {string} text
|
|
319
316
|
* @param {function():Promise} callback
|
|
320
317
|
* @private
|
|
321
318
|
*/
|
|
@@ -330,14 +327,14 @@ shakaDemo.AssetCard = class {
|
|
|
330
327
|
|
|
331
328
|
const textElement = document.createElement('h2');
|
|
332
329
|
textElement.classList.add('mdl-typography--title');
|
|
333
|
-
textElement.textContent =
|
|
330
|
+
textElement.textContent = text;
|
|
334
331
|
dialog.appendChild(textElement);
|
|
335
332
|
|
|
336
333
|
const buttonsDiv = document.createElement('div');
|
|
337
334
|
dialog.appendChild(buttonsDiv);
|
|
338
|
-
const makeButton = (
|
|
335
|
+
const makeButton = (text, fn) => {
|
|
339
336
|
const button = document.createElement('button');
|
|
340
|
-
button.textContent =
|
|
337
|
+
button.textContent = text;
|
|
341
338
|
button.classList.add('mdl-button');
|
|
342
339
|
button.classList.add('mdl-button--colored');
|
|
343
340
|
button.classList.add('mdl-js-button');
|
|
@@ -348,12 +345,12 @@ shakaDemo.AssetCard = class {
|
|
|
348
345
|
buttonsDiv.appendChild(button);
|
|
349
346
|
button.blur();
|
|
350
347
|
};
|
|
351
|
-
makeButton(
|
|
348
|
+
makeButton('Yes', async () => {
|
|
352
349
|
dialog.close();
|
|
353
350
|
await callback();
|
|
354
351
|
this.remakeButtons();
|
|
355
352
|
});
|
|
356
|
-
makeButton(
|
|
353
|
+
makeButton('No', () => {
|
|
357
354
|
dialog.close();
|
|
358
355
|
});
|
|
359
356
|
|
|
@@ -385,9 +382,9 @@ shakaDemo.AssetCard = class {
|
|
|
385
382
|
/**
|
|
386
383
|
* Adds a button to the bottom of the card that will call |onClick| when
|
|
387
384
|
* clicked. For example, a play or delete button.
|
|
388
|
-
* @param {?
|
|
385
|
+
* @param {?string} name
|
|
389
386
|
* @param {function()} onclick
|
|
390
|
-
* @param {
|
|
387
|
+
* @param {string=} yesNoDialogText
|
|
391
388
|
* @return {!HTMLButtonElement}
|
|
392
389
|
*/
|
|
393
390
|
addButton(name, onclick, yesNoDialogText) {
|
|
@@ -397,7 +394,7 @@ shakaDemo.AssetCard = class {
|
|
|
397
394
|
button.classList.add('mdl-button--colored');
|
|
398
395
|
button.classList.add('mdl-js-button');
|
|
399
396
|
button.classList.add('mdl-js-ripple-effect');
|
|
400
|
-
button.textContent = name
|
|
397
|
+
button.textContent = name || '';
|
|
401
398
|
button.addEventListener('click', () => {
|
|
402
399
|
if (!button.hasAttribute('disabled')) {
|
|
403
400
|
if (yesNoDialogText) {
|
|
@@ -52,7 +52,6 @@ UNCOMPILED_JS = [
|
|
|
52
52
|
// This file contains goog.require calls for all exported library classes.
|
|
53
53
|
'../../shaka-player.uncompiled.js',
|
|
54
54
|
// These are the individual parts of the receiver app.
|
|
55
|
-
'../common/message_ids.js',
|
|
56
55
|
'../common/asset.js',
|
|
57
56
|
'../common/assets.js',
|
|
58
57
|
'receiver_app.js',
|
package/demo/close_button.js
CHANGED
package/demo/common/asset.js
CHANGED
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
|
|
13
13
|
goog.provide('ShakaDemoAssetInfo');
|
|
14
14
|
|
|
15
|
-
goog.require('shakaDemo.MessageIds');
|
|
16
|
-
|
|
17
15
|
|
|
18
16
|
/**
|
|
19
17
|
* An object that contains information about an asset.
|
|
@@ -80,6 +78,10 @@ const ShakaDemoAssetInfo = class {
|
|
|
80
78
|
/** @type {?string} */
|
|
81
79
|
this.imaManifestType = null;
|
|
82
80
|
/** @type {?string} */
|
|
81
|
+
this.mediaTailorUrl = null;
|
|
82
|
+
/** @type {?Object} */
|
|
83
|
+
this.mediaTailorAdsParams = null;
|
|
84
|
+
/** @type {?string} */
|
|
83
85
|
this.mimeType = null;
|
|
84
86
|
/** @type {?string} */
|
|
85
87
|
this.mediaPlaylistFullMimeType = null;
|
|
@@ -115,9 +117,9 @@ const ShakaDemoAssetInfo = class {
|
|
|
115
117
|
}
|
|
116
118
|
|
|
117
119
|
/**
|
|
118
|
-
* A sort comparator for comparing two
|
|
119
|
-
* @param {
|
|
120
|
-
* @param {
|
|
120
|
+
* A sort comparator for comparing two messages, ignoring case.
|
|
121
|
+
* @param {string} a
|
|
122
|
+
* @param {string} b
|
|
121
123
|
* @return {number}
|
|
122
124
|
* @private
|
|
123
125
|
*/
|
|
@@ -167,6 +169,11 @@ const ShakaDemoAssetInfo = class {
|
|
|
167
169
|
return this.drm.length == 1 && this.drm[0] == shakaAssets.KeySystem.CLEAR;
|
|
168
170
|
}
|
|
169
171
|
|
|
172
|
+
/** @return {boolean} */
|
|
173
|
+
isAes128() {
|
|
174
|
+
return this.drm.length == 1 && this.drm[0] == shakaAssets.KeySystem.AES128;
|
|
175
|
+
}
|
|
176
|
+
|
|
170
177
|
/**
|
|
171
178
|
* @param {string} mediaPlaylistFullMimeType
|
|
172
179
|
* @return {!ShakaDemoAssetInfo}
|
|
@@ -284,6 +291,21 @@ const ShakaDemoAssetInfo = class {
|
|
|
284
291
|
return this;
|
|
285
292
|
}
|
|
286
293
|
|
|
294
|
+
/**
|
|
295
|
+
* @param {string} url
|
|
296
|
+
* @param {?Object=} adsParams
|
|
297
|
+
* @return {!ShakaDemoAssetInfo}
|
|
298
|
+
*/
|
|
299
|
+
setMediaTailor(url, adsParams=null) {
|
|
300
|
+
this.mediaTailorUrl = url;
|
|
301
|
+
this.mediaTailorAdsParams = adsParams;
|
|
302
|
+
if (!this.features.includes(shakaAssets.Feature.ADS)) {
|
|
303
|
+
this.addFeature(shakaAssets.Feature.ADS);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
return this;
|
|
307
|
+
}
|
|
308
|
+
|
|
287
309
|
/**
|
|
288
310
|
* @param {string} headerName
|
|
289
311
|
* @param {string} headerValue
|