shaka-player 4.4.1 → 4.4.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/.github/workflows/deflake.yaml +8 -5
- package/.github/workflows/release-please.yaml +47 -7
- package/.github/workflows/shaka-bot-commands/command-test.sh +1 -1
- package/CHANGELOG.md +43 -0
- package/CONTRIBUTORS +1 -0
- package/demo/common/asset.js +5 -0
- package/demo/common/assets.js +20 -5
- package/demo/common/message_ids.js +1 -1
- package/demo/custom.js +5 -5
- package/demo/locales/en.json +2 -1
- package/demo/locales/source.json +5 -1
- package/demo/main.js +1 -1
- package/demo/search.js +3 -3
- package/dist/demo.compiled.debug.js +75 -73
- package/dist/demo.compiled.debug.map +3 -3
- package/dist/demo.compiled.js +75 -73
- package/dist/demo.compiled.map +3 -3
- package/dist/deps.js +2 -2
- package/dist/locales.js +31 -31
- package/dist/receiver.compiled.debug.js +38 -36
- package/dist/receiver.compiled.debug.map +3 -3
- package/dist/receiver.compiled.js +38 -36
- package/dist/receiver.compiled.map +3 -3
- package/dist/shaka-player.compiled.d.ts +533 -296
- package/dist/shaka-player.compiled.debug.d.ts +533 -296
- package/dist/shaka-player.compiled.debug.externs.js +308 -1
- package/dist/shaka-player.compiled.debug.js +280 -265
- package/dist/shaka-player.compiled.debug.map +3 -3
- package/dist/shaka-player.compiled.externs.js +308 -1
- package/dist/shaka-player.compiled.js +1037 -1027
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +577 -340
- package/dist/shaka-player.ui.debug.d.ts +577 -340
- package/dist/shaka-player.ui.debug.externs.js +308 -1
- package/dist/shaka-player.ui.debug.js +341 -326
- package/dist/shaka-player.ui.debug.map +3 -3
- package/dist/shaka-player.ui.externs.js +308 -1
- package/dist/shaka-player.ui.js +1149 -1141
- package/dist/shaka-player.ui.map +4 -4
- package/docs/tutorials/fairplay.md +8 -0
- package/docs/tutorials/faq.md +1 -1
- package/docs/tutorials/offline.md +1 -1
- package/externs/shaka/text.js +7 -0
- package/lib/dash/dash_parser.js +4 -1
- package/lib/dash/segment_template.js +3 -0
- package/lib/hls/hls_parser.js +68 -28
- package/lib/media/media_source_engine.js +1 -1
- package/lib/media/segment_index.js +4 -4
- package/lib/media/segment_reference.js +6 -1
- package/lib/media/streaming_engine.js +14 -24
- package/lib/player.js +8 -57
- package/lib/text/cue.js +47 -47
- package/lib/text/lrc_text_parser.js +8 -0
- package/lib/text/mp4_ttml_parser.js +8 -0
- package/lib/text/mp4_vtt_parser.js +8 -0
- package/lib/text/sbv_text_parser.js +8 -0
- package/lib/text/srt_text_parser.js +8 -0
- package/lib/text/ssa_text_parser.js +8 -0
- package/lib/text/text_engine.js +8 -1
- package/lib/text/ttml_text_parser.js +10 -1
- package/lib/text/ui_text_displayer.js +49 -3
- package/lib/text/vtt_text_parser.js +19 -3
- package/lib/transmuxer/ts_transmuxer.js +44 -43
- package/lib/util/cmcd_manager.js +6 -1
- package/lib/util/error.js +16 -10
- package/lib/util/manifest_parser_utils.js +10 -4
- package/lib/util/platform.js +14 -0
- package/lib/util/player_configuration.js +2 -2
- package/lib/util/stream_utils.js +13 -11
- package/lib/util/ts_parser.js +73 -16
- package/package.json +2 -2
- package/test/dash/dash_parser_manifest_unit.js +5 -0
- package/test/dash/dash_parser_segment_base_unit.js +5 -0
- package/test/dash/dash_parser_segment_list_unit.js +21 -17
- package/test/dash/dash_parser_segment_template_unit.js +47 -0
- package/test/hls/hls_live_unit.js +33 -0
- package/test/hls/hls_parser_unit.js +2 -57
- package/test/test/util/dash_parser_util.js +16 -7
- package/test/text/text_engine_unit.js +4 -2
- package/test/text/ttml_text_parser_unit.js +3 -4
- package/test/text/web_vtt_layout_integration.js +0 -1
- package/test/transmuxer/transmuxer_integration.js +4 -4
- package/test/util/ts_parser_unit.js +1 -1
- package/ui/language_utils.js +0 -15
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
name: Deflake Tests
|
|
2
2
|
|
|
3
|
-
# Runs when the Selenum
|
|
4
|
-
# full privileges, even if the other workflow doesn't. That allows us to
|
|
5
|
-
# trigger re-runs if we think the results might be flaky.
|
|
3
|
+
# Runs when the Selenum lab test or PR test workflows complete. This will run
|
|
4
|
+
# with full privileges, even if the other workflow doesn't. That allows us to
|
|
5
|
+
# trigger re-runs if we think the results might be flaky. A test run will be
|
|
6
|
+
# given up to 3 runs to succeed.
|
|
6
7
|
on:
|
|
7
8
|
workflow_run:
|
|
8
|
-
workflows:
|
|
9
|
+
workflows:
|
|
10
|
+
- Selenium Lab Tests
|
|
11
|
+
- Build and Test PR
|
|
9
12
|
types: [completed]
|
|
10
13
|
|
|
11
14
|
jobs:
|
|
12
15
|
deflake:
|
|
13
|
-
if: ${{ github.event.workflow_run.
|
|
16
|
+
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
|
|
14
17
|
runs-on: ubuntu-latest
|
|
15
18
|
|
|
16
19
|
steps:
|
|
@@ -29,8 +29,6 @@ jobs:
|
|
|
29
29
|
- uses: actions/checkout@v3
|
|
30
30
|
if: steps.release.outputs.release_created == false
|
|
31
31
|
with:
|
|
32
|
-
# Checkout the fork, where the PR is generated from.
|
|
33
|
-
repository: shaka-bot/${{ github.event.repository.name }}
|
|
34
32
|
# Use a special shaka-bot access token for releases.
|
|
35
33
|
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
|
|
36
34
|
- name: Custom update Player version
|
|
@@ -63,8 +61,7 @@ jobs:
|
|
|
63
61
|
steps:
|
|
64
62
|
- uses: actions/checkout@v3
|
|
65
63
|
with:
|
|
66
|
-
# Check out the origin repo,
|
|
67
|
-
# PR branch.
|
|
64
|
+
# Check out the origin repo, and do it at main, not the PR branch.
|
|
68
65
|
ref: main
|
|
69
66
|
# Use a special shaka-bot access token for releases.
|
|
70
67
|
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
|
|
@@ -93,10 +90,52 @@ jobs:
|
|
|
93
90
|
node-version: 16
|
|
94
91
|
registry-url: 'https://registry.npmjs.org'
|
|
95
92
|
|
|
93
|
+
- name: Compute NPM tags
|
|
94
|
+
run: |
|
|
95
|
+
# NPM publish always sets a tag. If you don't provide an explicit
|
|
96
|
+
# tag, you get the "latest" tag by default, but we want "latest" to
|
|
97
|
+
# always point to the highest version number. So we set an explicit
|
|
98
|
+
# tag on every "publish" command, then follow up with a command to
|
|
99
|
+
# set "latest" only if this release was the highest version yet.
|
|
100
|
+
|
|
101
|
+
# The explicit tag is based on the branch. If the git tag is v4.4.1,
|
|
102
|
+
# the branch was v4.4.x, and the explicit NPM tag should be
|
|
103
|
+
# v4.4-latest.
|
|
104
|
+
GIT_TAG_NAME=${{ needs.release.outputs.tag_name }}
|
|
105
|
+
NPM_TAG=$(echo "$GIT_TAG_NAME" | cut -f 1-2 -d .)-latest
|
|
106
|
+
echo "NPM_TAG=$NPM_TAG" >> $GITHUB_ENV
|
|
107
|
+
|
|
108
|
+
# We only tag the NPM package as "latest" if this release is the
|
|
109
|
+
# highest version to date.
|
|
110
|
+
RELEASE_TAGS=$(git tag | grep ^v[0-9] | grep -Ev -- '-(master|main)')
|
|
111
|
+
LATEST_RELEASE=$(echo "$RELEASE_TAGS" | sort --version-sort | tail -1)
|
|
112
|
+
|
|
113
|
+
if [[ "$GIT_TAG_NAME" == "$LATEST_RELEASE" ]]; then
|
|
114
|
+
NPM_LATEST=true
|
|
115
|
+
else
|
|
116
|
+
NPM_LATEST=false
|
|
117
|
+
fi
|
|
118
|
+
echo NPM_LATEST=$NPM_LATEST >> $GITHUB_ENV
|
|
119
|
+
|
|
120
|
+
# Debug the decisions made here.
|
|
121
|
+
echo "Latest release: $LATEST_RELEASE"
|
|
122
|
+
echo "This release: $GIT_TAG_NAME"
|
|
123
|
+
echo "NPM tag: $NPM_TAG"
|
|
124
|
+
echo "NPM latest: $NPM_LATEST"
|
|
125
|
+
|
|
96
126
|
- run: npm ci
|
|
97
|
-
-
|
|
127
|
+
- name: Publish
|
|
98
128
|
env:
|
|
99
129
|
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
|
130
|
+
run: |
|
|
131
|
+
# Publish with an explicit tag.
|
|
132
|
+
npm publish --tag "$NPM_TAG"
|
|
133
|
+
|
|
134
|
+
# Add the "latest" tag if needed.
|
|
135
|
+
if [[ "$NPM_LATEST" == "true" ]]; then
|
|
136
|
+
NPM_VERSION=$(npm version --json | jq -r '."shaka-player"')
|
|
137
|
+
npm dist-tag add "shaka-player@$NPM_VERSION" latest
|
|
138
|
+
fi
|
|
100
139
|
|
|
101
140
|
- run: npm pack
|
|
102
141
|
- uses: svenstaro/upload-release-action@483c1e56f95e88835747b1c7c60581215016cbf2
|
|
@@ -137,10 +176,11 @@ jobs:
|
|
|
137
176
|
TAG_NAME=${{ needs.release.outputs.tag_name }}
|
|
138
177
|
|
|
139
178
|
if [[ "$TAG_NAME" == "$LATEST_RELEASE" ]]; then
|
|
140
|
-
|
|
179
|
+
APPSPOT_PROMOTE=true
|
|
141
180
|
else
|
|
142
|
-
|
|
181
|
+
APPSPOT_PROMOTE=false
|
|
143
182
|
fi
|
|
183
|
+
APPSPOT_PROMOTE=$APPSPOT_PROMOTE >> $GITHUB_ENV
|
|
144
184
|
|
|
145
185
|
# Debug the decisions made here.
|
|
146
186
|
echo "Subdomain: $APPSPOT_SUBDOMAIN"
|
|
@@ -25,7 +25,7 @@ WORKFLOW_ARGS=( "pr=$PR_NUMBER" )
|
|
|
25
25
|
|
|
26
26
|
case "${SHAKA_BOT_ARGUMENTS[0]}" in
|
|
27
27
|
# CE devices only.
|
|
28
|
-
ce) WORKFLOW_ARGS+=( "browser_filter=Tizen
|
|
28
|
+
ce) WORKFLOW_ARGS+=( "browser_filter=Tizen ChromecastUltra ChromecastGTV ChromeAndroid" ) ;;
|
|
29
29
|
|
|
30
30
|
# No command argument, no extra workflow arguments.
|
|
31
31
|
"") ;;
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.4.3](https://github.com/shaka-project/shaka-player/compare/v4.4.2...v4.4.3) (2023-10-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* Allow PID change in TsParser ([#5681](https://github.com/shaka-project/shaka-player/issues/5681)) ([ac8bb85](https://github.com/shaka-project/shaka-player/commit/ac8bb85bd8b02d0654af9fc7749cae7071c7abc5))
|
|
9
|
+
* **CMCD:** Fix CMCD for some mimetypes in src= ([#5699](https://github.com/shaka-project/shaka-player/issues/5699)) ([8829e1e](https://github.com/shaka-project/shaka-player/commit/8829e1eb21f66479a16bcf85df915be9dc0d8241))
|
|
10
|
+
* **Demo:** Fix url of "Low Latency HLS Live" asset ([#5708](https://github.com/shaka-project/shaka-player/issues/5708)) ([d0dbed3](https://github.com/shaka-project/shaka-player/commit/d0dbed330ee00f33bfb0c6b077bddad1a104c0ec))
|
|
11
|
+
* 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)) ([fdc1e9f](https://github.com/shaka-project/shaka-player/commit/fdc1e9fe99cdf336fb3dc411b7174eba48acf5bb))
|
|
12
|
+
* Fix some properties on the shaka.text.Cue that are mangled ([#5673](https://github.com/shaka-project/shaka-player/issues/5673)) ([c69e50f](https://github.com/shaka-project/shaka-player/commit/c69e50f508ffeb5108133e39acd60c36b45c788d))
|
|
13
|
+
* **HLS:** Fix audio and video out of sync ([#5658](https://github.com/shaka-project/shaka-player/issues/5658)) ([7df352d](https://github.com/shaka-project/shaka-player/commit/7df352db25c3dc2c14315bb65fd0159b3c195528))
|
|
14
|
+
* **HLS:** Fix display CEA-708 in HLS ([#5694](https://github.com/shaka-project/shaka-player/issues/5694)) ([ed1d954](https://github.com/shaka-project/shaka-player/commit/ed1d95433b21049c6daf0b24d6ded13f46130e94))
|
|
15
|
+
* **HLS:** Fix presentation delay for small live playlists (eg: 3-4 segments) ([#5687](https://github.com/shaka-project/shaka-player/issues/5687)) ([10b03e7](https://github.com/shaka-project/shaka-player/commit/10b03e7b2c026fc2393a7244946feca5b7bebd1b))
|
|
16
|
+
* **HLS:** Skip segments without duration and without partial segments ([#5705](https://github.com/shaka-project/shaka-player/issues/5705)) ([eedad19](https://github.com/shaka-project/shaka-player/commit/eedad19b3e121d117e6748cbf965d58f30db49ca))
|
|
17
|
+
* **HLS:** Support AES-128 in init segment according the RFC ([#5677](https://github.com/shaka-project/shaka-player/issues/5677)) ([9d50f01](https://github.com/shaka-project/shaka-player/commit/9d50f01fbb4d958e347f623450438d526a338c2f))
|
|
18
|
+
* seeking in segment timeline returns incorrect index ([#5716](https://github.com/shaka-project/shaka-player/issues/5716)) ([15b8da0](https://github.com/shaka-project/shaka-player/commit/15b8da05aa70ae73957c68d00c78528a0ec7deb9)), closes [#5664](https://github.com/shaka-project/shaka-player/issues/5664)
|
|
19
|
+
* **WebVTT:** Fix text displayed out of picture and with overlapping lines ([#5662](https://github.com/shaka-project/shaka-player/issues/5662)) ([580b3f7](https://github.com/shaka-project/shaka-player/commit/580b3f7229cb033437d2f4285dfb108358f13afb)), closes [#5661](https://github.com/shaka-project/shaka-player/issues/5661)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Performance Improvements
|
|
23
|
+
|
|
24
|
+
* Optimization to resolve uris ([#5657](https://github.com/shaka-project/shaka-player/issues/5657)) ([971b2a0](https://github.com/shaka-project/shaka-player/commit/971b2a0074ada35f1891d956d6ec9601ad1ece39))
|
|
25
|
+
|
|
26
|
+
## [4.4.2](https://github.com/shaka-project/shaka-player/compare/v4.4.1...v4.4.2) (2023-09-13)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Bug Fixes
|
|
30
|
+
|
|
31
|
+
* 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))
|
|
32
|
+
* 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))
|
|
33
|
+
* **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))
|
|
34
|
+
* **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))
|
|
35
|
+
* 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))
|
|
36
|
+
* 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))
|
|
37
|
+
* Fix transmuxed audio timestamps ([#5595](https://github.com/shaka-project/shaka-player/issues/5595)) ([258a91f](https://github.com/shaka-project/shaka-player/commit/258a91f2b70da7267067800e5e571a48f5c17be2))
|
|
38
|
+
* **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))
|
|
39
|
+
* **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))
|
|
40
|
+
* 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))
|
|
41
|
+
* **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))
|
|
42
|
+
* **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))
|
|
43
|
+
* **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))
|
|
44
|
+
* **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))
|
|
45
|
+
|
|
3
46
|
## [4.4.1](https://github.com/shaka-project/shaka-player/compare/v4.4.0...v4.4.1) (2023-09-02)
|
|
4
47
|
|
|
5
48
|
|
package/CONTRIBUTORS
CHANGED
|
@@ -80,6 +80,7 @@ Jun Hong Chong <chongjunhong@gmail.com>
|
|
|
80
80
|
Jürgen Kartnaller <kartnaller@lovelysystems.com>
|
|
81
81
|
Konstantin Grushetsky <github@grushetsky.net>
|
|
82
82
|
Leandro Ribeiro Moreira <leandro.ribeiro.moreira@gmail.com>
|
|
83
|
+
Loïc Raux <loicraux@gmail.com>
|
|
83
84
|
Lucas Gabriel Sánchez <unkiwii@gmail.com>
|
|
84
85
|
Martin Stark <martin.stark@eyevinn.se>
|
|
85
86
|
Matias Russitto <russitto@gmail.com>
|
package/demo/common/asset.js
CHANGED
|
@@ -167,6 +167,11 @@ const ShakaDemoAssetInfo = class {
|
|
|
167
167
|
return this.drm.length == 1 && this.drm[0] == shakaAssets.KeySystem.CLEAR;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
+
/** @return {boolean} */
|
|
171
|
+
isAes128() {
|
|
172
|
+
return this.drm.length == 1 && this.drm[0] == shakaAssets.KeySystem.AES128;
|
|
173
|
+
}
|
|
174
|
+
|
|
170
175
|
/**
|
|
171
176
|
* @param {string} mediaPlaylistFullMimeType
|
|
172
177
|
* @return {!ShakaDemoAssetInfo}
|
package/demo/common/assets.js
CHANGED
|
@@ -50,6 +50,7 @@ shakaAssets.KeySystem = {
|
|
|
50
50
|
FAIRPLAY: shakaDemo.MessageIds.FAIRPLAY,
|
|
51
51
|
PLAYREADY: shakaDemo.MessageIds.PLAYREADY,
|
|
52
52
|
WIDEVINE: shakaDemo.MessageIds.WIDEVINE,
|
|
53
|
+
AES128: shakaDemo.MessageIds.AES128,
|
|
53
54
|
CLEAR: shakaDemo.MessageIds.CLEAR,
|
|
54
55
|
};
|
|
55
56
|
|
|
@@ -88,6 +89,7 @@ shakaAssets.identifierForKeySystem = (keySystem) => {
|
|
|
88
89
|
case KeySystem.FAIRPLAY: return 'com.apple.fps';
|
|
89
90
|
case KeySystem.PLAYREADY: return 'com.microsoft.playready';
|
|
90
91
|
case KeySystem.WIDEVINE: return 'com.widevine.alpha';
|
|
92
|
+
case KeySystem.AES128: return 'aes128';
|
|
91
93
|
default: return 'no drm protection';
|
|
92
94
|
}
|
|
93
95
|
};
|
|
@@ -151,7 +153,7 @@ shakaAssets.Feature = {
|
|
|
151
153
|
LCEVC: shakaDemo.MessageIds.LCEVC,
|
|
152
154
|
|
|
153
155
|
// Set if the asset has Low Latency mode.
|
|
154
|
-
|
|
156
|
+
LOW_LATENCY: shakaDemo.MessageIds.LOW_LATENCY,
|
|
155
157
|
};
|
|
156
158
|
|
|
157
159
|
|
|
@@ -360,6 +362,7 @@ shakaAssets.testAssets = [
|
|
|
360
362
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sintel.png',
|
|
361
363
|
/* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel-ts-aes-key-rotation/master.m3u8',
|
|
362
364
|
/* source= */ shakaAssets.Source.SHAKA)
|
|
365
|
+
.addKeySystem(shakaAssets.KeySystem.AES128)
|
|
363
366
|
.addFeature(shakaAssets.Feature.HLS)
|
|
364
367
|
.addFeature(shakaAssets.Feature.MP2TS)
|
|
365
368
|
.addFeature(shakaAssets.Feature.OFFLINE),
|
|
@@ -368,6 +371,7 @@ shakaAssets.testAssets = [
|
|
|
368
371
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sintel.png',
|
|
369
372
|
/* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel-fmp4-aes/master.m3u8',
|
|
370
373
|
/* source= */ shakaAssets.Source.SHAKA)
|
|
374
|
+
.addKeySystem(shakaAssets.KeySystem.AES128)
|
|
371
375
|
.addFeature(shakaAssets.Feature.HLS)
|
|
372
376
|
.addFeature(shakaAssets.Feature.MP4)
|
|
373
377
|
.addFeature(shakaAssets.Feature.OFFLINE),
|
|
@@ -833,7 +837,7 @@ shakaAssets.testAssets = [
|
|
|
833
837
|
.addFeature(shakaAssets.Feature.DASH)
|
|
834
838
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
835
839
|
.addFeature(shakaAssets.Feature.MP4)
|
|
836
|
-
.addFeature(shakaAssets.Feature.
|
|
840
|
+
.addFeature(shakaAssets.Feature.LOW_LATENCY)
|
|
837
841
|
.setExtraConfig({
|
|
838
842
|
streaming: {
|
|
839
843
|
lowLatencyMode: true,
|
|
@@ -864,7 +868,7 @@ shakaAssets.testAssets = [
|
|
|
864
868
|
.addFeature(shakaAssets.Feature.DASH)
|
|
865
869
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
866
870
|
.addFeature(shakaAssets.Feature.MP4)
|
|
867
|
-
.addFeature(shakaAssets.Feature.
|
|
871
|
+
.addFeature(shakaAssets.Feature.LOW_LATENCY)
|
|
868
872
|
.setExtraConfig({
|
|
869
873
|
streaming: {
|
|
870
874
|
lowLatencyMode: true,
|
|
@@ -948,6 +952,7 @@ shakaAssets.testAssets = [
|
|
|
948
952
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png',
|
|
949
953
|
/* manifestUri= */ 'https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/m3u8s/11331.m3u8',
|
|
950
954
|
/* source= */ shakaAssets.Source.BITCODIN)
|
|
955
|
+
.addKeySystem(shakaAssets.KeySystem.AES128)
|
|
951
956
|
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
952
957
|
.addFeature(shakaAssets.Feature.HLS)
|
|
953
958
|
.addFeature(shakaAssets.Feature.MP2TS)
|
|
@@ -1087,6 +1092,16 @@ shakaAssets.testAssets = [
|
|
|
1087
1092
|
kind: 'subtitle',
|
|
1088
1093
|
mime: 'text/vtt',
|
|
1089
1094
|
}),
|
|
1095
|
+
new ShakaDemoAssetInfo(
|
|
1096
|
+
/* name= */ 'Sintel (DASH, AES-128)',
|
|
1097
|
+
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sintel.png',
|
|
1098
|
+
/* manifestUri= */ 'https://amssamples.streaming.mediaservices.windows.net/49b57c87-f5f3-48b3-ba22-c55cfdffa9cb/Sintel.ism/manifest(format=mpd-time-csf)',
|
|
1099
|
+
/* source= */ shakaAssets.Source.AZURE_MEDIA_SERVICES)
|
|
1100
|
+
.addKeySystem(shakaAssets.KeySystem.AES128)
|
|
1101
|
+
.addFeature(shakaAssets.Feature.DASH)
|
|
1102
|
+
.addFeature(shakaAssets.Feature.MP4)
|
|
1103
|
+
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1104
|
+
.addFeature(shakaAssets.Feature.OFFLINE),
|
|
1090
1105
|
// End Azure Media Services assets }}}
|
|
1091
1106
|
|
|
1092
1107
|
// GPAC assets {{{
|
|
@@ -1254,12 +1269,12 @@ shakaAssets.testAssets = [
|
|
|
1254
1269
|
new ShakaDemoAssetInfo(
|
|
1255
1270
|
/* name= */ 'Low Latency HLS Live',
|
|
1256
1271
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png',
|
|
1257
|
-
/* manifestUri= */ 'https://ll-hls-test.apple.com/
|
|
1272
|
+
/* manifestUri= */ 'https://ll-hls-test.cdn-apple.com/llhls4/ll-hls-test-04/multi.m3u8',
|
|
1258
1273
|
/* source= */ shakaAssets.Source.APPLE)
|
|
1259
1274
|
.addFeature(shakaAssets.Feature.HLS)
|
|
1260
1275
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
1261
1276
|
.addFeature(shakaAssets.Feature.MP4)
|
|
1262
|
-
.addFeature(shakaAssets.Feature.
|
|
1277
|
+
.addFeature(shakaAssets.Feature.LOW_LATENCY)
|
|
1263
1278
|
.setExtraConfig({
|
|
1264
1279
|
streaming: {
|
|
1265
1280
|
lowLatencyMode: true,
|
|
@@ -33,8 +33,8 @@ shakaDemo.MessageIds = {
|
|
|
33
33
|
VOD: 'DEMO_VOD',
|
|
34
34
|
WEBM: 'DEMO_WEBM',
|
|
35
35
|
XLINK: 'DEMO_XLINK',
|
|
36
|
-
LOW_LATENCY_STREAM: 'DEMO_LOW_LATENCY_STREAM',
|
|
37
36
|
/* Key systems. */
|
|
37
|
+
AES128: 'DEMO_AES128',
|
|
38
38
|
CLEAR: 'DEMO_CLEAR',
|
|
39
39
|
CLEAR_KEY: 'DEMO_CLEAR_KEY',
|
|
40
40
|
FAIRPLAY: 'DEMO_FAIRPLAY',
|
package/demo/custom.js
CHANGED
|
@@ -407,14 +407,14 @@ shakaDemo.Custom = class {
|
|
|
407
407
|
const licenseServerURL = licenseServerUrlInput.value;
|
|
408
408
|
const customDRMSystem = customDrmSystemInput.value;
|
|
409
409
|
if (licenseServerURL) {
|
|
410
|
-
// Make a license server entry for every common DRM plugin.
|
|
411
410
|
assetInProgress.licenseServers.clear();
|
|
412
|
-
for (const drmSystem of shakaDemo.Main.commonDrmSystems) {
|
|
413
|
-
assetInProgress.licenseServers.set(drmSystem, licenseServerURL);
|
|
414
|
-
}
|
|
415
411
|
if (customDRMSystem) {
|
|
416
|
-
// Make a custom entry too.
|
|
417
412
|
assetInProgress.licenseServers.set(customDRMSystem, licenseServerURL);
|
|
413
|
+
} else {
|
|
414
|
+
// Make a license server entry for every common DRM plugin.
|
|
415
|
+
for (const drmSystem of shakaDemo.Main.commonDrmSystems) {
|
|
416
|
+
assetInProgress.licenseServers.set(drmSystem, licenseServerURL);
|
|
417
|
+
}
|
|
418
418
|
}
|
|
419
419
|
} else {
|
|
420
420
|
assetInProgress.licenseServers.clear();
|
package/demo/locales/en.json
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"DEMO_AD_TAG_URL": "Ad Tag URL",
|
|
7
7
|
"DEMO_ADS_TAB": "Ads",
|
|
8
8
|
"DEMO_ADS_SECTION_HEADER": "Ads",
|
|
9
|
+
"DEMO_AES128": "AES-128 protection",
|
|
9
10
|
"DEMO_ALL_CONTENT": "ALL CONTENT",
|
|
10
11
|
"DEMO_ALWAYS_STREAM_TEXT": "Always Stream Text",
|
|
11
12
|
"DEMO_ALWAYS_STREAM_TEXT_WARNING": "Text must always be streamed while native controls are enabled, for captions to work.",
|
|
@@ -135,7 +136,7 @@
|
|
|
135
136
|
"DEMO_LCEVC_DYNAMIC_PERFORMANCE_SCALING": "LCEVC Dynamic Performance scaling",
|
|
136
137
|
"DEMO_LCEVC_LOG_LEVEL": "LCEVC Log Level",
|
|
137
138
|
"DEMO_LCEVC_SECTION_HEADER": "MPEG-5 Part-2 LCEVC",
|
|
138
|
-
"
|
|
139
|
+
"DEMO_LOW_LATENCY": "Low Latency Stream",
|
|
139
140
|
"DEMO_LIBRARIES": "Google Hosted Libraries",
|
|
140
141
|
"DEMO_LICENSE": "Apache License",
|
|
141
142
|
"DEMO_LICENSE_CERTIFICATE_URL": "Custom License Certificate URL",
|
package/demo/locales/source.json
CHANGED
|
@@ -27,6 +27,10 @@
|
|
|
27
27
|
"description": "The label on a field that allows users to provide a Ad Tag URL for a custom asset.",
|
|
28
28
|
"message": "Ad Tag URL"
|
|
29
29
|
},
|
|
30
|
+
"DEMO_AES128": {
|
|
31
|
+
"description": "Text that describes an asset that is not protected with any Digital Rights Management system but it is protected with AES-128.",
|
|
32
|
+
"message": "[JARGON:AES-128] protection"
|
|
33
|
+
},
|
|
30
34
|
"DEMO_ALL_CONTENT": {
|
|
31
35
|
"description": "A link in the header, that switches to a page for browsing or searching through the entire content library.",
|
|
32
36
|
"message": "ALL CONTENT"
|
|
@@ -1135,7 +1139,7 @@
|
|
|
1135
1139
|
"description": "Max number of segments to be prefetched ahead of current time position.",
|
|
1136
1140
|
"message": "Segment Prefetch Limit."
|
|
1137
1141
|
},
|
|
1138
|
-
"
|
|
1142
|
+
"DEMO_LOW_LATENCY": {
|
|
1139
1143
|
"description": "A tag that marks an asset as low latency.",
|
|
1140
1144
|
"message": "Low Latency stream"
|
|
1141
1145
|
}
|
package/demo/main.js
CHANGED
|
@@ -743,7 +743,7 @@ shakaDemo.Main = class {
|
|
|
743
743
|
return shakaDemo.MessageIds.UNSUPPORTED_NO_DOWNLOAD;
|
|
744
744
|
}
|
|
745
745
|
|
|
746
|
-
if (!asset.isClear()) {
|
|
746
|
+
if (!asset.isClear() && !asset.isAes128()) {
|
|
747
747
|
const hasSupportedDRM = asset.drm.some((drm) => {
|
|
748
748
|
return this.support_.drm[shakaAssets.identifierForKeySystem(drm)];
|
|
749
749
|
});
|
package/demo/search.js
CHANGED
|
@@ -374,7 +374,7 @@ shakaDemo.Search = class {
|
|
|
374
374
|
}), SOURCE);
|
|
375
375
|
this.makeSelectInput_(coreContainer,
|
|
376
376
|
shakaDemo.MessageIds.LIVE_SEARCH,
|
|
377
|
-
[Feature.LIVE, Feature.VOD], FEATURE);
|
|
377
|
+
[Feature.LOW_LATENCY, Feature.LIVE, Feature.VOD], FEATURE);
|
|
378
378
|
|
|
379
379
|
// Special terms.
|
|
380
380
|
const containerStyle = shakaDemo.InputContainer.Style.FLEX;
|
|
@@ -403,8 +403,8 @@ shakaDemo.Search = class {
|
|
|
403
403
|
shakaDemo.MessageIds.THUMBNAILS);
|
|
404
404
|
this.makeBooleanInput_(specialContainer, Feature.LCEVC, FEATURE,
|
|
405
405
|
shakaDemo.MessageIds.LCEVC);
|
|
406
|
-
this.makeBooleanInput_(specialContainer, Feature.
|
|
407
|
-
FEATURE, shakaDemo.MessageIds.
|
|
406
|
+
this.makeBooleanInput_(specialContainer, Feature.LOW_LATENCY,
|
|
407
|
+
FEATURE, shakaDemo.MessageIds.LOW_LATENCY);
|
|
408
408
|
|
|
409
409
|
container.appendChild(this.resultsDiv_);
|
|
410
410
|
}
|