shaka-player 4.1.3 → 4.1.5

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.
Files changed (85) hide show
  1. package/.github/workflows/build-and-test.yaml +31 -16
  2. package/.github/workflows/custom-actions/set-commit-status/action.yaml +1 -5
  3. package/.github/workflows/deflake.yaml +28 -0
  4. package/.github/workflows/selenium-lab-tests.yaml +168 -54
  5. package/AUTHORS +2 -0
  6. package/CHANGELOG.md +29 -0
  7. package/CONTRIBUTORS +2 -0
  8. package/demo/common/message_ids.js +1 -0
  9. package/demo/config.js +3 -1
  10. package/demo/locales/en.json +1 -0
  11. package/demo/locales/source.json +4 -0
  12. package/dist/controls.css +1 -1
  13. package/dist/controls.css.map +1 -1
  14. package/dist/demo.compiled.debug.js +6 -6
  15. package/dist/demo.compiled.debug.map +2 -2
  16. package/dist/demo.compiled.js +6 -6
  17. package/dist/demo.compiled.map +2 -2
  18. package/dist/deps.js +1 -1
  19. package/dist/locales.js +31 -31
  20. package/dist/receiver.compiled.debug.js +3 -3
  21. package/dist/receiver.compiled.debug.map +2 -2
  22. package/dist/receiver.compiled.js +3 -3
  23. package/dist/receiver.compiled.map +2 -2
  24. package/dist/shaka-player.compiled.d.ts +2 -2
  25. package/dist/shaka-player.compiled.debug.d.ts +2 -2
  26. package/dist/shaka-player.compiled.debug.externs.js +24 -24
  27. package/dist/shaka-player.compiled.debug.js +209 -200
  28. package/dist/shaka-player.compiled.debug.map +4 -4
  29. package/dist/shaka-player.compiled.externs.js +24 -24
  30. package/dist/shaka-player.compiled.js +736 -733
  31. package/dist/shaka-player.compiled.map +4 -4
  32. package/dist/shaka-player.ui.d.ts +2 -2
  33. package/dist/shaka-player.ui.debug.d.ts +2 -2
  34. package/dist/shaka-player.ui.debug.externs.js +24 -24
  35. package/dist/shaka-player.ui.debug.js +263 -254
  36. package/dist/shaka-player.ui.debug.map +4 -4
  37. package/dist/shaka-player.ui.externs.js +24 -24
  38. package/dist/shaka-player.ui.js +900 -896
  39. package/dist/shaka-player.ui.map +4 -4
  40. package/docs/jsdoc-template/publish.js +33 -0
  41. package/docs/jsdoc-template/tmpl/container.tmpl +4 -1
  42. package/docs/jsdoc.conf.json +1 -0
  43. package/externs/shaka/manifest_parser.js +4 -1
  44. package/externs/shaka/player.js +7 -1
  45. package/lib/ads/client_side_ad_manager.js +7 -0
  46. package/lib/cast/cast_sender.js +39 -14
  47. package/lib/cea/cea608_memory.js +4 -0
  48. package/lib/hls/hls_parser.js +30 -8
  49. package/lib/media/drm_engine.js +52 -1
  50. package/lib/media/media_source_engine.js +43 -15
  51. package/lib/media/streaming_engine.js +79 -14
  52. package/lib/offline/storage.js +1 -0
  53. package/lib/player.js +29 -5
  54. package/lib/text/ttml_text_parser.js +6 -0
  55. package/lib/text/ui_text_displayer.js +8 -0
  56. package/lib/util/platform.js +24 -0
  57. package/lib/util/player_configuration.js +5 -0
  58. package/lib/util/pssh.js +2 -1
  59. package/lib/util/stream_utils.js +2 -1
  60. package/package.json +1 -1
  61. package/test/cea/cea608_memory_unit.js +88 -0
  62. package/test/dash/dash_parser_content_protection_unit.js +1 -0
  63. package/test/dash/dash_parser_live_unit.js +1 -0
  64. package/test/dash/dash_parser_manifest_unit.js +1 -0
  65. package/test/dash/dash_parser_segment_base_unit.js +1 -0
  66. package/test/dash/dash_parser_segment_list_unit.js +1 -0
  67. package/test/dash/dash_parser_segment_template_unit.js +1 -0
  68. package/test/hls/hls_live_unit.js +169 -247
  69. package/test/hls/hls_parser_unit.js +60 -2
  70. package/test/media/drm_engine_unit.js +90 -0
  71. package/test/media/media_source_engine_integration.js +36 -0
  72. package/test/media/media_source_engine_unit.js +118 -1
  73. package/test/media/streaming_engine_integration.js +9 -7
  74. package/test/media/streaming_engine_unit.js +29 -0
  75. package/test/offline/offline_integration.js +3 -3
  76. package/test/player_integration.js +2 -2
  77. package/test/player_src_equals_integration.js +2 -0
  78. package/test/player_unit.js +39 -1
  79. package/test/test/assets/small.mp4 +0 -0
  80. package/test/test/util/dash_parser_util.js +2 -0
  81. package/test/test/util/ttml_utils.js +0 -2
  82. package/test/text/ttml_text_parser_unit.js +46 -0
  83. package/test/ui/text_displayer_layout_unit.js +17 -2
  84. package/ui/controls.js +0 -7
  85. package/ui/less/ad_controls.less +4 -0
@@ -41,9 +41,11 @@ jobs:
41
41
  include:
42
42
  # Run Linux browsers with xvfb, so they're in a headless X session.
43
43
  # Additionally, generate a code coverage report from Linux Chrome.
44
+ # It should be the uncompiled build, or else we won't execute any
45
+ # coverage instrumentation on full-stack player integration tests.
44
46
  - os: ubuntu-latest
45
47
  browser: Chrome
46
- extra_flags: "--use-xvfb --html-coverage-report"
48
+ extra_flags: "--use-xvfb --html-coverage-report --uncompiled"
47
49
  - os: ubuntu-latest
48
50
  browser: Firefox
49
51
  extra_flags: "--use-xvfb"
@@ -57,7 +59,7 @@ jobs:
57
59
  - os: macos-latest
58
60
  browser: Safari
59
61
  - os: macos-latest
60
- browser: Safari-14
62
+ browser: Safari-old
61
63
 
62
64
  - os: windows-latest
63
65
  browser: Chrome
@@ -87,21 +89,22 @@ jobs:
87
89
  with:
88
90
  ref: ${{ github.event.inputs.ref || github.ref }}
89
91
 
90
- # Safari 14 can be installed, but not to the root, and it can't replace
91
- # the standard version, at least not on GitHub's VMs. If you try to
92
- # install directly to the root with sudo, it will appear to succeed, but
93
- # will have no effect. If you try to script it explicitly with rm -rf
94
- # and cp, this will fail. Safari may be on a read-only filesystem.
95
- - name: Install Safari 14 to home directory
96
- if: matrix.os == 'macos-latest' && matrix.browser == 'Safari-14'
92
+ # Older versions of Safari can be installed, but not to the root, and it
93
+ # can't replace the standard version, at least not on GitHub's VMs. If
94
+ # you try to install directly to the root with sudo, it will appear to
95
+ # succeed, but will have no effect. If you try to script it explicitly
96
+ # with rm -rf and cp, this will fail. Safari may be on a read-only
97
+ # filesystem.
98
+ - name: Install old Safari to home directory
99
+ if: matrix.os == 'macos-latest' && matrix.browser == 'Safari-old'
97
100
  run: |
