shaka-player 3.2.12 → 3.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/build-and-test.yaml +42 -22
- package/.github/workflows/compute-incremental-coverage.py +14 -3
- package/.github/workflows/custom-actions/set-commit-status/action.yaml +1 -5
- package/.github/workflows/deflake.yaml +28 -0
- package/.github/workflows/demo-version-index.yaml +9 -1
- package/.github/workflows/nightly-demo.yaml +1 -1
- package/.github/workflows/release-please.yaml +4 -4
- package/.github/workflows/report-incremental-coverage.yaml +1 -1
- package/.github/workflows/selenium-lab-tests.yaml +21 -10
- package/AUTHORS +3 -0
- package/CHANGELOG.md +25 -0
- package/CONTRIBUTORS +2 -0
- package/dist/deps.js +3 -3
- package/dist/locales.js +28 -28
- package/dist/shaka-player.compiled.d.ts +1 -0
- package/dist/shaka-player.compiled.debug.d.ts +1 -0
- package/dist/shaka-player.compiled.debug.externs.js +1 -0
- package/dist/shaka-player.compiled.debug.js +181 -179
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +1 -0
- package/dist/shaka-player.compiled.js +664 -663
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +1 -0
- package/dist/shaka-player.ui.debug.d.ts +1 -0
- package/dist/shaka-player.ui.debug.externs.js +1 -0
- package/dist/shaka-player.ui.debug.js +222 -220
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +1 -0
- package/dist/shaka-player.ui.js +819 -818
- package/dist/shaka-player.ui.map +4 -4
- package/docs/jsdoc-template/publish.js +33 -0
- package/docs/jsdoc-template/tmpl/container.tmpl +4 -1
- package/docs/jsdoc.conf.json +1 -0
- package/docs/tutorials/welcome.md +2 -2
- package/lib/ads/client_side_ad_manager.js +5 -2
- package/lib/cast/cast_sender.js +39 -14
- package/lib/cea/cea608_memory.js +4 -0
- package/lib/media/drm_engine.js +4 -2
- package/lib/media/streaming_engine.js +41 -4
- package/lib/offline/indexeddb/storage_mechanism.js +24 -0
- package/lib/player.js +1 -1
- package/lib/polyfill/media_capabilities.js +1 -0
- package/lib/text/ttml_text_parser.js +69 -87
- package/lib/util/error.js +7 -0
- package/lib/util/periods.js +9 -9
- package/lib/util/platform.js +34 -0
- package/lib/util/stream_utils.js +2 -1
- package/lib/util/xml_utils.js +45 -6
- package/package.json +1 -1
- package/test/cea/cea608_memory_unit.js +88 -0
- package/test/media/streaming_engine_integration.js +8 -7
- package/test/offline/offline_integration.js +3 -3
- package/test/offline/storage_integration.js +30 -0
- package/test/test/util/ttml_utils.js +0 -2
- package/test/text/ttml_text_parser_unit.js +46 -0
- package/test/ui/text_displayer_layout_unit.js +17 -2
- package/test/util/periods_unit.js +149 -11
- package/test/util/xml_utils_unit.js +64 -0
|
@@ -2,7 +2,7 @@ name: Build and Test PR
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
pull_request: # Trigger for pull requests.
|
|
5
|
-
types: [opened, synchronize, reopened]
|
|
5
|
+
types: [opened, synchronize, reopened, ready_for_review]
|
|
6
6
|
branches:
|
|
7
7
|
- main
|
|
8
8
|
- v[0-9]*
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
runs-on: ubuntu-latest
|
|
26
26
|
steps:
|
|
27
27
|
- name: Checkout code
|
|
28
|
-
uses: actions/checkout@
|
|
28
|
+
uses: actions/checkout@v3
|
|
29
29
|
with:
|
|
30
30
|
ref: ${{ github.event.inputs.ref || github.ref }}
|
|
31
31
|
|
|
@@ -41,12 +41,17 @@ 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"
|
|
52
|
+
- os: ubuntu-latest
|
|
53
|
+
browser: Edge
|
|
54
|
+
extra_flags: "--use-xvfb"
|
|
50
55
|
|
|
51
56
|
- os: macos-latest
|
|
52
57
|
browser: Chrome
|
|
@@ -57,7 +62,7 @@ jobs:
|
|
|
57
62
|
- os: macos-latest
|
|
58
63
|
browser: Safari
|
|
59
64
|
- os: macos-latest
|
|
60
|
-
browser: Safari-
|
|
65
|
+
browser: Safari-old
|
|
61
66
|
|
|
62
67
|
- os: windows-latest
|
|
63
68
|
browser: Chrome
|
|
@@ -83,25 +88,26 @@ jobs:
|
|
|
83
88
|
run: sudo apt -y update && sudo apt -y install ffmpeg
|
|
84
89
|
|
|
85
90
|
- name: Checkout code
|
|
86
|
-
uses: actions/checkout@
|
|
91
|
+
uses: actions/checkout@v3
|
|
87
92
|
with:
|
|
88
93
|
ref: ${{ github.event.inputs.ref || github.ref }}
|
|
89
94
|
|
|
90
|
-
# Safari
|
|
91
|
-
# the standard version, at least not on GitHub's VMs. If
|
|
92
|
-
# install directly to the root with sudo, it will appear to
|
|
93
|
-
# will have no effect. If you try to script it explicitly
|
|
94
|
-
# and cp, this will fail. Safari may be on a read-only
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
# Older versions of Safari can be installed, but not to the root, and it
|
|
96
|
+
# can't replace the standard version, at least not on GitHub's VMs. If
|
|
97
|
+
# you try to install directly to the root with sudo, it will appear to
|
|
98
|
+
# succeed, but will have no effect. If you try to script it explicitly
|
|
99
|
+
# with rm -rf and cp, this will fail. Safari may be on a read-only
|
|
100
|
+
# filesystem.
|
|
101
|
+
- name: Install old Safari to home directory
|
|
102
|
+
if: matrix.os == 'macos-latest' && matrix.browser == 'Safari-old'
|
|
97
103
|
run: |
|
|
98
|
-
# Download Safari
|
|
99
|
-
#
|
|
100
|
-
|
|
104
|
+
# Download Safari 15
|
|
105
|
+
# This URL discovered through the seed files listed at
|
|
106
|
+
# https://github.com/zhangyoufu/swscan.apple.com/blob/master/url.txt
|
|
107
|
+
curl -Lv http://swcdn.apple.com/content/downloads/42/33/012-57329-A_41P2VU6UHN/5fw5vna27fdw4mqfak5adj3pjpxvo9hgh7/Safari15.6.1CatalinaAuto.pkg > Safari.pkg
|
|
101
108
|
|
|
102
|
-
# Install Safari
|
|
103
|
-
|
|
104
|
-
installer -pkg Safari14.0CatalinaAuto.pkg -target CurrentUserHomeDirectory
|
|
109
|
+
# Install older Safari to homedir specifically.
|
|
110
|
+
installer -pkg Safari.pkg -target CurrentUserHomeDirectory
|
|
105
111
|
|
|
106
112
|
# Install a launcher that can execute a shell script to launch this
|
|
107
113
|
npm install karma-script-launcher --save-dev
|
|
@@ -114,7 +120,7 @@ jobs:
|
|
|
114
120
|
run: |
|
|
115
121
|
browser=${{ matrix.browser }}
|
|
116
122
|
|
|
117
|
-
if [[ "$browser" == "Safari-
|
|
123
|
+
if [[ "$browser" == "Safari-old" ]]; then
|
|
118
124
|
# Replace the browser name with a script that can launch this
|
|
119
125
|
# browser from the command line.
|
|
120
126
|
browser="$PWD/.github/workflows/safari-homedir-launcher.sh"
|
|
@@ -144,7 +150,7 @@ jobs:
|
|
|
144
150
|
cp "$coverage_folder"/coverage-details.json coverage/staging/
|
|
145
151
|
echo "${{ github.event.number }}" > coverage/staging/pr-number.json
|
|
146
152
|
|
|
147
|
-
echo "
|
|
153
|
+
echo "coverage_found=true" >> $GITHUB_OUTPUT
|
|
148
154
|
echo "Coverage report staged."
|
|
149
155
|
else
|
|
150
156
|
echo "No coverage report generated."
|
|
@@ -165,6 +171,18 @@ jobs:
|
|
|
165
171
|
# an environment variable set, the file should definitely be there.
|
|
166
172
|
if-no-files-found: error
|
|
167
173
|
|
|
174
|
+
# Upload new screenshots and diffs on failure; ignore if missing
|
|
175
|
+
- name: Upload screenshots
|
|
176
|
+
uses: actions/upload-artifact@v3
|
|
177
|
+
if: ${{ failure() }}
|
|
178
|
+
with:
|
|
179
|
+
name: screenshots-${{ matrix.browser }}
|
|
180
|
+
path: |
|
|
181
|
+
test/test/assets/screenshots/*/*.png-new
|
|
182
|
+
test/test/assets/screenshots/*/*.png-diff
|
|
183
|
+
if-no-files-found: ignore
|
|
184
|
+
retention-days: 5
|
|
185
|
+
|
|
168
186
|
build_in_docker:
|
|
169
187
|
# Don't waste time doing a full matrix of test runs when there was an
|
|
170
188
|
# obvious linter error.
|
|
@@ -173,9 +191,11 @@ jobs:
|
|
|
173
191
|
runs-on: ubuntu-latest
|
|
174
192
|
steps:
|
|
175
193
|
- name: Checkout code
|
|
176
|
-
uses: actions/checkout@
|
|
194
|
+
uses: actions/checkout@v3
|
|
177
195
|
with:
|
|
178
196
|
ref: ${{ github.event.inputs.ref || github.ref }}
|
|
179
197
|
|
|
180
198
|
- name: Docker
|
|
181
|
-
run:
|
|
199
|
+
run: |
|
|
200
|
+
docker build -t shaka-player-build build/docker
|
|
201
|
+
docker run -v $(pwd):/usr/src --user $(id -u):$(id -g) shaka-player-build
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import argparse
|
|
18
18
|
import io
|
|
19
19
|
import json
|
|
20
|
+
import os
|
|
20
21
|
import re
|
|
21
22
|
import subprocess
|
|
22
23
|
import zipfile
|
|
@@ -221,6 +222,16 @@ def IncrementalCoverage(pr, coverage_details):
|
|
|
221
222
|
return None
|
|
222
223
|
return num_covered / num_changed
|
|
223
224
|
|
|
225
|
+
def set_output(name, value):
|
|
226
|
+
path = os.environ.get("GITHUB_OUTPUT")
|
|
227
|
+
if path:
|
|
228
|
+
# Inside GitHub Actions, output the data to a special file GitHub provides.
|
|
229
|
+
with open(path, "a") as f:
|
|
230
|
+
f.write("{}={}\n".format(name, value))
|
|
231
|
+
else:
|
|
232
|
+
# Outside of GitHub Actions, just print the data.
|
|
233
|
+
print("OUTPUT {}={}".format(name, value))
|
|
234
|
+
|
|
224
235
|
def main():
|
|
225
236
|
parser = argparse.ArgumentParser(
|
|
226
237
|
description="Compute incremental code coverage for a PR",
|
|
@@ -241,11 +252,11 @@ def main():
|
|
|
241
252
|
pr = PullRequest(args.repo, pr_number)
|
|
242
253
|
coverage = IncrementalCoverage(pr, coverage_details)
|
|
243
254
|
|
|
244
|
-
|
|
255
|
+
set_output("pr_number", str(pr_number))
|
|
245
256
|
if coverage is None:
|
|
246
|
-
|
|
257
|
+
set_output("coverage", "No instrumented code was changed.")
|
|
247
258
|
else:
|
|
248
|
-
|
|
259
|
+
set_output("coverage", "%.2f%%" % (coverage * 100.0))
|
|
249
260
|
|
|
250
261
|
if __name__ == "__main__":
|
|
251
262
|
main()
|
|
@@ -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
|
|
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
|
|
@@ -9,12 +9,20 @@ on:
|
|
|
9
9
|
paths:
|
|
10
10
|
- .github/workflows/demo-version-index.yaml
|
|
11
11
|
- app-engine/demo-version-index/**
|
|
12
|
+
release:
|
|
13
|
+
types: [published]
|
|
12
14
|
|
|
13
15
|
jobs:
|
|
14
16
|
appspot:
|
|
15
17
|
runs-on: ubuntu-latest
|
|
16
18
|
steps:
|
|
17
|
-
- uses: actions/checkout@
|
|
19
|
+
- uses: actions/checkout@v3
|
|
20
|
+
with:
|
|
21
|
+
# We need a list of all tags for this, so fetch the entire history.
|
|
22
|
+
fetch-depth: 0
|
|
23
|
+
|
|
24
|
+
- name: Generate static content
|
|
25
|
+
run: python3 app-engine/demo-version-index/generate.py
|
|
18
26
|
|
|
19
27
|
- uses: google-github-actions/auth@v0
|
|
20
28
|
with:
|
|
@@ -23,7 +23,7 @@ jobs:
|
|
|
23
23
|
default-branch: ${{ github.ref_name }}
|
|
24
24
|
|
|
25
25
|
# If we didn't create a release, we may have created or updated a PR.
|
|
26
|
-
- uses: actions/checkout@
|
|
26
|
+
- uses: actions/checkout@v3
|
|
27
27
|
if: steps.release.outputs.release_created == false
|
|
28
28
|
- name: Custom update Player version
|
|
29
29
|
if: steps.release.outputs.release_created == false
|
|
@@ -53,7 +53,7 @@ jobs:
|
|
|
53
53
|
needs: release
|
|
54
54
|
if: needs.release.outputs.release_created && endsWith(needs.release.outputs.tag_name, '.0') == false
|
|
55
55
|
steps:
|
|
56
|
-
- uses: actions/checkout@
|
|
56
|
+
- uses: actions/checkout@v3
|
|
57
57
|
with:
|
|
58
58
|
ref: main
|
|
59
59
|
- name: Tag the main branch
|
|
@@ -70,7 +70,7 @@ jobs:
|
|
|
70
70
|
needs: release
|
|
71
71
|
if: needs.release.outputs.release_created
|
|
72
72
|
steps:
|
|
73
|
-
- uses: actions/checkout@
|
|
73
|
+
- uses: actions/checkout@v3
|
|
74
74
|
with:
|
|
75
75
|
fetch-depth: 0
|
|
76
76
|
persist-credentials: false
|
|
@@ -99,7 +99,7 @@ jobs:
|
|
|
99
99
|
needs: release
|
|
100
100
|
if: needs.release.outputs.release_created
|
|
101
101
|
steps:
|
|
102
|
-
- uses: actions/checkout@
|
|
102
|
+
- uses: actions/checkout@v3
|
|
103
103
|
with:
|
|
104
104
|
fetch-depth: 0
|
|
105
105
|
persist-credentials: false
|
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
else
|
|
33
33
|
LAB_TEST_REF="main"
|
|
34
34
|
fi
|
|
35
|
-
echo "
|
|
35
|
+
echo "REF=$LAB_TEST_REF" >> $GITHUB_OUTPUT
|
|
36
36
|
|
|
37
37
|
# Configure the build matrix based on our grid's YAML config.
|
|
38
38
|
# The matrix contents will be computed by this first job and deserialized
|
|
@@ -45,9 +45,9 @@ jobs:
|
|
|
45
45
|
INCLUDE: ${{ steps.configure.outputs.INCLUDE }}
|
|
46
46
|
|
|
47
47
|
steps:
|
|
48
|
-
- uses: actions/checkout@
|
|
48
|
+
- uses: actions/checkout@v3
|
|
49
49
|
with:
|
|
50
|
-
ref: ${{ needs.compute-ref.REF }}
|
|
50
|
+
ref: ${{ needs.compute-ref.outputs.REF }}
|
|
51
51
|
|
|
52
52
|
- name: Install dependencies
|
|
53
53
|
run: npm ci
|
|
@@ -77,7 +77,9 @@ jobs:
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
// Output JSON object consumed by the build matrix below.
|
|
80
|
-
|
|
80
|
+
fs.appendFileSync(
|
|
81
|
+
process.env['GITHUB_OUTPUT'],
|
|
82
|
+
`INCLUDE=${ JSON.stringify(include) }\n`);
|
|
81
83
|
|
|
82
84
|
// Log the output, for the sake of debugging this script.
|
|
83
85
|
console.log({include});
|
|
@@ -90,9 +92,9 @@ jobs:
|
|
|
90
92
|
needs: compute-ref
|
|
91
93
|
runs-on: ubuntu-latest
|
|
92
94
|
steps:
|
|
93
|
-
- uses: actions/checkout@
|
|
95
|
+
- uses: actions/checkout@v3
|
|
94
96
|
with:
|
|
95
|
-
ref: ${{ needs.compute-ref.REF }}
|
|
97
|
+
ref: ${{ needs.compute-ref.outputs.REF }}
|
|
96
98
|
|
|
97
99
|
- name: Set commit status to pending
|
|
98
100
|
uses: ./.github/workflows/custom-actions/set-commit-status
|
|
@@ -132,9 +134,9 @@ jobs:
|
|
|
132
134
|
name: ${{ matrix.browser }}
|
|
133
135
|
|
|
134
136
|
steps:
|
|
135
|
-
- uses: actions/checkout@
|
|
137
|
+
- uses: actions/checkout@v3
|
|
136
138
|
with:
|
|
137
|
-
ref: ${{ needs.compute-ref.REF }}
|
|
139
|
+
ref: ${{ needs.compute-ref.outputs.REF }}
|
|
138
140
|
|
|
139
141
|
- name: Set commit status to pending
|
|
140
142
|
uses: ./.github/workflows/custom-actions/set-commit-status
|
|
@@ -180,6 +182,15 @@ jobs:
|
|
|
180
182
|
# the container.
|
|
181
183
|
- name: Test Player
|
|
182
184
|
run: |
|
|
185
|
+
# Generate a coverage report from uncompiled code on ChromeLinux.
|
|
186
|
+
# It should be the uncompiled build, or else we won't execute any
|
|
187
|
+
# coverage instrumentation on full-stack player integration tests.
|
|
188
|
+
if [[ "${{ matrix.browser }}" == "ChromeLinux" ]]; then
|
|
189
|
+
extra_flags="--html-coverage-report --uncompiled"
|
|
190
|
+
else
|
|
191
|
+
extra_flags=""
|
|
192
|
+
fi
|
|
193
|
+
|
|
183
194
|
python3 build/test.py \
|
|
184
195
|
--no-build \
|
|
185
196
|
--reporters spec --spec-hide-passed \
|
|
@@ -189,7 +200,7 @@ jobs:
|
|
|
189
200
|
--grid-config build/shaka-lab.yaml \
|
|
190
201
|
--grid-address selenium-grid.lab:4444 \
|
|
191
202
|
--browsers ${{ matrix.browser }} \
|
|
192
|
-
|
|
203
|
+
$extra_flags
|
|
193
204
|
|
|
194
205
|
- name: Find coverage report (ChromeLinux only)
|
|
195
206
|
id: coverage
|
|
@@ -209,7 +220,7 @@ jobs:
|
|
|
209
220
|
|
|
210
221
|
if [ -f "$coverage_report" ]; then
|
|
211
222
|
echo "Found coverage report: $coverage_report"
|
|
212
|
-
echo "
|
|
223
|
+
echo "coverage_report=$coverage_report" >> $GITHUB_OUTPUT
|
|
213
224
|
else
|
|
214
225
|
echo "Could not locate coverage report!"
|
|
215
226
|
exit 1
|
package/AUTHORS
CHANGED
|
@@ -66,6 +66,8 @@ Rostislav Hejduk <Ross-cz@users.noreply.github.com>
|
|
|
66
66
|
SameGoal Inc. <*@samegoal.com>
|
|
67
67
|
Sanborn Hilland <sanbornh@rogers.com>
|
|
68
68
|
Sander Saares <sander@saares.eu>
|
|
69
|
+
Sanil Raut <sr1990003@gmail.com>
|
|
70
|
+
Seongryun Jo <ocipap0531@gmail.com>
|
|
69
71
|
Swank Motion Pictures Inc. <*@swankmp.com>
|
|
70
72
|
TalkTalk Plc <*@talktalkplc.com>
|
|
71
73
|
Tatsiana Gelahova <tatsiana.gelahova@gmail.com>
|
|
@@ -77,3 +79,4 @@ Verizon Digital Media Services <*@verizondigitalmedia.com>
|
|
|
77
79
|
Vincent Valot <valot.vince@gmail.com>
|
|
78
80
|
Wayne Morgan <wayne.morgan.dev@gmail.com>
|
|
79
81
|
Raymond Cheng <raycheng100@gmail.com>
|
|
82
|
+
Blue Billywig <*@bluebillywig.com>
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.2.14](https://github.com/shaka-project/shaka-player/compare/v3.2.13...v3.2.14) (2022-10-29)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **ads:** Fix IMA crash when autoplay is rejected ([#4518](https://github.com/shaka-project/shaka-player/issues/4518)) ([f619ee9](https://github.com/shaka-project/shaka-player/commit/f619ee981fdbed918835ceb5d703ee6461a5a8fe)), closes [#4179](https://github.com/shaka-project/shaka-player/issues/4179)
|
|
9
|
+
* Fix multi-period DASH with descriptive audio ([#4629](https://github.com/shaka-project/shaka-player/issues/4629)) ([a92493c](https://github.com/shaka-project/shaka-player/commit/a92493c009a4cf3a8a3d95c7fbd2c13b46c4d024)), closes [#4500](https://github.com/shaka-project/shaka-player/issues/4500)
|
|
10
|
+
* Force using mcap polyfill on EOS browsers ([#4630](https://github.com/shaka-project/shaka-player/issues/4630)) ([a8ea1ad](https://github.com/shaka-project/shaka-player/commit/a8ea1adb8c2559e49d668a69448c837ef4670c04))
|
|
11
|
+
* Limit key ids to 32 characters ([#4614](https://github.com/shaka-project/shaka-player/issues/4614)) ([976e932](https://github.com/shaka-project/shaka-player/commit/976e932c2af6ce7b6f7db9c253eb25b4c28e39c5))
|
|
12
|
+
* Make XML parsing secure ([#4598](https://github.com/shaka-project/shaka-player/issues/4598)) ([09aed18](https://github.com/shaka-project/shaka-player/commit/09aed189431b13d46050501d9a8ad98a7bdf1950))
|
|
13
|
+
* **offline:** Add storage muxer init timeout ([#4566](https://github.com/shaka-project/shaka-player/issues/4566)) ([251533c](https://github.com/shaka-project/shaka-player/commit/251533c7feda9d474d779e3d8f70489d0413f917))
|
|
14
|
+
|
|
15
|
+
## [3.2.13](https://github.com/shaka-project/shaka-player/compare/v3.2.12...v3.2.13) (2022-10-07)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* allow build without text ([#4506](https://github.com/shaka-project/shaka-player/issues/4506)) ([5f3afd4](https://github.com/shaka-project/shaka-player/commit/5f3afd443cf9999997a471eee702b3b76c5e350e))
|
|
21
|
+
* allow the playback on platforms when low latency APIs are not supported ([#4485](https://github.com/shaka-project/shaka-player/issues/4485)) ([0239aa5](https://github.com/shaka-project/shaka-player/commit/0239aa50d9653ebe6e44e8619fd7bc25d378ff6d))
|
|
22
|
+
* check for negative rows before moving ([#4510](https://github.com/shaka-project/shaka-player/issues/4510)) ([12e3305](https://github.com/shaka-project/shaka-player/commit/12e3305e6d121ed1cb3d3cf686be68cfdff2d9fb)), closes [#4508](https://github.com/shaka-project/shaka-player/issues/4508)
|
|
23
|
+
* Filter unsupported H.264 streams in Xbox ([#4493](https://github.com/shaka-project/shaka-player/issues/4493)) ([ea02766](https://github.com/shaka-project/shaka-player/commit/ea0276686d77e3444cf14f30f3f294c48be117e8))
|
|
24
|
+
* Fix hang when seeking to the last segment ([#4537](https://github.com/shaka-project/shaka-player/issues/4537)) ([951aaea](https://github.com/shaka-project/shaka-player/commit/951aaea8225b75beea5d2699b0213bb1a950c679))
|
|
25
|
+
* Respect existing app usage of Cast SDK ([#4523](https://github.com/shaka-project/shaka-player/issues/4523)) ([da5fd15](https://github.com/shaka-project/shaka-player/commit/da5fd1524a415d93c7e27b3557ec994d34fb0525)), closes [#4521](https://github.com/shaka-project/shaka-player/issues/4521)
|
|
26
|
+
* **ttml:** Default TTML background color to transparent if unspecified ([#4496](https://github.com/shaka-project/shaka-player/issues/4496)) ([0c6ad6d](https://github.com/shaka-project/shaka-player/commit/0c6ad6ddb30067e5872f2715bdcd8d2975bec23e)), closes [#4468](https://github.com/shaka-project/shaka-player/issues/4468)
|
|
27
|
+
|
|
3
28
|
## [3.2.12](https://github.com/shaka-project/shaka-player/compare/v3.2.11...v3.2.12) (2022-08-31)
|
|
4
29
|
|
|
5
30
|
|
package/CONTRIBUTORS
CHANGED
|
@@ -99,6 +99,7 @@ Sander Saares <sander@saares.eu>
|
|
|
99
99
|
Sandra Lokshina <ismena@google.com>
|
|
100
100
|
Satheesh Velmurugan <satheesh@philo.com>
|
|
101
101
|
Semih Gokceoglu <semih.gkcoglu@gmail.com>
|
|
102
|
+
Seongryun Jo <ocipap0531@gmail.com>
|
|
102
103
|
Seth Madison <seth@philo.com>
|
|
103
104
|
Tatsiana Gelahova <tatsiana.gelahova@gmail.com>
|
|
104
105
|
Theodore Abshire <theodab@google.com>
|
|
@@ -116,3 +117,4 @@ Vincent Valot <valot.vince@gmail.com>
|
|
|
116
117
|
Wayne Morgan <wayne.morgan.dev@gmail.com>
|
|
117
118
|
Yohann Connell <robinconnell@google.com>
|
|
118
119
|
Raymond Cheng <raycheng100@gmail.com>
|
|
120
|
+
Janroel Koppen <j.koppen@bluebillywig.com>
|
package/dist/deps.js
CHANGED
|
@@ -62,7 +62,7 @@ goog.addDependency('../../../../lib/media/adaptation_set_criteria.js', ['shaka.m
|
|
|
62
62
|
goog.addDependency('../../../../lib/media/buffering_observer.js', ['shaka.media.BufferingObserver'], [], {'lang': 'es6'});
|
|
63
63
|
goog.addDependency('../../../../lib/media/closed_caption_parser.js', ['shaka.media.ClosedCaptionParser', 'shaka.media.IClosedCaptionParser'], ['shaka.cea.CeaDecoder', 'shaka.cea.Mp4CeaParser', 'shaka.util.BufferUtils'], {'lang': 'es6'});
|
|
64
64
|
goog.addDependency('../../../../lib/media/content_workarounds.js', ['shaka.media.ContentWorkarounds'], ['goog.asserts', 'shaka.log', 'shaka.util.BufferUtils', 'shaka.util.Error', 'shaka.util.Lazy', 'shaka.util.Mp4Parser', 'shaka.util.Platform', 'shaka.util.Uint8ArrayUtils'], {'lang': 'es6'});
|
|
65
|
-
goog.addDependency('../../../../lib/media/drm_engine.js', ['shaka.media.DrmEngine'], ['goog.asserts', 'shaka.log', 'shaka.media.Transmuxer', 'shaka.net.NetworkingEngine', 'shaka.util.BufferUtils', 'shaka.util.Destroyer', 'shaka.util.Error', 'shaka.util.EventManager', 'shaka.util.FairPlayUtils', 'shaka.util.FakeEvent', 'shaka.util.IDestroyable', 'shaka.util.Iterables', 'shaka.util.Lazy', 'shaka.util.MapUtils', 'shaka.util.MimeUtils', 'shaka.util.Platform', 'shaka.util.PublicPromise', 'shaka.util.StreamUtils', 'shaka.util.StringUtils', 'shaka.util.Timer', 'shaka.util.Uint8ArrayUtils'], {'lang': 'es8'});
|
|
65
|
+
goog.addDependency('../../../../lib/media/drm_engine.js', ['shaka.media.DrmEngine'], ['goog.asserts', 'shaka.log', 'shaka.media.Transmuxer', 'shaka.net.NetworkingEngine', 'shaka.util.BufferUtils', 'shaka.util.Destroyer', 'shaka.util.Error', 'shaka.util.EventManager', 'shaka.util.FairPlayUtils', 'shaka.util.FakeEvent', 'shaka.util.IDestroyable', 'shaka.util.Iterables', 'shaka.util.Lazy', 'shaka.util.MapUtils', 'shaka.util.MimeUtils', 'shaka.util.Platform', 'shaka.util.PublicPromise', 'shaka.util.StreamUtils', 'shaka.util.StringUtils', 'shaka.util.Timer', 'shaka.util.Uint8ArrayUtils', 'shaka.util.XmlUtils'], {'lang': 'es8'});
|
|
66
66
|
goog.addDependency('../../../../lib/media/gap_jumping_controller.js', ['shaka.media.GapJumpingController'], ['shaka.log', 'shaka.media.PresentationTimeline', 'shaka.media.StallDetector', 'shaka.media.TimeRangesUtils', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.IReleasable', 'shaka.util.Timer'], {'lang': 'es6'});
|
|
67
67
|
goog.addDependency('../../../../lib/media/manifest_parser.js', ['shaka.media.ManifestParser'], ['goog.Uri', 'shaka.log', 'shaka.net.NetworkingEngine', 'shaka.util.Error', 'shaka.util.Platform'], {'lang': 'es8'});
|
|
68
68
|
goog.addDependency('../../../../lib/media/media_source_engine.js', ['shaka.media.MediaSourceEngine'], ['goog.asserts', 'shaka.log', 'shaka.media.ContentWorkarounds', 'shaka.media.IClosedCaptionParser', 'shaka.media.TimeRangesUtils', 'shaka.media.Transmuxer', 'shaka.text.TextEngine', 'shaka.util.Destroyer', 'shaka.util.Error', 'shaka.util.EventManager', 'shaka.util.Functional', 'shaka.util.IDestroyable', 'shaka.util.ManifestParserUtils', 'shaka.util.MimeUtils', 'shaka.util.Platform', 'shaka.util.PublicPromise'], {'lang': 'es8'});
|
|
@@ -93,7 +93,7 @@ goog.addDependency('../../../../lib/offline/indexeddb/base_storage_cell.js', ['s
|
|
|
93
93
|
goog.addDependency('../../../../lib/offline/indexeddb/db_connection.js', ['shaka.offline.indexeddb.DBConnection'], ['shaka.offline.indexeddb.DBOperation', 'shaka.util.ArrayUtils'], {'lang': 'es6'});
|
|
94
94
|
goog.addDependency('../../../../lib/offline/indexeddb/db_operation.js', ['shaka.offline.indexeddb.DBOperation'], ['shaka.util.PublicPromise'], {'lang': 'es8'});
|
|
95
95
|
goog.addDependency('../../../../lib/offline/indexeddb/eme_session_storage_cell.js', ['shaka.offline.indexeddb.EmeSessionStorageCell'], ['shaka.offline.indexeddb.DBConnection'], {'lang': 'es8'});
|
|
96
|
-
goog.addDependency('../../../../lib/offline/indexeddb/storage_mechanism.js', ['shaka.offline.indexeddb.StorageMechanism'], ['goog.asserts', 'shaka.log', 'shaka.offline.StorageMuxer', 'shaka.offline.indexeddb.EmeSessionStorageCell', 'shaka.offline.indexeddb.V1StorageCell', 'shaka.offline.indexeddb.V2StorageCell', 'shaka.offline.indexeddb.V5StorageCell', 'shaka.util.Error', 'shaka.util.Platform', 'shaka.util.PublicPromise'], {'lang': 'es8'});
|
|
96
|
+
goog.addDependency('../../../../lib/offline/indexeddb/storage_mechanism.js', ['shaka.offline.indexeddb.StorageMechanism'], ['goog.asserts', 'shaka.log', 'shaka.offline.StorageMuxer', 'shaka.offline.indexeddb.EmeSessionStorageCell', 'shaka.offline.indexeddb.V1StorageCell', 'shaka.offline.indexeddb.V2StorageCell', 'shaka.offline.indexeddb.V5StorageCell', 'shaka.util.Error', 'shaka.util.Platform', 'shaka.util.PublicPromise', 'shaka.util.Timer'], {'lang': 'es8'});
|
|
97
97
|
goog.addDependency('../../../../lib/offline/indexeddb/v1_storage_cell.js', ['shaka.offline.indexeddb.V1StorageCell'], ['goog.asserts', 'shaka.log', 'shaka.offline.indexeddb.BaseStorageCell', 'shaka.util.Error', 'shaka.util.ManifestParserUtils', 'shaka.util.PeriodCombiner', 'shaka.util.PublicPromise'], {'lang': 'es8'});
|
|
98
98
|
goog.addDependency('../../../../lib/offline/indexeddb/v2_storage_cell.js', ['shaka.offline.indexeddb.V2StorageCell'], ['shaka.offline.indexeddb.BaseStorageCell', 'shaka.util.PeriodCombiner'], {'lang': 'es8'});
|
|
99
99
|
goog.addDependency('../../../../lib/offline/indexeddb/v5_storage_cell.js', ['shaka.offline.indexeddb.V5StorageCell'], ['shaka.offline.indexeddb.BaseStorageCell'], {'lang': 'es6'});
|
|
@@ -183,7 +183,7 @@ goog.addDependency('../../../../lib/util/switch_history.js', ['shaka.util.Switch
|
|
|
183
183
|
goog.addDependency('../../../../lib/util/text_parser.js', ['shaka.util.TextParser'], ['goog.asserts'], {'lang': 'es6'});
|
|
184
184
|
goog.addDependency('../../../../lib/util/timer.js', ['shaka.util.Timer'], ['shaka.util.DelayedTick'], {'lang': 'es6'});
|
|
185
185
|
goog.addDependency('../../../../lib/util/uint8array_utils.js', ['shaka.util.Uint8ArrayUtils'], ['shaka.Deprecate', 'shaka.util.BufferUtils', 'shaka.util.StringUtils'], {'lang': 'es6'});
|
|
186
|
-
goog.addDependency('../../../../lib/util/xml_utils.js', ['shaka.util.XmlUtils'], ['goog.asserts', 'shaka.log', 'shaka.util.StringUtils'], {'lang': '
|
|
186
|
+
goog.addDependency('../../../../lib/util/xml_utils.js', ['shaka.util.XmlUtils'], ['goog.asserts', 'shaka.log', 'shaka.util.Lazy', 'shaka.util.StringUtils'], {'lang': 'es8'});
|
|
187
187
|
goog.addDependency('../../../../third_party/closure-uri/uri.js', ['goog.Uri', 'goog.Uri.QueryData'], ['goog.asserts', 'goog.uri.utils', 'goog.uri.utils.ComponentIndex']);
|
|
188
188
|
goog.addDependency('../../../../third_party/closure-uri/utils.js', ['goog.uri.utils', 'goog.uri.utils.ComponentIndex'], []);
|
|
189
189
|
goog.addDependency('../../../../third_party/language-mapping-list/language-mapping-list.js', ['mozilla.LanguageMapping'], [], {'lang': 'es6'});
|
package/dist/locales.js
CHANGED
|
@@ -719,43 +719,43 @@ shaka.ui.Locales.addTo = function(localization) {
|
|
|
719
719
|
* @const
|
|
720
720
|
*/
|
|
721
721
|
shaka.ui.Locales.Ids = {
|
|
722
|
-
OFF: 'OFF',
|
|
723
|
-
CAPTIONS: 'CAPTIONS',
|
|
724
|
-
SKIP_AD: 'SKIP_AD',
|
|
725
|
-
UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
|
|
726
|
-
ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
|
|
727
722
|
LOOP: 'LOOP',
|
|
723
|
+
NOT_APPLICABLE: 'NOT_APPLICABLE',
|
|
724
|
+
UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
|
|
728
725
|
MUTE: 'MUTE',
|
|
729
|
-
|
|
730
|
-
FULL_SCREEN: 'FULL_SCREEN',
|
|
731
|
-
UNMUTE: 'UNMUTE',
|
|
726
|
+
EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
|
|
732
727
|
AD_TIME: 'AD_TIME',
|
|
733
|
-
|
|
734
|
-
|
|
728
|
+
BACK: 'BACK',
|
|
729
|
+
LANGUAGE: 'LANGUAGE',
|
|
735
730
|
PLAY: 'PLAY',
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
731
|
+
UNMUTE: 'UNMUTE',
|
|
732
|
+
OFF: 'OFF',
|
|
733
|
+
SKIP_TO_LIVE: 'SKIP_TO_LIVE',
|
|
734
|
+
REPLAY: 'REPLAY',
|
|
735
|
+
SEEK: 'SEEK',
|
|
740
736
|
CAST: 'CAST',
|
|
741
|
-
EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
|
|
742
|
-
PLAYBACK_RATE: 'PLAYBACK_RATE',
|
|
743
737
|
AUTO_QUALITY: 'AUTO_QUALITY',
|
|
744
|
-
REPLAY: 'REPLAY',
|
|
745
|
-
EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
|
|
746
738
|
ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
|
|
739
|
+
EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
|
|
747
740
|
UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
SKIP_TO_LIVE: 'SKIP_TO_LIVE',
|
|
751
|
-
ON: 'ON',
|
|
752
|
-
AIRPLAY: 'AIRPLAY',
|
|
753
|
-
LANGUAGE: 'LANGUAGE',
|
|
741
|
+
PLAYBACK_RATE: 'PLAYBACK_RATE',
|
|
742
|
+
VOLUME: 'VOLUME',
|
|
754
743
|
AD_PROGRESS: 'AD_PROGRESS',
|
|
744
|
+
PAUSE: 'PAUSE',
|
|
755
745
|
SUBTITLE_FORCED: 'SUBTITLE_FORCED',
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
746
|
+
SKIP_AD: 'SKIP_AD',
|
|
747
|
+
LIVE: 'LIVE',
|
|
748
|
+
FAST_FORWARD: 'FAST_FORWARD',
|
|
749
|
+
AD_DURATION: 'AD_DURATION',
|
|
750
|
+
EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
|
|
751
|
+
AIRPLAY: 'AIRPLAY',
|
|
760
752
|
PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
|
|
753
|
+
ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
|
|
754
|
+
RESOLUTION: 'RESOLUTION',
|
|
755
|
+
CAPTIONS: 'CAPTIONS',
|
|
756
|
+
MORE_SETTINGS: 'MORE_SETTINGS',
|
|
757
|
+
ON: 'ON',
|
|
758
|
+
FULL_SCREEN: 'FULL_SCREEN',
|
|
759
|
+
REWIND: 'REWIND',
|
|
760
|
+
MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
|
|
761
761
|
};
|
|
@@ -2209,6 +2209,7 @@ declare namespace shaka.util.Error {
|
|
|
2209
2209
|
HTTP_ERROR = 1002.0 ,
|
|
2210
2210
|
INCONSISTENT_DRM_ACROSS_PERIODS = 4038.0 ,
|
|
2211
2211
|
INDEXED_DB_ERROR = 9001.0 ,
|
|
2212
|
+
INDEXED_DB_INIT_TIMED_OUT = 9017.0 ,
|
|
2212
2213
|
INIT_DATA_TRANSFORM_ERROR = 6016.0 ,
|
|
2213
2214
|
INVALID_HLS_TAG = 4016.0 ,
|
|
2214
2215
|
INVALID_MP4_CEA = 2010.0 ,
|
|
@@ -2209,6 +2209,7 @@ declare namespace shaka.util.Error {
|
|
|
2209
2209
|
HTTP_ERROR = 1002.0 ,
|
|
2210
2210
|
INCONSISTENT_DRM_ACROSS_PERIODS = 4038.0 ,
|
|
2211
2211
|
INDEXED_DB_ERROR = 9001.0 ,
|
|
2212
|
+
INDEXED_DB_INIT_TIMED_OUT = 9017.0 ,
|
|
2212
2213
|
INIT_DATA_TRANSFORM_ERROR = 6016.0 ,
|
|
2213
2214
|
INVALID_HLS_TAG = 4016.0 ,
|
|
2214
2215
|
INVALID_MP4_CEA = 2010.0 ,
|
|
@@ -636,6 +636,7 @@ shaka.util.Error.Code = {
|
|
|
636
636
|
'MISSING_STORAGE_CELL': 9013,
|
|
637
637
|
'STORAGE_LIMIT_REACHED': 9014,
|
|
638
638
|
'DOWNLOAD_SIZE_CALLBACK_ERROR': 9015,
|
|
639
|
+
'INDEXED_DB_INIT_TIMED_OUT': 9017,
|
|
639
640
|
'CS_IMA_SDK_MISSING': 10000,
|
|
640
641
|
'CS_AD_MANAGER_NOT_INITIALIZED': 10001,
|
|
641
642
|
'SS_IMA_SDK_MISSING': 10002,
|