shaka-player 4.3.8 → 4.3.10
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/ISSUE_TEMPLATE/bug_report.md +11 -0
- package/.github/workflows/build-and-test.yaml +15 -14
- package/.github/workflows/compute-incremental-coverage.py +3 -0
- package/.github/workflows/selenium-lab-tests.yaml +48 -12
- package/.github/workflows/update-issues.yaml +1 -0
- package/CHANGELOG.md +29 -0
- package/demo/common/assets.js +59 -25
- package/demo/main.js +5 -0
- package/dist/demo.compiled.debug.js +15 -13
- package/dist/demo.compiled.debug.map +3 -3
- package/dist/demo.compiled.js +15 -13
- package/dist/demo.compiled.map +3 -3
- package/dist/deps.js +1 -1
- package/dist/locales.js +33 -33
- package/dist/receiver.compiled.debug.js +13 -11
- package/dist/receiver.compiled.debug.map +3 -3
- package/dist/receiver.compiled.js +13 -11
- package/dist/receiver.compiled.map +3 -3
- package/dist/shaka-player.compiled.d.ts +2 -2
- package/dist/shaka-player.compiled.debug.d.ts +2 -2
- package/dist/shaka-player.compiled.debug.js +56 -53
- package/dist/shaka-player.compiled.debug.map +3 -3
- package/dist/shaka-player.compiled.js +418 -418
- package/dist/shaka-player.compiled.map +2 -2
- package/dist/shaka-player.ui.d.ts +2 -2
- package/dist/shaka-player.ui.debug.d.ts +2 -2
- package/dist/shaka-player.ui.debug.js +66 -62
- package/dist/shaka-player.ui.debug.map +3 -3
- package/dist/shaka-player.ui.js +442 -441
- package/dist/shaka-player.ui.map +3 -3
- package/docs/tutorials/selenium-grid-config.md +60 -8
- package/externs/shaka/manifest.js +5 -1
- package/externs/shaka/offline.js +5 -1
- package/karma.conf.js +52 -7
- package/lib/abr/simple_abr_manager.js +5 -5
- package/lib/ads/client_side_ad_manager.js +14 -2
- package/lib/dash/dash_parser.js +1 -0
- package/lib/hls/hls_parser.js +1 -0
- package/lib/media/media_source_engine.js +6 -5
- package/lib/media/streaming_engine.js +2 -2
- 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 +1 -0
- package/lib/player.js +9 -5
- package/lib/polyfill/orientation.js +34 -7
- package/lib/text/vtt_text_parser.js +1 -0
- package/lib/util/manifest_parser_utils.js +4 -2
- package/lib/util/periods.js +2 -0
- package/lib/util/platform.js +22 -0
- package/lib/util/stream_utils.js +69 -26
- package/package.json +3 -3
- package/test/cast/cast_utils_unit.js +4 -1
- package/test/hls/hls_parser_unit.js +72 -0
- package/test/media/adaptation_set_unit.js +1 -0
- package/test/media/drm_engine_integration.js +2 -2
- package/test/media/media_source_engine_unit.js +1 -1
- package/test/media/segment_index_unit.js +3 -3
- package/test/media/streaming_engine_integration.js +14 -11
- package/test/offline/manifest_convert_unit.js +5 -0
- package/test/offline/offline_integration.js +6 -3
- package/test/player_external.js +19 -16
- package/test/player_integration.js +39 -49
- package/test/player_src_equals_integration.js +9 -5
- package/test/test/util/fake_demo_main.js +7 -3
- package/test/test/util/layout_tests.js +2 -2
- package/test/test/util/manifest_generator.js +2 -0
- package/test/test/util/offline_utils.js +1 -0
- package/test/test/util/streaming_engine_util.js +3 -0
- package/test/test/util/ui_utils.js +14 -3
- package/test/test/util/util.js +6 -27
- package/test/test/util/waiter.js +73 -3
- package/test/ui/ad_ui_unit.js +9 -9
- package/test/util/stream_utils_unit.js +46 -0
- package/ui/externs/ui.js +2 -2
- package/ui/range_element.js +5 -0
- package/ui/seek_bar.js +7 -1
|
@@ -12,7 +12,16 @@ assignees: ''
|
|
|
12
12
|
**Have you read the [FAQ](https://bit.ly/ShakaFAQ) and checked for duplicate open issues?**
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
**If the problem is related to FairPlay, have you read the tutorial?**
|
|
16
|
+
<!-- NOTE: https://shaka-player-demo.appspot.com/docs/api/tutorial-fairplay.html -->
|
|
17
|
+
|
|
18
|
+
|
|
15
19
|
**What version of Shaka Player are you using?**
|
|
20
|
+
<!-- NOTE:
|
|
21
|
+
Only some versions of the application are maintained, if your version
|
|
22
|
+
is older, first update to a newer one. See:
|
|
23
|
+
https://github.com/shaka-project/shaka-player/blob/main/maintained-branches.md
|
|
24
|
+
--->
|
|
16
25
|
|
|
17
26
|
|
|
18
27
|
**Can you reproduce the issue with our latest release version?**
|
|
@@ -41,6 +50,8 @@ assignees: ''
|
|
|
41
50
|
enough to reproduce your issue, and we **will** ask you to send a
|
|
42
51
|
URI instead. You can copy the URI of the demo app to send us the
|
|
43
52
|
exact asset, licence server, and settings you have selected there.
|
|
53
|
+
If you send the URIs to email, the response time and resolution
|
|
54
|
+
will be much higher.
|
|
44
55
|
-->
|
|
45
56
|
|
|
46
57
|
|
|
@@ -45,7 +45,7 @@ jobs:
|
|
|
45
45
|
# coverage instrumentation on full-stack player integration tests.
|
|
46
46
|
- os: ubuntu-latest
|
|
47
47
|
browser: Chrome
|
|
48
|
-
extra_flags: "--use-xvfb
|
|
48
|
+
extra_flags: "--use-xvfb"
|
|
49
49
|
- os: ubuntu-latest
|
|
50
50
|
browser: Firefox
|
|
51
51
|
extra_flags: "--use-xvfb"
|
|
@@ -70,6 +70,7 @@ jobs:
|
|
|
70
70
|
browser: Firefox
|
|
71
71
|
- os: windows-latest
|
|
72
72
|
browser: Edge
|
|
73
|
+
extra_flags: "--html-coverage-report --uncompiled"
|
|
73
74
|
|
|
74
75
|
# Disable fail-fast so that one matrix-job failing doesn't make the other
|
|
75
76
|
# ones end early.
|
|
@@ -87,19 +88,6 @@ jobs:
|
|
|
87
88
|
if: matrix.os == 'ubuntu-latest' && matrix.browser == 'Firefox'
|
|
88
89
|
run: sudo apt -y update && sudo apt -y install ffmpeg
|
|
89
90
|
|
|
90
|
-
# Edge 107 fails DRM tests due to an outdated Widevine CDM. Force Edge
|
|
91
|
-
# to update to 108+.
|
|
92
|
-
- name: Upgrade Edge
|
|
93
|
-
if: matrix.os == 'ubuntu-latest' && matrix.browser == 'Edge'
|
|
94
|
-
run: |
|
|
95
|
-
# If it's Edge 107, update it. Otherwise, don't. This way, we don't
|
|
96
|
-
# break something later when Edge 108+ is available by default in
|
|
97
|
-
# GitHub Actions.
|
|
98
|
-
if apt show microsoft-edge-stable | grep -q '^Version: 107'; then
|
|
99
|
-
wget https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_108.0.1462.46-1_amd64.deb
|
|
100
|
-
sudo dpkg -i microsoft-edge-stable_108.0.1462.46-1_amd64.deb
|
|
101
|
-
fi
|
|
102
|
-
|
|
103
91
|
- name: Checkout code
|
|
104
92
|
uses: actions/checkout@v3
|
|
105
93
|
with:
|
|
@@ -125,6 +113,19 @@ jobs:
|
|
|
125
113
|
# Install a launcher that can execute a shell script to launch this
|
|
126
114
|
npm install karma-script-launcher --save-dev
|
|
127
115
|
|
|
116
|
+
# When "Chrome for Testing" is installed on Mac or Windows, it gets
|
|
117
|
+
# invoked instead of simply "Chrome". This other copy of Chrome,
|
|
118
|
+
# however, doesn't seem to have basic codecs like AAC and H264 available,
|
|
119
|
+
# causing many of our test scenarios to fail. Deleting "Chrome for
|
|
120
|
+
# Testing" fixes this.
|
|
121
|
+
- name: 'Delete "Chrome for Testing" on Mac'
|
|
122
|
+
if: matrix.os == 'macos-latest' && matrix.browser == 'Chrome'
|
|
123
|
+
run: sudo rm -rf /Applications/Google\ Chrome\ for\ Testing.app
|
|
124
|
+
- name: 'Overwrite "Chrome for Testing" on Windows'
|
|
125
|
+
if: matrix.os == 'windows-latest' && matrix.browser == 'Chrome'
|
|
126
|
+
shell: bash
|
|
127
|
+
run: choco install -y googlechrome --ignore-checksums
|
|
128
|
+
|
|
128
129
|
# Some CI images (self-hosted or otherwise) don't have the minimum Java
|
|
129
130
|
# version necessary for the compiler (Java 11).
|
|
130
131
|
- uses: actions/setup-java@v3
|
|
@@ -24,6 +24,9 @@ import zipfile
|
|
|
24
24
|
|
|
25
25
|
# TODO(joeyparrish): Figure out how to get karma to output relative paths only.
|
|
26
26
|
def StripGitDir(path):
|
|
27
|
+
# Convert Windows-style paths to Unix-style paths so we can read coverage
|
|
28
|
+
# data from Windows runners, too.
|
|
29
|
+
path = path.replace('\\', '/')
|
|
27
30
|
# Strip the path to the git clone, leaving only the source path within the
|
|
28
31
|
# repo.
|
|
29
32
|
return re.sub(r'.*?/(lib|ui)/', r'\1/', path)
|
|
@@ -148,6 +148,30 @@ jobs:
|
|
|
148
148
|
- name: Build Player
|
|
149
149
|
run: python3 build/all.py
|
|
150
150
|
|
|
151
|
+
- name: Preprocess with Babel
|
|
152
|
+
run: |
|
|
153
|
+
# Run the test preprocessor without running the actual tests.
|
|
154
|
+
# This lets us cache Babel's output and run it only once.
|
|
155
|
+
# Ignore the exit code, since you get an error code if the filter
|
|
156
|
+
# excludes all tests.
|
|
157
|
+
./build/test.py \
|
|
158
|
+
--use-xvfb --browsers Chrome \
|
|
159
|
+
--filter ThisFilterMatchesNoTests || true
|
|
160
|
+
|
|
161
|
+
- name: Cache dependencies
|
|
162
|
+
uses: actions/cache@v3
|
|
163
|
+
id: npm-cache
|
|
164
|
+
with:
|
|
165
|
+
path: node_modules/
|
|
166
|
+
key: node-${{ hashFiles('package-lock.json') }}
|
|
167
|
+
|
|
168
|
+
- name: Cache Babel output
|
|
169
|
+
uses: actions/cache@v3
|
|
170
|
+
id: babel-cache
|
|
171
|
+
with:
|
|
172
|
+
path: .babel-cache
|
|
173
|
+
key: babel-${{ hashFiles('*.js', 'demo/**.js', 'lib/**.js', 'ui/**.js', 'test/**.js', 'third_party/**.js') }}
|
|
174
|
+
|
|
151
175
|
- name: Store Player build
|
|
152
176
|
uses: actions/upload-artifact@v3
|
|
153
177
|
with:
|
|
@@ -206,6 +230,17 @@ jobs:
|
|
|
206
230
|
with:
|
|
207
231
|
path: node_modules/
|
|
208
232
|
key: node-${{ hashFiles('package-lock.json') }}
|
|
233
|
+
fail-on-cache-miss: true # Cached by the build-shaka job above
|
|
234
|
+
enableCrossOsArchive: true # Share archives from Linux to Windows
|
|
235
|
+
|
|
236
|
+
- name: Cache Babel output
|
|
237
|
+
uses: actions/cache@v3
|
|
238
|
+
id: babel-cache
|
|
239
|
+
with:
|
|
240
|
+
path: .babel-cache
|
|
241
|
+
key: babel-${{ hashFiles('*.js', 'demo/**.js', 'lib/**.js', 'ui/**.js', 'test/**.js', 'third_party/**.js') }}
|
|
242
|
+
fail-on-cache-miss: true # Cached by the build-shaka job above
|
|
243
|
+
enableCrossOsArchive: true # Share archives from Linux to Windows
|
|
209
244
|
|
|
210
245
|
- name: Install dependencies
|
|
211
246
|
if: steps.npm-cache.outputs.cache-hit != 'true'
|
|
@@ -221,9 +256,9 @@ jobs:
|
|
|
221
256
|
|
|
222
257
|
# Run tests on the Selenium grid in our lab. This uses a private
|
|
223
258
|
# hostname and TLS cert to get EME tests working on all platforms
|
|
224
|
-
# (since EME only works on https or localhost). The variable
|
|
225
|
-
# must be defined by the self-hosted runner, and mapped
|
|
226
|
-
# the container.
|
|
259
|
+
# (since EME only works on https or localhost). The variable
|
|
260
|
+
# ALLOCATED_PORT must be defined by the self-hosted runner, and mapped
|
|
261
|
+
# from the host to the container.
|
|
227
262
|
- name: Test Player
|
|
228
263
|
run: |
|
|
229
264
|
# Use of an array keeps elements intact, and allows an element to
|
|
@@ -234,7 +269,7 @@ jobs:
|
|
|
234
269
|
# Generate a coverage report from uncompiled code on ChromeLinux.
|
|
235
270
|
# It should be the uncompiled build, or else we won't execute any
|
|
236
271
|
# coverage instrumentation on full-stack player integration tests.
|
|
237
|
-
if [[ "${{ matrix.browser }}" == "
|
|
272
|
+
if [[ "${{ matrix.browser }}" == "Edge" ]]; then
|
|
238
273
|
extra_flags+=(--html-coverage-report --uncompiled)
|
|
239
274
|
fi
|
|
240
275
|
|
|
@@ -251,11 +286,12 @@ jobs:
|
|
|
251
286
|
python3 build/test.py \
|
|
252
287
|
--no-build \
|
|
253
288
|
--reporters spec --spec-hide-passed \
|
|
254
|
-
--
|
|
289
|
+
--tls-key /etc/letsencrypt/live/karma.shakalab.rocks/privkey.pem \
|
|
290
|
+
--tls-cert /etc/letsencrypt/live/karma.shakalab.rocks/fullchain.pem \
|
|
255
291
|
--hostname karma.shakalab.rocks \
|
|
256
|
-
--port $
|
|
292
|
+
--port $ALLOCATED_PORT \
|
|
257
293
|
--grid-config build/shaka-lab.yaml \
|
|
258
|
-
--grid-address selenium-grid.lab:4444 \
|
|
294
|
+
--grid-address selenium-grid.lab.shaka:4444 \
|
|
259
295
|
--browsers ${{ matrix.browser }} \
|
|
260
296
|
"${extra_flags[@]}"
|
|
261
297
|
# Capture the test exit code immediately after running the tests.
|
|
@@ -270,10 +306,10 @@ jobs:
|
|
|
270
306
|
# Report the captured (and possibly overridden) exit status.
|
|
271
307
|
exit $exit_code
|
|
272
308
|
|
|
273
|
-
- name: Find coverage report (
|
|
309
|
+
- name: Find coverage report (Edge only)
|
|
274
310
|
id: coverage
|
|
275
|
-
# Run even if an earlier step fails, but only on
|
|
276
|
-
if: ${{ always() && matrix.browser == '
|
|
311
|
+
# Run even if an earlier step fails, but only on Edge.
|
|
312
|
+
if: ${{ always() && matrix.browser == 'Edge' }}
|
|
277
313
|
shell: bash
|
|
278
314
|
run: |
|
|
279
315
|
# Find the path to the coverage report specifically for Chrome on
|
|
@@ -281,7 +317,7 @@ jobs:
|
|
|
281
317
|
# will vary. Having a single path will make the artifact zip
|
|
282
318
|
# simpler, whereas using a wildcard in the upload step will result
|
|
283
319
|
# in a zip file with internal directories.
|
|
284
|
-
coverage_report="$( (ls coverage/
|
|
320
|
+
coverage_report="$( (ls coverage/Edge*/coverage.json || true) | head -1 )"
|
|
285
321
|
|
|
286
322
|
# Show what's there, for debugging purposes.
|
|
287
323
|
ls -l coverage/
|
|
@@ -294,7 +330,7 @@ jobs:
|
|
|
294
330
|
exit 1
|
|
295
331
|
fi
|
|
296
332
|
|
|
297
|
-
- name: Upload coverage report (
|
|
333
|
+
- name: Upload coverage report (Edge only)
|
|
298
334
|
uses: actions/upload-artifact@v3
|
|
299
335
|
# If there's a coverage report, upload it, even if a previous step
|
|
300
336
|
# failed.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.3.10](https://github.com/shaka-project/shaka-player/compare/v4.3.9...v4.3.10) (2023-08-30)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **Ads:** Initialize correctly the IMA ads manager ([#5541](https://github.com/shaka-project/shaka-player/issues/5541)) ([f15ba16](https://github.com/shaka-project/shaka-player/commit/f15ba16f7742790fad7ed5212c0605b418f37db5))
|
|
9
|
+
* **Demo:** Show correctly external text in the Demo ([#5521](https://github.com/shaka-project/shaka-player/issues/5521)) ([01403c4](https://github.com/shaka-project/shaka-player/commit/01403c43441fe8a2dd305f63fa1394127dfdd89b))
|
|
10
|
+
* Orange set top box is incorrectly categorized as Apple ([#5545](https://github.com/shaka-project/shaka-player/issues/5545)) ([f0f1281](https://github.com/shaka-project/shaka-player/commit/f0f12813772560a0063ad4de521b31391c52d932))
|
|
11
|
+
* **UI:** Fix playback restarts in safari when click on seekbar end ([#5527](https://github.com/shaka-project/shaka-player/issues/5527)) ([8263c73](https://github.com/shaka-project/shaka-player/commit/8263c736b6309afda3add0174a9508b74b3ed379))
|
|
12
|
+
|
|
13
|
+
## [4.3.9](https://github.com/shaka-project/shaka-player/compare/v4.3.8...v4.3.9) (2023-08-21)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* add MIME type for HTML5 tracks ([#5452](https://github.com/shaka-project/shaka-player/issues/5452)) ([5fb44db](https://github.com/shaka-project/shaka-player/commit/5fb44dba6d7670e24e8df90fe96588ce2a48c92b))
|
|
19
|
+
* Default language to 'und' for native tracks ([#5464](https://github.com/shaka-project/shaka-player/issues/5464)) ([c31f3db](https://github.com/shaka-project/shaka-player/commit/c31f3db9c3efe44dfd28e03db64628827fdf9b5f))
|
|
20
|
+
* Fix exiting fullscreen on Safari ([#5439](https://github.com/shaka-project/shaka-player/issues/5439)) ([81626b2](https://github.com/shaka-project/shaka-player/commit/81626b20ada137305cbaae808315244eaa84906d)), closes [#5437](https://github.com/shaka-project/shaka-player/issues/5437)
|
|
21
|
+
* Fix memory leak on SimpleAbrManager ([#5478](https://github.com/shaka-project/shaka-player/issues/5478)) ([f8cb6ef](https://github.com/shaka-project/shaka-player/commit/f8cb6ef50a5501a92a94e13099a80690fb7b046d))
|
|
22
|
+
* Fix playRangeEnd does not work with HLS streams ([#5494](https://github.com/shaka-project/shaka-player/issues/5494)) ([899eb07](https://github.com/shaka-project/shaka-player/commit/899eb0725f842df21f927a8c63a02e40986bd7fc))
|
|
23
|
+
* gettting maxWidth and maxHeight for restrictToElementSize option ([#5481](https://github.com/shaka-project/shaka-player/issues/5481)) ([053da3b](https://github.com/shaka-project/shaka-player/commit/053da3b7ad60abb2848ad8848cd017d83a4316c6))
|
|
24
|
+
* **HLS:** Fix external subtitles out of sync in HLS ([#5491](https://github.com/shaka-project/shaka-player/issues/5491)) ([38c8a88](https://github.com/shaka-project/shaka-player/commit/38c8a88a9c04e25b02784c00117f6a3ff11e007d))
|
|
25
|
+
* Remove duplicate adaptation event before init ([#5492](https://github.com/shaka-project/shaka-player/issues/5492)) ([75a55b5](https://github.com/shaka-project/shaka-player/commit/75a55b580baebf35a1e26e8cd7920025bc3e1b8a))
|
|
26
|
+
* Support fLaC and Opus codec strings in HLS ([#5454](https://github.com/shaka-project/shaka-player/issues/5454)) ([09bdd61](https://github.com/shaka-project/shaka-player/commit/09bdd61f6e47f4239bf5fbc3d60754f61ec5be94)), closes [#5453](https://github.com/shaka-project/shaka-player/issues/5453)
|
|
27
|
+
* **UI:** Disable right click on range elements ([#5497](https://github.com/shaka-project/shaka-player/issues/5497)) ([1c55e89](https://github.com/shaka-project/shaka-player/commit/1c55e89586e1eb6be620af86061d981349643a28))
|
|
28
|
+
* Update karma-local-wd-launcher to fix Chromedriver >= 115, fix M1 mac ([#5489](https://github.com/shaka-project/shaka-player/issues/5489)) ([1ce673b](https://github.com/shaka-project/shaka-player/commit/1ce673b0442ea401037fc084342a3cd3ff801f21))
|
|
29
|
+
* Update karma-local-wd-launcher to fix Edge >= 115 ([#5506](https://github.com/shaka-project/shaka-player/issues/5506)) ([4a9bc9b](https://github.com/shaka-project/shaka-player/commit/4a9bc9b2cef1f5c352eeebf6998162260a2973db))
|
|
30
|
+
* **WebVTT:** Fix text-shadow in WebVTT not working ([#5499](https://github.com/shaka-project/shaka-player/issues/5499)) ([d78547a](https://github.com/shaka-project/shaka-player/commit/d78547a79b8356b6040dbc73d922b1b87822b541))
|
|
31
|
+
|
|
3
32
|
## [4.3.8](https://github.com/shaka-project/shaka-player/compare/v4.3.7...v4.3.8) (2023-07-21)
|
|
4
33
|
|
|
5
34
|
|
package/demo/common/assets.js
CHANGED
|
@@ -769,7 +769,7 @@ shakaAssets.testAssets = [
|
|
|
769
769
|
new ShakaDemoAssetInfo(
|
|
770
770
|
/* name= */ 'Live sim (2s segments)',
|
|
771
771
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
772
|
-
/* manifestUri= */ 'https://
|
|
772
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/livesim2/utc_head/testpic_2s/Manifest.mpd',
|
|
773
773
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
774
774
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
775
775
|
.addFeature(shakaAssets.Feature.MP4)
|
|
@@ -777,7 +777,7 @@ shakaAssets.testAssets = [
|
|
|
777
777
|
new ShakaDemoAssetInfo(
|
|
778
778
|
/* name= */ 'Live sim SegmentTimeline w/ $Time$ (6s segments)',
|
|
779
779
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
780
|
-
/* manifestUri= */ 'https://
|
|
780
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/livesim2/segtimeline_1/utc_head/testpic_6s/Manifest.mpd',
|
|
781
781
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
782
782
|
.addFeature(shakaAssets.Feature.DASH)
|
|
783
783
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
@@ -785,7 +785,7 @@ shakaAssets.testAssets = [
|
|
|
785
785
|
new ShakaDemoAssetInfo(
|
|
786
786
|
/* name= */ 'Live sim SegmentTimeline w/ $Number$ (6s segments)',
|
|
787
787
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
788
|
-
/* manifestUri= */ 'https://
|
|
788
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/livesim2/segtimelinenr_1/utc_head/testpic_6s/Manifest.mpd',
|
|
789
789
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
790
790
|
.addFeature(shakaAssets.Feature.DASH)
|
|
791
791
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
@@ -793,21 +793,21 @@ shakaAssets.testAssets = [
|
|
|
793
793
|
new ShakaDemoAssetInfo(
|
|
794
794
|
/* name= */ 'Live sim SegmentTimeline StartOver [-20s, +20s] (2s segments)',
|
|
795
795
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
796
|
-
/* manifestUri= */ 'https://
|
|
796
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/livesim2/segtimeline_1/startrel_-20/stoprel_20/timeoffset_0/testpic_2s/Manifest.mpd',
|
|
797
797
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
798
798
|
.addFeature(shakaAssets.Feature.DASH)
|
|
799
799
|
.addFeature(shakaAssets.Feature.MP4),
|
|
800
800
|
new ShakaDemoAssetInfo(
|
|
801
801
|
/* name= */ 'Live sim StartOver SegTmpl Duration [-20s, +20s] (2s segments)',
|
|
802
802
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
803
|
-
/* manifestUri= */ 'https://
|
|
803
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/livesim2/startrel_-20/stoprel_20/timeoffset_0/testpic_2s/Manifest.mpd',
|
|
804
804
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
805
805
|
.addFeature(shakaAssets.Feature.DASH)
|
|
806
806
|
.addFeature(shakaAssets.Feature.MP4),
|
|
807
807
|
new ShakaDemoAssetInfo(
|
|
808
808
|
/* name= */ 'Live sim SegTmpl Duration (multi-period 60s)',
|
|
809
809
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
810
|
-
/* manifestUri= */ 'https://
|
|
810
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/livesim2/utc_head/periods_60/testpic_2s/Manifest.mpd',
|
|
811
811
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
812
812
|
.addFeature(shakaAssets.Feature.DASH)
|
|
813
813
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
@@ -815,7 +815,7 @@ shakaAssets.testAssets = [
|
|
|
815
815
|
new ShakaDemoAssetInfo(
|
|
816
816
|
/* name= */ 'Live sim TTML Image Subtitles embedded (VoD)',
|
|
817
817
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
818
|
-
/* manifestUri= */ 'https://
|
|
818
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/dash/testpic_2s/img_subs.mpd',
|
|
819
819
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
820
820
|
.addFeature(shakaAssets.Feature.DASH)
|
|
821
821
|
.addFeature(shakaAssets.Feature.SUBTITLES)
|
|
@@ -823,15 +823,15 @@ shakaAssets.testAssets = [
|
|
|
823
823
|
new ShakaDemoAssetInfo(
|
|
824
824
|
/* name= */ 'Low Latency DASH Live',
|
|
825
825
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
826
|
-
/* manifestUri= */ 'https://
|
|
827
|
-
/* source= */ shakaAssets.Source.
|
|
826
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/livesim2/chunkdur_1/ato_7/testpic4_8s/Manifest300.mpd',
|
|
827
|
+
/* source= */ shakaAssets.Source.DASH_IF)
|
|
828
828
|
.addFeature(shakaAssets.Feature.DASH)
|
|
829
829
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
830
830
|
.addFeature(shakaAssets.Feature.MP4),
|
|
831
831
|
new ShakaDemoAssetInfo(
|
|
832
832
|
/* name= */ 'DASH-IF CEA-608 VOD',
|
|
833
833
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
834
|
-
/* manifestUri= */ 'https://
|
|
834
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/dash/testpic_2s/cea608.mpd',
|
|
835
835
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
836
836
|
.addFeature(shakaAssets.Feature.DASH)
|
|
837
837
|
.addFeature(shakaAssets.Feature.SUBTITLES)
|
|
@@ -839,7 +839,7 @@ shakaAssets.testAssets = [
|
|
|
839
839
|
new ShakaDemoAssetInfo(
|
|
840
840
|
/* name= */ 'DASH-IF CEA-608 Live',
|
|
841
841
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
842
|
-
/* manifestUri= */ 'https://
|
|
842
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/livesim2/testpic_2s/cea608.mpd',
|
|
843
843
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
844
844
|
.addFeature(shakaAssets.Feature.DASH)
|
|
845
845
|
.addFeature(shakaAssets.Feature.LIVE)
|
|
@@ -896,7 +896,7 @@ shakaAssets.testAssets = [
|
|
|
896
896
|
new ShakaDemoAssetInfo(
|
|
897
897
|
/* name= */ 'DASH-IF THUMBNAILS - Live stream, Single adaptation set, 1x1 tiles (livesim)',
|
|
898
898
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png',
|
|
899
|
-
/* manifestUri= */ 'https://
|
|
899
|
+
/* manifestUri= */ 'https://livesim2.dashif.org/livesim2/testpic_2s/Manifest_thumbs.mpd',
|
|
900
900
|
/* source= */ shakaAssets.Source.DASH_IF)
|
|
901
901
|
.addFeature(shakaAssets.Feature.DASH)
|
|
902
902
|
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
|
|
@@ -1291,23 +1291,40 @@ shakaAssets.testAssets = [
|
|
|
1291
1291
|
// }}}
|
|
1292
1292
|
|
|
1293
1293
|
// MPEG-5 LCEVC assets {{{
|
|
1294
|
-
/* LCEVC
|
|
1294
|
+
/* LCEVC Enhanced Contents */
|
|
1295
1295
|
new ShakaDemoAssetInfo(
|
|
1296
|
-
/* name= */ 'Big Buck Bunny
|
|
1296
|
+
/* name= */ 'Big Buck Bunny LCEVC H264 (DASH, MP4)',
|
|
1297
1297
|
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
|
|
1298
|
-
/* manifestUri= */ 'https://
|
|
1298
|
+
/* manifestUri= */ 'https://d3mfda3gpj3dw1.cloudfront.net/vn9s0p86SVbJorX6/master.mpd',
|
|
1299
1299
|
/* source= */ shakaAssets.Source.VNOVA)
|
|
1300
|
-
.addFeature(shakaAssets.Feature.
|
|
1300
|
+
.addFeature(shakaAssets.Feature.DASH)
|
|
1301
1301
|
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1302
1302
|
.addFeature(shakaAssets.Feature.MP4)
|
|
1303
|
-
.addFeature(shakaAssets.Feature.WEBM)
|
|
1304
1303
|
.addFeature(shakaAssets.Feature.OFFLINE)
|
|
1305
1304
|
.addFeature(shakaAssets.Feature.LCEVC)
|
|
1306
|
-
.
|
|
1307
|
-
|
|
1305
|
+
.setExtraConfig({
|
|
1306
|
+
lcevc: {
|
|
1307
|
+
enabled: true,
|
|
1308
|
+
dynamicPerformanceScaling: true,
|
|
1309
|
+
logLevel: 0,
|
|
1310
|
+
drawLogo: false,
|
|
1311
|
+
},
|
|
1312
|
+
}),
|
|
1313
|
+
new ShakaDemoAssetInfo(
|
|
1314
|
+
/* name= */ 'eSports LCEVC H264 (HLS, TS)',
|
|
1315
|
+
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/shaka.png',
|
|
1316
|
+
/* manifestUri= */ 'https://d3mfda3gpj3dw1.cloudfront.net/vnmITf0oAwlErGf9/master.m3u8',
|
|
1317
|
+
/* source= */ shakaAssets.Source.VNOVA)
|
|
1318
|
+
.addFeature(shakaAssets.Feature.HLS)
|
|
1319
|
+
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1320
|
+
.addFeature(shakaAssets.Feature.MP2TS)
|
|
1321
|
+
.addFeature(shakaAssets.Feature.OFFLINE)
|
|
1322
|
+
.addFeature(shakaAssets.Feature.LCEVC)
|
|
1308
1323
|
.setExtraConfig({
|
|
1309
1324
|
streaming: {
|
|
1310
1325
|
useNativeHlsOnSafari: false,
|
|
1326
|
+
},
|
|
1327
|
+
mediaSource: {
|
|
1311
1328
|
forceTransmux: true,
|
|
1312
1329
|
},
|
|
1313
1330
|
lcevc: {
|
|
@@ -1318,21 +1335,20 @@ shakaAssets.testAssets = [
|
|
|
1318
1335
|
},
|
|
1319
1336
|
}),
|
|
1320
1337
|
new ShakaDemoAssetInfo(
|
|
1321
|
-
/* name= */ '
|
|
1322
|
-
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/
|
|
1323
|
-
/* manifestUri= */ 'https://
|
|
1338
|
+
/* name= */ 'Tears of Steel LCEVC H264 (HLS, MP4)',
|
|
1339
|
+
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png',
|
|
1340
|
+
/* manifestUri= */ 'https://d3mfda3gpj3dw1.cloudfront.net/vn2LvEps745ShGtQ/master.m3u8',
|
|
1324
1341
|
/* source= */ shakaAssets.Source.VNOVA)
|
|
1325
1342
|
.addFeature(shakaAssets.Feature.HLS)
|
|
1326
1343
|
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1327
1344
|
.addFeature(shakaAssets.Feature.MP4)
|
|
1328
|
-
.addFeature(shakaAssets.Feature.WEBM)
|
|
1329
1345
|
.addFeature(shakaAssets.Feature.OFFLINE)
|
|
1330
1346
|
.addFeature(shakaAssets.Feature.LCEVC)
|
|
1331
|
-
.addDescription('H264 HLS stream with LCEVC enhancement')
|
|
1332
|
-
.markAsFeatured('Game (LCEVC H264)')
|
|
1333
1347
|
.setExtraConfig({
|
|
1334
1348
|
streaming: {
|
|
1335
1349
|
useNativeHlsOnSafari: false,
|
|
1350
|
+
},
|
|
1351
|
+
mediaSource: {
|
|
1336
1352
|
forceTransmux: true,
|
|
1337
1353
|
},
|
|
1338
1354
|
lcevc: {
|
|
@@ -1342,6 +1358,24 @@ shakaAssets.testAssets = [
|
|
|
1342
1358
|
drawLogo: false,
|
|
1343
1359
|
},
|
|
1344
1360
|
}),
|
|
1361
|
+
new ShakaDemoAssetInfo(
|
|
1362
|
+
/* name= */ ' eSports LCEVC HEVC (DASH, MP4)',
|
|
1363
|
+
/* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/shaka.png',
|
|
1364
|
+
/* manifestUri= */ 'https://d3mfda3gpj3dw1.cloudfront.net/vnCTVqNpUs9400xP/master.mpd',
|
|
1365
|
+
/* source= */ shakaAssets.Source.VNOVA)
|
|
1366
|
+
.addFeature(shakaAssets.Feature.HLS)
|
|
1367
|
+
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
|
|
1368
|
+
.addFeature(shakaAssets.Feature.MP4)
|
|
1369
|
+
.addFeature(shakaAssets.Feature.OFFLINE)
|
|
1370
|
+
.addFeature(shakaAssets.Feature.LCEVC)
|
|
1371
|
+
.setExtraConfig({
|
|
1372
|
+
lcevc: {
|
|
1373
|
+
enabled: true,
|
|
1374
|
+
dynamicPerformanceScaling: true,
|
|
1375
|
+
logLevel: 0,
|
|
1376
|
+
drawLogo: false,
|
|
1377
|
+
},
|
|
1378
|
+
}),
|
|
1345
1379
|
// }}}
|
|
1346
1380
|
];
|
|
1347
1381
|
/* eslint-enable max-len */
|
package/demo/main.js
CHANGED
|
@@ -1323,6 +1323,11 @@ shakaDemo.Main = class {
|
|
|
1323
1323
|
this.video_.poster = shakaDemo.Main.audioOnlyPoster_;
|
|
1324
1324
|
}
|
|
1325
1325
|
|
|
1326
|
+
for (const extraText of asset.extraText) {
|
|
1327
|
+
this.player_.addTextTrackAsync(extraText.uri, extraText.language,
|
|
1328
|
+
extraText.kind, extraText.mime, extraText.codecs);
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1326
1331
|
// If the asset has an ad tag attached to it, load the ads
|
|
1327
1332
|
const adManager = this.player_.getAdManager();
|
|
1328
1333
|
if (adManager && asset.adTagUri) {
|
|
@@ -144,18 +144,18 @@ shakaAssets.Source.UNIFIED_STREAMING)).addKeySystem(shakaAssets.KeySystem.WIDEVI
|
|
|
144
144
|
shakaAssets.Source.UNIFIED_STREAMING)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addLicenseServer("com.microsoft.playready","https://test.playready.microsoft.com/service/rightsmanager.asmx?PlayRight=1&UseSimpleNonPersistentLicense=1"),(new ShakaDemoAssetInfo("Tears of Steel (subtitles)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
|
|
145
145
|
"https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-en.ism/.mpd",shakaAssets.Source.UNIFIED_STREAMING)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (Thumbnails)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-tiled-thumbnails-timeline.ism/.mpd",
|
|
146
146
|
shakaAssets.Source.UNIFIED_STREAMING)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("Big Buck Bunny (DASH-IF)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://dash.akamaized.net/dash264/TestCases/1c/qualcomm/2/MultiRate.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),
|
|
147
|
-
(new ShakaDemoAssetInfo("Live sim (2s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://
|
|
148
|
-
shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Live sim SegmentTimeline w/ $Number$ (6s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://
|
|
149
|
-
(new ShakaDemoAssetInfo("Live sim SegmentTimeline StartOver [-20s, +20s] (2s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://
|
|
150
|
-
"https://
|
|
151
|
-
(new ShakaDemoAssetInfo("Live sim TTML Image Subtitles embedded (VoD)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://
|
|
152
|
-
shakaAssets.Source.
|
|
153
|
-
"https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://
|
|
147
|
+
(new ShakaDemoAssetInfo("Live sim (2s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/utc_head/testpic_2s/Manifest.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.DASH),(new ShakaDemoAssetInfo("Live sim SegmentTimeline w/ $Time$ (6s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/segtimeline_1/utc_head/testpic_6s/Manifest.mpd",
|
|
148
|
+
shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Live sim SegmentTimeline w/ $Number$ (6s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/segtimelinenr_1/utc_head/testpic_6s/Manifest.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),
|
|
149
|
+
(new ShakaDemoAssetInfo("Live sim SegmentTimeline StartOver [-20s, +20s] (2s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/segtimeline_1/startrel_-20/stoprel_20/timeoffset_0/testpic_2s/Manifest.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Live sim StartOver SegTmpl Duration [-20s, +20s] (2s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png",
|
|
150
|
+
"https://livesim2.dashif.org/livesim2/startrel_-20/stoprel_20/timeoffset_0/testpic_2s/Manifest.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Live sim SegTmpl Duration (multi-period 60s)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/utc_head/periods_60/testpic_2s/Manifest.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),
|
|
151
|
+
(new ShakaDemoAssetInfo("Live sim TTML Image Subtitles embedded (VoD)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/dash/testpic_2s/img_subs.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Low Latency DASH Live","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/chunkdur_1/ato_7/testpic4_8s/Manifest300.mpd",
|
|
152
|
+
shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("DASH-IF CEA-608 VOD","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/dash/testpic_2s/cea608.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("DASH-IF CEA-608 Live",
|
|
153
|
+
"https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/testpic_2s/cea608.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Akamai Low Latency DASH Live","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://akamaibroadcasteruseast.akamaized.net/cmaf/live/657078/akasource/out.mpd",
|
|
154
154
|
shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("DASH-IF THUMBNAILS - Single adaptation set, 7 tiles at 10x1, each thumb 320x180","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://dash.akamaized.net/akamai/bbb_30fps/bbb_with_tiled_thumbnails.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.THUMBNAILS),
|
|
155
155
|
(new ShakaDemoAssetInfo("DASH-IF THUMBNAILS - Single adaptation set, 4 tiles at 10x1, each thumb 205x115","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://dash.akamaized.net/akamai/bbb_30fps/bbb_with_4_tiles_thumbnails.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("DASH-IF THUMBNAILS - Single adaptation set, 1 tile at 10x20, each thumb 102x58",
|
|
156
156
|
"https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://dash.akamaized.net/akamai/bbb_30fps/bbb_with_tiled_thumbnails_2.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("DASH-IF THUMBNAILS - Two adaptation sets with different thumb resolutions","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png",
|
|
157
157
|
"https://dash.akamaized.net/akamai/bbb_30fps/bbb_with_multiple_tiled_thumbnails.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("DASH-IF THUMBNAILS - Live stream, Single adaptation set, 1x1 tiles (livesim)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png",
|
|
158
|
-
"https://
|
|
158
|
+
"https://livesim2.dashif.org/livesim2/testpic_2s/Manifest_thumbs.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("Art of Motion (DASH)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://bitdash-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd",
|
|
159
159
|
shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Art of Motion (HLS, TS)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8",shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE),
|
|
160
160
|
(new ShakaDemoAssetInfo("Art of Motion (HLS, TS, AES-128)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/m3u8s/11331.m3u8",shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel (HLS, TS, 4k)","https://storage.googleapis.com/shaka-asset-icons/sintel.png",
|
|
161
161
|
"https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8",shakaAssets.Source.BITCODIN)).markAsDisabled().addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Car Ride (DASH, VOD, 180 Degrees)","https://lab.streamshark.io:10433/streams/balmain_360/.png?scale=300:210","https://lab.streamshark.io:10433/streams/balmain_360/Feature.DASH/.mpd",shakaAssets.Source.METACDN)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.VOD),
|
|
@@ -181,9 +181,11 @@ shakaAssets.Source.GPAC)).markAsDisabled().addFeature(shakaAssets.Feature.DASH).
|
|
|
181
181
|
(new ShakaDemoAssetInfo("Apple Advanced HLS Stream (TS) with raw AAC","https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png","https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8",shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.CONTAINERLESS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Bayerischer Rundfunk Recorded Loop (DASH)",
|
|
182
182
|
"https://storage.googleapis.com/shaka-asset-icons/bayerischer_rundfunk.png","https://irtdashreference-i.akamaihd.net/dash/live/901161/keepixo1/manifestBR2.mpd",shakaAssets.Source.IRT)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE),(new ShakaDemoAssetInfo("Bayerischer Rundfunk Recorded Loop (HLS)","https://storage.googleapis.com/shaka-asset-icons/bayerischer_rundfunk.png","https://irtdashreference-i.akamaihd.net/dash/live/901161/keepixo1/playlistBR2.m3u8",
|
|
183
183
|
shakaAssets.Source.IRT)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE),(new ShakaDemoAssetInfo("Big Buck Bunny: the Dark Truths of a Video Dev Cartoon (HLS - PlayReady)","https://storage.googleapis.com/shaka-asset-icons/dark_truth.png","https://test.playready.microsoft.com/media/dash/APPLEENC_CBCS_BBB_1080p/1080p_alternate.m3u8",shakaAssets.Source.MICROSOFT)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addLicenseServer("com.microsoft.playready",
|
|
184
|
-
"http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,ck:W31bfVt9W31bfVt9W31bfQ==,ckt:aescbc)"),(new ShakaDemoAssetInfo("Big Buck Bunny
|
|
185
|
-
|
|
186
|
-
forceTransmux:!0},lcevc:{enabled:!0,dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}})
|
|
184
|
+
"http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,ck:W31bfVt9W31bfVt9W31bfQ==,ckt:aescbc)"),(new ShakaDemoAssetInfo("Big Buck Bunny LCEVC H264 (DASH, MP4)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://d3mfda3gpj3dw1.cloudfront.net/vn9s0p86SVbJorX6/master.mpd",shakaAssets.Source.VNOVA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.LCEVC).setExtraConfig({lcevc:{enabled:!0,
|
|
185
|
+
dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}}),(new ShakaDemoAssetInfo("eSports LCEVC H264 (HLS, TS)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://d3mfda3gpj3dw1.cloudfront.net/vnmITf0oAwlErGf9/master.m3u8",shakaAssets.Source.VNOVA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.LCEVC).setExtraConfig({streaming:{useNativeHlsOnSafari:!1},
|
|
186
|
+
mediaSource:{forceTransmux:!0},lcevc:{enabled:!0,dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}}),(new ShakaDemoAssetInfo("Tears of Steel LCEVC H264 (HLS, MP4)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://d3mfda3gpj3dw1.cloudfront.net/vn2LvEps745ShGtQ/master.m3u8",shakaAssets.Source.VNOVA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.LCEVC).setExtraConfig({streaming:{useNativeHlsOnSafari:!1},
|
|
187
|
+
mediaSource:{forceTransmux:!0},lcevc:{enabled:!0,dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}}),(new ShakaDemoAssetInfo(" eSports LCEVC HEVC (DASH, MP4)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://d3mfda3gpj3dw1.cloudfront.net/vnCTVqNpUs9400xP/master.mpd",shakaAssets.Source.VNOVA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.LCEVC).setExtraConfig({lcevc:{enabled:!0,
|
|
188
|
+
dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}})];shakaDemo.Tooltips=class{static make(a,b){tippy(a,{content:shakaDemoMain.getLocalizedString(b),placement:"bottom",arrow:!0,animation:"scale",size:"large"})}};shakaDemo.AssetCard=class{constructor(a,b,c,d){this.card_=document.createElement("div");this.asset_=b;this.actions_=document.createElement("div");this.featureIconsContainer_=document.createElement("div");this.progressCircle_=document.createElement("div");this.progressCircleSvg_=document.createElementNS("http://www.w3.org/2000/svg","svg");this.progressCircleBack_=document.createElementNS("http://www.w3.org/2000/svg","circle");this.progressCircleBar_=document.createElementNS("http://www.w3.org/2000/svg",
|
|
187
189
|
"circle");this.remakeButtonsFn_=d;this.card_.classList.add("mdl-card-wide");this.card_.classList.add("mdl-card");this.card_.classList.add("mdl-shadow--2dp");this.card_.classList.add("asset-card");d=document.createElement("div");d.classList.add("mdl-card__title");this.card_.appendChild(d);var e=document.createElement("h2");e.classList.add("mdl-card__title-text");e.textContent=c?b.shortName||b.name:b.name;d.appendChild(e);if(b.iconUri){d=document.createElement("picture");e=document.createElement("source");
|
|
188
190
|
e.srcset=b.iconUri.replace(/.png$/,".webp");e.type="image/webp";const f=document.createElement("source");f.srcset=b.iconUri;f.type="image/png";const g=document.createElement("img");g.src=b.iconUri;g.alt="";d.appendChild(e);d.appendChild(f);d.appendChild(g);this.card_.appendChild(d)}b.description&&c&&(c=document.createElement("div"),c.classList.add("mdl-card__supporting-text"),c.textContent=b.description,this.card_.appendChild(c));this.card_.appendChild(this.featureIconsContainer_);this.addFeatureIcons_(b);
|
|
189
191
|
this.actions_.classList.add("mdl-card__actions");this.actions_.classList.add("mdl-card--border");this.card_.appendChild(this.actions_);this.progressCircle_.classList.add("hidden");this.progressCircle_.classList.add("progress-circle");this.card_.appendChild(this.progressCircle_);this.progressCircleSvg_.appendChild(this.progressCircleBack_);this.progressCircleSvg_.appendChild(this.progressCircleBar_);this.progressCircle_.appendChild(this.progressCircleSvg_);this.progressCircleSvg_.classList.add("progress-circle-svg");
|
|
@@ -310,8 +312,8 @@ this.video_.webkitDisplayingFullscreen&&this.video_.webkitExitFullscreen();docum
|
|
|
310
312
|
b?b.configure(d):(this.player_.resetConfiguration(),this.player_.configure(this.desiredConfig_),this.player_.configure(d));d=b?b.getConfiguration():this.player_.getConfiguration();if(a.certificateUri){c=await this.requestCertificate_(a.certificateUri,c);c=shaka.util.BufferUtils.toUint8(c);for(const e of a.licenseServers.keys())d.drm.advanced[e]=d.drm.advanced[e]||{},d.drm.advanced[e].serverCertificate=c}else for(const e of a.licenseServers.keys())d.drm.advanced[e]&&delete d.drm.advanced[e].serverCertificate;
|
|
311
313
|
b?b.configure(d):this.player_.configure("drm.advanced",d.drm.advanced);this.remakeHash()}showPlayer_(){const a=document.getElementById("video-bar");this.showElement_(a);this.closeError_();this.video_.poster=shakaDemo.Main.mainPoster_;a.scrollIntoView({behavior:"smooth",block:"start"})}async loadAsset(a){try{this.selectedAsset=a;this.showPlayer_();this.dispatchEventWithName_("shaka-main-selected-asset-changed");this.nativeControlsEnabled_?(this.controls_.setEnabledShakaControls(!1),this.controls_.setEnabledNativeControls(!0),
|
|
312
314
|
this.player_.setVideoContainer(null)):(this.controls_.setEnabledShakaControls(!0),this.controls_.setEnabledNativeControls(!1),this.player_.setVideoContainer(this.container_));await this.drmConfiguration_(a);this.controls_.getCastProxy().setAppData({asset:a});let b=a.manifestUri;a.storedContent&&a.storedContent.offlineUri&&(b=a.storedContent.offlineUri);if(a.imaAssetKey||a.imaContentSrcId&&a.imaVideoId)b=await this.getManifestUriFromAdManager_(a);await this.player_.load(b,null,a.mimeType||void 0);
|
|
313
|
-
this.player_.isAudioOnly()&&(this.video_.poster=shakaDemo.Main.audioOnlyPoster_);const c=this.player_.getAdManager();if(c&&a.adTagUri)try{goog.asserts.assert(null!=this.video_,"this.video should exist!");c.initClientSide(this.controls_.getClientSideAdContainer(),this.video_);const d=new google.ima.AdsRequest;d.adTagUrl=a.adTagUri;c.requestClientSideAds(d)}catch(d){console.log(d),console.warn("Ads code has been prevented from running. Proceeding without ads.")}if(navigator.mediaSession){const d=
|
|
314
|
-
artwork:[{src:a.iconUri}]};d.artist=a.source;navigator.mediaSession.metadata=new MediaMetadata(d)}this.visualizer_&&this.visualizer_.active&&this.visualizer_.start()}catch(b){if(b.code==shaka.util.Error.Code.LOAD_INTERRUPTED)console.debug("load() interrupted");else this.onError_(b)}this.remakeHash()}remakeHash(){if(this.fullyLoaded_){var a=[];if(this.player_){var b=this.player_.getConfiguration();shakaDemo.Utils.runThroughHashParams((f,g)=>{const h=this.getCurrentConfigValue(g);g=this.getValueFromGivenConfig_(g,
|
|
315
|
+
this.player_.isAudioOnly()&&(this.video_.poster=shakaDemo.Main.audioOnlyPoster_);for(const d of a.extraText)this.player_.addTextTrackAsync(d.uri,d.language,d.kind,d.mime,d.codecs);const c=this.player_.getAdManager();if(c&&a.adTagUri)try{goog.asserts.assert(null!=this.video_,"this.video should exist!");c.initClientSide(this.controls_.getClientSideAdContainer(),this.video_);const d=new google.ima.AdsRequest;d.adTagUrl=a.adTagUri;c.requestClientSideAds(d)}catch(d){console.log(d),console.warn("Ads code has been prevented from running. Proceeding without ads.")}if(navigator.mediaSession){const d=
|
|
316
|
+
{title:a.name,artwork:[{src:a.iconUri}]};d.artist=a.source;navigator.mediaSession.metadata=new MediaMetadata(d)}this.visualizer_&&this.visualizer_.active&&this.visualizer_.start()}catch(b){if(b.code==shaka.util.Error.Code.LOAD_INTERRUPTED)console.debug("load() interrupted");else this.onError_(b)}this.remakeHash()}remakeHash(){if(this.fullyLoaded_){var a=[];if(this.player_){var b=this.player_.getConfiguration();shakaDemo.Utils.runThroughHashParams((f,g)=>{const h=this.getCurrentConfigValue(g);g=this.getValueFromGivenConfig_(g,
|
|
315
317
|
this.defaultConfig_);const k=isNaN(h)&&isNaN(g);h==g||k||a.push(f+"="+h)},b);if(b=this.getCurrentConfigValue("drm.advanced"))for(var c of shakaDemo.Main.commonDrmSystems){const f=b[c];if(f){f.videoRobustness&&a.push("videoRobustness="+f.videoRobustness);f.audioRobustness&&a.push("audioRobustness="+f.audioRobustness);break}}}this.getCurrentConfigValue("abr.enabled")||a.push("noadaptation");a.push("uilang="+this.getUILocale());if(this.selectedAsset){c=shakaAssets.testAssets.includes(this.selectedAsset);
|
|
316
318
|
a.push("asset="+this.selectedAsset.manifestUri);this.selectedAsset.adTagUri&&a.push("adTagUri="+this.selectedAsset.adTagUri);if(!c&&this.selectedAsset.licenseServers.size){b=this.selectedAsset.licenseServers.values().next().value;a.push("license="+b);for(var d of this.selectedAsset.licenseServers.keys())if(!shakaDemo.Main.commonDrmSystems.includes(d)){a.push("drmSystem="+d);break}}!c&&this.selectedAsset.certificateUri&&a.push("certificate="+this.selectedAsset.certificateUri)}d=document.getElementById("nav-button-container");
|
|
317
319
|
for(var e of d.childNodes)if(e.nodeType==Node.ELEMENT_NODE&&(goog.asserts.assert(e instanceof HTMLElement,"Wrong node type!"),e.classList.contains("mdl-button--accent"))){a.push("panel="+e.getAttribute("tab-identifier"));(e=e.getAttribute("tab-hash"))&&a.push("panelData="+e);break}for(const f of["compiled","debug_compiled","uncompiled"])document.getElementById(f.split("_").join("-")+"-link").hasAttribute("disabled")&&a.push("build="+f);this.noInput_&&a.push("noinput");this.nativeControlsEnabled_&&
|