98
- # Download Safari 14
99
- # See also https://www.macupdate.com/app/mac/15675/apple-safari/old-versions
100
- curl -Lv https://www.macupdate.com/action/download/62946 > Safari14.0CatalinaAuto.pkg.zip
101
+ # Download Safari 15
102
+ # This URL discovered through the seed files listed at
103
+ # https://github.com/zhangyoufu/swscan.apple.com/blob/master/url.txt
104
+ curl -Lv http://swcdn.apple.com/content/downloads/42/33/012-57329-A_41P2VU6UHN/5fw5vna27fdw4mqfak5adj3pjpxvo9hgh7/Safari15.6.1CatalinaAuto.pkg > Safari.pkg
101
105
 
102
- # Install Safari 14 to homedir specifically.
103
- unzip Safari14.0CatalinaAuto.pkg.zip
104
- installer -pkg Safari14.0CatalinaAuto.pkg -target CurrentUserHomeDirectory
106
+ # Install older Safari to homedir specifically.
107
+ installer -pkg Safari.pkg -target CurrentUserHomeDirectory
105
108
 
106
109
  # Install a launcher that can execute a shell script to launch this
107
110
  npm install karma-script-launcher --save-dev
@@ -114,7 +117,7 @@ jobs:
114
117
  run: |
115
118
  browser=${{ matrix.browser }}
116
119
 
117
- if [[ "$browser" == "Safari-14" ]]; then
120
+ if [[ "$browser" == "Safari-old" ]]; then
118
121
  # Replace the browser name with a script that can launch this
119
122
  # browser from the command line.
120
123
  browser="$PWD/.github/workflows/safari-homedir-launcher.sh"
@@ -165,6 +168,18 @@ jobs:
165
168
  # an environment variable set, the file should definitely be there.
166
169
  if-no-files-found: error
167
170
 
171
+ # Upload new screenshots and diffs on failure; ignore if missing
172
+ - name: Upload screenshots
173
+ uses: actions/upload-artifact@v3
174
+ if: ${{ failure() }}
175
+ with:
176
+ name: screenshots-${{ matrix.browser }}
177
+ path: |
178
+ test/test/assets/screenshots/*/*.png-new
179
+ test/test/assets/screenshots/*/*.png-diff
180
+ if-no-files-found: ignore
181
+ retention-days: 5
182
+
168
183
  build_in_docker:
169
184
  # Don't waste time doing a full matrix of test runs when there was an
170
185
  # obvious linter error.
@@ -11,10 +11,6 @@ inputs:
11
11
  state:
12
12
  description: Either "pending", "error", "success", or "failure".
13
13
  required: true
14
- ref:
15
- description: A git ref for which to set the commit status. For PRs, use the head commit, not the merge commit. Defaults to HEAD.
16
- required: false
17
- default: HEAD
18
14
  token:
19
15
  description: A GitHub access token.
20
16
  required: true
@@ -30,7 +26,7 @@ runs:
30
26
  # next to the status on the PR, it will link to this run where they can
31
27
  # see the logs.
32
28
  RUN_URL="https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}"
33
- SHA1=$(git rev-parse "${{ inputs.ref }}")
29
+ SHA1=$(git rev-parse HEAD)
34
30
 
35
31
  GITHUB_TOKEN=${{ inputs.token }} \
36
32
  gh api \
@@ -0,0 +1,28 @@
1
+ name: Deflake Tests
2
+
3
+ # Runs when the Selenum nightly test workflow completes. This will run with
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.
6
+ on:
7
+ workflow_run:
8
+ workflows: [Selenium Lab Tests]
9
+ types: [completed]
10
+
11
+ jobs:
12
+ deflake:
13
+ if: ${{ github.event.workflow_run.event == 'schedule' && github.event.workflow_run.conclusion == 'failure' }}
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - name: Check run count and re-run workflow
18
+ env:
19
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
20
+ run: |
21
+ gh api /repos/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }} > run.json
22
+ RUNS=$(jq -r .run_attempt < run.json)
23
+ if [[ "$RUNS" -lt 3 ]]; then
24
+ echo "$RUNS failed runs so far; re-running workflow."
25
+ gh run rerun ${{ github.event.workflow_run.id }} --failed -R ${{ github.repository }}
26
+ else
27
+ echo "$RUNS failed runs so far; not re-running workflow."
28
+ fi
@@ -17,101 +17,215 @@ on:
17
17
  concurrency: selenium-lab
18
18
 
19
19
  jobs:
20
- lab-tests:
21
- # This is a self-hosted runner in a Docker container, with access to our
22
- # lab's Selenium grid on port 4444.
23
- runs-on: self-hosted-selenium
20
+ compute-ref:
21
+ name: Compute ref
22
+ runs-on: ubuntu-latest
23
+ outputs:
24
+ REF: ${{ steps.compute.outputs.REF }}
24
25
 
25
26
  steps:
26
- # This runs on our self-hosted runner, and the Docker image it is based
27
- # on doesn't have GitHub's CLI pre-installed. This installs it. Taken
28
- # verbatim from the official installation instructions at
29
- # https://github.com/cli/cli/blob/trunk/docs/install_linux.md
30
- - name: Install GitHub Actions CLI
31
- run: |
32
- curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
33
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
34
- sudo apt update
35
- sudo apt install gh
36
-
37
27
  - name: Compute ref
28
+ id: compute
38
29
  run: |
39
30
  if [[ "${{ github.event.inputs.pr }}" != "" ]]; then
40
- echo LAB_TEST_REF="refs/pull/${{ github.event.inputs.pr }}/head" >> $GITHUB_ENV
31
+ LAB_TEST_REF="refs/pull/${{ github.event.inputs.pr }}/head"
41
32
  else
42
- echo LAB_TEST_REF="main" >> $GITHUB_ENV
33
+ LAB_TEST_REF="main"
43
34
  fi
35
+ echo "::set-output name=REF::$LAB_TEST_REF"
36
+
37
+ # Configure the build matrix based on our grid's YAML config.
38
+ # The matrix contents will be computed by this first job and deserialized
39
+ # into the second job's config.
40
+ matrix-config:
41
+ name: Matrix config
42
+ needs: compute-ref
43
+ runs-on: ubuntu-latest
44
+ outputs:
45
+ INCLUDE: ${{ steps.configure.outputs.INCLUDE }}
46
+
47
+ steps:
48
+ - uses: actions/checkout@v2
49
+ with:
50
+ ref: ${{ needs.compute-ref.outputs.REF }}
51
+
52
+ - name: Install dependencies
53
+ run: npm ci
54
+
55
+ - name: Configure build matrix
56
+ id: configure
57
+ shell: node {0}
58
+ run: |
59
+ const fs = require('fs');
60
+ const yaml = require(
61
+ '${{ github.workspace }}/node_modules/js-yaml/index.js');
62
+
63
+ const gridBrowserYaml =
64
+ fs.readFileSync('build/shaka-lab.yaml', 'utf8');
65
+ const gridBrowserMetadata = yaml.load(gridBrowserYaml);
66
+
67
+ const include = [];
68
+
69
+ for (const name in gridBrowserMetadata) {
70
+ if (name == 'vars') {
71
+ // Skip variable defs in the YAML file
72
+ continue;
73
+ }
74
+ if (!gridBrowserMetadata[name].disabled) {
75
+ include.push({browser: name});
76
+ }
77
+ }
78
+
79
+ // Output JSON object consumed by the build matrix below.
80
+ console.log(`::set-output name=INCLUDE::${ JSON.stringify(include) }`);
81
+
82
+ // Log the output, for the sake of debugging this script.
83
+ console.log({include});
84
+
85
+ # Build Shaka Player once, then distribute that build to the runners in the
86
+ # build matrix. For N runners, runs N times faster (since all the
87
+ # self-hosted Selenium jobs are run in containers on one machine).
88
+ build-shaka:
89
+ name: Pre-build Player
90
+ needs: compute-ref
91
+ runs-on: ubuntu-latest
92
+ steps:
93
+ - uses: actions/checkout@v2
94
+ with:
95
+ ref: ${{ needs.compute-ref.outputs.REF }}
96
+
97
+ - name: Set commit status to pending
98
+ uses: ./.github/workflows/custom-actions/set-commit-status
99
+ with:
100
+ context: Selenium / Build
101
+ state: pending
102
+ token: ${{ secrets.GITHUB_TOKEN }}
103
+
104
+ - name: Build Player
105
+ run: python3 build/all.py
44
106
 
107
+ - name: Store Player build
108
+ uses: actions/upload-artifact@v3
109
+ with:
110
+ name: shaka-player
111
+ path: dist/
112
+ retention-days: 1
113
+
114
+ - name: Report final commit status
115
+ # Will run on success or failure, but not if the workflow is cancelled.
116
+ if: ${{ success() || failure() }}
117
+ uses: ./.github/workflows/custom-actions/set-commit-status
118
+ with:
119
+ context: Selenium / Build
120
+ state: ${{ job.status }}
121
+ token: ${{ secrets.GITHUB_TOKEN }}
122
+
123
+ lab-tests:
124
+ # This is a self-hosted runner in a Docker container, with access to our
125
+ # lab's Selenium grid on port 4444.
126
+ runs-on: self-hosted-selenium
127
+ needs: [compute-ref, build-shaka, matrix-config]
128
+ strategy:
129
+ fail-fast: false
130
+ matrix:
131
+ include: ${{ fromJSON(needs.matrix-config.outputs.INCLUDE) }}
132
+ name: ${{ matrix.browser }}
133
+
134
+ steps:
45
135
  - uses: actions/checkout@v2
46
136
  with:
47
- ref: ${{ env.LAB_TEST_REF }}
137
+ ref: ${{ needs.compute-ref.outputs.REF }}
48
138
 
49
- - name: Set Commit Status to Pending
139
+ - name: Set commit status to pending
50
140
  uses: ./.github/workflows/custom-actions/set-commit-status
51
141
  with:
52
- context: Selenium Lab Tests
142
+ context: Selenium / ${{ matrix.browser }}
53
143
  state: pending
54
144
  token: ${{ secrets.GITHUB_TOKEN }}
55
145
 
56
- - uses: actions/setup-node@v1
146
+ - uses: actions/setup-node@v3
57
147
  with:
58
148
  node-version: 16
59
149
  registry-url: 'https://registry.npmjs.org'
60
150
 
61
151
  # The Docker image for this self-hosted runner doesn't contain java.
62
- - uses: actions/setup-java@v2
152
+ - uses: actions/setup-java@v3
63
153
  with:
64
154
  distribution: zulu
65
155
  java-version: 11
66
156
 
67
- # The Docker image for this self-hosted runner has "python3" but not
68
- # plain "python".
69
- - name: Build Player
70
- run: python3 build/all.py
157
+ - name: Cache dependencies
158
+ uses: actions/cache@v3
159
+ id: npm-cache
160
+ with:
161
+ path: node_modules/
162
+ key: node-${{ hashFiles('package-lock.json') }}
163
+
164
+ - name: Install dependencies
165
+ if: steps.npm-cache.outputs.cache-hit != 'true'
166
+ run: npm ci
167
+
168
+ # Instead of building Shaka N times, build it once and fetch the build to
169
+ # each Selenium runner in the matrix.
170
+ - name: Fetch Player build
171
+ uses: actions/download-artifact@v3
172
+ with:
173
+ name: shaka-player
174
+ path: dist/
71
175
 
72
176
  # Run tests on the Selenium grid in our lab. This uses a private
73
177
  # hostname and TLS cert to get EME tests working on all platforms
74
- # (since EME only works on https or localhost).
178
+ # (since EME only works on https or localhost). The variable KARMA_PORT
179
+ # must be defined by the self-hosted runner, and mapped from the host to
180
+ # the container.
75
181
  - name: Test Player
76
182
  run: |
183
+ # Generate a coverage report from uncompiled code on ChromeLinux.
184
+ # It should be the uncompiled build, or else we won't execute any
185
+ # coverage instrumentation on full-stack player integration tests.
186
+ if [[ "${{ matrix.browser }}" == "ChromeLinux" ]]; then
187
+ extra_flags="--html-coverage-report --uncompiled"
188
+ else
189
+ extra_flags=""
190
+ fi
191
+
77
192
  python3 build/test.py \
193
+ --no-build \
78
194
  --reporters spec --spec-hide-passed \
79
195
  --lets-encrypt-folder /etc/shakalab.rocks \
80
196
  --hostname karma.shakalab.rocks \
81
- --port 61731 \
197
+ --port $KARMA_PORT \
82
198
  --grid-config build/shaka-lab.yaml \
83
199
  --grid-address selenium-grid.lab:4444 \
84
- --html-coverage-report
200
+ --browsers ${{ matrix.browser }} \
201
+ $extra_flags
85
202
 
86
- - name: Find coverage report
203
+ - name: Find coverage report (ChromeLinux only)
87
204
  id: coverage
88
- if: always() # Even on failure of an earlier step.
205
+ # Run even if an earlier step fails, but only on ChromeLinux.
206
+ if: ${{ always() && matrix.browser == 'ChromeLinux' }}
89
207
  shell: bash
90
208
  run: |
91
- # If the directory exists...
92
- if [ -d coverage ]; then
93
- # Find the path to the coverage report specifically for Chrome on
94
- # Linux. It includes the exact browser version in the path, so it
95
- # will vary. Having a single path will make the artifact zip
96
- # simpler, whereas using a wildcard in the upload step will result
97
- # in a zip file with internal directories.
98
- coverage_report="$( (ls coverage/Chrome*Linux*/coverage.json || true) | head -1 )"
99
-
100
- # Show what's there, for debugging purposes.
101
- ls -l coverage/
102
-
103
- if [ -f "$coverage_report" ]; then
104
- echo "Found coverage report: $coverage_report"
105
- echo "::set-output name=coverage_report::$coverage_report"
106
- else
107
- echo "Could not locate coverage report!"
108
- exit 1
109
- fi
209
+ # Find the path to the coverage report specifically for Chrome on
210
+ # Linux. It includes the exact browser version in the path, so it
211
+ # will vary. Having a single path will make the artifact zip
212
+ # simpler, whereas using a wildcard in the upload step will result
213
+ # in a zip file with internal directories.
214
+ coverage_report="$( (ls coverage/Chrome*Linux*/coverage.json || true) | head -1 )"
215
+
216
+ # Show what's there, for debugging purposes.
217
+ ls -l coverage/
218
+
219
+ if [ -f "$coverage_report" ]; then
220
+ echo "Found coverage report: $coverage_report"
221
+ echo "::set-output name=coverage_report::$coverage_report"
110
222
  else
111
- echo "No coverage report generated."
223
+ echo "Could not locate coverage report!"
224
+ exit 1
112
225
  fi
113
226
 
114
- - uses: actions/upload-artifact@v3
227
+ - name: Upload coverage report (ChromeLinux only)
228
+ uses: actions/upload-artifact@v3
115
229
  # If there's a coverage report, upload it, even if a previous step
116
230
  # failed.
117
231
  if: ${{ always() && steps.coverage.outputs.coverage_report }}
@@ -125,11 +239,11 @@ jobs:
125
239
  # there.
126
240
  if-no-files-found: error
127
241
 
128
- - name: Report Final Commit Status
242
+ - name: Report final commit status
129
243
  # Will run on success or failure, but not if the workflow is cancelled.
130
244
  if: ${{ success() || failure() }}
131
245
  uses: ./.github/workflows/custom-actions/set-commit-status
132
246
  with:
133
- context: Selenium Lab Tests
247
+ context: Selenium / ${{ matrix.browser }}
134
248
  state: ${{ job.status }}
135
249
  token: ${{ secrets.GITHUB_TOKEN }}
package/AUTHORS CHANGED
@@ -69,6 +69,7 @@ SameGoal Inc. <*@samegoal.com>
69
69
  Sanborn Hilland <sanbornh@rogers.com>
70
70
  Sander Saares <sander@saares.eu>
71
71
  Sanil Raut <sr1990003@gmail.com>
72
+ Seongryun Jo <ocipap0531@gmail.com>
72
73
  Swank Motion Pictures Inc. <*@swankmp.com>
73
74
  TalkTalk Plc <*@talktalkplc.com>
74
75
  Tatsiana Gelahova <tatsiana.gelahova@gmail.com>
@@ -81,3 +82,4 @@ ViacomCBS <*@viacomcbs.com>
81
82
  Vincent Valot <valot.vince@gmail.com>
82
83
  Wayne Morgan <wayne.morgan.dev@gmail.com>
83
84
  Raymond Cheng <raycheng100@gmail.com>
85
+ Blue Billywig <*@bluebillywig.com>
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.1.5](https://github.com/shaka-project/shaka-player/compare/v4.1.4...v4.1.5) (2022-10-07)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * allow build without text ([#4506](https://github.com/shaka-project/shaka-player/issues/4506)) ([1db6265](https://github.com/shaka-project/shaka-player/commit/1db62655276e8d2d5991f732704b7b37bb6994a3))
9
+ * allow the playback on platforms when low latency APIs are not supported ([#4485](https://github.com/shaka-project/shaka-player/issues/4485)) ([55d1390](https://github.com/shaka-project/shaka-player/commit/55d1390c82a2dcc7965d582c33417937944f86b7))
10
+ * check for negative rows before moving ([#4510](https://github.com/shaka-project/shaka-player/issues/4510)) ([31abae3](https://github.com/shaka-project/shaka-player/commit/31abae3201f4904e63a786015634e47a873ec789)), closes [#4508](https://github.com/shaka-project/shaka-player/issues/4508)
11
+ * Filter unsupported H.264 streams in Xbox ([#4493](https://github.com/shaka-project/shaka-player/issues/4493)) ([1ecede6](https://github.com/shaka-project/shaka-player/commit/1ecede6cf55ff1904542bfcad548e8dc4e4b4834))
12
+ * Fix choppy HLS startup ([#4553](https://github.com/shaka-project/shaka-player/issues/4553)) ([1675bff](https://github.com/shaka-project/shaka-player/commit/1675bffa9f410327fb53c34202daa1d75620233a)), closes [#4516](https://github.com/shaka-project/shaka-player/issues/4516)
13
+ * Fix errors with TS segments on Chromecast ([#4543](https://github.com/shaka-project/shaka-player/issues/4543)) ([15a1c60](https://github.com/shaka-project/shaka-player/commit/15a1c60c3f4dcb5e7bc7e915ec81ca3cb17d6625))
14
+ * Fix hang when seeking to the last segment ([#4537](https://github.com/shaka-project/shaka-player/issues/4537)) ([72a119d](https://github.com/shaka-project/shaka-player/commit/72a119d4fb3820fa97416ecedf23f96bbd5ca269))
15
+ * Fix HLS dynamic to static transition ([932d37c](https://github.com/shaka-project/shaka-player/commit/932d37c29cadbbc54f2f9a7b3ce3b510f86384cb))
16
+ * Fix HLS dynamic to static transition ([#4483](https://github.com/shaka-project/shaka-player/issues/4483)) ([932d37c](https://github.com/shaka-project/shaka-player/commit/932d37c29cadbbc54f2f9a7b3ce3b510f86384cb)), closes [#4431](https://github.com/shaka-project/shaka-player/issues/4431)
17
+ * Fix in-band key rotation on Xbox One ([#4478](https://github.com/shaka-project/shaka-player/issues/4478)) ([5a8f09c](https://github.com/shaka-project/shaka-player/commit/5a8f09c03d5ca84a90985d68be6079d2f508d87f)), closes [#4401](https://github.com/shaka-project/shaka-player/issues/4401)
18
+ * Respect existing app usage of Cast SDK ([#4523](https://github.com/shaka-project/shaka-player/issues/4523)) ([9c3a494](https://github.com/shaka-project/shaka-player/commit/9c3a494a2826e24a60898ae47766a7a41c4cce2d)), closes [#4521](https://github.com/shaka-project/shaka-player/issues/4521)
19
+ * **ttml:** Default TTML background color to transparent if unspecified ([#4496](https://github.com/shaka-project/shaka-player/issues/4496)) ([16da1e7](https://github.com/shaka-project/shaka-player/commit/16da1e7416353584c36b29f4028352349617fe45)), closes [#4468](https://github.com/shaka-project/shaka-player/issues/4468)
20
+
21
+ ## [4.1.4](https://github.com/shaka-project/shaka-player/compare/v4.1.3...v4.1.4) (2022-08-31)
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * Fix bitmap-based cue size ([#4453](https://github.com/shaka-project/shaka-player/issues/4453)) ([3c5a07f](https://github.com/shaka-project/shaka-player/commit/3c5a07f0259145bdce0c94f90b842de28026d6fa))
27
+ * Fix drm.keySystemsMapping config ([#4425](https://github.com/shaka-project/shaka-player/issues/4425)) ([1aab613](https://github.com/shaka-project/shaka-player/commit/1aab6130690eab0cc148ba8f05e483e4fc8db716)), closes [#4422](https://github.com/shaka-project/shaka-player/issues/4422)
28
+ * Fix vanishing tracks while offline ([#4426](https://github.com/shaka-project/shaka-player/issues/4426)) ([186d298](https://github.com/shaka-project/shaka-player/commit/186d298b00475818f744925cb3828bfa11c43c0b)), closes [#4408](https://github.com/shaka-project/shaka-player/issues/4408)
29
+ * return width and height in the stats when we are using src= ([#4435](https://github.com/shaka-project/shaka-player/issues/4435)) ([1eff9ed](https://github.com/shaka-project/shaka-player/commit/1eff9ed022950a2ef8722768da02ad96ef1ff821))
30
+ * **UI:** Ad position and ad counter are too close to each other ([#4416](https://github.com/shaka-project/shaka-player/issues/4416)) ([5f5c7c3](https://github.com/shaka-project/shaka-player/commit/5f5c7c35853e27b088af2840ab986f90c8d3bbb5))
31
+
3
32
  ## [4.1.3](https://github.com/shaka-project/shaka-player/compare/v4.1.2...v4.1.3) (2022-08-16)
4
33
 
5
34
 
package/CONTRIBUTORS CHANGED
@@ -104,6 +104,7 @@ Sandra Lokshina <ismena@google.com>
104
104
  Sanil Raut <sr1990003@gmail.com>
105
105
  Satheesh Velmurugan <satheesh@philo.com>
106
106
  Semih Gokceoglu <semih.gkcoglu@gmail.com>
107
+ Seongryun Jo <ocipap0531@gmail.com>
107
108
  Seth Madison <seth@philo.com>
108
109
  Tatsiana Gelahova <tatsiana.gelahova@gmail.com>
109
110
  Theodore Abshire <theodab@google.com>
@@ -121,3 +122,4 @@ Vincent Valot <valot.vince@gmail.com>
121
122
  Wayne Morgan <wayne.morgan.dev@gmail.com>
122
123
  Yohann Connell <robinconnell@google.com>
123
124
  Raymond Cheng <raycheng100@gmail.com>
125
+ Janroel Koppen <j.koppen@bluebillywig.com>
@@ -226,6 +226,7 @@ shakaDemo.MessageIds = {
226
226
  NUMBER_NONZERO_INTEGER_WARNING: 'DEMO_NUMBER_NONZERO_INTEGER_WARNING',
227
227
  NUMBER_OF_PARALLEL_DOWNLOADS: 'DEMO_NUMBER_OF_PARALLEL_DOWNLOADS',
228
228
  OFFLINE_SECTION_HEADER: 'DEMO_OFFLINE_SECTION_HEADER',
229
+ PARSE_INBAND_PSSH_ENABLED: 'DEMO_PARSE_INBAND_PSSH_ENABLED',
229
230
  PREFER_FORCED_SUBS: 'DEMO_PREFER_FORCED_SUBS',
230
231
  PREFER_NATIVE_HLS: 'DEMO_PREFER_NATIVE_HLS',
231
232
  REBUFFERING_GOAL: 'DEMO_REBUFFERING_GOAL',
package/demo/config.js CHANGED
@@ -131,7 +131,9 @@ shakaDemo.Config = class {
131
131
  'drm.updateExpirationTime',
132
132
  /* canBeDecimal= */ true,
133
133
  /* canBeZero= */ false,
134
- /* canBeUnset= */ true);
134
+ /* canBeUnset= */ true)
135
+ .addBoolInput_(MessageIds.PARSE_INBAND_PSSH_ENABLED,
136
+ 'drm.parseInbandPsshEnabled');
135
137
  const advanced = shakaDemoMain.getConfiguration().drm.advanced || {};
136
138
  const addDRMAdvancedField = (name, valueName, suggestions) => {
137
139
  // All advanced fields of a given type are set at once.
@@ -162,6 +162,7 @@
162
162
  "DEMO_NUMBER_NONZERO_INTEGER_WARNING": "Must be a positive, nonzero integer.",
163
163
  "DEMO_NUMBER_OF_PARALLEL_DOWNLOADS": "Number of parallel downloads",
164
164
  "DEMO_OBSERVE_QUALITY_CHANGES": "Observe media quality changes",
165
+ "DEMO_PARSE_INBAND_PSSH_ENABLED": "Parse inband 'pssh' from media segments",
165
166
  "DEMO_OFFLINE": "Downloadable",
166
167
  "DEMO_OFFLINE_SEARCH": "Filters for assets that can be stored offline.",
167
168
  "DEMO_OFFLINE_SECTION_HEADER": "Offline",
@@ -675,6 +675,10 @@
675
675
  "description": "The label on a field that allows users to provide a full mime type for a custom asset.",
676
676
  "message": "Full Mime Type for Playing Media Playlists Directly"
677
677
  },
678
+ "DEMO_PARSE_INBAND_PSSH_ENABLED": {
679
+ "description": "The name of a configuration value.",
680
+ "message": "Parse inband 'pssh' from media segments"
681
+ },
678
682
  "DEMO_PLAY": {
679
683
  "description": "A button to play the attached asset.",
680
684
  "message": "Play"
package/dist/controls.css CHANGED
@@ -27,7 +27,7 @@
27
27
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
28
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
29
  * SOFTWARE.
30
- */.shaka-spinner-svg{position:absolute;top:0;left:0;right:0;bottom:0;animation:rotate 2s linear infinite;transform-origin:center center;width:100%;height:100%;margin:0;padding:0}.shaka-spinner-path{stroke:#202124;stroke-dasharray:20,200;stroke-dashoffset:0;animation:dash 1s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.shaka-spacer{cursor:default;flex-shrink:1;flex-grow:1;margin:0}.shaka-overflow-menu,.shaka-settings-menu{overflow-x:hidden;overflow-y:auto;white-space:nowrap;background:#fff;box-shadow:0 1px 9px 0 rgba(0 0 0 / 40%);border-radius:2px;max-height:250px;min-width:180px;opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s;display:flex;flex-direction:column;position:absolute;z-index:2;right:15px;bottom:30px}.shaka-controls-container[casting=true] .shaka-overflow-menu,.shaka-controls-container[casting=true] .shaka-settings-menu,.shaka-controls-container[shown=true] .shaka-overflow-menu,.shaka-controls-container[shown=true] .shaka-settings-menu{opacity:1}.shaka-overflow-menu button,.shaka-settings-menu button{font-size:14px;background:0 0;color:#000;border:none;min-height:30px;padding:3.5px 6px;display:flex;align-items:center;cursor:pointer}.shaka-overflow-menu button:hover,.shaka-settings-menu button:hover{background:#e0e0e0}.shaka-overflow-menu button label,.shaka-settings-menu button label{cursor:pointer}.shaka-keyboard-navigation .shaka-overflow-menu button:focus,.shaka-keyboard-navigation .shaka-settings-menu button:focus{background:#e0e0e0}.shaka-overflow-menu i,.shaka-settings-menu i{padding-left:10px;padding-right:10px}.shaka-overflow-menu.shaka-low-position,.shaka-settings-menu.shaka-low-position{bottom:15px}.shaka-overflow-menu span{text-align:left}.shaka-overflow-button-label{position:relative;display:flex;flex-direction:column}.shaka-current-selection-span{color:rgba(0 0 0 / 54%)}.shaka-settings-menu span{margin-left:54px}.shaka-back-to-overflow-button span{margin-left:0}.shaka-back-to-overflow-button i{padding-right:20px}.shaka-auto-span{left:17px}.shaka-controls-container[ad-active=true]{pointer-events:none}.shaka-controls-container[ad-active=true] .shaka-bottom-controls{pointer-events:auto}.shaka-client-side-ad-container,.shaka-server-side-ad-container{position:absolute;left:0;right:0;top:0;bottom:0}.shaka-video-container[shaka-controls=true] .shaka-client-side-ad-container iframe,.shaka-video-container[shaka-controls=true] .shaka-server-side-ad-container iframe{height:90%}.shaka-server-side-ad-container{width:100%;height:100%;flex-shrink:1}.shaka-server-side-ad-container:not([ad-active=true]){pointer-events:none}.shaka-ad-controls{display:flex;flex-direction:row;z-index:1;padding-bottom:1%}.shaka-video-container:not([shaka-controls=true]) .shaka-ad-controls{display:none}.shaka-ad-controls button,.shaka-ad-controls div{color:#fff;font-size:initial}.shaka-ad-controls div:not(.shaka-skip-ad-counter){margin:1px}.shaka-ad-counter,.shaka-ad-position{display:flex;justify-content:flex-end;flex-direction:column;text-shadow:1px 1px 4px #000}.shaka-skip-ad-container{position:relative;right:calc((100% - 96%)/ 2 * -1);display:flex;flex-direction:row;margin:0}.shaka-skip-ad-button{padding:5px 15px;background:rgba(0 0 0 / 70%);border:none;cursor:pointer}.shaka-skip-ad-button:disabled{background:rgba(0 0 0 / 30%)}.shaka-skip-ad-counter{padding:5px;background:rgba(0 0 0 / 70%);margin:0}/*!
30
+ */.shaka-spinner-svg{position:absolute;top:0;left:0;right:0;bottom:0;animation:rotate 2s linear infinite;transform-origin:center center;width:100%;height:100%;margin:0;padding:0}.shaka-spinner-path{stroke:#202124;stroke-dasharray:20,200;stroke-dashoffset:0;animation:dash 1s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.shaka-spacer{cursor:default;flex-shrink:1;flex-grow:1;margin:0}.shaka-overflow-menu,.shaka-settings-menu{overflow-x:hidden;overflow-y:auto;white-space:nowrap;background:#fff;box-shadow:0 1px 9px 0 rgba(0 0 0 / 40%);border-radius:2px;max-height:250px;min-width:180px;opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s;display:flex;flex-direction:column;position:absolute;z-index:2;right:15px;bottom:30px}.shaka-controls-container[casting=true] .shaka-overflow-menu,.shaka-controls-container[casting=true] .shaka-settings-menu,.shaka-controls-container[shown=true] .shaka-overflow-menu,.shaka-controls-container[shown=true] .shaka-settings-menu{opacity:1}.shaka-overflow-menu button,.shaka-settings-menu button{font-size:14px;background:0 0;color:#000;border:none;min-height:30px;padding:3.5px 6px;display:flex;align-items:center;cursor:pointer}.shaka-overflow-menu button:hover,.shaka-settings-menu button:hover{background:#e0e0e0}.shaka-overflow-menu button label,.shaka-settings-menu button label{cursor:pointer}.shaka-keyboard-navigation .shaka-overflow-menu button:focus,.shaka-keyboard-navigation .shaka-settings-menu button:focus{background:#e0e0e0}.shaka-overflow-menu i,.shaka-settings-menu i{padding-left:10px;padding-right:10px}.shaka-overflow-menu.shaka-low-position,.shaka-settings-menu.shaka-low-position{bottom:15px}.shaka-overflow-menu span{text-align:left}.shaka-overflow-button-label{position:relative;display:flex;flex-direction:column}.shaka-current-selection-span{color:rgba(0 0 0 / 54%)}.shaka-settings-menu span{margin-left:54px}.shaka-back-to-overflow-button span{margin-left:0}.shaka-back-to-overflow-button i{padding-right:20px}.shaka-auto-span{left:17px}.shaka-controls-container[ad-active=true]{pointer-events:none}.shaka-controls-container[ad-active=true] .shaka-bottom-controls{pointer-events:auto}.shaka-client-side-ad-container,.shaka-server-side-ad-container{position:absolute;left:0;right:0;top:0;bottom:0}.shaka-video-container[shaka-controls=true] .shaka-client-side-ad-container iframe,.shaka-video-container[shaka-controls=true] .shaka-server-side-ad-container iframe{height:90%}.shaka-server-side-ad-container{width:100%;height:100%;flex-shrink:1}.shaka-server-side-ad-container:not([ad-active=true]){pointer-events:none}.shaka-ad-controls{display:flex;flex-direction:row;z-index:1;padding-bottom:1%}.shaka-video-container:not([shaka-controls=true]) .shaka-ad-controls{display:none}.shaka-ad-controls button,.shaka-ad-controls div{color:#fff;font-size:initial}.shaka-ad-controls div:not(.shaka-skip-ad-counter){margin:1px}.shaka-ad-counter,.shaka-ad-position{display:flex;justify-content:flex-end;flex-direction:column;text-shadow:1px 1px 4px #000}.shaka-ad-controls .shaka-ad-position:not(.shaka-hidden)+.shaka-ad-counter{margin-left:.75em}.shaka-skip-ad-container{position:relative;right:calc((100% - 96%)/ 2 * -1);display:flex;flex-direction:row;margin:0}.shaka-skip-ad-button{padding:5px 15px;background:rgba(0 0 0 / 70%);border:none;cursor:pointer}.shaka-skip-ad-button:disabled{background:rgba(0 0 0 / 30%)}.shaka-skip-ad-counter{padding:5px;background:rgba(0 0 0 / 70%);margin:0}/*!
31
31
  * @license
32
32
  * The tooltip is based on https://github.com/felipefialho/css-components/
33
33
  * Local modifications have been performed.
@@ -1 +1 @@
1
- {"version":3,"sources":["$stdin"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["$stdin"],"names":[],"mappings":"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"}
@@ -143,9 +143,9 @@ ENABLED:"DEMO_ENABLED",FAST_HALF_LIFE:"DEMO_FAST_HALF_LIFE",FORCE_HTTPS:"DEMO_FO
143
143
  IGNORE_HLS_TEXT_FAILURES:"DEMO_IGNORE_HLS_TEXT_FAILURES",IGNORE_MANIFEST_PROGRAM_DATE_TIME:"DEMO_IGNORE_MANIFEST_PROGRAM_DATE_TIME",IGNORE_MIN_BUFFER_TIME:"DEMO_IGNORE_MIN_BUFFER_TIME",IGNORE_TEXT_FAILURES:"DEMO_IGNORE_TEXT_FAILURES",INACCURATE_MANIFEST_TOLERANCE:"DEMO_INACCURATE_MANIFEST_TOLERANCE",INITIAL_SEGMENT_LIMIT:"DEMO_INITIAL_SEGMENT_LIMIT",LANGUAGE_SECTION_HEADER:"DEMO_LANGUAGE_SECTION_HEADER",LOG_LEVEL:"DEMO_LOG_LEVEL",LOG_LEVEL_DEBUG:"DEMO_LOG_LEVEL_DEBUG",LOG_LEVEL_INFO:"DEMO_LOG_LEVEL_INFO",
144
144
  LOG_LEVEL_V:"DEMO_LOG_LEVEL_V",LOG_LEVEL_VV:"DEMO_LOG_LEVEL_VV",LOG_LICENSE_EXCHANGE:"DEMO_LOG_LICENSE_EXCHANGE",LOW_LATENCY:"DEMO_LOW_LATENCY",MANIFEST_RETRY_SECTION_HEADER:"DEMO_MANIFEST_RETRY_SECTION_HEADER",MANIFEST_SECTION_HEADER:"DEMO_MANIFEST_SECTION_HEADER",MAX_ATTEMPTS:"DEMO_MAX_ATTEMPTS",MAX_BANDWIDTH:"DEMO_MAX_BANDWIDTH",MAX_DISABLED_TIME:"DEMO_MAX_DISABLED_TIME",MAX_FRAMERATE:"DEMO_MAX_FRAMERATE",MAX_HEIGHT:"DEMO_MAX_HEIGHT",MAX_PIXELS:"DEMO_MAX_PIXELS",MAX_WIDTH:"DEMO_MAX_WIDTH",MIN_BANDWIDTH:"DEMO_MIN_BANDWIDTH",
145
145
  MIN_BYTES:"DEMO_MIN_BYTES",MIN_FRAMERATE:"DEMO_MIN_FRAMERATE",MIN_HEIGHT:"DEMO_MIN_HEIGHT",MIN_PIXELS:"DEMO_MIN_PIXELS",MIN_TOTAL_BYTES:"DEMO_MIN_TOTAL_BYTES",MIN_WIDTH:"DEMO_MIN_WIDTH",NETWORK_INFORMATION:"DEMO_NETWORK_INFORMATION",NUMBER_DECIMAL_WARNING:"DEMO_NUMBER_DECIMAL_WARNING",NUMBER_INTEGER_WARNING:"DEMO_NUMBER_INTEGER_WARNING",NUMBER_NONZERO_DECIMAL_WARNING:"DEMO_NUMBER_NONZERO_DECIMAL_WARNING",NUMBER_NONZERO_INTEGER_WARNING:"DEMO_NUMBER_NONZERO_INTEGER_WARNING",NUMBER_OF_PARALLEL_DOWNLOADS:"DEMO_NUMBER_OF_PARALLEL_DOWNLOADS",
146
- OFFLINE_SECTION_HEADER:"DEMO_OFFLINE_SECTION_HEADER",PREFER_FORCED_SUBS:"DEMO_PREFER_FORCED_SUBS",PREFER_NATIVE_HLS:"DEMO_PREFER_NATIVE_HLS",REBUFFERING_GOAL:"DEMO_REBUFFERING_GOAL",RESTRICTIONS_SECTION_HEADER:"DEMO_RESTRICTIONS_SECTION_HEADER",SAFE_SEEK_OFFSET:"DEMO_SAFE_SEEK_OFFSET",SAFE_SKIP_DISTANCE:"DEMO_SAFE_SKIP_DISTANCE",SEGMENT_RELATIVE_VTT_TIMING:"DEMO_SEGMENT_RELATIVE_VTT_TIMING",SESSION_ID:"DEMO_SESSION_ID",SHAKA_CONTROLS:"DEMO_SHAKA_CONTROLS",SLOW_HALF_LIFE:"DEMO_SLOW_HALF_LIFE",STALL_DETECTOR_ENABLED:"DEMO_STALL_DETECTOR_ENABLED",
147
- STALL_THRESHOLD:"DEMO_STALL_THRESHOLD",STALL_TIMEOUT:"DEMO_STALL_TIMEOUT",START_AT_SEGMENT_BOUNDARY:"DEMO_START_AT_SEGMENT_BOUNDARY",STREAMING_RETRY_SECTION_HEADER:"DEMO_STREAMING_RETRY_SECTION_HEADER",STREAMING_SECTION_HEADER:"DEMO_STREAMING_SECTION_HEADER",SWITCH_INTERVAL:"DEMO_SWITCH_INTERVAL",TEXT_LANGUAGE:"DEMO_TEXT_LANGUAGE",TEXT_ROLE:"DEMO_TEXT_ROLE",TIMEOUT:"DEMO_TIMEOUT",TRICK_PLAY_CONTROLS:"DEMO_TRICK_PLAY_CONTROLS",TRICK_PLAY_CONTROLS_WARNING:"DEMO_TRICK_PLAY_CONTROLS_WARNING",UI_LOCALE:"DEMO_UI_LOCALE",
148
- UPDATE_EXPIRATION_TIME:"DEMO_UPDATE_EXPIRATION_TIME",UPDATE_INTERVAL_SECONDS:"DEMO_UPDATE_INTERVAL_SECONDS",USE_HEADERS:"DEMO_USE_HEADERS",USE_NATIVE_HLS_SAFARI:"DEMO_USE_NATIVE_HLS_SAFARI",USE_PERSISTENT_LICENSES:"DEMO_USE_PERSISTENT_LICENSES",VIDEO_ROBUSTNESS:"DEMO_VIDEO_ROBUSTNESS",XLINK_FAIL_GRACEFULLY:"DEMO_XLINK_FAIL_GRACEFULLY"}};var ShakaDemoAssetInfo=function(a,b,c,d){this.name=a;this.shortName="";this.iconUri=b;this.manifestUri=c;this.source=d;this.disabled=this.focus=!1;this.extraText=[];this.description=this.certificateUri=null;this.isFeatured=!1;this.drm=[shakaAssets.KeySystem.CLEAR];this.features=[shakaAssets.Feature.VOD];this.licenseServers=new Map;this.licenseRequestHeaders=new Map;this.responseFilter=this.requestFilter=null;this.clearKeys=new Map;this.mediaPlaylistFullMimeType=this.mimeType=this.imaContentSrcId=
146
+ OFFLINE_SECTION_HEADER:"DEMO_OFFLINE_SECTION_HEADER",PARSE_INBAND_PSSH_ENABLED:"DEMO_PARSE_INBAND_PSSH_ENABLED",PREFER_FORCED_SUBS:"DEMO_PREFER_FORCED_SUBS",PREFER_NATIVE_HLS:"DEMO_PREFER_NATIVE_HLS",REBUFFERING_GOAL:"DEMO_REBUFFERING_GOAL",RESTRICTIONS_SECTION_HEADER:"DEMO_RESTRICTIONS_SECTION_HEADER",SAFE_SEEK_OFFSET:"DEMO_SAFE_SEEK_OFFSET",SAFE_SKIP_DISTANCE:"DEMO_SAFE_SKIP_DISTANCE",SEGMENT_RELATIVE_VTT_TIMING:"DEMO_SEGMENT_RELATIVE_VTT_TIMING",SESSION_ID:"DEMO_SESSION_ID",SHAKA_CONTROLS:"DEMO_SHAKA_CONTROLS",
147
+ SLOW_HALF_LIFE:"DEMO_SLOW_HALF_LIFE",STALL_DETECTOR_ENABLED:"DEMO_STALL_DETECTOR_ENABLED",STALL_THRESHOLD:"DEMO_STALL_THRESHOLD",STALL_TIMEOUT:"DEMO_STALL_TIMEOUT",START_AT_SEGMENT_BOUNDARY:"DEMO_START_AT_SEGMENT_BOUNDARY",STREAMING_RETRY_SECTION_HEADER:"DEMO_STREAMING_RETRY_SECTION_HEADER",STREAMING_SECTION_HEADER:"DEMO_STREAMING_SECTION_HEADER",SWITCH_INTERVAL:"DEMO_SWITCH_INTERVAL",TEXT_LANGUAGE:"DEMO_TEXT_LANGUAGE",TEXT_ROLE:"DEMO_TEXT_ROLE",TIMEOUT:"DEMO_TIMEOUT",TRICK_PLAY_CONTROLS:"DEMO_TRICK_PLAY_CONTROLS",
148
+ TRICK_PLAY_CONTROLS_WARNING:"DEMO_TRICK_PLAY_CONTROLS_WARNING",UI_LOCALE:"DEMO_UI_LOCALE",UPDATE_EXPIRATION_TIME:"DEMO_UPDATE_EXPIRATION_TIME",UPDATE_INTERVAL_SECONDS:"DEMO_UPDATE_INTERVAL_SECONDS",USE_HEADERS:"DEMO_USE_HEADERS",USE_NATIVE_HLS_SAFARI:"DEMO_USE_NATIVE_HLS_SAFARI",USE_PERSISTENT_LICENSES:"DEMO_USE_PERSISTENT_LICENSES",VIDEO_ROBUSTNESS:"DEMO_VIDEO_ROBUSTNESS",XLINK_FAIL_GRACEFULLY:"DEMO_XLINK_FAIL_GRACEFULLY"}};var ShakaDemoAssetInfo=function(a,b,c,d){this.name=a;this.shortName="";this.iconUri=b;this.manifestUri=c;this.source=d;this.disabled=this.focus=!1;this.extraText=[];this.description=this.certificateUri=null;this.isFeatured=!1;this.drm=[shakaAssets.KeySystem.CLEAR];this.features=[shakaAssets.Feature.VOD];this.licenseServers=new Map;this.licenseRequestHeaders=new Map;this.responseFilter=this.requestFilter=null;this.clearKeys=new Map;this.mediaPlaylistFullMimeType=this.mimeType=this.imaContentSrcId=
149
149
  this.imaAssetKey=this.imaVideoId=this.adTagUri=this.extraConfig=null;this.storedProgress=1};ShakaDemoAssetInfo.prototype.addDescription=function(a){this.description=a;return this};ShakaDemoAssetInfo.prototype.addCertificateUri=function(a){this.certificateUri=a;return this};ShakaDemoAssetInfo.caseLessAlphaComparator_=function(a,b){return a.toLowerCase()<b.toLowerCase()?-1:a.toLowerCase()>b.toLowerCase()?1:0};
150
150
  ShakaDemoAssetInfo.prototype.addFeature=function(a){var b=shakaAssets.Feature;a==b.LIVE&&(this.features=this.features.filter(function(c){return c!=b.VOD}));this.features.push(a);this.features.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this};ShakaDemoAssetInfo.prototype.addKeySystem=function(a){this.isClear()&&(this.drm=[]);this.drm.push(a);this.drm.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this};
151
151
  ShakaDemoAssetInfo.prototype.isClear=function(){return 1==this.drm.length&&this.drm[0]==shakaAssets.KeySystem.CLEAR};ShakaDemoAssetInfo.prototype.setMediaPlaylistFullMimeType=function(a){this.mediaPlaylistFullMimeType=a;return this};ShakaDemoAssetInfo.prototype.setExtraConfig=function(a){this.extraConfig=a;return this};ShakaDemoAssetInfo.prototype.setMimeType=function(a){this.mimeType=a;return this};ShakaDemoAssetInfo.prototype.setRequestFilter=function(a){this.requestFilter=a;return this};
@@ -280,9 +280,9 @@ document.createElement("div");this.latestRow_.appendChild(this.latestElementCont
280
280
  shakaDemo.Config.init=function(){var a=shakaDemoMain.getHamburgerMenu();shakaDemoConfig=new shakaDemo.Config(a)};shakaDemo.Config.prototype.setContentAvailability_=function(a){a?this.container_.classList.remove("hidden"):this.container_.classList.add("hidden")};
281
281
  shakaDemo.Config.prototype.reload_=function(){shaka.util.Dom.removeAllChildren(this.container_);this.sections_=[];this.addMetaSection_();this.addLanguageSection_();this.addAbrSection_();this.addOfflineSection_();this.addDrmSection_();this.addStreamingSection_();this.addManifestSection_();this.addRetrictionsSection_("",shakaDemo.MessageIds.RESTRICTIONS_SECTION_HEADER);this.addCmcdSection_()};
282
282
  shakaDemo.Config.prototype.reloadAndSaveState_=function(){var a=this.sections_.map(function(d){return d.getIsOpen()});this.reload_();for(var b=0;b<a.length;b++){var c=this.sections_[b];a[b]&&c.open()}componentHandler.upgradeDom()};
283
- shakaDemo.Config.prototype.addDrmSection_=function(){var a=this,b=shakaDemo.MessageIds,c=this.resolveExternLink_(".DrmConfiguration");this.addSection_(b.DRM_SECTION_HEADER,c).addBoolInput_(b.DELAY_LICENSE,"drm.delayLicenseRequestUntilPlayed").addBoolInput_(b.LOG_LICENSE_EXCHANGE,"drm.logLicenseExchange").addNumberInput_(b.UPDATE_EXPIRATION_TIME,"drm.updateExpirationTime",!0,!1,!0);var d=shakaDemoMain.getConfiguration().drm.advanced||{};c=function(f,g,h){a.addDatalistInput_(f,h,function(k){for(var l=
284
- $jscomp.makeIterator(shakaDemo.Main.commonDrmSystems),m=l.next();!m.done;m=l.next())m=m.value,m in d||(d[m]=shakaDemo.Main.defaultAdvancedDrmConfig());for(var n in d)d[n][g]=k.value;shakaDemoMain.configure("drm.advanced",d);shakaDemoMain.remakeHash()});if(f=Object.keys(d)[0])f=d[f][g],a.latestInput_.input().value=f};var e="SW_SECURE_CRYPTO SW_SECURE_DECODE HW_SECURE_CRYPTO HW_SECURE_DECODE HW_SECURE_ALL 150 2000 3000".split(" ");c(b.VIDEO_ROBUSTNESS,"videoRobustness",e);c(b.AUDIO_ROBUSTNESS,"audioRobustness",
285
- e);c(b.DRM_SESSION_TYPE,"sessionType",["temporary","persistent-license"]);this.addRetrySection_("drm",b.DRM_RETRY_SECTION_HEADER)};
283
+ shakaDemo.Config.prototype.addDrmSection_=function(){var a=this,b=shakaDemo.MessageIds,c=this.resolveExternLink_(".DrmConfiguration");this.addSection_(b.DRM_SECTION_HEADER,c).addBoolInput_(b.DELAY_LICENSE,"drm.delayLicenseRequestUntilPlayed").addBoolInput_(b.LOG_LICENSE_EXCHANGE,"drm.logLicenseExchange").addNumberInput_(b.UPDATE_EXPIRATION_TIME,"drm.updateExpirationTime",!0,!1,!0).addBoolInput_(b.PARSE_INBAND_PSSH_ENABLED,"drm.parseInbandPsshEnabled");var d=shakaDemoMain.getConfiguration().drm.advanced||
284
+ {};c=function(f,g,h){a.addDatalistInput_(f,h,function(k){for(var l=$jscomp.makeIterator(shakaDemo.Main.commonDrmSystems),m=l.next();!m.done;m=l.next())m=m.value,m in d||(d[m]=shakaDemo.Main.defaultAdvancedDrmConfig());for(var n in d)d[n][g]=k.value;shakaDemoMain.configure("drm.advanced",d);shakaDemoMain.remakeHash()});if(f=Object.keys(d)[0])f=d[f][g],a.latestInput_.input().value=f};var e="SW_SECURE_CRYPTO SW_SECURE_DECODE HW_SECURE_CRYPTO HW_SECURE_DECODE HW_SECURE_ALL 150 2000 3000".split(" ");c(b.VIDEO_ROBUSTNESS,
285
+ "videoRobustness",e);c(b.AUDIO_ROBUSTNESS,"audioRobustness",e);c(b.DRM_SESSION_TYPE,"sessionType",["temporary","persistent-license"]);this.addRetrySection_("drm",b.DRM_RETRY_SECTION_HEADER)};
286
286
  shakaDemo.Config.prototype.addManifestSection_=function(){var a=shakaDemo.MessageIds,b=this.resolveExternLink_(".ManifestConfiguration");this.addSection_(a.MANIFEST_SECTION_HEADER,b).addBoolInput_(a.IGNORE_DASH_DRM,"manifest.dash.ignoreDrmInfo").addBoolInput_(a.AUTO_CORRECT_DASH_DRIFT,"manifest.dash.autoCorrectDrift").addBoolInput_(a.DISABLE_XLINK_PROCESSING,"manifest.dash.disableXlinkProcessing").addBoolInput_(a.XLINK_FAIL_GRACEFULLY,"manifest.dash.xlinkFailGracefully").addBoolInput_(a.IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY,
287
287
  "manifest.dash.ignoreSuggestedPresentationDelay").addBoolInput_(a.IGNORE_DASH_EMPTY_ADAPTATION_SET,"manifest.dash.ignoreEmptyAdaptationSet").addBoolInput_(a.IGNORE_DASH_MAX_SEGMENT_DURATION,"manifest.dash.ignoreMaxSegmentDuration").addBoolInput_(a.IGNORE_HLS_TEXT_FAILURES,"manifest.hls.ignoreTextStreamFailures").addBoolInput_(a.IGNORE_HLS_IMAGE_FAILURES,"manifest.hls.ignoreImageStreamFailures").addTextInput_(a.DEFAULT_AUDIO_CODEC,"manifest.hls.defaultAudioCodec").addTextInput_(a.DEFAULT_VIDEO_CODEC,
288
288
  "manifest.hls.defaultVideoCodec").addBoolInput_(a.IGNORE_MANIFEST_PROGRAM_DATE_TIME,"manifest.hls.ignoreManifestProgramDateTime").addNumberInput_(a.AVAILABILITY_WINDOW_OVERRIDE,"manifest.availabilityWindowOverride",!0,!1,!0).addTextInput_(a.CLOCK_SYNC_URI,"manifest.dash.clockSyncUri").addNumberInput_(a.DEFAULT_PRESENTATION_DELAY,"manifest.defaultPresentationDelay").addBoolInput_(a.IGNORE_MIN_BUFFER_TIME,"manifest.dash.ignoreMinBufferTime").addNumberInput_(a.INITIAL_SEGMENT_LIMIT,"manifest.dash.initialSegmentLimit",