diff --git a/.csslintrc b/.csslintrc index d2773f794b..4e8a26b933 100644 --- a/.csslintrc +++ b/.csslintrc @@ -1,13 +1,23 @@ { "extends": "stylelint-config-standard", + "customSyntax": "postcss-less", "rules": { "font-family-no-missing-generic-family-keyword": null, "declaration-block-single-line-max-declarations": null, "declaration-empty-line-before": null, - "max-line-length": [ 80, { + "max-line-length": [80, { ignorePattern: "/^@import\\s+/", }], + "function-no-unknown": [true, { + ignoreFunctions: [ + "data-uri", + "lighten", + "percentage", + ], + }], + "property-no-vendor-prefix": null, "selector-list-comma-newline-after": "always-multi-line", + "selector-no-vendor-prefix": null, "selector-pseudo-element-colon-notation": "single", "unit-allowed-list": ["em", "%", "px", "s", "deg", "vmin", "ms", "vh"] } diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index cc2e2fec2f..049cc1f8be 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -18,7 +18,7 @@ assignees: '' **Can you reproduce the issue with our latest release version?** -**Can you reproduce the issue with the latest code from `master`?** +**Can you reproduce the issue with the latest code from `main`?** **Are you using the demo app or your own custom app?** diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index a4c4232950..0000000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,38 +0,0 @@ -## Description - - - - -## Screenshots (optional) - - - - -## Type of change - -- [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] New feature (non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to - not work as expected) -- [ ] This change requires a documentation update - -## Checklist: - -- [ ] I have signed the Google CLA -- [ ] My code follows the style guidelines of this project -- [ ] I have made corresponding changes to the documentation -- [ ] I have added tests that prove my fix is effective or that my feature works -- [ ] I have verified my change on multiple browsers on different platforms -- [ ] I have run `./build/all.py` and the build passes -- [ ] I have run `./build/test.py` and all tests pass diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml new file mode 100644 index 0000000000..de78fcb05d --- /dev/null +++ b/.github/workflows/build-and-test.yaml @@ -0,0 +1,129 @@ +name: Build and Test PR + +on: + pull_request: # Trigger for pull requests. + types: [opened, synchronize, reopened] + branches: + - main + - v[0-9]* + workflow_dispatch: # Allows for manual triggering. + inputs: + ref: + description: "The ref to build and test." + required: false + +# If another instance of this workflow is started for the same PR, cancel the +# old one. If a PR is updated and a new test run is started, the old test run +# will be cancelled automatically to conserve resources. +concurrency: + group: ${{ github.workflow }}-${{ github.event.inputs.ref || github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: ${{ github.event.inputs.ref || github.ref }} + + - name: Lint + run: python build/check.py + + build_and_test: + # Don't waste time doing a full matrix of test runs when there was an + # obvious linter error. + needs: lint + strategy: + matrix: + os: ["ubuntu-latest", "macos-latest", "windows-latest"] + browser: ["Chrome", "Firefox", "Edge", "Safari", "Safari-14"] + exclude: + - os: ubuntu-latest + browser: Edge + - os: windows-latest + browser: Safari + - os: windows-latest + browser: Safari-14 + - os: ubuntu-latest + browser: Safari + - os: ubuntu-latest + browser: Safari-14 + include: + # Run Linux browsers with xvfb, so they're in a headless X session. + - os: ubuntu-latest + extra_flags: "--use-xvfb" + # Disable fail-fast so that one matrix-job failing doesn't make the other + # ones end early. + fail-fast: false + + name: ${{ matrix.os }} ${{ matrix.browser }} + runs-on: ${{ matrix.os }} + + steps: + # Firefox on Ubuntu appears to not have the right things installed in + # the environment used by GitHub actions, so make sure that ffmpeg is + # installed. Otherwise, the browser might not support some codecs that the + # tests assume will be supported. + - name: Install FFmpeg + if: matrix.os == 'ubuntu-latest' && matrix.browser == 'Firefox' + run: sudo apt -y update && sudo apt -y install ffmpeg + + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: ${{ github.event.inputs.ref || github.ref }} + + # Safari 14 can be installed, but not to the root, and it can't replace + # the standard version, at least not on GitHub's VMs. If you try to + # install directly to the root with sudo, it will appear to succeed, but + # will have no effect. If you try to script it explicitly with rm -rf + # and cp, this will fail. Safari may be on a read-only filesystem. + - name: Install Safari 14 to home directory + if: matrix.os == 'macos-latest' && matrix.browser == 'Safari-14' + run: | + # Download Safari 14 + # See also https://www.macupdate.com/app/mac/15675/apple-safari/old-versions + curl -Lv https://www.macupdate.com/action/download/63550 > safari-14.1.2.pkg + + # Install Safari 14 to homedir specifically. + installer -pkg safari-14.1.2.pkg -target CurrentUserHomeDirectory + + # Install a launcher that can execute a shell script to launch this + npm install karma-script-launcher --save-dev + + - name: Build Player + run: python build/all.py + + - name: Test Player + shell: bash + run: | + browser=${{ matrix.browser }} + + if [[ "$browser" == "Safari-14" ]]; then + # Replace the browser name with a script that can launch this + # browser from the command line. + browser="$PWD/.github/workflows/safari-homedir-launcher.sh" + fi + + python build/test.py \ + --browsers "$browser" \ + --reporters spec --spec-hide-passed \ + ${{ matrix.extra_flags }} + + build_in_docker: + # Don't waste time doing a full matrix of test runs when there was an + # obvious linter error. + needs: lint + name: Docker + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: ${{ github.event.inputs.ref || github.ref }} + + - name: Docker + run: docker-compose -f build/docker/docker-compose.yml up diff --git a/.github/workflows/custom-actions/prep-for-appspot/action.yaml b/.github/workflows/custom-actions/prep-for-appspot/action.yaml new file mode 100644 index 0000000000..19968a977f --- /dev/null +++ b/.github/workflows/custom-actions/prep-for-appspot/action.yaml @@ -0,0 +1,56 @@ +name: Prep Appspot Deployment + +description: | + A reusable action that prepares the sources to deploy the Shaka Player Demo + to appspot. Assumes that the source is already checked out. + +runs: + using: composite + steps: + - name: Install dependencies + shell: bash + run: npm ci + + - name: Build Shaka Player + shell: bash + run: python build/all.py + + - name: Extract git version + shell: bash + run: | + ( + cd build + python3 -c 'from shakaBuildHelpers import git_version; print(git_version())' + ) > demo-version + + - name: Tag the Player version + shell: bash + run: | + DEMO_VERSION="$(cat demo-version)-uncompiled" + sed \ + -i lib/player.js \ + -e "s/\(shaka.Player.version\) = .*/\1 = '$DEMO_VERSION';/" + rm demo-version + + - name: Backup demo node modules + shell: bash + run: | + DEMO_NODE_MODULES=$(jq -r .shakaCustom.demoDeps[] package.json) + tar cf demo-modules.tar \ + $(echo "$DEMO_NODE_MODULES" | sed -e 's@^@node_modules/@') + + - name: Delete unneeded files + shell: bash + run: rm -rf .git .github build externs test node_modules + + - name: Restore demo node modules + shell: bash + run: | + tar xf demo-modules.tar + rm demo-modules.tar + + - name: Install App Engine code + shell: bash + run: | + mv app-engine/shaka-player-demo/* . + rm README.md diff --git a/.github/workflows/custom-actions/set-commit-status/action.yaml b/.github/workflows/custom-actions/set-commit-status/action.yaml new file mode 100644 index 0000000000..6798bd84ef --- /dev/null +++ b/.github/workflows/custom-actions/set-commit-status/action.yaml @@ -0,0 +1,41 @@ +name: Set Commit Status + +description: | + A reusable action that sets the commit status. This is used to set PR status + from workflows with non-PR triggers (such as manually-triggered workflows). + +inputs: + context: + description: An arbitrary string to identify the status check. + required: true + state: + description: Either "pending", "error", "success", or "failure". + required: true + ref: + description: A git ref for which to set the commit status. For PRs, use the head commit, not the merge commit. Defaults to HEAD. + required: false + default: HEAD + token: + description: A GitHub access token. + required: true + +runs: + using: composite + steps: + - name: Report Commit Status + shell: bash + run: | + # This is the URL to view this workflow run on GitHub. It will be + # attached to the commit status, so that when someone clicks "details" + # next to the status on the PR, it will link to this run where they can + # see the logs. + RUN_URL="https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" + SHA1=$(git rev-parse "${{ inputs.ref }}") + + GITHUB_TOKEN=${{ inputs.token }} \ + gh api \ + -X POST \ + -F "context=${{ inputs.context }}" \ + -F "state=${{ inputs.state }}" \ + -F "target_url=$RUN_URL" \ + "repos/${{ github.repository }}/statuses/$SHA1" diff --git a/.github/workflows/demo-version-index.yaml b/.github/workflows/demo-version-index.yaml new file mode 100644 index 0000000000..300a6621cd --- /dev/null +++ b/.github/workflows/demo-version-index.yaml @@ -0,0 +1,29 @@ +name: Deploy Demo Version Index + +on: + workflow_dispatch: + # Allows for manual triggering. + push: + branches: + - main + paths: + - .github/workflows/demo-version-index.yaml + - app-engine/demo-version-index/** + +jobs: + appspot: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: google-github-actions/auth@v0 + with: + credentials_json: '${{ secrets.APPENGINE_DEPLOY_KEY }}' + + - uses: google-github-actions/deploy-appengine@v0 + with: + project_id: shaka-player-demo + version: index + working_directory: app-engine/demo-version-index/ + promote: false + diff --git a/.github/workflows/nightly-demo.yaml b/.github/workflows/nightly-demo.yaml new file mode 100644 index 0000000000..84681b9c14 --- /dev/null +++ b/.github/workflows/nightly-demo.yaml @@ -0,0 +1,42 @@ +name: Deploy Nightly Demo + +on: + workflow_dispatch: + # Allows for manual triggering. + schedule: + # Run every night at midnight PST / 8am UTC. + - cron: '0 8 * * *' + +jobs: + appspot: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + persist-credentials: false + + - uses: actions/setup-node@v1 + with: + node-version: 16 + registry-url: 'https://registry.npmjs.org' + + # The nightly demo has its own receiver app ID that points to the nightly + # demo itself for the receiver side. + - name: Override Cast Receiver App ID + run: | + sed \ + -i demo/index.html \ + -e 's/\(data-shaka-player-cast-receiver-id\)="[^"]*"/\1="07AEE832"/' + + - uses: ./.github/workflows/custom-actions/prep-for-appspot + + - uses: google-github-actions/auth@v0 + with: + credentials_json: '${{ secrets.APPENGINE_DEPLOY_KEY }}' + + - uses: google-github-actions/deploy-appengine@v0 + with: + project_id: shaka-player-demo + version: nightly + promote: false diff --git a/.github/workflows/release-please.yaml b/.github/workflows/release-please.yaml new file mode 100644 index 0000000000..f97d33c694 --- /dev/null +++ b/.github/workflows/release-please.yaml @@ -0,0 +1,148 @@ +name: Release + +on: + push: + branches: + - main + - v[0-9]* + +jobs: + release: + runs-on: ubuntu-latest + outputs: + release_created: ${{ steps.release.outputs.release_created }} + tag_name: ${{ steps.release.outputs.tag_name }} + steps: + # Create/update release PR + - uses: google-github-actions/release-please-action@v3 + id: release + with: + # Required input to specify the release type (node package). + release-type: node + # Make sure we create the PR against the correct branch. + default-branch: ${{ github.ref_name }} + + # If we didn't create a release, we may have created or updated a PR. + - uses: actions/checkout@v2 + if: steps.release.outputs.release_created == false + - name: Custom update Player version + if: steps.release.outputs.release_created == false + run: | + # Check out the branch that release-please created. + # If it does not exist, FAIL! + git fetch + git checkout release-please--branches--${{ github.ref_name }}--components--shaka-player || exit 1 + # If it does exist, update lib/player.js in the PR branch, so that the + # -uncompiled tag remains in the player version in that context. + VERSION="v$(jq -r .version package.json)-uncompiled" + sed -e "s/^\\(shaka.Player.version =\\).*/\\1 '$VERSION';/" \ + -i lib/player.js + git add lib/player.js + # Emulate the actions bot. + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + # Update the PR. + git commit --amend --no-edit + git push -f + + # The jobs below are all conditional on a release having been created by + # someone merging the release PR. They all run in parallel. + + tag-main: + runs-on: ubuntu-latest + needs: release + if: needs.release.outputs.release_created && endsWith(needs.release.outputs.tag_name, '.0') == false + steps: + - uses: actions/checkout@v2 + with: + ref: main + - name: Tag the main branch + run: | + # Emulate the actions bot. + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + VERSION=${{ needs.release.outputs.tag_name }} + git tag -m "$VERSION-main" "$VERSION-main" + git push origin "$VERSION-main" + + npm: + runs-on: ubuntu-latest + needs: release + if: needs.release.outputs.release_created + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + persist-credentials: false + + - uses: actions/setup-node@v1 + with: + node-version: 16 + registry-url: 'https://registry.npmjs.org' + + - run: npm ci + - run: npm publish + env: + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + + - run: npm pack + - uses: svenstaro/upload-release-action@483c1e56f95e88835747b1c7c60581215016cbf2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ needs.release.outputs.tag_name }} + file: shaka-player-*.tgz + file_glob: true + overwrite: true + + appspot: + runs-on: ubuntu-latest + needs: release + if: needs.release.outputs.release_created + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + persist-credentials: false + + - uses: actions/setup-node@v1 + with: + node-version: 16 + registry-url: 'https://registry.npmjs.org' + + - name: Compute appspot subdomain and promotion + run: | + # This is the same as the version tag, but with dots replaced by + # dashes. For example, v3.2.2 would have the subdomain v3-2-2. + APPSPOT_SUBDOMAIN=$( echo ${{ needs.release.outputs.tag_name }} | sed -e 's/\./-/g' ) + echo APPSPOT_SUBDOMAIN=$APPSPOT_SUBDOMAIN >> $GITHUB_ENV + + # "Promoting" an appspot deployment makes it the default which shows + # up on shaka-player-demo.appspot.com (no subdomain). This should be + # done for the latest release version from the latest release branch. + RELEASE_TAGS=$(git tag | grep ^v[0-9] | grep -Ev -- '-(master|main)') + LATEST_RELEASE=$(echo "$RELEASE_TAGS" | sort --version-sort | tail -1) + TAG_NAME=${{ needs.release.outputs.tag_name }} + + if [[ "$TAG_NAME" == "$LATEST_RELEASE" ]]; then + echo APPSPOT_PROMOTE=true >> $GITHUB_ENV + else + echo APPSPOT_PROMOTE=false >> $GITHUB_ENV + fi + + # Debug the decisions made here. + echo "Subdomain: $APPSPOT_SUBDOMAIN" + echo "Latest release: $LATEST_RELEASE" + echo "This release: $TAG_NAME" + echo "Promote: $APPSPOT_PROMOTE" + + - uses: ./.github/workflows/custom-actions/prep-for-appspot + + - uses: google-github-actions/auth@v0 + with: + credentials_json: '${{ secrets.APPENGINE_DEPLOY_KEY }}' + + - uses: google-github-actions/deploy-appengine@v0 + with: + project_id: shaka-player-demo + version: ${{ env.APPSPOT_SUBDOMAIN }} + promote: ${{ env.APPSPOT_PROMOTE }} diff --git a/.github/workflows/safari-homedir-launcher.sh b/.github/workflows/safari-homedir-launcher.sh new file mode 100755 index 0000000000..16dcee2264 --- /dev/null +++ b/.github/workflows/safari-homedir-launcher.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# A script to launch a homedir-installed copy of Safari in Karma. Used with +# karma-script-launcher and --browsers path/to/script. + +# There is an issue where opening a URL in a browser that is not already open +# will also open it in the default browser. See +# https://apple.stackexchange.com/a/122000/454832 and the comments below it for +# details. + +# The workaround is to open the browser explicitly first, without a URL. +open -a ~/Applications/Safari.app --fresh +sleep 5 + +# Then open the browser with the URL, and wait for it to quite. In fact, the +# browser won't be closed automatically at all, and Karma will kill this script +# when the tests complete. But if we don't wait, Karma will error instead. +open -a ~/Applications/Safari.app --wait-apps "$1" diff --git a/.github/workflows/selenium-lab-tests.yaml b/.github/workflows/selenium-lab-tests.yaml new file mode 100644 index 0000000000..88567a3d0f --- /dev/null +++ b/.github/workflows/selenium-lab-tests.yaml @@ -0,0 +1,92 @@ +name: Selenium Lab Tests + +on: + workflow_dispatch: + # Allows for manual triggering on PRs. They should be reviewed first, to + # avoid malicious code executing in the lab. + inputs: + pr: + description: "A PR number to build and test in the lab. If empty, will build and test from main." + required: false + schedule: + # Runs every night at 2am PST / 10am UTC, testing against the main branch. + - cron: '0 10 * * *' + +# Only one run of this workflow is allowed at a time, since it uses physical +# resources in our lab. +concurrency: selenium-lab + +jobs: + lab-tests: + # This is a self-hosted runner in a Docker container, with access to our + # lab's Selenium grid on port 4444. + runs-on: self-hosted-selenium + + steps: + # This runs on our self-hosted runner, and the Docker image it is based + # on doesn't have GitHub's CLI pre-installed. This installs it. Taken + # verbatim from the official installation instructions at + # https://github.com/cli/cli/blob/trunk/docs/install_linux.md + - name: Install GitHub Actions CLI + run: | + curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg + 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 + sudo apt update + sudo apt install gh + + - name: Compute ref + run: | + if [[ "${{ github.event.inputs.pr }}" != "" ]]; then + echo LAB_TEST_REF="refs/pull/${{ github.event.inputs.pr }}/head" >> $GITHUB_ENV + else + echo LAB_TEST_REF="main" >> $GITHUB_ENV + fi + + - uses: actions/checkout@v2 + with: + ref: ${{ env.LAB_TEST_REF }} + + - name: Set Commit Status to Pending + uses: ./.github/workflows/custom-actions/set-commit-status + with: + context: Selenium Lab Tests + state: pending + token: ${{ secrets.GITHUB_TOKEN }} + + - uses: actions/setup-node@v1 + with: + node-version: 16 + registry-url: 'https://registry.npmjs.org' + + # The Docker image for this self-hosted runner doesn't contain java. + - uses: actions/setup-java@v2 + with: + distribution: zulu + java-version: 11 + + # The Docker image for this self-hosted runner has "python3" but not + # plain "python". + - name: Build Player + run: python3 build/all.py + + # Run tests on the Selenium grid in our lab. This uses a private + # hostname and TLS cert to get EME tests working on all platforms + # (since EME only works on https or localhost). + - name: Test Player + run: | + python3 build/test.py \ + --reporters spec --spec-hide-passed \ + --lets-encrypt-folder /etc/shakalab.rocks \ + --hostname karma.shakalab.rocks \ + --port 61731 \ + --grid-config build/shaka-lab.yaml \ + --grid-address selenium-grid.lab:4444 + + - name: Report Final Commit Status + # Will run on success or failure, but not if the workflow is cancelled. + if: ${{ success() || failure() }} + uses: ./.github/workflows/custom-actions/set-commit-status + with: + context: Selenium Lab Tests + state: ${{ job.status }} + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.npmignore b/.npmignore index 52a16d81c1..7d2428eb78 100644 --- a/.npmignore +++ b/.npmignore @@ -3,6 +3,8 @@ .gitattributes .gitignore *.pyc +app-engine/ +build/ docs/api/ coverage/ test/test/assets/screenshots/ diff --git a/AUTHORS b/AUTHORS index 92a00cf104..6547f985c2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -27,11 +27,14 @@ Code It <*@code-it.fr> Charter Communications Inc <*@charter.com> Damien Deis Dany L'Hébreux +Dl Dador +Enson Choy Esteban Dosztal Fadomire Google Inc. <*@google.com> Edgeware AB <*@edgeware.tv> Gil Gonen +Giorgio Gamberoni Giuseppe Samela Itay Kinnrot Jason Palmer @@ -39,6 +42,7 @@ Jesper Haug Karsrud Johan Sundström Jonas Birmé Jozef Chúťka +Jun Hong Chong JW Player <*@jwplayer.com> Lucas Gabriel Sánchez Matthias Van Parijs @@ -55,6 +59,7 @@ Peter Nycander Philo Inc. <*@philo.com> Prakash Robert Colantuoni +Robert Galluccio Roi Lipman Roksolana Ivanyshyn Rostislav Hejduk @@ -71,4 +76,4 @@ uStudio Inc. <*@ustudio.com> Verizon Digital Media Services <*@verizondigitalmedia.com> Vincent Valot Wayne Morgan - +Raymond Cheng diff --git a/CHANGELOG.md b/CHANGELOG.md index a6d847d36d..2501f44149 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,67 +1,258 @@ +# Changelog + +## [3.2.10](https://github.com/shaka-project/shaka-player/compare/v3.2.9...v3.2.10) (2022-07-14) + + +### Bug Fixes + +* Add fallback to TextDecoder and TextEncoder ([#4324](https://github.com/shaka-project/shaka-player/issues/4324)) ([54095c2](https://github.com/shaka-project/shaka-player/commit/54095c2185b9b0137a2db448c2263cda463bb75b)) +* Fix EOS set-top box being identified as Apple. ([#4310](https://github.com/shaka-project/shaka-player/issues/4310)) ([981fe9d](https://github.com/shaka-project/shaka-player/commit/981fe9dcf38a174911e915968f50f9d6fe62ad22)) +* Fix getVideoPlaybackQuality in WebOS 3 ([#4316](https://github.com/shaka-project/shaka-player/issues/4316)) ([e88469d](https://github.com/shaka-project/shaka-player/commit/e88469dd921f9d9e0b62c7ded856c240882c691a)) +* Fix MediaCapabilities polyfill on Playstation 4 ([#4320](https://github.com/shaka-project/shaka-player/issues/4320)) ([ae8255a](https://github.com/shaka-project/shaka-player/commit/ae8255a4a5520ad07489fcc196b20b6d49f382a1)) +* Fix segment index assertions with DAI ([49e6e33](https://github.com/shaka-project/shaka-player/commit/49e6e33011a29508e3c30c43f41616d9d2a0fd98)) +* VTT Cue Parsing On PlayStation 4 ([#4340](https://github.com/shaka-project/shaka-player/issues/4340)) ([88fd5f9](https://github.com/shaka-project/shaka-player/commit/88fd5f9ab5d3397b7051e8e39787dd961e54c849)), closes [#4321](https://github.com/shaka-project/shaka-player/issues/4321) + +## [3.2.9](https://github.com/shaka-project/shaka-player/compare/v3.2.8...v3.2.9) (2022-06-14) + + +### Bug Fixes + +* **demo:** allow switch between UITextDisplayer and SimpleTextDisplayer ([#4275](https://github.com/shaka-project/shaka-player/issues/4275)) ([76cd039](https://github.com/shaka-project/shaka-player/commit/76cd0398ff0115cf2c4c8369a50eee7fa12975cf)) +* **demo:** erroneous FairPlay keysystem in demo ([#4276](https://github.com/shaka-project/shaka-player/issues/4276)) ([bfdeb73](https://github.com/shaka-project/shaka-player/commit/bfdeb738aa5e9c464e79cdb787be11215eff6cc9)) +* New EME polyfill fixes EME/MCap issues on some smart TVs ([#4279](https://github.com/shaka-project/shaka-player/issues/4279)) ([312570f](https://github.com/shaka-project/shaka-player/commit/312570f3bbdbbabdc20a76f1afcba85aabc9c744)) +* Populate track's spatialAudio property ([#4291](https://github.com/shaka-project/shaka-player/issues/4291)) ([ab1b442](https://github.com/shaka-project/shaka-player/commit/ab1b442f057a305a4592f93062fb479fa72839d4)) +* Remove IE 11 from default browsers for Windows ([#4272](https://github.com/shaka-project/shaka-player/issues/4272)) ([3f2cb2e](https://github.com/shaka-project/shaka-player/commit/3f2cb2e761d8b78672935852903b5c6ecaa6a5c8)), closes [#4271](https://github.com/shaka-project/shaka-player/issues/4271) +* Use middle segment when guessing MIME type on HLS ([#4269](https://github.com/shaka-project/shaka-player/issues/4269)) ([#4270](https://github.com/shaka-project/shaka-player/issues/4270)) ([51af232](https://github.com/shaka-project/shaka-player/commit/51af23244bd7307ff656e02b53383f4913cf1249)) + +## [3.2.8](https://github.com/shaka-project/shaka-player/compare/v3.2.7...v3.2.8) (2022-06-02) + + +### Bug Fixes + +* **abr:** use Network Info API in ABR getBandwidthEstimate ([#4263](https://github.com/shaka-project/shaka-player/issues/4263)) ([1694b99](https://github.com/shaka-project/shaka-player/commit/1694b995b9b608ae396aa84e4e161e2878b2e14c)) +* Don't send drmsessionupdate after unload ([#4248](https://github.com/shaka-project/shaka-player/issues/4248)) ([f404c88](https://github.com/shaka-project/shaka-player/commit/f404c88bbe001edf44d7ba6f6ab24e1fb60cfcc9)) +* Fix audio mime type in multiplexed HLS stream ([#4241](https://github.com/shaka-project/shaka-player/issues/4241)) ([0c0d6a2](https://github.com/shaka-project/shaka-player/commit/0c0d6a22396cdc71c7a624ff485895aa1355a45d)) +* **HLS:** Fix duplicate hinted segments ([#4258](https://github.com/shaka-project/shaka-player/issues/4258)) ([4c8e8e7](https://github.com/shaka-project/shaka-player/commit/4c8e8e7d75e7060f2c9468725206a456a3059faa)), closes [#4223](https://github.com/shaka-project/shaka-player/issues/4223) +* **ui:** Widen touchable button area ([#3249](https://github.com/shaka-project/shaka-player/issues/3249)) ([f32e6aa](https://github.com/shaka-project/shaka-player/commit/f32e6aa96d29b39fb05d60c0057126293139103a)) + +### [3.2.7](https://github.com/shaka-project/shaka-player/compare/v3.2.6...v3.2.7) (2022-05-17) + + +### Bug Fixes + +* **dash:** Fix playback of Dolby Atmos ([#4173](https://github.com/shaka-project/shaka-player/issues/4173)) ([1a6e93a](https://github.com/shaka-project/shaka-player/commit/1a6e93add8bea530e80d32e6e1edd2983c15b4e3)), closes [#4171](https://github.com/shaka-project/shaka-player/issues/4171) +* Do not report MANIFEST RESTRICTIONS_CANNOT_BE_MET error twice ([#4194](https://github.com/shaka-project/shaka-player/issues/4194)) ([28d651b](https://github.com/shaka-project/shaka-player/commit/28d651b0cdd7ed0b7c5e560800d35333ee7c534f)), closes [#4190](https://github.com/shaka-project/shaka-player/issues/4190) +* Fix encryption detection to work around broken platforms ([#4169](https://github.com/shaka-project/shaka-player/issues/4169)) ([b945376](https://github.com/shaka-project/shaka-player/commit/b94537675033e0752ccb9abca32f28b6d278a205)) +* Fix event listener leaks in Player ([#4229](https://github.com/shaka-project/shaka-player/issues/4229)) ([5cab30d](https://github.com/shaka-project/shaka-player/commit/5cab30dc1a6a2d0e84897ffdc2e12fb0fa4d15e4)) +* Fix exception with streaming.startAtSegmentBoundary ([#4216](https://github.com/shaka-project/shaka-player/issues/4216)) ([b3d4c1c](https://github.com/shaka-project/shaka-player/commit/b3d4c1cc2ddcadca27aca0b92d24649992e31361)), closes [#4188](https://github.com/shaka-project/shaka-player/issues/4188) +* Fix PERIOD_FLATTENING_FAILED error when periods have different base sample types ([#4206](https://github.com/shaka-project/shaka-player/issues/4206)) ([9202678](https://github.com/shaka-project/shaka-player/commit/9202678ec821078b433ff387ba2c926bfd8d7958)), closes [#4202](https://github.com/shaka-project/shaka-player/issues/4202) +* **hls:** Fix av1 codec selection in HLS. ([#4203](https://github.com/shaka-project/shaka-player/issues/4203)) ([c72ac92](https://github.com/shaka-project/shaka-player/commit/c72ac92d067734ec11e7ba67e58530127de8f78c)) +* **hls:** Fix X-PRELOAD-HINT failure with LL mode off ([#4212](https://github.com/shaka-project/shaka-player/issues/4212)) ([59463fb](https://github.com/shaka-project/shaka-player/commit/59463fbc5512a7b2395dc1d04c180a4d35e8dac3)), closes [#4185](https://github.com/shaka-project/shaka-player/issues/4185) +* Revert "Add missing module export in generated typescript defs" ([#4175](https://github.com/shaka-project/shaka-player/issues/4175)) ([763e932](https://github.com/shaka-project/shaka-player/commit/763e932f589e91bf45b8dc85bd40428c30abe262)), closes [#4167](https://github.com/shaka-project/shaka-player/issues/4167) +* Wait for chapters track to be loaded ([#4228](https://github.com/shaka-project/shaka-player/issues/4228)) ([0245971](https://github.com/shaka-project/shaka-player/commit/02459714a0ec6c202e8fd121392831eaa9dc3962)), closes [#4186](https://github.com/shaka-project/shaka-player/issues/4186) + +### [3.2.6](https://github.com/shaka-project/shaka-player/compare/v3.2.5...v3.2.6) (2022-04-26) + + +### Bug Fixes + +* Add missing module export in generated typescript defs ([#4163](https://github.com/shaka-project/shaka-player/issues/4163)) ([3dc10d4](https://github.com/shaka-project/shaka-player/commit/3dc10d406f15a8b513ae2fc339e15738980acb90)) +* **css:** Fix missing % in calculation ([#4157](https://github.com/shaka-project/shaka-player/issues/4157)) ([16eefe2](https://github.com/shaka-project/shaka-player/commit/16eefe231c57397a67676fb379b99d90fe5252e8)) +* **css:** Fix missing calc() statements ([#4156](https://github.com/shaka-project/shaka-player/issues/4156)) ([db22e99](https://github.com/shaka-project/shaka-player/commit/db22e9989bf3df84702fea37a686f0d374811b9b)), closes [#4155](https://github.com/shaka-project/shaka-player/issues/4155) + +### [3.2.5](https://github.com/shaka-project/shaka-player/compare/v3.2.4...v3.2.5) (2022-04-25) + + +### Bug Fixes + +* **cea:** make a more robust CEA MP4 parser ([#3965](https://github.com/shaka-project/shaka-player/issues/3965)) ([70cbd25](https://github.com/shaka-project/shaka-player/commit/70cbd250044150ccb396f21015bd7fb7a79c7a72)) +* **dash:** Account for bandwidth before filtering text stream ([#3765](https://github.com/shaka-project/shaka-player/issues/3765)) ([c97438a](https://github.com/shaka-project/shaka-player/commit/c97438ae03ffd44382b2e682b9e55f311385f788)), closes [#3724](https://github.com/shaka-project/shaka-player/issues/3724) +* **dash:** Fix performance regression ([#4064](https://github.com/shaka-project/shaka-player/issues/4064)) ([e313815](https://github.com/shaka-project/shaka-player/commit/e313815ead460f3c3bc0005252c171dcaa37a103)) +* Fix exceptions when quickly shutting down src= on Safari ([#4088](https://github.com/shaka-project/shaka-player/issues/4088)) ([8ed53a3](https://github.com/shaka-project/shaka-player/commit/8ed53a35e29041b7361dfa5d80acbe33d12026fc)), closes [#4087](https://github.com/shaka-project/shaka-player/issues/4087) +* Fix playRangeEnd for certain content ([#4068](https://github.com/shaka-project/shaka-player/issues/4068)) ([65c1a72](https://github.com/shaka-project/shaka-player/commit/65c1a7231ad9e609198f6ff527d3a4efbe01aace)), closes [#4026](https://github.com/shaka-project/shaka-player/issues/4026) +* **performance:** Eliminate use of ES6 generators ([#4092](https://github.com/shaka-project/shaka-player/issues/4092)) ([e6912da](https://github.com/shaka-project/shaka-player/commit/e6912dac15807fca4537be080c0f917f30399d51)), closes [#4062](https://github.com/shaka-project/shaka-player/issues/4062) +* Select first of identical audio streams ([#3869](https://github.com/shaka-project/shaka-player/issues/3869)) ([8ee0edb](https://github.com/shaka-project/shaka-player/commit/8ee0edbb8fb9a342a19253845af3e98de9db9f77)) +* **ttml:** Center subtitles by default ([#4023](https://github.com/shaka-project/shaka-player/issues/4023)) ([9944e93](https://github.com/shaka-project/shaka-player/commit/9944e93f58f860913441d718a94d6d5411771f71)) +* **UI:** Add cursor pointer to range elements ([#4059](https://github.com/shaka-project/shaka-player/issues/4059)) ([c71ca9c](https://github.com/shaka-project/shaka-player/commit/c71ca9c3c76df006ae1aad617176da71b9bff8f3)), closes [#3220](https://github.com/shaka-project/shaka-player/issues/3220) + +## [3.2.4](https://github.com/shaka-project/shaka-player/compare/v3.2.3...v3.2.4) (2022-02-17) + + +### Bug Fixes + +* Add explicit release() for FakeEventTarget ([#3950](https://github.com/shaka-project/shaka-player/issues/3950)) ([6242622](https://github.com/shaka-project/shaka-player/commit/62426223272d0955e130e6f67145e3203504379c)) +* Fix download of some HLS assets ([#3934](https://github.com/shaka-project/shaka-player/issues/3934)) ([61c0c09](https://github.com/shaka-project/shaka-player/commit/61c0c09de96a50133d28a22df632b48b89eb1d13)) +* Fix exception in StreamingEngine for EMSG with HLS ([#3887](https://github.com/shaka-project/shaka-player/issues/3887)) ([0c4a79f](https://github.com/shaka-project/shaka-player/commit/0c4a79f4354f38dc09957fa89a80a11ec0abc88e)), closes [#3886](https://github.com/shaka-project/shaka-player/issues/3886) +* Fix memory leak in DASH live streams with inband EventStream ([#3957](https://github.com/shaka-project/shaka-player/issues/3957)) ([7891a85](https://github.com/shaka-project/shaka-player/commit/7891a85485ab05d5de72a496637f3b91653b2c60)) +* **HLS:** skip whitespace in attributes ([#3884](https://github.com/shaka-project/shaka-player/issues/3884)) ([4bfc92e](https://github.com/shaka-project/shaka-player/commit/4bfc92ee536a57ea2a1e2aa1addfe1d9a1731c88)) + +## 3.2.3 (2022-01-28) + +Bugfixes: + - Fix support for TTAF1 namespace (old version of TTML) + - https://github.com/shaka-project/shaka-player/issues/3009 + - https://github.com/shaka-project/shaka-player/pull/3864 + - https://github.com/shaka-project/shaka-player/pull/3906 + - Fix misdetection of HEVC support on MS Edge + - https://github.com/shaka-project/shaka-player/pull/3897 + - Fix caption overlap + - https://github.com/shaka-project/shaka-player/issues/3850 + - https://github.com/shaka-project/shaka-player/issues/3741 + - Support multiple chapter tracks with same language + - https://github.com/shaka-project/shaka-player/issues/3597 + - https://github.com/shaka-project/shaka-player/pull/3868 + - Fix text UI not updating when text is disabled + - https://github.com/shaka-project/shaka-player/issues/3728 + - https://github.com/shaka-project/shaka-player/pull/3867 + - Clear buffer on seek if mediaState is updating + - https://github.com/shaka-project/shaka-player/issues/3299 + - https://github.com/shaka-project/shaka-player/pull/3795 + - Fix thumbnails issues + - https://github.com/shaka-project/shaka-player/pull/3858 + - Made nested cues inherit region + - https://github.com/shaka-project/shaka-player/issues/3743 + - https://github.com/shaka-project/shaka-player/pull/3837 + - Fix MediaCapabilities polyfill on Safari + - https://github.com/shaka-project/shaka-player/issues/3696 + - https://github.com/shaka-project/shaka-player/issues/3530 + - Fix usage of Shaka without polyfills + - https://github.com/shaka-project/shaka-player/issues/3843 + - Fix playback failure due to rounding errors + - https://github.com/shaka-project/shaka-player/issues/3717 + - Fix HLS image track issues + - https://github.com/shaka-project/shaka-player/issues/3840 + - Remove caption wrapper bgColor + - https://github.com/shaka-project/shaka-player/issues/3745 + - https://github.com/shaka-project/shaka-player/pull/3838 + - Support "forced-subtitle" role + - https://github.com/shaka-project/shaka-player/issues/3767 + - https://github.com/shaka-project/shaka-player/pull/3807 + - Fix time element height on Safari + - https://github.com/shaka-project/shaka-player/issues/3739 + - https://github.com/shaka-project/shaka-player/pull/3809 + + +## 3.2.2 (2022-01-06) + +Bugfixes: + - Allow comments in the TTML parser + - https://github.com/shaka-project/shaka-player/issues/3766 + - https://github.com/shaka-project/shaka-player/pull/3827 + - Fix HDR signalling via essential or supplemental property + - https://github.com/shaka-project/shaka-player/issues/3726 + - https://github.com/shaka-project/shaka-player/pull/3727 + - Fix MediaCapabilities polyfill on Playstation 5 + - https://github.com/shaka-project/shaka-player/issues/3582 + - https://github.com/shaka-project/shaka-player/pull/3808 + - Add DASH MIME type mapping for src= playback + - https://github.com/shaka-project/shaka-player/pull/3805 + - Fix captions not working after a period transition on live DASH streams + - https://github.com/shaka-project/shaka-player/issues/3783 + - https://github.com/shaka-project/shaka-player/pull/3801 + - Fix timestamp offset of CEA-608 cues + - https://github.com/shaka-project/shaka-player/issues/3782 + - Force caption update when removing cues + - Fixes parsing of HLS 'DEFAULT' attribute + - https://github.com/shaka-project/shaka-player/issues/3769 + - https://github.com/shaka-project/shaka-player/pull/3771 + - support stpp.ttml codec in Mp4TtmlParser + - https://github.com/shaka-project/shaka-player/pull/3754 + - Fix Russian translation + - https://github.com/shaka-project/shaka-player/pull/3751 + - Fix HLS VOD duration + - https://github.com/shaka-project/shaka-player/issues/3733 + - Query HDR transfer function + - https://github.com/shaka-project/shaka-player/issues/3729 + - https://github.com/shaka-project/shaka-player/pull/3730 + - Fix styling of UI text cues + - https://github.com/shaka-project/shaka-player/issues/3521 + - https://github.com/shaka-project/shaka-player/issues/3600 + - https://github.com/shaka-project/shaka-player/issues/3713 + - Fix seek range issues on transition from live to VOD + - https://github.com/shaka-project/shaka-player/issues/3675 + - Enforce string-format of event data keys + - https://github.com/shaka-project/shaka-player/issues/3710 + - Fix vp09 playback on webOS + - https://github.com/shaka-project/shaka-player/pull/3566 + - Dedupe DRM init data + - https://github.com/shaka-project/shaka-player/pull/3695 + - Failover in geo-redundant streams + - https://github.com/shaka-project/shaka-player/pull/3587 + - Update Cast receiver ID for v3.2 + +Demo App: + - Fix 'Tears of Steel (live, DASH, Server Side ads)' + - https://github.com/shaka-project/shaka-player/pull/3758 + +Docs: + - Fix typo in Fairplay tutorial + - https://github.com/shaka-project/shaka-player/pull/3714 + + ## 3.2.1 (2021-10-13) Bugfixes: - Work around override of MediaCapabilities polyfill in Apple browsers - - https://github.com/google/shaka-player/issues/3530 - - https://github.com/google/shaka-player/pull/3668 + - https://github.com/shaka-project/shaka-player/issues/3530 + - https://github.com/shaka-project/shaka-player/pull/3668 - Fix video poster when autoplay is disabled - - https://github.com/google/shaka-player/pull/3645 + - https://github.com/shaka-project/shaka-player/pull/3645 - Fix tracking of active variant track in live streams - Fixes updating of nested cues - - https://github.com/google/shaka-player/issues/3524 - - https://github.com/google/shaka-player/issues/3643 + - https://github.com/shaka-project/shaka-player/issues/3524 + - https://github.com/shaka-project/shaka-player/issues/3643 - Fix ttml erroneously dismissing cues - - https://github.com/google/shaka-player/issues/3643 + - https://github.com/shaka-project/shaka-player/issues/3643 - Fix control panel alignment in UI - - https://github.com/google/shaka-player/pull/3650 + - https://github.com/shaka-project/shaka-player/pull/3650 - Export missing polyfill install methods - - https://github.com/google/shaka-player/pull/3660 + - https://github.com/shaka-project/shaka-player/pull/3660 - Dispose of ad manager on player detach - - https://github.com/google/shaka-player/pull/3665 + - https://github.com/shaka-project/shaka-player/pull/3665 - Add ResizeObserver to CS ad manager - - https://github.com/google/shaka-player/pull/3652 + - https://github.com/shaka-project/shaka-player/pull/3652 - Avoid seeking on src when start time is 0 - - https://github.com/google/shaka-player/issues/3518 - - https://github.com/google/shaka-player/pull/3644 + - https://github.com/shaka-project/shaka-player/issues/3518 + - https://github.com/shaka-project/shaka-player/pull/3644 - Tolerate misaligned TS files - - https://github.com/google/shaka-player/issues/3580 + - https://github.com/shaka-project/shaka-player/issues/3580 - Account for server-side ad cue points in external text tracks - - https://github.com/google/shaka-player/pull/3617 + - https://github.com/shaka-project/shaka-player/pull/3617 - Fix stopping of Server Side Ad manager - - https://github.com/google/shaka-player/pull/3611 + - https://github.com/shaka-project/shaka-player/pull/3611 - Fix DRM workaround for Tizen and Xbox with ac-3 boxes - - https://github.com/google/shaka-player/issues/3589 - - https://github.com/google/shaka-player/pull/3631 + - https://github.com/shaka-project/shaka-player/issues/3589 + - https://github.com/shaka-project/shaka-player/pull/3631 - Fix DRM workaround for Tizen and Xbox with avc3 boxes - - https://github.com/google/shaka-player/pull/3625 + - https://github.com/shaka-project/shaka-player/pull/3625 - Fix `BUFFER_READ_OUT_OF_BOUNDS` error when CEA caption packets are empty - - https://github.com/google/shaka-player/issues/3608 - - https://github.com/google/shaka-player/pull/3609 + - https://github.com/shaka-project/shaka-player/issues/3608 + - https://github.com/shaka-project/shaka-player/pull/3609 - Fix error when un-storing DRM asset - - https://github.com/google/shaka-player/issues/3534 + - https://github.com/shaka-project/shaka-player/issues/3534 - Fix CC parsing of EPB and v1 TKHD boxes - - https://github.com/google/shaka-player/issues/3502 - - https://github.com/google/shaka-player/pull/3610 + - https://github.com/shaka-project/shaka-player/issues/3502 + - https://github.com/shaka-project/shaka-player/pull/3610 - Always polyfill MediaCapabilities for Apple browsers - - https://github.com/google/shaka-player/pull/3588 + - https://github.com/shaka-project/shaka-player/pull/3588 - Add Support to iOS 12 in MediaCapabilities polyfill - - https://github.com/google/shaka-player/pull/3573 + - https://github.com/shaka-project/shaka-player/pull/3573 - Add support to file type in MediaCapabilities implementation - - https://github.com/google/shaka-player/pull/3570 + - https://github.com/shaka-project/shaka-player/pull/3570 - Display captions with forward slashes - - https://github.com/google/shaka-player/issues/3555 - - https://github.com/google/shaka-player/pull/3556 + - https://github.com/shaka-project/shaka-player/issues/3555 + - https://github.com/shaka-project/shaka-player/pull/3556 - Add support to file type in MediaCapabilities polyfill - - https://github.com/google/shaka-player/pull/3569 + - https://github.com/shaka-project/shaka-player/pull/3569 - Use "undetermined" for missing CC language - Fix FairPlay playback - - https://github.com/google/shaka-player/pull/3531 + - https://github.com/shaka-project/shaka-player/pull/3531 - Exit PiP when destroying UI - - https://github.com/google/shaka-player/issues/3553 + - https://github.com/shaka-project/shaka-player/issues/3553 Docs: - Add FAQ entry for common Vue problem - - https://github.com/google/shaka-player/issues/3155 + - https://github.com/shaka-project/shaka-player/issues/3155 ## 3.2.0 (2021-07-14) @@ -69,141 +260,141 @@ Docs: New Features: - MediaCapabilities support: configs for preferred codecs, decoding attributes, and key systems - - https://github.com/google/shaka-player/pull/3424 - - https://github.com/google/shaka-player/issues/1391 - - https://github.com/google/shaka-player/issues/3002 + - https://github.com/shaka-project/shaka-player/pull/3424 + - https://github.com/shaka-project/shaka-player/issues/1391 + - https://github.com/shaka-project/shaka-player/issues/3002 - Support more frequent segment updates during streaming - - https://github.com/google/shaka-player/pull/3483 + - https://github.com/shaka-project/shaka-player/pull/3483 - Add callback for apps to pre-process DASH manifests - - https://github.com/google/shaka-player/issues/3339 - - https://github.com/google/shaka-player/pull/3480 + - https://github.com/shaka-project/shaka-player/issues/3339 + - https://github.com/shaka-project/shaka-player/pull/3480 - Add chapters support - - https://github.com/google/shaka-player/pull/2972 + - https://github.com/shaka-project/shaka-player/pull/2972 - Add support for HLS Image Media Playlists - - https://github.com/google/shaka-player/pull/3365 + - https://github.com/shaka-project/shaka-player/pull/3365 - Add align and vertical settings to WebVttGenerator - - https://github.com/google/shaka-player/pull/3413 + - https://github.com/shaka-project/shaka-player/pull/3413 - Add a buffer fullness method - - https://github.com/google/shaka-player/issues/3389 - - https://github.com/google/shaka-player/pull/3392 + - https://github.com/shaka-project/shaka-player/issues/3389 + - https://github.com/shaka-project/shaka-player/pull/3392 - Progress toward FairPlay DRM w/ MSE - - https://github.com/google/shaka-player/pull/3347 + - https://github.com/shaka-project/shaka-player/pull/3347 - Add serverCertificateUri in DRM advanced config - - https://github.com/google/shaka-player/issues/1906 - - https://github.com/google/shaka-player/pull/3358 + - https://github.com/shaka-project/shaka-player/issues/1906 + - https://github.com/shaka-project/shaka-player/pull/3358 - Add goToLive method - - https://github.com/google/shaka-player/pull/3527 + - https://github.com/shaka-project/shaka-player/pull/3527 ## 3.1.2 (2021-07-14) Bugfixes: - Fix choosing tracks from streaming event - - https://github.com/google/shaka-player/issues/3448 - - https://github.com/google/shaka-player/pull/3459 + - https://github.com/shaka-project/shaka-player/issues/3448 + - https://github.com/shaka-project/shaka-player/pull/3459 - Fix multiperiod without consistent thumbnails - - https://github.com/google/shaka-player/issues/3383 + - https://github.com/shaka-project/shaka-player/issues/3383 - Fix failure with multiple thumbnails per period - - https://github.com/google/shaka-player/issues/3383 + - https://github.com/shaka-project/shaka-player/issues/3383 - Update Play icon after seeking from end - - https://github.com/google/shaka-player/pull/3515 + - https://github.com/shaka-project/shaka-player/pull/3515 - Reset forced subs between loads - Fix thumbnail position calculation - - https://github.com/google/shaka-player/issues/3511 - - https://github.com/google/shaka-player/pull/3516 + - https://github.com/shaka-project/shaka-player/issues/3511 + - https://github.com/shaka-project/shaka-player/pull/3516 - Fix thumbnail duration, expose start time and duration - - https://github.com/google/shaka-player/pull/3517 + - https://github.com/shaka-project/shaka-player/pull/3517 - Fix enforcement of cue alignment styles - - https://github.com/google/shaka-player/issues/3379 + - https://github.com/shaka-project/shaka-player/issues/3379 - Fix DASH transition from dynamic to static - - https://github.com/google/shaka-player/pull/3497 + - https://github.com/shaka-project/shaka-player/pull/3497 - Fix ARIA label on replay button - - https://github.com/google/shaka-player/pull/3513 + - https://github.com/shaka-project/shaka-player/pull/3513 - Fix audio language switching while using AirPlay - - https://github.com/google/shaka-player/issues/3125 - - https://github.com/google/shaka-player/pull/3472 + - https://github.com/shaka-project/shaka-player/issues/3125 + - https://github.com/shaka-project/shaka-player/pull/3472 - Show captions with rapid seek when ignoreTextStreamFailures is true - - https://github.com/google/shaka-player/pull/3476 + - https://github.com/shaka-project/shaka-player/pull/3476 - Fix clearing buffer when requested for already-selected variant - - https://github.com/google/shaka-player/pull/3477 + - https://github.com/shaka-project/shaka-player/pull/3477 - Fix hung playback on rapid seek - - https://github.com/google/shaka-player/pull/3479 + - https://github.com/shaka-project/shaka-player/pull/3479 - Don't show AirPlay button if unavailable - - https://github.com/google/shaka-player/issues/3471 + - https://github.com/shaka-project/shaka-player/issues/3471 - Fix bogus debug logs Docs: - Update upgrade guides - - https://github.com/google/shaka-player/issues/3487 + - https://github.com/shaka-project/shaka-player/issues/3487 ## 3.0.13 (2021-07-14) Bugfixes: - Fix choosing tracks from streaming event - - https://github.com/google/shaka-player/issues/3448 - - https://github.com/google/shaka-player/pull/3459 + - https://github.com/shaka-project/shaka-player/issues/3448 + - https://github.com/shaka-project/shaka-player/pull/3459 - Update Play icon after seeking from end - - https://github.com/google/shaka-player/pull/3515 + - https://github.com/shaka-project/shaka-player/pull/3515 - Fix DASH transition from dynamic to static - - https://github.com/google/shaka-player/pull/3497 + - https://github.com/shaka-project/shaka-player/pull/3497 - Fix ARIA label on replay button - - https://github.com/google/shaka-player/pull/3513 + - https://github.com/shaka-project/shaka-player/pull/3513 - Fix audio language switching while using AirPlay - - https://github.com/google/shaka-player/issues/3125 - - https://github.com/google/shaka-player/pull/3472 + - https://github.com/shaka-project/shaka-player/issues/3125 + - https://github.com/shaka-project/shaka-player/pull/3472 - Show captions with rapid seek when ignoreTextStreamFailures is true - - https://github.com/google/shaka-player/pull/3476 + - https://github.com/shaka-project/shaka-player/pull/3476 - Fix clearing buffer when requested for already-selected variant - - https://github.com/google/shaka-player/pull/3477 + - https://github.com/shaka-project/shaka-player/pull/3477 - Fix hung playback on rapid seek - - https://github.com/google/shaka-player/pull/3479 + - https://github.com/shaka-project/shaka-player/pull/3479 ## 3.1.1 (2021-06-17) Bugfixes: - Fix buffering due to re-fetch in multi-period DASH - - https://github.com/google/shaka-player/pull/3419 - - https://github.com/google/shaka-player/issues/3354 + - https://github.com/shaka-project/shaka-player/pull/3419 + - https://github.com/shaka-project/shaka-player/issues/3354 - Prioritize AVERAGE-BANDWIDTH over BANDWIDTH in HLS - - https://github.com/google/shaka-player/pull/3428 + - https://github.com/shaka-project/shaka-player/pull/3428 - Fix EC-3 box support in DRM workaround on smart TVs - - https://github.com/google/shaka-player/pull/3427 + - https://github.com/shaka-project/shaka-player/pull/3427 - Fix exception in UI on devices that do not support fullscreen - - https://github.com/google/shaka-player/issues/3441 + - https://github.com/shaka-project/shaka-player/issues/3441 - Fix caption positioning and sizing when the container resizes - - https://github.com/google/shaka-player/pull/3426 - - https://github.com/google/shaka-player/pull/3425 - - https://github.com/google/shaka-player/pull/3414 + - https://github.com/shaka-project/shaka-player/pull/3426 + - https://github.com/shaka-project/shaka-player/pull/3425 + - https://github.com/shaka-project/shaka-player/pull/3414 - Fix exceptions thrown in content with trick-mode tracks - - https://github.com/google/shaka-player/issues/3423 + - https://github.com/shaka-project/shaka-player/issues/3423 - Filter unsupported H.264 streams in Xbox - - https://github.com/google/shaka-player/pull/3411 + - https://github.com/shaka-project/shaka-player/pull/3411 - Fix out-of-bounds exception in LL-DASH - - https://github.com/google/shaka-player/issues/3402 - - https://github.com/google/shaka-player/pull/3403 + - https://github.com/shaka-project/shaka-player/issues/3402 + - https://github.com/shaka-project/shaka-player/pull/3403 - Fix failures and gaps in LL-DASH - - https://github.com/google/shaka-player/issues/3404 - - https://github.com/google/shaka-player/pull/3405 + - https://github.com/shaka-project/shaka-player/issues/3404 + - https://github.com/shaka-project/shaka-player/pull/3405 - Allow muxjs to be loaded after Shaka - - https://github.com/google/shaka-player/issues/3407 + - https://github.com/shaka-project/shaka-player/issues/3407 - Choose the configured preferred text role at start - - https://github.com/google/shaka-player/pull/3399 + - https://github.com/shaka-project/shaka-player/pull/3399 - Fix STORAGE_LIMIT_REACHED error masked by DOWNLOAD_SIZE_CALLBACK_ERROR - - https://github.com/google/shaka-player/pull/3396 + - https://github.com/shaka-project/shaka-player/pull/3396 - Fix "details" field in shaka-ui-load-failed event - - https://github.com/google/shaka-player/issues/3388 + - https://github.com/shaka-project/shaka-player/issues/3388 - Ignore network changes if ABR is disabled - - https://github.com/google/shaka-player/pull/3387 + - https://github.com/shaka-project/shaka-player/pull/3387 - Fix ClearKey+WebM+src= playback failure - - https://github.com/google/shaka-player/issues/3366 + - https://github.com/shaka-project/shaka-player/issues/3366 Docs: - Document disabling Range header requests in HLS - - https://github.com/google/shaka-player/pull/3442 + - https://github.com/shaka-project/shaka-player/pull/3442 - Add Angular integration link - - https://github.com/google/shaka-player/pull/3409 + - https://github.com/shaka-project/shaka-player/pull/3409 Demo App: - Add MIME type and extra config to custom assets @@ -213,57 +404,57 @@ Demo App: Bugfixes: - Fix buffering due to re-fetch in multi-period DASH - - https://github.com/google/shaka-player/pull/3419 - - https://github.com/google/shaka-player/issues/3354 + - https://github.com/shaka-project/shaka-player/pull/3419 + - https://github.com/shaka-project/shaka-player/issues/3354 - Prioritize AVERAGE-BANDWIDTH over BANDWIDTH in HLS - - https://github.com/google/shaka-player/pull/3428 + - https://github.com/shaka-project/shaka-player/pull/3428 - Fix EC-3 box support in DRM workaround on smart TVs - - https://github.com/google/shaka-player/pull/3427 + - https://github.com/shaka-project/shaka-player/pull/3427 - Fix exception in UI on devices that do not support fullscreen - - https://github.com/google/shaka-player/issues/3441 + - https://github.com/shaka-project/shaka-player/issues/3441 - Fix caption positioning and sizing when the container resizes - - https://github.com/google/shaka-player/pull/3426 - - https://github.com/google/shaka-player/pull/3425 - - https://github.com/google/shaka-player/pull/3414 + - https://github.com/shaka-project/shaka-player/pull/3426 + - https://github.com/shaka-project/shaka-player/pull/3425 + - https://github.com/shaka-project/shaka-player/pull/3414 - Fix exceptions thrown in content with trick-mode tracks - - https://github.com/google/shaka-player/issues/3423 + - https://github.com/shaka-project/shaka-player/issues/3423 - Filter unsupported H.264 streams in Xbox - - https://github.com/google/shaka-player/pull/3411 + - https://github.com/shaka-project/shaka-player/pull/3411 - Choose the configured preferred text role at start - - https://github.com/google/shaka-player/pull/3399 + - https://github.com/shaka-project/shaka-player/pull/3399 - Fix ClearKey+WebM+src= playback failure - - https://github.com/google/shaka-player/issues/3366 + - https://github.com/shaka-project/shaka-player/issues/3366 - Fix double-display of embedded and non-embedded captions - - https://github.com/google/shaka-player/issues/3199 + - https://github.com/shaka-project/shaka-player/issues/3199 Docs: - Document disabling Range header requests in HLS - - https://github.com/google/shaka-player/pull/3442 + - https://github.com/shaka-project/shaka-player/pull/3442 - Add Angular integration link - - https://github.com/google/shaka-player/pull/3409 + - https://github.com/shaka-project/shaka-player/pull/3409 ## 2.5.23 (2021-06-17) Bugfixes: - Prioritize AVERAGE-BANDWIDTH over BANDWIDTH in HLS - - https://github.com/google/shaka-player/pull/3428 + - https://github.com/shaka-project/shaka-player/pull/3428 - Fix exception in UI on devices that do not support fullscreen - - https://github.com/google/shaka-player/issues/3441 + - https://github.com/shaka-project/shaka-player/issues/3441 - Fix caption positioning and sizing when the container resizes - - https://github.com/google/shaka-player/pull/3426 - - https://github.com/google/shaka-player/pull/3425 - - https://github.com/google/shaka-player/pull/3414 + - https://github.com/shaka-project/shaka-player/pull/3426 + - https://github.com/shaka-project/shaka-player/pull/3425 + - https://github.com/shaka-project/shaka-player/pull/3414 - Filter unsupported H.264 streams in Xbox - - https://github.com/google/shaka-player/pull/3411 + - https://github.com/shaka-project/shaka-player/pull/3411 - Choose the configured preferred text role at start - - https://github.com/google/shaka-player/pull/3399 + - https://github.com/shaka-project/shaka-player/pull/3399 - Fix ClearKey+WebM+src= playback failure - - https://github.com/google/shaka-player/issues/3366 + - https://github.com/shaka-project/shaka-player/issues/3366 Docs: - Add Angular integration link - - https://github.com/google/shaka-player/pull/3409 + - https://github.com/shaka-project/shaka-player/pull/3409 ## 3.1.0 (2021-04-29) @@ -271,345 +462,345 @@ Docs: New Features: - Ads APIs are now STABLE (no longer BETA) - MediaCapabilities support (BETA) - - https://github.com/google/shaka-player/issues/1391 + - https://github.com/shaka-project/shaka-player/issues/1391 - Remove support for IE11 - - https://github.com/google/shaka-player/issues/2339 + - https://github.com/shaka-project/shaka-player/issues/2339 - Low-latency HLS (LL-HLS) and DASH (LL-DASH) support - - https://github.com/google/shaka-player/issues/1525 + - https://github.com/shaka-project/shaka-player/issues/1525 - Make DASH keySystems configurable - - https://github.com/google/shaka-player/pull/3276 + - https://github.com/shaka-project/shaka-player/pull/3276 - Make DRM sessionType configurable in advanced DRM config - - https://github.com/google/shaka-player/pull/3301 + - https://github.com/shaka-project/shaka-player/pull/3301 - Add Loop, PIP, Cast, AirPlay buttons to control panel - - https://github.com/google/shaka-player/issues/2676 - - https://github.com/google/shaka-player/pull/3255 + - https://github.com/shaka-project/shaka-player/issues/2676 + - https://github.com/shaka-project/shaka-player/pull/3255 - Network stall detection - - https://github.com/google/shaka-player/pull/3227 + - https://github.com/shaka-project/shaka-player/pull/3227 - Store thumbnails for offline playback - - https://github.com/google/shaka-player/pull/3280 + - https://github.com/shaka-project/shaka-player/pull/3280 - Extract HDR metadata from DASH manifests - - https://github.com/google/shaka-player/pull/3226 + - https://github.com/shaka-project/shaka-player/pull/3226 - Make gap detection threshold configurable - - https://github.com/google/shaka-player/pull/3166 + - https://github.com/shaka-project/shaka-player/pull/3166 - Support WebVTT default text color and default text background color - - https://github.com/google/shaka-player/issues/3182 - - https://github.com/google/shaka-player/pull/3182 + - https://github.com/shaka-project/shaka-player/issues/3182 + - https://github.com/shaka-project/shaka-player/pull/3182 - Add support for thumbnail tracks - - https://github.com/google/shaka-player/pull/3145 + - https://github.com/shaka-project/shaka-player/pull/3145 - Add getKeyStatuses to Player - Parse spatial audio from manifest - - https://github.com/google/shaka-player/pull/3148 + - https://github.com/shaka-project/shaka-player/pull/3148 - Add support for WebVTT style blocks - - https://github.com/google/shaka-player/pull/3071 + - https://github.com/shaka-project/shaka-player/pull/3071 - Add SubViewer (SBV) support - - https://github.com/google/shaka-player/pull/3063 - - https://github.com/google/shaka-player/pull/3266 + - https://github.com/shaka-project/shaka-player/pull/3063 + - https://github.com/shaka-project/shaka-player/pull/3266 - Add SubStation Alpha (SSA) support - - https://github.com/google/shaka-player/pull/3060 + - https://github.com/shaka-project/shaka-player/pull/3060 - Add downloadSizeCallback before storing offline - - https://github.com/google/shaka-player/issues/3049 - - https://github.com/google/shaka-player/pull/3049 + - https://github.com/shaka-project/shaka-player/issues/3049 + - https://github.com/shaka-project/shaka-player/pull/3049 - Extract HDR metadata from HLS manifests - - https://github.com/google/shaka-player/issues/3116 - - https://github.com/google/shaka-player/pull/3116 + - https://github.com/shaka-project/shaka-player/issues/3116 + - https://github.com/shaka-project/shaka-player/pull/3116 - add ignoreMaxSegmentDuration config for DASH manifest - - https://github.com/google/shaka-player/pull/3115 + - https://github.com/shaka-project/shaka-player/pull/3115 - Add navigator.storage.estimate polyfill - - https://github.com/google/shaka-player/issues/2900 - - https://github.com/google/shaka-player/pull/3050 + - https://github.com/shaka-project/shaka-player/issues/2900 + - https://github.com/shaka-project/shaka-player/pull/3050 - Prefer unprefixed EME for Safari - - https://github.com/google/shaka-player/pull/3021 + - https://github.com/shaka-project/shaka-player/pull/3021 - Add config to prefer native HLS playback - - https://github.com/google/shaka-player/issues/3077 + - https://github.com/shaka-project/shaka-player/issues/3077 - Add LyRiCs (LRC) support - - https://github.com/google/shaka-player/pull/3036 + - https://github.com/shaka-project/shaka-player/pull/3036 - Add support for SMPTE namespace 2013 - - https://github.com/google/shaka-player/issues/3061 - - https://github.com/google/shaka-player/pull/3062 + - https://github.com/shaka-project/shaka-player/issues/3061 + - https://github.com/shaka-project/shaka-player/pull/3062 - Add support for mpegB:cicp:ChannelConfiguration - - https://github.com/google/shaka-player/pull/3057 + - https://github.com/shaka-project/shaka-player/pull/3057 - Config to prefer forced subtitles - - https://github.com/google/shaka-player/pull/3022 + - https://github.com/shaka-project/shaka-player/pull/3022 - Change default network request timeout - - https://github.com/google/shaka-player/pull/3024 + - https://github.com/shaka-project/shaka-player/pull/3024 - Optionally force HTTPS content URIs - - https://github.com/google/shaka-player/pull/3025 + - https://github.com/shaka-project/shaka-player/pull/3025 - Add parameter to probeSupport to skip DRM tests - - https://github.com/google/shaka-player/pull/3047 + - https://github.com/shaka-project/shaka-player/pull/3047 - Add autoLowLatencyMode config - - https://github.com/google/shaka-player/issues/1525 - - https://github.com/google/shaka-player/pull/2861 + - https://github.com/shaka-project/shaka-player/issues/1525 + - https://github.com/shaka-project/shaka-player/pull/2861 - Allow apps to register a custom seek bar UI implementation - - https://github.com/google/shaka-player/issues/2924 - - https://github.com/google/shaka-player/pull/2966 + - https://github.com/shaka-project/shaka-player/issues/2924 + - https://github.com/shaka-project/shaka-player/pull/2966 - Parse forced subtitles from manifest - - https://github.com/google/shaka-player/issues/2122 - - https://github.com/google/shaka-player/issues/2916 - - https://github.com/google/shaka-player/pull/2938 + - https://github.com/shaka-project/shaka-player/issues/2122 + - https://github.com/shaka-project/shaka-player/issues/2916 + - https://github.com/shaka-project/shaka-player/pull/2938 - Add addTextTrackAsync - - https://github.com/google/shaka-player/pull/2932 + - https://github.com/shaka-project/shaka-player/pull/2932 - Allow showing track labels in UI - - https://github.com/google/shaka-player/issues/2927 + - https://github.com/shaka-project/shaka-player/issues/2927 - Allow switching between mono and stereo tracks - - https://github.com/google/shaka-player/pull/2911 + - https://github.com/shaka-project/shaka-player/pull/2911 - Add support to side-load subtitles in src mode - - https://github.com/google/shaka-player/pull/2874 + - https://github.com/shaka-project/shaka-player/pull/2874 - Add SubRip (SRT) subtitle support - - https://github.com/google/shaka-player/pull/2872 + - https://github.com/shaka-project/shaka-player/pull/2872 - CEA-708 Decoder - - https://github.com/google/shaka-player/pull/2807 + - https://github.com/shaka-project/shaka-player/pull/2807 - Added completionPercent to playback stats - Render bold/italics/underline on SimpleTextDisplayer - - https://github.com/google/shaka-player/pull/2779 + - https://github.com/shaka-project/shaka-player/pull/2779 - Adds VTT tag rendering for bold, italic, and underline - - https://github.com/google/shaka-player/issues/2348 - - https://github.com/google/shaka-player/pull/2776 + - https://github.com/shaka-project/shaka-player/issues/2348 + - https://github.com/shaka-project/shaka-player/pull/2776 - CEA-608 Decoder - - https://github.com/google/shaka-player/issues/2648 - - https://github.com/google/shaka-player/pull/2731 - - https://github.com/google/shaka-player/pull/2649 - - https://github.com/google/shaka-player/pull/2660 + - https://github.com/shaka-project/shaka-player/issues/2648 + - https://github.com/shaka-project/shaka-player/pull/2731 + - https://github.com/shaka-project/shaka-player/pull/2649 + - https://github.com/shaka-project/shaka-player/pull/2660 - Add dependencies module to allow custom dependency injection - - https://github.com/google/shaka-player/issues/2562 - - https://github.com/google/shaka-player/pull/2683 + - https://github.com/shaka-project/shaka-player/issues/2562 + - https://github.com/shaka-project/shaka-player/pull/2683 - Add HLS PlayReady support - - https://github.com/google/shaka-player/pull/2719 + - https://github.com/shaka-project/shaka-player/pull/2719 - Add AirPlay button to overflow menu - - https://github.com/google/shaka-player/pull/2701 + - https://github.com/shaka-project/shaka-player/pull/2701 - Use Network Information API to react to network changes - - https://github.com/google/shaka-player/pull/2663 + - https://github.com/shaka-project/shaka-player/pull/2663 - Added polyfill for screen.orientation - Add support for EXT-X-SESSION-DATA in HLS - - https://github.com/google/shaka-player/pull/2642 + - https://github.com/shaka-project/shaka-player/pull/2642 - Add forceLandscapeOnFullscreen UI config - - https://github.com/google/shaka-player/issues/883 - - https://github.com/google/shaka-player/issues/2653 + - https://github.com/shaka-project/shaka-player/issues/883 + - https://github.com/shaka-project/shaka-player/issues/2653 ## 3.0.11 (2021-04-28) Bugfixes: - Assume MP4 in HLS if MIME type can't be deduced - - https://github.com/google/shaka-player/issues/3142 - - https://github.com/google/shaka-player/pull/3325 + - https://github.com/shaka-project/shaka-player/issues/3142 + - https://github.com/shaka-project/shaka-player/pull/3325 - Fix resolution changes with lang change - - https://github.com/google/shaka-player/issues/3262 - - https://github.com/google/shaka-player/issues/3288 + - https://github.com/shaka-project/shaka-player/issues/3262 + - https://github.com/shaka-project/shaka-player/issues/3288 - Resume previous playback speed after pause - - https://github.com/google/shaka-player/issues/3261 + - https://github.com/shaka-project/shaka-player/issues/3261 - Fix updating of the mute icon - - https://github.com/google/shaka-player/pull/3307 + - https://github.com/shaka-project/shaka-player/pull/3307 - Fix text writing-mode support in old versions of Tizen and WebOS - - https://github.com/google/shaka-player/pull/3330 + - https://github.com/shaka-project/shaka-player/pull/3330 - Show replay icon instead of play when video ends - - https://github.com/google/shaka-player/issues/3247 - - https://github.com/google/shaka-player/pull/3253 + - https://github.com/shaka-project/shaka-player/issues/3247 + - https://github.com/shaka-project/shaka-player/pull/3253 - Fix cross-browser focus outline - - https://github.com/google/shaka-player/issues/2863 + - https://github.com/shaka-project/shaka-player/issues/2863 - Fix rapid keyboard-based seeking - - https://github.com/google/shaka-player/issues/3234 - - https://github.com/google/shaka-player/pull/3259 + - https://github.com/shaka-project/shaka-player/issues/3234 + - https://github.com/shaka-project/shaka-player/pull/3259 - Fix holding keyboard controls - - https://github.com/google/shaka-player/pull/3267 + - https://github.com/shaka-project/shaka-player/pull/3267 - Display cursors as pointers on overflow menu buttons - - https://github.com/google/shaka-player/pull/3218 + - https://github.com/shaka-project/shaka-player/pull/3218 - Fix failed assertion for eviction logic - - https://github.com/google/shaka-player/issues/3169 + - https://github.com/shaka-project/shaka-player/issues/3169 - Fix stalls on a live dash stream - - https://github.com/google/shaka-player/issues/3139 - - https://github.com/google/shaka-player/issues/3169 + - https://github.com/shaka-project/shaka-player/issues/3139 + - https://github.com/shaka-project/shaka-player/issues/3169 - Fix HLS content type detection with text codecs - - https://github.com/google/shaka-player/issues/3184 + - https://github.com/shaka-project/shaka-player/issues/3184 Ad Features (BETA): - Fix the skip ad button not being clickable - - https://github.com/google/shaka-player/issues/3284 - - https://github.com/google/shaka-player/pull/3326 + - https://github.com/shaka-project/shaka-player/issues/3284 + - https://github.com/shaka-project/shaka-player/pull/3326 - Add the original IMA event to the Shaka `AD_CLICKED` event - - https://github.com/google/shaka-player/issues/3304 + - https://github.com/shaka-project/shaka-player/issues/3304 - Add more info on serving limited ads to the tutorial Demo App: - Fix centering of icons, add hover effect on settings - - https://github.com/google/shaka-player/pull/3352 + - https://github.com/shaka-project/shaka-player/pull/3352 Docs: - Update event docs and event links - - https://github.com/google/shaka-player/pull/3256 + - https://github.com/shaka-project/shaka-player/pull/3256 - Add the UI Theme Gallery link to the docs - - https://github.com/google/shaka-player/issues/3246 + - https://github.com/shaka-project/shaka-player/issues/3246 - Fixed various grammatical errors and typos - - https://github.com/google/shaka-player/pull/3342 - - https://github.com/google/shaka-player/pull/3340 + - https://github.com/shaka-project/shaka-player/pull/3342 + - https://github.com/shaka-project/shaka-player/pull/3340 - Fix offline tutorial to use the correct config - - https://github.com/google/shaka-player/pull/3337 + - https://github.com/shaka-project/shaka-player/pull/3337 Misc: - Allow testing with Chromium-based Edge in Karma - - https://github.com/google/shaka-player/pull/3265 + - https://github.com/shaka-project/shaka-player/pull/3265 - Official Xbox One support - - https://github.com/google/shaka-player/issues/1705 + - https://github.com/shaka-project/shaka-player/issues/1705 ## 2.5.22 (2021-04-28) Bugfixes: - Assume MP4 in HLS if MIME type can't be deduced - - https://github.com/google/shaka-player/issues/3142 - - https://github.com/google/shaka-player/pull/3325 + - https://github.com/shaka-project/shaka-player/issues/3142 + - https://github.com/shaka-project/shaka-player/pull/3325 - Fix resolution changes with lang change - - https://github.com/google/shaka-player/issues/3262 - - https://github.com/google/shaka-player/issues/3288 + - https://github.com/shaka-project/shaka-player/issues/3262 + - https://github.com/shaka-project/shaka-player/issues/3288 - Resume previous playback speed after pause - - https://github.com/google/shaka-player/issues/3261 + - https://github.com/shaka-project/shaka-player/issues/3261 - Fix updating of the mute icon - - https://github.com/google/shaka-player/pull/3307 + - https://github.com/shaka-project/shaka-player/pull/3307 - Fix text writing-mode support in old versions of Tizen and WebOS - - https://github.com/google/shaka-player/pull/3330 + - https://github.com/shaka-project/shaka-player/pull/3330 - Show replay icon instead of play when video ends - - https://github.com/google/shaka-player/issues/3247 - - https://github.com/google/shaka-player/pull/3253 + - https://github.com/shaka-project/shaka-player/issues/3247 + - https://github.com/shaka-project/shaka-player/pull/3253 - Fix cross-browser focus outline - - https://github.com/google/shaka-player/issues/2863 + - https://github.com/shaka-project/shaka-player/issues/2863 - Fix rapid keyboard-based seeking - - https://github.com/google/shaka-player/issues/3234 - - https://github.com/google/shaka-player/pull/3259 + - https://github.com/shaka-project/shaka-player/issues/3234 + - https://github.com/shaka-project/shaka-player/pull/3259 - Fix holding keyboard controls - - https://github.com/google/shaka-player/pull/3267 + - https://github.com/shaka-project/shaka-player/pull/3267 - Fix stylelint on Windows - - https://github.com/google/shaka-player/issues/2985 - - https://github.com/google/shaka-player/pull/3214 + - https://github.com/shaka-project/shaka-player/issues/2985 + - https://github.com/shaka-project/shaka-player/pull/3214 - Display cursors as pointers on overflow menu buttons - - https://github.com/google/shaka-player/pull/3218 + - https://github.com/shaka-project/shaka-player/pull/3218 Demo App: - Fix centering of icons, add hover effect on settings - - https://github.com/google/shaka-player/pull/3352 + - https://github.com/shaka-project/shaka-player/pull/3352 Docs: - Update event docs and event links - Add the UI Theme Gallery link to the docs - - https://github.com/google/shaka-player/issues/3246 + - https://github.com/shaka-project/shaka-player/issues/3246 - Fixed various grammatical errors and typos - - https://github.com/google/shaka-player/pull/3342 - - https://github.com/google/shaka-player/pull/3340 + - https://github.com/shaka-project/shaka-player/pull/3342 + - https://github.com/shaka-project/shaka-player/pull/3340 Misc: - Allow testing with Chromium-based Edge in Karma - - https://github.com/google/shaka-player/pull/3265 + - https://github.com/shaka-project/shaka-player/pull/3265 - Official Xbox One support - - https://github.com/google/shaka-player/issues/1705 + - https://github.com/shaka-project/shaka-player/issues/1705 ## 3.0.10 (2021-03-18) Bugfixes: - Fix stalls in some multi-Period DASH content - - https://github.com/google/shaka-player/issues/3230 + - https://github.com/shaka-project/shaka-player/issues/3230 - Fix stylelint errors on Windows - - https://github.com/google/shaka-player/issues/2985 - - https://github.com/google/shaka-player/pull/3214 + - https://github.com/shaka-project/shaka-player/issues/2985 + - https://github.com/shaka-project/shaka-player/pull/3214 ## 3.0.9 (2021-03-15) Bugfixes: - Fixed build error on Windows - - https://github.com/google/shaka-player/issues/3208 - - https://github.com/google/shaka-player/issues/3204 - - https://github.com/google/shaka-player/pull/3211 + - https://github.com/shaka-project/shaka-player/issues/3208 + - https://github.com/shaka-project/shaka-player/issues/3204 + - https://github.com/shaka-project/shaka-player/pull/3211 - Exported SegmentReference.getUris - - https://github.com/google/shaka-player/issues/3096 + - https://github.com/shaka-project/shaka-player/issues/3096 - Fix giant gaps in SSAI content - - https://github.com/google/shaka-player/issues/3191 + - https://github.com/shaka-project/shaka-player/issues/3191 - Fix TTML background image attribute case - - https://github.com/google/shaka-player/issues/3196 + - https://github.com/shaka-project/shaka-player/issues/3196 - Avoid setting global Cast hook - - https://github.com/google/shaka-player/issues/3167 + - https://github.com/shaka-project/shaka-player/issues/3167 - Fix codec choice when resolutions differ - - https://github.com/google/shaka-player/issues/3056 - - https://github.com/google/shaka-player/pull/3072 + - https://github.com/shaka-project/shaka-player/issues/3056 + - https://github.com/shaka-project/shaka-player/pull/3072 - Fix autoplay for non-zero-start VOD - - https://github.com/google/shaka-player/issues/2987 + - https://github.com/shaka-project/shaka-player/issues/2987 - Allow playing Periods with missing text - - https://github.com/google/shaka-player/issues/2957 + - https://github.com/shaka-project/shaka-player/issues/2957 - Support localized whitespace preservation in TTML - - https://github.com/google/shaka-player/issues/3011 - - https://github.com/google/shaka-player/pull/3043 + - https://github.com/shaka-project/shaka-player/issues/3011 + - https://github.com/shaka-project/shaka-player/pull/3043 - Fix offline storage after a failure - - https://github.com/google/shaka-player/issues/2781 + - https://github.com/shaka-project/shaka-player/issues/2781 - Fix repeated seek on start for some content - - https://github.com/google/shaka-player/issues/2831 + - https://github.com/shaka-project/shaka-player/issues/2831 - Fix subtitle display in timing edge case - - https://github.com/google/shaka-player/issues/3151 - - https://github.com/google/shaka-player/pull/3152 + - https://github.com/shaka-project/shaka-player/issues/3151 + - https://github.com/shaka-project/shaka-player/pull/3152 - Support version 1 emsg boxes - - https://github.com/google/shaka-player/issues/1539 - - https://github.com/google/shaka-player/pull/3147 - - https://github.com/google/shaka-player/pull/3198 + - https://github.com/shaka-project/shaka-player/issues/1539 + - https://github.com/shaka-project/shaka-player/pull/3147 + - https://github.com/shaka-project/shaka-player/pull/3198 Ads (BETA): - Change the value of the 'mpt' param we set for tracking - Expose native IMA stream manager for SS DAI - Hide the ad container when ads aren't playing - - https://github.com/google/shaka-player/issues/3121 + - https://github.com/shaka-project/shaka-player/issues/3121 - Add "limited ads" section to the ads tutorial - Expand the IMA integration tutorial - - https://github.com/google/shaka-player/issues/3168 + - https://github.com/shaka-project/shaka-player/issues/3168 Docs: - Fixed various typos - - https://github.com/google/shaka-player/pull/3222 + - https://github.com/shaka-project/shaka-player/pull/3222 - Fixed outdated info and typos - - https://github.com/google/shaka-player/pull/3206 + - https://github.com/shaka-project/shaka-player/pull/3206 - Document programmatic UI setup - - https://github.com/google/shaka-player/issues/2655 + - https://github.com/shaka-project/shaka-player/issues/2655 - Update doc for manifest and segment ALR - Add vue.js, nuxt.js and video.js integration examples - - https://github.com/google/shaka-player/pull/3160 + - https://github.com/shaka-project/shaka-player/pull/3160 Demo App: - Make it possible to add custom ad assets with no manifest uri. - - https://github.com/google/shaka-player/issues/3136 + - https://github.com/shaka-project/shaka-player/issues/3136 - Add an ADS tab to the custom content page - - https://github.com/google/shaka-player/issues/3136 + - https://github.com/shaka-project/shaka-player/issues/3136 - Add DAI live DASH example to DEMO app - - https://github.com/google/shaka-player/pull/3170 + - https://github.com/shaka-project/shaka-player/pull/3170 ## 2.5.21 (2021-03-12) Bugfixes: - Fix giant gaps in SSAI content - - https://github.com/google/shaka-player/issues/3191 + - https://github.com/shaka-project/shaka-player/issues/3191 - Fix TTML background image attribute case - - https://github.com/google/shaka-player/issues/3196 + - https://github.com/shaka-project/shaka-player/issues/3196 - Avoid setting global Cast hook - - https://github.com/google/shaka-player/issues/3167 + - https://github.com/shaka-project/shaka-player/issues/3167 - Fix codec choice when resolutions differ - - https://github.com/google/shaka-player/pull/3072 + - https://github.com/shaka-project/shaka-player/pull/3072 - Fix autoplay for non-zero-start VOD - - https://github.com/google/shaka-player/issues/2987 + - https://github.com/shaka-project/shaka-player/issues/2987 - Support localized whitespace preservation in TTML - - https://github.com/google/shaka-player/issues/3011 - - https://github.com/google/shaka-player/pull/3043 + - https://github.com/shaka-project/shaka-player/issues/3011 + - https://github.com/shaka-project/shaka-player/pull/3043 - Fix repeated seek on start for some content - - https://github.com/google/shaka-player/issues/2831 + - https://github.com/shaka-project/shaka-player/issues/2831 - Fix subtitle display in timing edge case - - https://github.com/google/shaka-player/issues/3151 - - https://github.com/google/shaka-player/pull/3152 + - https://github.com/shaka-project/shaka-player/issues/3151 + - https://github.com/shaka-project/shaka-player/pull/3152 - Fixed build error on Windows - - https://github.com/google/shaka-player/pull/3211 - - https://github.com/google/shaka-player/issues/3208 - - https://github.com/google/shaka-player/issues/3204 + - https://github.com/shaka-project/shaka-player/pull/3211 + - https://github.com/shaka-project/shaka-player/issues/3208 + - https://github.com/shaka-project/shaka-player/issues/3204 Docs: - Fixed outdated info and typos - - https://github.com/google/shaka-player/pull/3206 + - https://github.com/shaka-project/shaka-player/pull/3206 - Fixed various typos - - https://github.com/google/shaka-player/pull/3222 + - https://github.com/shaka-project/shaka-player/pull/3222 - Document programmatic UI setup - - https://github.com/google/shaka-player/issues/2655 + - https://github.com/shaka-project/shaka-player/issues/2655 - Update doc for manifest and segment ALR @@ -617,51 +808,51 @@ Docs: Bugfixes: - Fix memory leak in Webpack-bundled version - - https://github.com/google/shaka-player/issues/3092 - - https://github.com/google/shaka-player/pull/3098 + - https://github.com/shaka-project/shaka-player/issues/3092 + - https://github.com/shaka-project/shaka-player/pull/3098 - Fix build in Python 3 - - https://github.com/google/shaka-player/issues/3102 + - https://github.com/shaka-project/shaka-player/issues/3102 - Fix broken build in directories with spaces - - https://github.com/google/shaka-player/issues/3102 + - https://github.com/shaka-project/shaka-player/issues/3102 - Fix mixed clear/encrypted content on Xbox & Tizen - - https://github.com/google/shaka-player/issues/2759 + - https://github.com/shaka-project/shaka-player/issues/2759 - Fix trick mode tracks in DASH (work around compiler bug) - - https://github.com/google/shaka-player/issues/3085 - - https://github.com/google/shaka-player/pull/3087 + - https://github.com/shaka-project/shaka-player/issues/3085 + - https://github.com/shaka-project/shaka-player/pull/3087 - Fix DRM initialization on WebOS 3.0 - - https://github.com/google/shaka-player/pull/3109 + - https://github.com/shaka-project/shaka-player/pull/3109 - Fix segment refs for "future" DASH periods - Recognize "m4f" extension in HLS - - https://github.com/google/shaka-player/issues/3099 - - https://github.com/google/shaka-player/pull/3111 + - https://github.com/shaka-project/shaka-player/issues/3099 + - https://github.com/shaka-project/shaka-player/pull/3111 - Catch unhandled rejection while destroying StreamingEngine - Fix header sizes for MP4 boxes with 64-bit size fields - Fix load-time exception in nodejs Ads (BETA): - Use the correct AdsLoader `AD_ERROR` event - - https://github.com/google/shaka-player/issues/3095 - - https://github.com/google/shaka-player/pull/3105 + - https://github.com/shaka-project/shaka-player/issues/3095 + - https://github.com/shaka-project/shaka-player/pull/3105 - Expose getMinSuggestedDuration - Add setVpaidMode to the IMA externs - - https://github.com/google/shaka-player/pull/3135 + - https://github.com/shaka-project/shaka-player/pull/3135 ## 2.5.20 (2021-02-08) Bugfixes: - Fix build in Python 3 - - https://github.com/google/shaka-player/issues/3102 + - https://github.com/shaka-project/shaka-player/issues/3102 - Fix broken build in directories with spaces - - https://github.com/google/shaka-player/issues/3102 + - https://github.com/shaka-project/shaka-player/issues/3102 - Fix trick mode tracks in DASH (work around compiler bug) - - https://github.com/google/shaka-player/issues/3085 - - https://github.com/google/shaka-player/pull/3087 + - https://github.com/shaka-project/shaka-player/issues/3085 + - https://github.com/shaka-project/shaka-player/pull/3087 - Fix DRM initialization on WebOS 3.0 - - https://github.com/google/shaka-player/pull/3109 + - https://github.com/shaka-project/shaka-player/pull/3109 - Recognize "m4f" extension in HLS - - https://github.com/google/shaka-player/issues/3099 - - https://github.com/google/shaka-player/pull/3111 + - https://github.com/shaka-project/shaka-player/issues/3099 + - https://github.com/shaka-project/shaka-player/pull/3111 - Fix header sizes for MP4 boxes with 64-bit size fields @@ -671,61 +862,61 @@ Bugfixes: - Fix text failures triggered by rapid stream switches - Remove legacy Edge workarounds on new Edge - Fix viewport anchor calculations in TTML - - https://github.com/google/shaka-player/pull/3065 + - https://github.com/shaka-project/shaka-player/pull/3065 - Fix slow memory leak related to MediaSource object URLs - - https://github.com/google/shaka-player/issues/2953 + - https://github.com/shaka-project/shaka-player/issues/2953 - Fix clicking in interactive client-side ads - - https://github.com/google/shaka-player/issues/3053 + - https://github.com/shaka-project/shaka-player/issues/3053 - Improve cue comparison performance - - https://github.com/google/shaka-player/issues/3018 + - https://github.com/shaka-project/shaka-player/issues/3018 - Fix race condition in text stream scheduling - - https://github.com/google/shaka-player/issues/2764 + - https://github.com/shaka-project/shaka-player/issues/2764 - Fix multiple stream-merging issues with DASH multi-period content - - https://github.com/google/shaka-player/issues/2785 - - https://github.com/google/shaka-player/issues/2884 + - https://github.com/shaka-project/shaka-player/issues/2785 + - https://github.com/shaka-project/shaka-player/issues/2884 - Fix exception when removing content from buffer - - https://github.com/google/shaka-player/issues/2982 - - https://github.com/google/shaka-player/pull/3042 + - https://github.com/shaka-project/shaka-player/issues/2982 + - https://github.com/shaka-project/shaka-player/pull/3042 - Fix memory leak in DASH with SegmentTimeline - - https://github.com/google/shaka-player/issues/3038 - - https://github.com/google/shaka-player/pull/3039 + - https://github.com/shaka-project/shaka-player/issues/3038 + - https://github.com/shaka-project/shaka-player/pull/3039 - Fix trick-mode tracks associated with multiple regular tracks - - https://github.com/google/shaka-player/pull/2992 + - https://github.com/shaka-project/shaka-player/pull/2992 - Fix TS DRM failures - - https://github.com/google/shaka-player/issues/2981 + - https://github.com/shaka-project/shaka-player/issues/2981 - Work around misreported AC-3 support on Tizen - - https://github.com/google/shaka-player/issues/2989 + - https://github.com/shaka-project/shaka-player/issues/2989 - Ignore incompatible TrickMode streams - - https://github.com/google/shaka-player/pull/2984 + - https://github.com/shaka-project/shaka-player/pull/2984 - Fix rare exception thrown when switching streams - - https://github.com/google/shaka-player/issues/2956 - - https://github.com/google/shaka-player/issues/2970 + - https://github.com/shaka-project/shaka-player/issues/2956 + - https://github.com/shaka-project/shaka-player/issues/2970 - Fix rendering of line breaks in text cues - - https://github.com/google/shaka-player/issues/2828 + - https://github.com/shaka-project/shaka-player/issues/2828 Ads (BETA): - Fix ad disappearance when reconfiguring UI during an ad - - https://github.com/google/shaka-player/issues/2869 - - https://github.com/google/shaka-player/issues/2943 + - https://github.com/shaka-project/shaka-player/issues/2869 + - https://github.com/shaka-project/shaka-player/issues/2943 - Fix stopping ad manager after adblock Build: - Fix build issues with Python 3 - - https://github.com/google/shaka-player/issues/3003 - - https://github.com/google/shaka-player/issues/3004 + - https://github.com/shaka-project/shaka-player/issues/3003 + - https://github.com/shaka-project/shaka-player/issues/3004 - Fix running build scripts on Windows - - https://github.com/google/shaka-player/issues/2988 + - https://github.com/shaka-project/shaka-player/issues/2988 - Fix build error about stylelint paths - Fix build failure in context of node module Demo App: - Fix keyboard navigation in settings - - https://github.com/google/shaka-player/issues/2986 + - https://github.com/shaka-project/shaka-player/issues/2986 Docs: - Clean up doc generation - Fix docs generation for enums in ui - - https://github.com/google/shaka-player/issues/2698 + - https://github.com/shaka-project/shaka-player/issues/2698 ## 2.5.19 (2021-01-06) @@ -733,193 +924,193 @@ Docs: Bugfixes: - Remove legacy Edge workarounds on new Edge - Fix viewport anchor calculations in TTML - - https://github.com/google/shaka-player/pull/3065 + - https://github.com/shaka-project/shaka-player/pull/3065 - Fix slow memory leak related to MediaSource object URLs - - https://github.com/google/shaka-player/issues/2953 + - https://github.com/shaka-project/shaka-player/issues/2953 - Improve cue comparison performance - - https://github.com/google/shaka-player/issues/3018 + - https://github.com/shaka-project/shaka-player/issues/3018 - Fix race condition in text stream scheduling - - https://github.com/google/shaka-player/issues/2764 + - https://github.com/shaka-project/shaka-player/issues/2764 - Fix exception when removing content from buffer - - https://github.com/google/shaka-player/issues/2982 - - https://github.com/google/shaka-player/pull/3042 + - https://github.com/shaka-project/shaka-player/issues/2982 + - https://github.com/shaka-project/shaka-player/pull/3042 - Work around misreported AC-3 support on Tizen - - https://github.com/google/shaka-player/issues/2989 + - https://github.com/shaka-project/shaka-player/issues/2989 - Fix trick-mode tracks associated with multiple regular tracks - - https://github.com/google/shaka-player/pull/2992 + - https://github.com/shaka-project/shaka-player/pull/2992 - Fix TS DRM failures - - https://github.com/google/shaka-player/issues/2981 + - https://github.com/shaka-project/shaka-player/issues/2981 - Ignore incompatible TrickMode streams - - https://github.com/google/shaka-player/pull/2984 + - https://github.com/shaka-project/shaka-player/pull/2984 Build: - Fix build issues with Python 3 - - https://github.com/google/shaka-player/issues/3004 + - https://github.com/shaka-project/shaka-player/issues/3004 - Fix running build scripts on Windows - - https://github.com/google/shaka-player/issues/2988 + - https://github.com/shaka-project/shaka-player/issues/2988 - Fix build error about stylelint paths - Fix build failure in context of node module Demo App: - Fix keyboard navigation in settings - - https://github.com/google/shaka-player/issues/2986 + - https://github.com/shaka-project/shaka-player/issues/2986 Docs: - Clean up doc generation - Fix docs generation for enums in ui - - https://github.com/google/shaka-player/issues/2698 + - https://github.com/shaka-project/shaka-player/issues/2698 ## 3.0.6 (2020-11-12) Bugfixes: - Fix handling of metadata tracks for src= playback - - https://github.com/google/shaka-player/pull/2971 + - https://github.com/shaka-project/shaka-player/pull/2971 - Fix handling of role-less audio tracks - - https://github.com/google/shaka-player/issues/2906 - - https://github.com/google/shaka-player/issues/2909 + - https://github.com/shaka-project/shaka-player/issues/2906 + - https://github.com/shaka-project/shaka-player/issues/2909 - Fix support for multi-period encrypted live - - https://github.com/google/shaka-player/issues/2979 - - https://github.com/google/shaka-player/issues/2645 + - https://github.com/shaka-project/shaka-player/issues/2979 + - https://github.com/shaka-project/shaka-player/issues/2645 - Export UI externs - - https://github.com/google/shaka-player/issues/2948 + - https://github.com/shaka-project/shaka-player/issues/2948 - Fix duplicate init segment requests on manifest updates - - https://github.com/google/shaka-player/issues/2856 - - https://github.com/google/shaka-player/pull/2942 + - https://github.com/shaka-project/shaka-player/issues/2856 + - https://github.com/shaka-project/shaka-player/pull/2942 - Fix hard-coded TTML namespaces - - https://github.com/google/shaka-player/issues/2756 + - https://github.com/shaka-project/shaka-player/issues/2756 - Fix test failure on IE11 - Filter out "chapters" tracks during src= playback - - https://github.com/google/shaka-player/pull/2960 + - https://github.com/shaka-project/shaka-player/pull/2960 - Fix compatibility for plugin factories - - https://github.com/google/shaka-player/issues/2958 + - https://github.com/shaka-project/shaka-player/issues/2958 - Be more permissive in vtt files - - https://github.com/google/shaka-player/pull/2941 + - https://github.com/shaka-project/shaka-player/pull/2941 - Fix renaming of UI base class protected members - - https://github.com/google/shaka-player/issues/2923 + - https://github.com/shaka-project/shaka-player/issues/2923 - Make submenu CSS apply to all submenus - - https://github.com/google/shaka-player/issues/2925 + - https://github.com/shaka-project/shaka-player/issues/2925 - Export FakeEvent for use by UI plugins - - https://github.com/google/shaka-player/issues/2923 + - https://github.com/shaka-project/shaka-player/issues/2923 - Recognize mp4a and mp4v extensions in HLS - Support multiple CHARACTERISTICS values in HLS - - https://github.com/google/shaka-player/pull/2905 + - https://github.com/shaka-project/shaka-player/pull/2905 - Don't auto-play after seeking while paused in the UI - - https://github.com/google/shaka-player/pull/2898 + - https://github.com/shaka-project/shaka-player/pull/2898 Ad changes (BETA): - Allow apps to supply adsResponse property for IMA - - https://github.com/google/shaka-player/issues/2892 - - https://github.com/google/shaka-player/pull/2946 + - https://github.com/shaka-project/shaka-player/issues/2892 + - https://github.com/shaka-project/shaka-player/pull/2946 Docs: - Add link to complete list of build categories - - https://github.com/google/shaka-player/pull/2934 + - https://github.com/shaka-project/shaka-player/pull/2934 - Correct receiver IDs in the UI tutorial - - https://github.com/google/shaka-player/issues/2926 + - https://github.com/shaka-project/shaka-player/issues/2926 - Update required Node version - - https://github.com/google/shaka-player/issues/2913 + - https://github.com/shaka-project/shaka-player/issues/2913 Demo App: - Add test streams for CEA-608 - - https://github.com/google/shaka-player/pull/2939 + - https://github.com/shaka-project/shaka-player/pull/2939 - Add new low latency DASH manifest - - https://github.com/google/shaka-player/pull/2963 + - https://github.com/shaka-project/shaka-player/pull/2963 - Remove redundant switch for manifest.dash.ignoreDrmInfo Misc: - Add mkdir to make all build commands self-contained - - https://github.com/google/shaka-player/issues/2973 - - https://github.com/google/shaka-player/pull/2977 + - https://github.com/shaka-project/shaka-player/issues/2973 + - https://github.com/shaka-project/shaka-player/pull/2977 - Generate TypeScript defs with Clutz - - https://github.com/google/shaka-player/issues/1030 + - https://github.com/shaka-project/shaka-player/issues/1030 ## 2.5.18 (2020-11-12) Bugfixes: - Fix handling of role-less audio tracks - - https://github.com/google/shaka-player/issues/2906 - - https://github.com/google/shaka-player/issues/2909 + - https://github.com/shaka-project/shaka-player/issues/2906 + - https://github.com/shaka-project/shaka-player/issues/2909 - Export UI externs - - https://github.com/google/shaka-player/issues/2948 + - https://github.com/shaka-project/shaka-player/issues/2948 - Fix hard-coded TTML namespaces - - https://github.com/google/shaka-player/issues/2756 + - https://github.com/shaka-project/shaka-player/issues/2756 - Filter out "chapters" tracks during src= playback - - https://github.com/google/shaka-player/pull/2960 + - https://github.com/shaka-project/shaka-player/pull/2960 - Fix renaming of UI base class protected members - - https://github.com/google/shaka-player/issues/2923 + - https://github.com/shaka-project/shaka-player/issues/2923 - Export FakeEvent for use by UI plugins - - https://github.com/google/shaka-player/issues/2923 + - https://github.com/shaka-project/shaka-player/issues/2923 - Recognize mp4a and mp4v extensions in HLS - Support multiple CHARACTERISTICS values in HLS - - https://github.com/google/shaka-player/pull/2905 + - https://github.com/shaka-project/shaka-player/pull/2905 - Don't auto-play after seeking while paused in the UI - - https://github.com/google/shaka-player/pull/2898 + - https://github.com/shaka-project/shaka-player/pull/2898 Docs: - Add link to complete list of build categories - - https://github.com/google/shaka-player/pull/2934 + - https://github.com/shaka-project/shaka-player/pull/2934 - Update required Node version - - https://github.com/google/shaka-player/issues/2913 + - https://github.com/shaka-project/shaka-player/issues/2913 - Correct receiver app IDs in the UI tutorial - - https://github.com/google/shaka-player/issues/2926 + - https://github.com/shaka-project/shaka-player/issues/2926 Demo App: - Remove redundant switch for manifest.dash.ignoreDrmInfo Misc: - Add mkdir to make all build commands self-contained - - https://github.com/google/shaka-player/issues/2973 - - https://github.com/google/shaka-player/pull/2977 + - https://github.com/shaka-project/shaka-player/issues/2973 + - https://github.com/shaka-project/shaka-player/pull/2977 ## 3.0.5 (2020-10-07) Bugfixes: - Fix hiding controls on mobile after touch - - https://github.com/google/shaka-player/issues/2886 + - https://github.com/shaka-project/shaka-player/issues/2886 - Ignore seek touch events on hidden controls - - https://github.com/google/shaka-player/issues/2888 + - https://github.com/shaka-project/shaka-player/issues/2888 - Fix interpretation of DEFAULT and AUTOSELECT in HLS - - https://github.com/google/shaka-player/issues/2880 + - https://github.com/shaka-project/shaka-player/issues/2880 - Avoid a race when clearing buffered content - Allow playback of video-only HLS via configuration - - https://github.com/google/shaka-player/issues/2868 + - https://github.com/shaka-project/shaka-player/issues/2868 - Make UITextDisplayer CSS-independent - - https://github.com/google/shaka-player/issues/2817 - - https://github.com/google/shaka-player/pull/2819 + - https://github.com/shaka-project/shaka-player/issues/2817 + - https://github.com/shaka-project/shaka-player/pull/2819 - Remove hard-coded tts:extent namespace in TTML parser - - https://github.com/google/shaka-player/issues/2860 + - https://github.com/shaka-project/shaka-player/issues/2860 - Don't apply seek range while content is still loading - - https://github.com/google/shaka-player/issues/2848 - - https://github.com/google/shaka-player/issues/2748 - - https://github.com/google/shaka-player/pull/2849 + - https://github.com/shaka-project/shaka-player/issues/2848 + - https://github.com/shaka-project/shaka-player/issues/2748 + - https://github.com/shaka-project/shaka-player/pull/2849 - Fix Shaka+Cast apps using IndexedDB - - https://github.com/google/shaka-player/issues/2850 + - https://github.com/shaka-project/shaka-player/issues/2850 - Permit applications to monkey-patch Date.now - - https://github.com/google/shaka-player/pull/2857 + - https://github.com/shaka-project/shaka-player/pull/2857 - Fix detection of Edge Chromium as Edge - - https://github.com/google/shaka-player/pull/2855 + - https://github.com/shaka-project/shaka-player/pull/2855 - Fix loading with global "define" set to null - - https://github.com/google/shaka-player/issues/2847 + - https://github.com/shaka-project/shaka-player/issues/2847 - Fix missing cues in UITextDisplayer - Fix storing modified init data for offline sessions - Fix duplicate text streams in multi-period DASH - - https://github.com/google/shaka-player/pull/2885 + - https://github.com/shaka-project/shaka-player/pull/2885 - Fix rapid seeking leading to infinite buffering - - https://github.com/google/shaka-player/issues/2670 + - https://github.com/shaka-project/shaka-player/issues/2670 - Fix non-deterministic exception in StreamingEngine - - https://github.com/google/shaka-player/issues/2768 + - https://github.com/shaka-project/shaka-player/issues/2768 - Fix bug where cue comparison throws - Fix exception on multi-period DASH - - https://github.com/google/shaka-player/issues/2811 + - https://github.com/shaka-project/shaka-player/issues/2811 - Fix embedded captions vanishing - - https://github.com/google/shaka-player/issues/2811 + - https://github.com/shaka-project/shaka-player/issues/2811 - Fix application of DRM server certificate - - https://github.com/google/shaka-player/issues/2644 + - https://github.com/shaka-project/shaka-player/issues/2644 - Fix multi-period DASH with period-specific codecs - - https://github.com/google/shaka-player/issues/2883 + - https://github.com/shaka-project/shaka-player/issues/2883 Demo App: - Change the menu icon to a settings icon @@ -928,38 +1119,38 @@ Demo App: Docs: - Fix references to built-in CEA 608 support, not available in this branch - Add links to the roadmap - - https://github.com/google/shaka-player/pull/2825 + - https://github.com/shaka-project/shaka-player/pull/2825 ## 2.5.17 (2020-10-06) Bugfixes: - Fix hiding controls on mobile after touch - - https://github.com/google/shaka-player/issues/2886 + - https://github.com/shaka-project/shaka-player/issues/2886 - Ignore seek touch events on hidden controls - - https://github.com/google/shaka-player/issues/2888 + - https://github.com/shaka-project/shaka-player/issues/2888 - Fix interpretation of DEFAULT and AUTOSELECT in HLS - - https://github.com/google/shaka-player/issues/2880 + - https://github.com/shaka-project/shaka-player/issues/2880 - Avoid a race when clearing buffered content - Allow playback of video-only HLS via configuration - - https://github.com/google/shaka-player/issues/2868 + - https://github.com/shaka-project/shaka-player/issues/2868 - Make UITextDisplayer CSS-independent - - https://github.com/google/shaka-player/issues/2817 - - https://github.com/google/shaka-player/pull/2819 + - https://github.com/shaka-project/shaka-player/issues/2817 + - https://github.com/shaka-project/shaka-player/pull/2819 - Remove hard-coded tts:extent namespace in TTML parser - - https://github.com/google/shaka-player/issues/2860 + - https://github.com/shaka-project/shaka-player/issues/2860 - Don't apply seek range while content is still loading - - https://github.com/google/shaka-player/issues/2848 - - https://github.com/google/shaka-player/issues/2748 - - https://github.com/google/shaka-player/pull/2849 + - https://github.com/shaka-project/shaka-player/issues/2848 + - https://github.com/shaka-project/shaka-player/issues/2748 + - https://github.com/shaka-project/shaka-player/pull/2849 - Fix Shaka+Cast apps using IndexedDB - - https://github.com/google/shaka-player/issues/2850 + - https://github.com/shaka-project/shaka-player/issues/2850 - Permit applications to monkey-patch Date.now - - https://github.com/google/shaka-player/pull/2857 + - https://github.com/shaka-project/shaka-player/pull/2857 - Fix detection of Edge Chromium as Edge - - https://github.com/google/shaka-player/pull/2855 + - https://github.com/shaka-project/shaka-player/pull/2855 - Fix loading with global "define" set to null - - https://github.com/google/shaka-player/issues/2847 + - https://github.com/shaka-project/shaka-player/issues/2847 - Fix missing cues in UITextDisplayer - Fix storing modified init data for offline sessions @@ -974,26 +1165,26 @@ Docs: Bugfixes: - Fix case sensitivity in KEYID format check in HLS - - https://github.com/google/shaka-player/issues/2789 - - https://github.com/google/shaka-player/pull/2790 + - https://github.com/shaka-project/shaka-player/issues/2789 + - https://github.com/shaka-project/shaka-player/pull/2790 - Do not assume HDR for HEVC1.2 on Chromecast - - https://github.com/google/shaka-player/issues/2813 + - https://github.com/shaka-project/shaka-player/issues/2813 - Recognize "wvtt" codec in HLS WebVTT tracks - - https://github.com/google/shaka-player/pull/2778 + - https://github.com/shaka-project/shaka-player/pull/2778 - Fix case sensitivity for DRM content types - - https://github.com/google/shaka-player/issues/2799 - - https://github.com/google/shaka-player/pull/2800 + - https://github.com/shaka-project/shaka-player/issues/2799 + - https://github.com/shaka-project/shaka-player/pull/2800 - PlayReady only has little-endian key IDs on Edge & IE - - https://github.com/google/shaka-player/pull/2801 + - https://github.com/shaka-project/shaka-player/pull/2801 - Fix UI translation of "live" in Chinese - - https://github.com/google/shaka-player/issues/2804 + - https://github.com/shaka-project/shaka-player/issues/2804 Docs: - Improve docs on platform support - - https://github.com/google/shaka-player/issues/2783 - - https://github.com/google/shaka-player/pull/2787 - - https://github.com/google/shaka-player/pull/2794 - - https://github.com/google/shaka-player/pull/2795 + - https://github.com/shaka-project/shaka-player/issues/2783 + - https://github.com/shaka-project/shaka-player/pull/2787 + - https://github.com/shaka-project/shaka-player/pull/2794 + - https://github.com/shaka-project/shaka-player/pull/2795 - Add doc on Application-Level Redirects @@ -1001,26 +1192,26 @@ Docs: Bugfixes: - Fix case sensitivity in KEYID format check in HLS - - https://github.com/google/shaka-player/issues/2789 - - https://github.com/google/shaka-player/pull/2790 + - https://github.com/shaka-project/shaka-player/issues/2789 + - https://github.com/shaka-project/shaka-player/pull/2790 - Do not assume HDR for HEVC1.2 on Chromecast - - https://github.com/google/shaka-player/issues/2813 + - https://github.com/shaka-project/shaka-player/issues/2813 - Recognize "wvtt" codec in HLS WebVTT tracks - - https://github.com/google/shaka-player/pull/2778 + - https://github.com/shaka-project/shaka-player/pull/2778 - Fix case sensitivity for DRM content types - - https://github.com/google/shaka-player/issues/2799 - - https://github.com/google/shaka-player/pull/2800 + - https://github.com/shaka-project/shaka-player/issues/2799 + - https://github.com/shaka-project/shaka-player/pull/2800 - PlayReady only has little-endian key IDs on Edge & IE - - https://github.com/google/shaka-player/pull/2801 + - https://github.com/shaka-project/shaka-player/pull/2801 - Fix UI translation of "live" in Chinese - - https://github.com/google/shaka-player/issues/2804 + - https://github.com/shaka-project/shaka-player/issues/2804 Docs: - Improve docs on platform support - - https://github.com/google/shaka-player/issues/2783 - - https://github.com/google/shaka-player/pull/2787 - - https://github.com/google/shaka-player/pull/2794 - - https://github.com/google/shaka-player/pull/2795 + - https://github.com/shaka-project/shaka-player/issues/2783 + - https://github.com/shaka-project/shaka-player/pull/2787 + - https://github.com/shaka-project/shaka-player/pull/2794 + - https://github.com/shaka-project/shaka-player/pull/2795 - Add doc on Application-Level Redirects @@ -1028,26 +1219,26 @@ Docs: Bugfixes: - Fix timing of VTT in HLS without map header - - https://github.com/google/shaka-player/issues/2714 + - https://github.com/shaka-project/shaka-player/issues/2714 - Fix TTML style inheritance - Fix ordering of cues on IE and Edge - Fix VTTCue polyfill in uncompiled mode on Edge - Ensure the number of variants stays stable when new periods are added - - https://github.com/google/shaka-player/issues/2716 - - https://github.com/google/shaka-player/issues/2736 + - https://github.com/shaka-project/shaka-player/issues/2716 + - https://github.com/shaka-project/shaka-player/issues/2736 - Fix src= playback on WebOS - - https://github.com/google/shaka-player/pull/2777 + - https://github.com/shaka-project/shaka-player/pull/2777 - Filter timeline regions by seek range - - https://github.com/google/shaka-player/issues/2716 + - https://github.com/shaka-project/shaka-player/issues/2716 - Don't send duplicate license requests - - https://github.com/google/shaka-player/issues/2754 + - https://github.com/shaka-project/shaka-player/issues/2754 - Don't limit segment count for VOD - - https://github.com/google/shaka-player/issues/2677 - - https://github.com/google/shaka-player/issues/2709 - - https://github.com/google/shaka-player/issues/2745 + - https://github.com/shaka-project/shaka-player/issues/2677 + - https://github.com/shaka-project/shaka-player/issues/2709 + - https://github.com/shaka-project/shaka-player/issues/2745 - Fix data URI parsing when charset present - Fix rendering of TTML nested cues and spacers - - https://github.com/google/shaka-player/issues/2760 + - https://github.com/shaka-project/shaka-player/issues/2760 Ad changes (BETA): - Add an extra log when replacing ad tag params for tracking adoption @@ -1055,7 +1246,7 @@ Ad changes (BETA): Demo App: - License header field for custom assets - - https://github.com/google/shaka-player/issues/2758 + - https://github.com/shaka-project/shaka-player/issues/2758 Docs: - Correct very outdated docs on test.py @@ -1067,14 +1258,14 @@ Bugfixes: - Fix TTML style inheritance - Fix ordering of cues on IE and Edge - Fix src= playback on WebOS - - https://github.com/google/shaka-player/pull/2777 + - https://github.com/shaka-project/shaka-player/pull/2777 - Filter timeline regions by seek range - - https://github.com/google/shaka-player/issues/2716 + - https://github.com/shaka-project/shaka-player/issues/2716 - Don't send duplicate license requests - - https://github.com/google/shaka-player/issues/2754 + - https://github.com/shaka-project/shaka-player/issues/2754 - Fix data URI parsing when charset present - Fix rendering of TTML nested cues and spacers - - https://github.com/google/shaka-player/issues/2760 + - https://github.com/shaka-project/shaka-player/issues/2760 Docs: - Correct very outdated docs on test.py @@ -1084,70 +1275,70 @@ Docs: Bugfixes: - Fix missing build/types/core in npm packages - - https://github.com/google/shaka-player/issues/2752 + - https://github.com/shaka-project/shaka-player/issues/2752 - Work around stalling playback on Tizen 3 - - https://github.com/google/shaka-player/issues/2620 + - https://github.com/shaka-project/shaka-player/issues/2620 - Fix hang while shutting down Widevine DRM sessions - - https://github.com/google/shaka-player/issues/2741 + - https://github.com/shaka-project/shaka-player/issues/2741 - Fix initial bandwidth estimate on Tizen - Fix src= playback on Tizen 3 - Work around less 3.12.0 bug - Improve logging of buffered ranges on WebOS - Fix use of --test-custom-license-server in test.py - Fix HLS discontinuity bug, broken playback with ads - - https://github.com/google/shaka-player/issues/2687 + - https://github.com/shaka-project/shaka-player/issues/2687 - Fix disappearing captions with certain input patterns - - https://github.com/google/shaka-player/issues/2671 - - https://github.com/google/shaka-player/pull/2674 + - https://github.com/shaka-project/shaka-player/issues/2671 + - https://github.com/shaka-project/shaka-player/pull/2674 - Fix missing captions when switching streams - - https://github.com/google/shaka-player/issues/2648 - - https://github.com/google/shaka-player/pull/2672 + - https://github.com/shaka-project/shaka-player/issues/2648 + - https://github.com/shaka-project/shaka-player/pull/2672 - Append license for language-mapping-list to output Ad changes (BETA): - Proxy all client-side IMA events through the ad manager - Fire a shaka.Player.Metadata event on detecting ID3 metadata - - https://github.com/google/shaka-player/issues/2592 + - https://github.com/shaka-project/shaka-player/issues/2592 Docs: - Update tutorial for seek bar color changes - - https://github.com/google/shaka-player/issues/2708 + - https://github.com/shaka-project/shaka-player/issues/2708 - Add FAQ entry for native HLS playback in Safari - Update tutorials and docs to async/await syntax - - https://github.com/google/shaka-player/issues/2544 - - https://github.com/google/shaka-player/pull/2693 + - https://github.com/shaka-project/shaka-player/issues/2544 + - https://github.com/shaka-project/shaka-player/pull/2693 - Update tutorials and docs to use modern variable syntax (const/let) - - https://github.com/google/shaka-player/issues/2544 - - https://github.com/google/shaka-player/pull/2692 + - https://github.com/shaka-project/shaka-player/issues/2544 + - https://github.com/shaka-project/shaka-player/pull/2692 Demo App: - Fix demo behavior when UI fails to load (due to ad blocker) - - https://github.com/google/shaka-player/issues/2669 + - https://github.com/shaka-project/shaka-player/issues/2669 ## 3.0.1 (2020-06-18) Bugfixes: - Fix failure with identical text streams - - https://github.com/google/shaka-player/issues/2646 + - https://github.com/shaka-project/shaka-player/issues/2646 - Fix offline progress callbacks in release mode - - https://github.com/google/shaka-player/issues/2652 + - https://github.com/shaka-project/shaka-player/issues/2652 - Fix bad segment URLs in DASH SegmentTimeline - - https://github.com/google/shaka-player/issues/2650 + - https://github.com/shaka-project/shaka-player/issues/2650 - Correct license headers in compiled output - - https://github.com/google/shaka-player/issues/2638 + - https://github.com/shaka-project/shaka-player/issues/2638 - Set an explicit font size for icons in UI - - https://github.com/google/shaka-player/issues/2633 + - https://github.com/shaka-project/shaka-player/issues/2633 - Apply upstream styles for icons font in UI - - https://github.com/google/shaka-player/issues/2633 + - https://github.com/shaka-project/shaka-player/issues/2633 - Export shaka.util.FairPlayUtils and shaka.util.BufferUtils - - https://github.com/google/shaka-player/issues/2626 - - https://github.com/google/shaka-player/pull/2628 + - https://github.com/shaka-project/shaka-player/issues/2626 + - https://github.com/shaka-project/shaka-player/pull/2628 Ad changes (BETA): - Correct IMA SDK URLs in service worker and docs - Fix UI not showing up for server side ad streams - - https://github.com/google/shaka-player/issues/2592 + - https://github.com/shaka-project/shaka-player/issues/2592 - Expose more client side IMA info to apps Demo App: @@ -1157,121 +1348,121 @@ Demo App: Docs: - Update Manifest Parser tutorial - - https://github.com/google/shaka-player/issues/2634 + - https://github.com/shaka-project/shaka-player/issues/2634 ## 2.5.13 (2020-06-11) Bugfixes: - Fix background color of nested cues - - https://github.com/google/shaka-player/issues/2623 - - https://github.com/google/shaka-player/pull/2624 + - https://github.com/shaka-project/shaka-player/issues/2623 + - https://github.com/shaka-project/shaka-player/pull/2624 - Fix seeking from Google Home app while casting - - https://github.com/google/shaka-player/issues/2606 + - https://github.com/shaka-project/shaka-player/issues/2606 - Fix cancelation of pending network requests on load() and destroy() - - https://github.com/google/shaka-player/issues/2619 + - https://github.com/shaka-project/shaka-player/issues/2619 - Fix pixelAspectRatio extraction from DASH - - https://github.com/google/shaka-player/pull/2614 + - https://github.com/shaka-project/shaka-player/pull/2614 - Fix nested TTML captions with time offset - - https://github.com/google/shaka-player/issues/2601 - - https://github.com/google/shaka-player/pull/2602 + - https://github.com/shaka-project/shaka-player/issues/2601 + - https://github.com/shaka-project/shaka-player/pull/2602 - Set explicit default font size for UI icons - - https://github.com/google/shaka-player/issues/2633 + - https://github.com/shaka-project/shaka-player/issues/2633 - Correct license headers in compiled output and generated externs - - https://github.com/google/shaka-player/issues/2638 + - https://github.com/shaka-project/shaka-player/issues/2638 ## 3.0.0 (2020-06-09) Ad Features (BETA): - Integration with Google IMA Ads SDK - - https://github.com/google/shaka-player/issues/2222 + - https://github.com/shaka-project/shaka-player/issues/2222 - Ad-related UI elements Offline Features: - Allow offline downloads to be aborted - - https://github.com/google/shaka-player/issues/2417 - - https://github.com/google/shaka-player/issues/1362 - - https://github.com/google/shaka-player/issues/1301 + - https://github.com/shaka-project/shaka-player/issues/2417 + - https://github.com/shaka-project/shaka-player/issues/1362 + - https://github.com/shaka-project/shaka-player/issues/1301 - Store creation time with offline assets - - https://github.com/google/shaka-player/pull/2406 + - https://github.com/shaka-project/shaka-player/pull/2406 - Allow multiple concurrent storage operations on one Storage instance - - https://github.com/google/shaka-player/issues/1432 - - https://github.com/google/shaka-player/issues/2432 + - https://github.com/shaka-project/shaka-player/issues/1432 + - https://github.com/shaka-project/shaka-player/issues/2432 - Make trackSelectionCallback async - - https://github.com/google/shaka-player/pull/2387 + - https://github.com/shaka-project/shaka-player/pull/2387 - Allow storage of manifests that are missing inline init data - - https://github.com/google/shaka-player/pull/2042 + - https://github.com/shaka-project/shaka-player/pull/2042 HLS Features: - Add support for HLS Discontinuity - - https://github.com/google/shaka-player/issues/2397 - - https://github.com/google/shaka-player/issues/1335 + - https://github.com/shaka-project/shaka-player/issues/2397 + - https://github.com/shaka-project/shaka-player/issues/1335 - Add support for multiple EXT-X-MAP tags - - https://github.com/google/shaka-player/issues/1335 - - https://github.com/google/shaka-player/issues/2397 + - https://github.com/shaka-project/shaka-player/issues/1335 + - https://github.com/shaka-project/shaka-player/issues/2397 - Improve HLS startup latency - - https://github.com/google/shaka-player/issues/1558 + - https://github.com/shaka-project/shaka-player/issues/1558 - Add variable substitution support to HLS parser - - https://github.com/google/shaka-player/pull/2509 + - https://github.com/shaka-project/shaka-player/pull/2509 - Add a presentationDelay config for HLS live - - https://github.com/google/shaka-player/issues/2373 + - https://github.com/shaka-project/shaka-player/issues/2373 UI Features: - Expand translations: now available in 45 languages (18 built-in by default) - Support setting source through HTML src attribute or source tag - - https://github.com/google/shaka-player/issues/2088 + - https://github.com/shaka-project/shaka-player/issues/2088 - Large play button is configurable, and only shows on mobile UI by default - Add playback speed selection to UI - - https://github.com/google/shaka-player/issues/2362 - - https://github.com/google/shaka-player/issues/1676 + - https://github.com/shaka-project/shaka-player/issues/2362 + - https://github.com/shaka-project/shaka-player/issues/1676 - Add loop control element to UI - - https://github.com/google/shaka-player/issues/2362 + - https://github.com/shaka-project/shaka-player/issues/2362 - Improve buffering spinner visibility - - https://github.com/google/shaka-player/issues/2110 + - https://github.com/shaka-project/shaka-player/issues/2110 Subtitle/Caption Features: - Add support for ebutts:linePadding in TTML - - https://github.com/google/shaka-player/pull/2443 + - https://github.com/shaka-project/shaka-player/pull/2443 - Add support for cell resolution units and font percentage in TTML - - https://github.com/google/shaka-player/issues/2403 - - https://github.com/google/shaka-player/pull/2442 + - https://github.com/shaka-project/shaka-player/issues/2403 + - https://github.com/shaka-project/shaka-player/pull/2442 - Add support for tts:border, tts:letterSpacing and tts:opacity in TTML - - https://github.com/google/shaka-player/pull/2408 + - https://github.com/shaka-project/shaka-player/pull/2408 Other Features: - Add API to set Cast content metadata in CastReceiver - - https://github.com/google/shaka-player/issues/2606 + - https://github.com/shaka-project/shaka-player/issues/2606 - Add liveLatency to stats - - https://github.com/google/shaka-player/pull/2508 + - https://github.com/shaka-project/shaka-player/pull/2508 - Allow configuration of presumed manifest accuracy, reduces extra fetches - - https://github.com/google/shaka-player/issues/2291 + - https://github.com/shaka-project/shaka-player/issues/2291 - Take into account the playbackRate in bandwidth calculations - - https://github.com/google/shaka-player/pull/2329 + - https://github.com/shaka-project/shaka-player/pull/2329 - Add check for E-AC3 JOC in DASH - - https://github.com/google/shaka-player/issues/2296 + - https://github.com/shaka-project/shaka-player/issues/2296 - Improve startup performance by lazily creating segment indexes - Support pre-standard DASH MIME type - Allow running tests without Babel Bugfixes: - Fix background color of nested cues - - https://github.com/google/shaka-player/issues/2623 - - https://github.com/google/shaka-player/pull/2624 + - https://github.com/shaka-project/shaka-player/issues/2623 + - https://github.com/shaka-project/shaka-player/pull/2624 - Fix seeking from Google Home app while casting - - https://github.com/google/shaka-player/issues/2606 + - https://github.com/shaka-project/shaka-player/issues/2606 - Fix cancelation of pending network requests on load() and destroy() - - https://github.com/google/shaka-player/issues/2619 + - https://github.com/shaka-project/shaka-player/issues/2619 Broken compatibility: - Remove support for custom DASH ContentProtection schemas - - https://github.com/google/shaka-player/issues/2356 + - https://github.com/shaka-project/shaka-player/issues/2356 - Signature for config callback "drm.initDataTransform" changed Deprecated (with backward compatibility until v4.0): - Uint8ArrayUtils.equal() moved to BufferUtils - Factory methods are no longer called with "new" - - https://github.com/google/shaka-player/issues/1521 + - https://github.com/shaka-project/shaka-player/issues/1521 - Config "manifest.dash.defaultPresentationDelay" moved to "manifest.defaultPresentationDelay" - Storage.getStoreInProgress() deprecated (not needed with concurrent storage @@ -1294,113 +1485,113 @@ Demo App Features: Bugfixes: - Don't preload data on iOS - - https://github.com/google/shaka-player/issues/2483 + - https://github.com/shaka-project/shaka-player/issues/2483 - Make the controls background gradient proportional - Work around IE 11 bug in text region positioning - - https://github.com/google/shaka-player/issues/2584 + - https://github.com/shaka-project/shaka-player/issues/2584 - Fix PlayReady key ID endianness for TiVo - - https://github.com/google/shaka-player/pull/2582 + - https://github.com/shaka-project/shaka-player/pull/2582 - Fix shaka.log in debug builds - - https://github.com/google/shaka-player/issues/2565 + - https://github.com/shaka-project/shaka-player/issues/2565 - Add support for null TS packets in HLS - - https://github.com/google/shaka-player/issues/2546 + - https://github.com/shaka-project/shaka-player/issues/2546 - Fix live seek bar on touch screens - - https://github.com/google/shaka-player/issues/2558 + - https://github.com/shaka-project/shaka-player/issues/2558 - Fix text track change after enabling text display - - https://github.com/google/shaka-player/issues/2553 + - https://github.com/shaka-project/shaka-player/issues/2553 - Fix SegmentTimeline with t attribute missing. - - https://github.com/google/shaka-player/issues/2590 + - https://github.com/shaka-project/shaka-player/issues/2590 - Fix various text positioning bugs - - https://github.com/google/shaka-player/issues/2524 + - https://github.com/shaka-project/shaka-player/issues/2524 - Allow OPUS on Tizen 5 or higher - - https://github.com/google/shaka-player/pull/2564 + - https://github.com/shaka-project/shaka-player/pull/2564 - Fix CEA caption extraction for b-frame content - - https://github.com/google/shaka-player/issues/2395 + - https://github.com/shaka-project/shaka-player/issues/2395 - Fix module wrapper to prevent conflicting exports - - https://github.com/google/shaka-player/issues/2549 + - https://github.com/shaka-project/shaka-player/issues/2549 New Features: - Add option to customize the polling of expiration time - - https://github.com/google/shaka-player/issues/2252 - - https://github.com/google/shaka-player/pull/2579 + - https://github.com/shaka-project/shaka-player/issues/2252 + - https://github.com/shaka-project/shaka-player/pull/2579 - Add new option manifest.hls.useFullSegmentsForStartTime - - https://github.com/google/shaka-player/issues/2556 - - https://github.com/google/shaka-player/pull/2575 + - https://github.com/shaka-project/shaka-player/issues/2556 + - https://github.com/shaka-project/shaka-player/pull/2575 ## 2.5.11 (2020-05-05) New Features: - Add role information to text and audio tracks in src= mode - - https://github.com/google/shaka-player/pull/2543 + - https://github.com/shaka-project/shaka-player/pull/2543 - Parse HLS CHARACTERISTICS attribute and populate track roles - - https://github.com/google/shaka-player/pull/2534 + - https://github.com/shaka-project/shaka-player/pull/2534 - Recognize new CMAF file extensions cmfv, cmfa, cmft in HLS - - https://github.com/google/shaka-player/pull/2473 + - https://github.com/shaka-project/shaka-player/pull/2473 - Add configuration to enable/disable fullscreen-on-rotate - - https://github.com/google/shaka-player/issues/2494 + - https://github.com/shaka-project/shaka-player/issues/2494 - Add configuration to enable keyboard playback controls - - https://github.com/google/shaka-player/issues/2489 + - https://github.com/shaka-project/shaka-player/issues/2489 - Dismiss UI overflow menus on window click - Add non-standard DASH PlayReady UUID - - https://github.com/google/shaka-player/pull/2474 + - https://github.com/shaka-project/shaka-player/pull/2474 Bugfixes: - Fix FairPlay event handling - - https://github.com/google/shaka-player/issues/2214 + - https://github.com/shaka-project/shaka-player/issues/2214 - Fix load() Promise hang on iOS - - https://github.com/google/shaka-player/issues/2483 + - https://github.com/shaka-project/shaka-player/issues/2483 - Fix language normalization with native HLS - - https://github.com/google/shaka-player/issues/2480 + - https://github.com/shaka-project/shaka-player/issues/2480 - Fix display of duplicate cues - - https://github.com/google/shaka-player/issues/2497 + - https://github.com/shaka-project/shaka-player/issues/2497 - Fix TTML position parsing - - https://github.com/google/shaka-player/issues/2477 - - https://github.com/google/shaka-player/pull/2493 + - https://github.com/shaka-project/shaka-player/issues/2477 + - https://github.com/shaka-project/shaka-player/pull/2493 - Fix display of line-positioned subtitles - - https://github.com/google/shaka-player/issues/2524 + - https://github.com/shaka-project/shaka-player/issues/2524 - Update to mux.js 5.5.4 to fix closed caption parsing bug - https://github.com/videojs/mux.js/pull/330 - https://github.com/videojs/mux.js/pull/333 - Fix language and role preferences in src= mode - - https://github.com/google/shaka-player/pull/2535 - - https://github.com/google/shaka-player/pull/2506 + - https://github.com/shaka-project/shaka-player/pull/2535 + - https://github.com/shaka-project/shaka-player/pull/2506 - Fix extra text track in src= mode - - https://github.com/google/shaka-player/issues/2516 + - https://github.com/shaka-project/shaka-player/issues/2516 - Fix Safari-prefixed fullscreen APIs - - https://github.com/google/shaka-player/issues/2528 + - https://github.com/shaka-project/shaka-player/issues/2528 - Fix display of nested cues with native text display - - https://github.com/google/shaka-player/issues/2263 + - https://github.com/shaka-project/shaka-player/issues/2263 - Fix getPlayheadTimeAsDate while loading/buffering - Recover from timed-out Cast connection - - https://github.com/google/shaka-player/issues/2446 + - https://github.com/shaka-project/shaka-player/issues/2446 - Fix DRM exceptions on WebOS TVs - - https://github.com/google/shaka-player/issues/2512 - - https://github.com/google/shaka-player/pull/2513 + - https://github.com/shaka-project/shaka-player/issues/2512 + - https://github.com/shaka-project/shaka-player/pull/2513 - Fix frameRate restrictions - Filter out metadata text tracks in Player tracks API - - https://github.com/google/shaka-player/pull/2519 + - https://github.com/shaka-project/shaka-player/pull/2519 - Fix PlayRateController leak - Fix buffer check in StallDetector - - https://github.com/google/shaka-player/issues/1809 + - https://github.com/shaka-project/shaka-player/issues/1809 - Fix offline storage picking high-bandwidth codecs - - https://github.com/google/shaka-player/issues/2390 + - https://github.com/shaka-project/shaka-player/issues/2390 - Fix nested TTML cues with non-ASCII characters - - https://github.com/google/shaka-player/issues/2478 + - https://github.com/shaka-project/shaka-player/issues/2478 - Fix UI updates when enabling captions - - https://github.com/google/shaka-player/issues/2484 + - https://github.com/shaka-project/shaka-player/issues/2484 - Fix ratechange events w/ src= playback - - https://github.com/google/shaka-player/issues/2488 + - https://github.com/shaka-project/shaka-player/issues/2488 - Fix serialization of Error objects over Cast - Fix missing EME polyfill in Cast receiver - Use the module wrapper in debug builds - - https://github.com/google/shaka-player/issues/2465 + - https://github.com/shaka-project/shaka-player/issues/2465 Docs: - Fix broken docs for UI control events - - https://github.com/google/shaka-player/issues/2385 + - https://github.com/shaka-project/shaka-player/issues/2385 - Add FAQ entry about minBufferTime - - https://github.com/google/shaka-player/issues/2000 + - https://github.com/shaka-project/shaka-player/issues/2000 Demo App: - Push demo app footer to the bottom of the page @@ -1410,71 +1601,71 @@ Demo App: New Features: - Added 'doubleClickForFullscreen' config to UI - - https://github.com/google/shaka-player/issues/2459 + - https://github.com/shaka-project/shaka-player/issues/2459 - Add 'loaded' event - - https://github.com/google/shaka-player/pull/2441 + - https://github.com/shaka-project/shaka-player/pull/2441 - Update prerequisites script w/ new nodejs versions - Export default text parser plugins - - https://github.com/google/shaka-player/issues/2428 + - https://github.com/shaka-project/shaka-player/issues/2428 - Add config to show/hide unbuffered range at seek bar start - - https://github.com/google/shaka-player/issues/2424 + - https://github.com/shaka-project/shaka-player/issues/2424 - Approximate segment size based on bandwidth when deciding to abort a request - - https://github.com/google/shaka-player/pull/2288 + - https://github.com/shaka-project/shaka-player/pull/2288 - Always log config errors - Make 'offline.trackSelectionCallback' async to allow the app to prompt the user or do other async checks - - https://github.com/google/shaka-player/pull/2387 + - https://github.com/shaka-project/shaka-player/pull/2387 - Disable video when the media element is AUDIO - - https://github.com/google/shaka-player/issues/2246 - - https://github.com/google/shaka-player/pull/2371 + - https://github.com/shaka-project/shaka-player/issues/2246 + - https://github.com/shaka-project/shaka-player/pull/2371 Bugfixes: - Fix DRM-related issues on Tizen - - https://github.com/google/shaka-player/issues/813 - - https://github.com/google/shaka-player/issues/2447 - - https://github.com/google/shaka-player/issues/2448 - - https://github.com/google/shaka-player/pull/2449 + - https://github.com/shaka-project/shaka-player/issues/813 + - https://github.com/shaka-project/shaka-player/issues/2447 + - https://github.com/shaka-project/shaka-player/issues/2448 + - https://github.com/shaka-project/shaka-player/pull/2449 - Fix exceptions with very large manifests on XBox One and possibly other consumer electronics platforms - - https://github.com/google/shaka-player/issues/2433 + - https://github.com/shaka-project/shaka-player/issues/2433 - Fix UI exception joining existing Cast session - - https://github.com/google/shaka-player/issues/2451 + - https://github.com/shaka-project/shaka-player/issues/2451 - Fix UTCTiming when autoCorrectDrift is off - - https://github.com/google/shaka-player/issues/2411 - - https://github.com/google/shaka-player/pull/2412 + - https://github.com/shaka-project/shaka-player/issues/2411 + - https://github.com/shaka-project/shaka-player/pull/2412 - Fix EME polyfill exceptions on Edge - - https://github.com/google/shaka-player/issues/2413 + - https://github.com/shaka-project/shaka-player/issues/2413 - Fix offline storage with some Widevine and PlayReady content - - https://github.com/google/shaka-player/pull/2400 + - https://github.com/shaka-project/shaka-player/pull/2400 - Don't fire 'adaptation' event when not switching - - https://github.com/google/shaka-player/issues/2392 + - https://github.com/shaka-project/shaka-player/issues/2392 - Fix rare exception in isTextTrackVisible() - - https://github.com/google/shaka-player/issues/2399 + - https://github.com/shaka-project/shaka-player/issues/2399 - Fix bogus warnings about argument count in configs - Fix duplicate DB objects when storing offline content - - https://github.com/google/shaka-player/issues/2389 + - https://github.com/shaka-project/shaka-player/issues/2389 - Fix MIME type case sensitivity in HLS parser - Fix changing UI Cast app ID to empty string - Fix case sensitivity in TTML MIME types - - https://github.com/google/shaka-player/issues/2378 - - https://github.com/google/shaka-player/pull/2381 + - https://github.com/shaka-project/shaka-player/issues/2378 + - https://github.com/shaka-project/shaka-player/pull/2381 - Fix exceptions for Video Futur platform - - https://github.com/google/shaka-player/issues/2189 - - https://github.com/google/shaka-player/pull/2368 + - https://github.com/shaka-project/shaka-player/issues/2189 + - https://github.com/shaka-project/shaka-player/pull/2368 - Fix captions display alignment - - https://github.com/google/shaka-player/issues/2334 - - https://github.com/google/shaka-player/issues/2157 + - https://github.com/shaka-project/shaka-player/issues/2334 + - https://github.com/shaka-project/shaka-player/issues/2157 - Fix Cast errors in compiled mode - - https://github.com/google/shaka-player/issues/2130 + - https://github.com/shaka-project/shaka-player/issues/2130 Docs: - Improve ClearKey examples - - https://github.com/google/shaka-player/issues/2434 - - https://github.com/google/shaka-player/pull/2439 + - https://github.com/shaka-project/shaka-player/issues/2434 + - https://github.com/shaka-project/shaka-player/pull/2439 - Fix truncated UI tutorial - - https://github.com/google/shaka-player/issues/2410 + - https://github.com/shaka-project/shaka-player/issues/2410 - Update offline.md - - https://github.com/google/shaka-player/pull/2404 + - https://github.com/shaka-project/shaka-player/pull/2404 - Add additional links in error code reference Demo App: @@ -1485,70 +1676,70 @@ Demo App: - Add search filters to the URL - Work around Material Icons font bug - Work around MDL button bug in iOS 13 - - https://github.com/google/shaka-player/issues/2376 + - https://github.com/shaka-project/shaka-player/issues/2376 ## 2.5.9 (2020-02-04) Bugfixes: - Fix PiP polyfill for iOS - - https://github.com/google/shaka-player/issues/2199 + - https://github.com/shaka-project/shaka-player/issues/2199 - Ban iOS < 12 - - https://github.com/google/shaka-player/issues/1920 + - https://github.com/shaka-project/shaka-player/issues/1920 - Work around service worker registration hang on iOS - Fix display of selected language in UI - - https://github.com/google/shaka-player/issues/2353 + - https://github.com/shaka-project/shaka-player/issues/2353 - Fix race condition on HLS parser shutdown - - https://github.com/google/shaka-player/issues/2138 + - https://github.com/shaka-project/shaka-player/issues/2138 - Fix StringUtils on Xbox One - - https://github.com/google/shaka-player/issues/2186 + - https://github.com/shaka-project/shaka-player/issues/2186 - Fix selecting audio track by role when video tracks contain the same role - - https://github.com/google/shaka-player/issues/2346 + - https://github.com/shaka-project/shaka-player/issues/2346 - Fix skipping of raw format streams in HLS - Fix iPad 13+ detection - - https://github.com/google/shaka-player/issues/2360 + - https://github.com/shaka-project/shaka-player/issues/2360 - Fix exception thrown for Chrome & Firefox on iOS Docs: - Fix typo in fairplay tutorial - - https://github.com/google/shaka-player/issues/2344 + - https://github.com/shaka-project/shaka-player/issues/2344 ## 2.5.8 (2020-01-16) Bugfixes: - Recognize and reject raw AAC in HLS - - https://github.com/google/shaka-player/issues/1083 - - https://github.com/google/shaka-player/issues/2337 + - https://github.com/shaka-project/shaka-player/issues/1083 + - https://github.com/shaka-project/shaka-player/issues/2337 - Fix fullscreen on Android - - https://github.com/google/shaka-player/issues/2324 - - https://github.com/google/shaka-player/pull/2325 + - https://github.com/shaka-project/shaka-player/issues/2324 + - https://github.com/shaka-project/shaka-player/pull/2325 - Fix start time support in src= mode - - https://github.com/google/shaka-player/issues/2267 - - https://github.com/google/shaka-player/pull/2271 + - https://github.com/shaka-project/shaka-player/issues/2267 + - https://github.com/shaka-project/shaka-player/pull/2271 - Add missing events to CastProxy Player - - https://github.com/google/shaka-player/issues/2318 + - https://github.com/shaka-project/shaka-player/issues/2318 - Fix cast receiver UI update - - https://github.com/google/shaka-player/issues/2314 + - https://github.com/shaka-project/shaka-player/issues/2314 New Features: - Add corruptedFrames to stats - - https://github.com/google/shaka-player/pull/2328 + - https://github.com/shaka-project/shaka-player/pull/2328 - Add framerate restriction to the config - - https://github.com/google/shaka-player/issues/2068 - - https://github.com/google/shaka-player/pull/2332 + - https://github.com/shaka-project/shaka-player/issues/2068 + - https://github.com/shaka-project/shaka-player/pull/2332 - Add option to ignore empty AdaptationSets in DASH - - https://github.com/google/shaka-player/issues/2023 - - https://github.com/google/shaka-player/pull/2330 + - https://github.com/shaka-project/shaka-player/issues/2023 + - https://github.com/shaka-project/shaka-player/pull/2330 - Add licenseTime to stats - - https://github.com/google/shaka-player/pull/2297 + - https://github.com/shaka-project/shaka-player/pull/2297 - Add pixelAspectRatio property from DASH - - https://github.com/google/shaka-player/pull/2294 + - https://github.com/shaka-project/shaka-player/pull/2294 - Add AirPlay support with native HLS and FairPlay - - https://github.com/google/shaka-player/issues/2177 - - https://github.com/google/shaka-player/pull/2257 + - https://github.com/shaka-project/shaka-player/issues/2177 + - https://github.com/shaka-project/shaka-player/pull/2257 - Add option to show text/audio roles in UI - - https://github.com/google/shaka-player/issues/2307 + - https://github.com/shaka-project/shaka-player/issues/2307 - Add "fadeDelay" option to delay fading UI controls Demo App: @@ -1559,96 +1750,96 @@ Demo App: New Features: - Add audioSamplingRate property - - https://github.com/google/shaka-player/pull/2290 + - https://github.com/shaka-project/shaka-player/pull/2290 - Ignore DASH image tracks - - https://github.com/google/shaka-player/pull/2276 + - https://github.com/shaka-project/shaka-player/pull/2276 - Add AV1 check and more file extensions for src mode - - https://github.com/google/shaka-player/pull/2280 + - https://github.com/shaka-project/shaka-player/pull/2280 - Allow removing text from manifests - - https://github.com/google/shaka-player/pull/2278 + - https://github.com/shaka-project/shaka-player/pull/2278 - Allow ignoreSuggestedPresentationDelay in DASH - - https://github.com/google/shaka-player/pull/2260 + - https://github.com/shaka-project/shaka-player/pull/2260 - Allow removing video from manifests - - https://github.com/google/shaka-player/pull/2259 + - https://github.com/shaka-project/shaka-player/pull/2259 - Add a polyfill for EME encryption scheme queries - Add support for ttml regions - - https://github.com/google/shaka-player/issues/2191 + - https://github.com/shaka-project/shaka-player/issues/2191 - Add a method to select variants by label - - https://github.com/google/shaka-player/issues/924 + - https://github.com/shaka-project/shaka-player/issues/924 Bugfixes: - Fix shaka.polyfill missing in externs - Fix width of overflow menu with wide content - - https://github.com/google/shaka-player/issues/2249 + - https://github.com/shaka-project/shaka-player/issues/2249 - Disable indexedDB support if an error is thrown - - https://github.com/google/shaka-player/pull/2236 + - https://github.com/shaka-project/shaka-player/pull/2236 - Fix setting robustness settings in DRM config - - https://github.com/google/shaka-player/issues/2211 + - https://github.com/shaka-project/shaka-player/issues/2211 ## 2.5.6 (2019-11-06) Bugfixes: - Fix storing content with delayLicenseRequestUntilPlayed - - https://github.com/google/shaka-player/issues/2218 + - https://github.com/shaka-project/shaka-player/issues/2218 - Fix check for captions in appendBuffer - - https://github.com/google/shaka-player/issues/2187 + - https://github.com/shaka-project/shaka-player/issues/2187 - Allow 'rebufferingGoal' to change after startup - - https://github.com/google/shaka-player/issues/2217 + - https://github.com/shaka-project/shaka-player/issues/2217 - Fix default encoding when reading files - - https://github.com/google/shaka-player/issues/2206 + - https://github.com/shaka-project/shaka-player/issues/2206 - Throw for invalid TTML - - https://github.com/google/shaka-player/issues/2157 + - https://github.com/shaka-project/shaka-player/issues/2157 - Fix FairPlay default initDataTransform - - https://github.com/google/shaka-player/issues/2136 + - https://github.com/shaka-project/shaka-player/issues/2136 - Fix live seekbar on Android - - https://github.com/google/shaka-player/issues/2169 + - https://github.com/shaka-project/shaka-player/issues/2169 - Fix undefined value in HLS request filters - - https://github.com/google/shaka-player/issues/2156 + - https://github.com/shaka-project/shaka-player/issues/2156 - Fix Period transitions with embedded captions - - https://github.com/google/shaka-player/issues/2076 + - https://github.com/shaka-project/shaka-player/issues/2076 - Throw error for clear-key content with src= - - https://github.com/google/shaka-player/issues/2139 + - https://github.com/shaka-project/shaka-player/issues/2139 - Fix support for empty TTML data - - https://github.com/google/shaka-player/pull/1960 + - https://github.com/shaka-project/shaka-player/pull/1960 - Fix multi-Period handling of key statuses - - https://github.com/google/shaka-player/issues/2135 + - https://github.com/shaka-project/shaka-player/issues/2135 - Fix stall at end with src= - - https://github.com/google/shaka-player/issues/2117 + - https://github.com/shaka-project/shaka-player/issues/2117 - Fix ttml background image support - - https://github.com/google/shaka-player/pull/2034 + - https://github.com/shaka-project/shaka-player/pull/2034 New Features: - Add config to use MSE playback on Safari - - https://github.com/google/shaka-player/issues/2116 + - https://github.com/shaka-project/shaka-player/issues/2116 - Support storing protected content without init data in manifest - - https://github.com/google/shaka-player/issues/1531 - - https://github.com/google/shaka-player/pull/2164 + - https://github.com/shaka-project/shaka-player/issues/1531 + - https://github.com/shaka-project/shaka-player/pull/2164 - Allow disable audio/video in manifest parsers - - https://github.com/google/shaka-player/pull/2196 + - https://github.com/shaka-project/shaka-player/pull/2196 - Enhance ttml rendering - - https://github.com/google/shaka-player/pull/1962 + - https://github.com/shaka-project/shaka-player/pull/1962 - Include event ID in DASH Event checks - - https://github.com/google/shaka-player/issues/2077 - - https://github.com/google/shaka-player/pull/2175 + - https://github.com/shaka-project/shaka-player/issues/2077 + - https://github.com/shaka-project/shaka-player/pull/2175 - Add support for Label element in DASH - - https://github.com/google/shaka-player/issues/2178 - - https://github.com/google/shaka-player/pull/2197 + - https://github.com/shaka-project/shaka-player/issues/2178 + - https://github.com/shaka-project/shaka-player/pull/2197 - Treat URL schemes as case-insensitive - - https://github.com/google/shaka-player/issues/2173 + - https://github.com/shaka-project/shaka-player/issues/2173 - Forward change event from src= playback - - https://github.com/google/shaka-player/pull/2134 + - https://github.com/shaka-project/shaka-player/pull/2134 - Export getMaxSegmentDuration() on presentationTimeline - - https://github.com/google/shaka-player/issues/2124 + - https://github.com/shaka-project/shaka-player/issues/2124 - Ignore MIME parameters in Content-Type check - - https://github.com/google/shaka-player/issues/1946 - - https://github.com/google/shaka-player/pull/2215 + - https://github.com/shaka-project/shaka-player/issues/1946 + - https://github.com/shaka-project/shaka-player/pull/2215 - Make seek & volume bar colors configurable - - https://github.com/google/shaka-player/issues/2203 + - https://github.com/shaka-project/shaka-player/issues/2203 Demo App: - Improve mobile Safari PWA support in demo - - https://github.com/google/shaka-player/issues/2143 + - https://github.com/shaka-project/shaka-player/issues/2143 - Added tooltips to the search filters on the demo - Added "report bug" button to demo @@ -1658,55 +1849,55 @@ Demo App: New Features: - Conditionally remove FairPlay formatting - - https://github.com/google/shaka-player/issues/1951 + - https://github.com/shaka-project/shaka-player/issues/1951 - Add sessionId field to network request - Make it easier to add custom overflow menu items - - https://github.com/google/shaka-player/issues/2091 + - https://github.com/shaka-project/shaka-player/issues/2091 - Add clearBufferOnQualityChange field to UI config - - https://github.com/google/shaka-player/issues/1733 + - https://github.com/shaka-project/shaka-player/issues/1733 - Allow filtering out failed HLS text tracks - - https://github.com/google/shaka-player/issues/2065 + - https://github.com/shaka-project/shaka-player/issues/2065 - Parse Accessibility tag into text "kind" - - https://github.com/google/shaka-player/issues/2060 + - https://github.com/shaka-project/shaka-player/issues/2060 - Re-add MediaSession API - - https://github.com/google/shaka-player/issues/1934 + - https://github.com/shaka-project/shaka-player/issues/1934 - Skip WebM streams in HLS instead of throwing - - https://github.com/google/shaka-player/issues/2108 + - https://github.com/shaka-project/shaka-player/issues/2108 - Convert `` elements to `pssh` init data - - https://github.com/google/shaka-player/pull/2106 - - https://github.com/google/shaka-player/issues/2058 + - https://github.com/shaka-project/shaka-player/pull/2106 + - https://github.com/shaka-project/shaka-player/issues/2058 Bugfixes: - Fix duplicate resolution entries in UI menu - - https://github.com/google/shaka-player/issues/2085 + - https://github.com/shaka-project/shaka-player/issues/2085 - Fix missing tracks, race on time during startup - - https://github.com/google/shaka-player/issues/2045 + - https://github.com/shaka-project/shaka-player/issues/2045 - Fix spinner position on IE11 - - https://github.com/google/shaka-player/issues/2084 + - https://github.com/shaka-project/shaka-player/issues/2084 - Fix seek bar coloring when nothing buffered - Fix scroll behavior on page load - - https://github.com/google/shaka-player/issues/2063 + - https://github.com/shaka-project/shaka-player/issues/2063 - Don't create a UI if the app already has one - - https://github.com/google/shaka-player/issues/2073 + - https://github.com/shaka-project/shaka-player/issues/2073 - Fix text display styling when fullscreen - - https://github.com/google/shaka-player/issues/2051 + - https://github.com/shaka-project/shaka-player/issues/2051 - Don't enter fullscreen on double click on bottom bar - - https://github.com/google/shaka-player/issues/2053 + - https://github.com/shaka-project/shaka-player/issues/2053 - Avoid errors when video ends - - https://github.com/google/shaka-player/issues/2050 + - https://github.com/shaka-project/shaka-player/issues/2050 - Fix fullscreen behavior on double click and rotate - - https://github.com/google/shaka-player/issues/2043 + - https://github.com/shaka-project/shaka-player/issues/2043 - Fix bug when clicking PIP button while casting - - https://github.com/google/shaka-player/issues/2044 + - https://github.com/shaka-project/shaka-player/issues/2044 - Fix CEA captions with multi-Period content - - https://github.com/google/shaka-player/issues/2075 - - https://github.com/google/shaka-player/issues/2094 + - https://github.com/shaka-project/shaka-player/issues/2075 + - https://github.com/shaka-project/shaka-player/issues/2094 Demo App: - Added more HLS demo assets - - https://github.com/google/shaka-player/issues/2035 + - https://github.com/shaka-project/shaka-player/issues/2035 - Exit PIP on unload in the demo - - https://github.com/google/shaka-player/issues/2055 + - https://github.com/shaka-project/shaka-player/issues/2055 - Re-added hidden 'noinput' param to demo @@ -1714,27 +1905,27 @@ Demo App: Bugfixes: - Default to transparent SMPTE-TT subtitle background - - https://github.com/google/shaka-player/pull/2033 + - https://github.com/shaka-project/shaka-player/pull/2033 - Fix seek bar on iOS - - https://github.com/google/shaka-player/issues/1918 - - https://github.com/google/shaka-player/pull/2036 + - https://github.com/shaka-project/shaka-player/issues/1918 + - https://github.com/shaka-project/shaka-player/pull/2036 - Allow whitespace in TTML subtitles - - https://github.com/google/shaka-player/issues/2028 - - https://github.com/google/shaka-player/pull/2030 + - https://github.com/shaka-project/shaka-player/issues/2028 + - https://github.com/shaka-project/shaka-player/pull/2030 - Fix play button positioning on IE 11 - - https://github.com/google/shaka-player/issues/2026 + - https://github.com/shaka-project/shaka-player/issues/2026 - Match UI style with Chrome's native controls - Stop constant spurious time updates in UI - Fix volume slider jumping around while casting - - https://github.com/google/shaka-player/issues/1913 + - https://github.com/shaka-project/shaka-player/issues/1913 - Fix missing seek bar in short VOD clips - - https://github.com/google/shaka-player/issues/2018 + - https://github.com/shaka-project/shaka-player/issues/2018 - Fix demo app in Firefox private mode - - https://github.com/google/shaka-player/issues/1926 + - https://github.com/shaka-project/shaka-player/issues/1926 - Ignore case in MIME type checks - - https://github.com/google/shaka-player/issues/1991 + - https://github.com/shaka-project/shaka-player/issues/1991 - Fix problems with casting - - https://github.com/google/shaka-player/issues/1948 + - https://github.com/shaka-project/shaka-player/issues/1948 New Features: - Add command-line arg to change the test timeout. @@ -1744,62 +1935,62 @@ New Features: Bugfixes: - Fix DASH bug when ignoring minBufferTime - - https://github.com/google/shaka-player/issues/2015 + - https://github.com/shaka-project/shaka-player/issues/2015 - Avoid changing variant when switching text lang - - https://github.com/google/shaka-player/issues/2010 + - https://github.com/shaka-project/shaka-player/issues/2010 - Work around platform bug when seeking to end - - https://github.com/google/shaka-player/issues/1967 + - https://github.com/shaka-project/shaka-player/issues/1967 - Allow apps to extend shaka.ui.Element - - https://github.com/google/shaka-player/issues/2011 + - https://github.com/shaka-project/shaka-player/issues/2011 - Fix bug when adding text streams while not streaming text - - https://github.com/google/shaka-player/issues/1938 + - https://github.com/shaka-project/shaka-player/issues/1938 - Fix edge case when switching text in multi-Period content - - https://github.com/google/shaka-player/issues/1774 + - https://github.com/shaka-project/shaka-player/issues/1774 - Fix playback rate bug on IE11 - Make fast forwarding work when video is paused - - https://github.com/google/shaka-player/issues/1801 + - https://github.com/shaka-project/shaka-player/issues/1801 - Fix stack overflow in StringUtils on some platforms - - https://github.com/google/shaka-player/issues/1985 - - https://github.com/google/shaka-player/issues/1994 + - https://github.com/shaka-project/shaka-player/issues/1985 + - https://github.com/shaka-project/shaka-player/issues/1994 - Fix reading customData from standard Cast LOAD message - - https://github.com/google/shaka-player/issues/1989 + - https://github.com/shaka-project/shaka-player/issues/1989 Docs: - Fix constant name in UI tutorials - - https://github.com/google/shaka-player/issues/2005 + - https://github.com/shaka-project/shaka-player/issues/2005 - Update build output name in docs - - https://github.com/google/shaka-player/issues/1929 + - https://github.com/shaka-project/shaka-player/issues/1929 New Features: - Use trick play for fast forward when browser doesn't support high playbackRate - - https://github.com/google/shaka-player/issues/1957 + - https://github.com/shaka-project/shaka-player/issues/1957 ## 2.5.2 (2019-06-10) Bugfixes: - Avoid event listener leaks in the UI - - https://github.com/google/shaka-player/issues/1924 + - https://github.com/shaka-project/shaka-player/issues/1924 - Fix style errors in TextDisplayer - - https://github.com/google/shaka-player/issues/1852 - - https://github.com/google/shaka-player/issues/1955 + - https://github.com/shaka-project/shaka-player/issues/1852 + - https://github.com/shaka-project/shaka-player/issues/1955 - Show spinner when buffering even if other controls are hidden - - https://github.com/google/shaka-player/issues/1921 + - https://github.com/shaka-project/shaka-player/issues/1921 - Don't recreate controls object on configure() calls - - https://github.com/google/shaka-player/issues/1948 + - https://github.com/shaka-project/shaka-player/issues/1948 - Fix UI compilation on Windows - - https://github.com/google/shaka-player/issues/1965 + - https://github.com/shaka-project/shaka-player/issues/1965 New Features: - Add originalUri as a property on shaka.extern.Response - - https://github.com/google/shaka-player/issues/1971 - - https://github.com/google/shaka-player/pull/1972 + - https://github.com/shaka-project/shaka-player/issues/1971 + - https://github.com/shaka-project/shaka-player/pull/1972 Demo App: - Fix close button styling in compiled mode - Fix config settings applied before playback begins - - https://github.com/google/shaka-player/issues/1976 + - https://github.com/shaka-project/shaka-player/issues/1976 - Change the style of the download/delete button - Fix demo error display for large errors - Improve cvox error check @@ -1807,7 +1998,7 @@ Demo App: Docs: - Add a public roadmap document - - https://github.com/google/shaka-player/blob/master/roadmap.md + - https://github.com/shaka-project/shaka-player/blob/master/roadmap.md ## 2.5.1 (2019-05-20) @@ -1819,15 +2010,15 @@ New Features: Bugfixes: - Deprecate ui.getPlayer for controls.getPlayer - - https://github.com/google/shaka-player/issues/1941 + - https://github.com/shaka-project/shaka-player/issues/1941 - Fix switching text displayer mid-playback - Improve french translations - - https://github.com/google/shaka-player/pull/1944 + - https://github.com/shaka-project/shaka-player/pull/1944 - Improve logic for aborting network requests - Fix initial bandwidth estimate on Chrome - Upgrade mux.js and use minified version - Fix exception on network retry - - https://github.com/google/shaka-player/issues/1930 + - https://github.com/shaka-project/shaka-player/issues/1930 - Fix API-based UI setup with default config - Allow two-argument configure() calls for UI and offline - Add missing export on ui.Overlay.getConfiguration @@ -1837,7 +2028,7 @@ Bugfixes: Demo App: - Fix asset card highlight on reload - Fix reconnection to cast sessions on reload - - https://github.com/google/shaka-player/issues/1948 + - https://github.com/shaka-project/shaka-player/issues/1948 - Fix handling of error events - Fix centering of asset card titles - Move download button to the corner of asset cards @@ -1850,9 +2041,9 @@ Demo App: - Do not disable controls on startup - Added missing config values - Catch certificate errors in demo - - https://github.com/google/shaka-player/issues/1914 + - https://github.com/shaka-project/shaka-player/issues/1914 - Let demo load even if storage fails to load - - https://github.com/google/shaka-player/issues/1925 + - https://github.com/shaka-project/shaka-player/issues/1925 - Re-load current asset if page reloads - Fix unsupported button tooltips @@ -1863,103 +2054,103 @@ Demo App: Core Bugfixes: - Fix missing variants in HLS - - https://github.com/google/shaka-player/issues/1908 + - https://github.com/shaka-project/shaka-player/issues/1908 - Ignore manifest-provided license servers if application-provided servers are configured - - https://github.com/google/shaka-player/issues/1905 + - https://github.com/shaka-project/shaka-player/issues/1905 - Fix range header regression that broke IIS compatibility - Fix initial display of captions based on language preferences - - https://github.com/google/shaka-player/issues/1879 + - https://github.com/shaka-project/shaka-player/issues/1879 - Ignore duplicate codecs in HLS - - https://github.com/google/shaka-player/issues/1817 + - https://github.com/shaka-project/shaka-player/issues/1817 - Reject AES-128 HLS content with meaningful error - - https://github.com/google/shaka-player/issues/1838 + - https://github.com/shaka-project/shaka-player/issues/1838 - Fix React Native createObjectURL polyfill incompatibility - - https://github.com/google/shaka-player/issues/1842 - - https://github.com/google/shaka-player/pull/1845 + - https://github.com/shaka-project/shaka-player/issues/1842 + - https://github.com/shaka-project/shaka-player/pull/1845 - Dolby Vision fixes for Chromecast - - https://github.com/google/shaka-player/pull/1844 + - https://github.com/shaka-project/shaka-player/pull/1844 - Fix redundant initialization of MediaSource - - https://github.com/google/shaka-player/issues/1570 + - https://github.com/shaka-project/shaka-player/issues/1570 - Fix stalls on WebOS - - https://github.com/google/shaka-player/issues/1704 - - https://github.com/google/shaka-player/pull/1820 + - https://github.com/shaka-project/shaka-player/issues/1704 + - https://github.com/shaka-project/shaka-player/pull/1820 - Fix missing require for SimpleTextDisplayer - - https://github.com/google/shaka-player/issues/1819 + - https://github.com/shaka-project/shaka-player/issues/1819 - Fix broken version definition in compiled build - - https://github.com/google/shaka-player/issues/1816 + - https://github.com/shaka-project/shaka-player/issues/1816 - Fix video reloading on audio language change - - https://github.com/google/shaka-player/issues/1714 + - https://github.com/shaka-project/shaka-player/issues/1714 UI Bugfixes: - Fix missing resolution menu in UI after playing audio-only content - Fix pointer cursor on UI spacer - Do not show PIP button if not allowed - Fix hiding captions in UI text displayer - - https://github.com/google/shaka-player/issues/1893 + - https://github.com/shaka-project/shaka-player/issues/1893 - Fix UI text displayer positioning on IE - Make live stream timecode accessible to screen readers in the UI - - https://github.com/google/shaka-player/issues/1861 + - https://github.com/shaka-project/shaka-player/issues/1861 - Fix ARIA pressed state for button in text selection menu - Show picture-in-picture btn only when the content has video - - https://github.com/google/shaka-player/issues/1849 + - https://github.com/shaka-project/shaka-player/issues/1849 - Fix multiline captions in UI text displayer - Fix display of cast button in UI - - https://github.com/google/shaka-player/issues/1803 + - https://github.com/shaka-project/shaka-player/issues/1803 - Fix conflict between PiP and fullscreen - Fix cast receiver styling New Core Features: - Abort requests when network downgrading - - https://github.com/google/shaka-player/issues/1051 + - https://github.com/shaka-project/shaka-player/issues/1051 - Add FairPlay support - - https://github.com/google/shaka-player/issues/382 + - https://github.com/shaka-project/shaka-player/issues/382 - Add native HLS support on iOS and Safari - - https://github.com/google/shaka-player/issues/997 + - https://github.com/shaka-project/shaka-player/issues/997 - Support src= for single-file playback - - https://github.com/google/shaka-player/issues/816 - - https://github.com/google/shaka-player/pull/1888 - - https://github.com/google/shaka-player/pull/1898 + - https://github.com/shaka-project/shaka-player/issues/816 + - https://github.com/shaka-project/shaka-player/pull/1888 + - https://github.com/shaka-project/shaka-player/pull/1898 - Add 'manifestparsed' event for early access to manifest contents - Add 'abrstatuschanged' event to help manage UI state - Make manifest redirections sticky for updates - - https://github.com/google/shaka-player/issues/1367 - - https://github.com/google/shaka-player/pull/1880 + - https://github.com/shaka-project/shaka-player/issues/1367 + - https://github.com/shaka-project/shaka-player/pull/1880 - Track time in "pause" state in stats - - https://github.com/google/shaka-player/pull/1855 + - https://github.com/shaka-project/shaka-player/pull/1855 - Make Stall Detector Configurable - - https://github.com/google/shaka-player/issues/1839 + - https://github.com/shaka-project/shaka-player/issues/1839 New UI Features: - Add support for UI reconfiguration and layout changes - - https://github.com/google/shaka-player/issues/1674 + - https://github.com/shaka-project/shaka-player/issues/1674 - Add support for custom UI buttons - - https://github.com/google/shaka-player/issues/1673 + - https://github.com/shaka-project/shaka-player/issues/1673 - Add partial support for SMPTE-TT subtitles in UI text displayer - - https://github.com/google/shaka-player/issues/840 - - https://github.com/google/shaka-player/pull/1859 + - https://github.com/shaka-project/shaka-player/issues/840 + - https://github.com/shaka-project/shaka-player/pull/1859 - Add PiP support in Safari - - https://github.com/google/shaka-player/pull/1902 + - https://github.com/shaka-project/shaka-player/pull/1902 Demo App: - Complete redesign of the demo app! - Load non-built-in localizations from the server at runtime - - https://github.com/google/shaka-player/issues/1688 + - https://github.com/shaka-project/shaka-player/issues/1688 - Ignore spurious errors from ChromeVox - - https://github.com/google/shaka-player/issues/1862 + - https://github.com/shaka-project/shaka-player/issues/1862 - Don't handle non-app resources in service worker - - https://github.com/google/shaka-player/issues/1256 - - https://github.com/google/shaka-player/issues/1392 + - https://github.com/shaka-project/shaka-player/issues/1256 + - https://github.com/shaka-project/shaka-player/issues/1392 Docs: - Document UI events - - https://github.com/google/shaka-player/issues/1870 + - https://github.com/shaka-project/shaka-player/issues/1870 - Update Manifest Parser documentation - Clarify track selection callback in offline tutorial - Fix jsdoc and markdown formatting of links - Add link for Shaka Player Embedded - - https://github.com/google/shaka-player/issues/1846 + - https://github.com/shaka-project/shaka-player/issues/1846 ## 2.5.0-beta3 (2019-02-20) @@ -1969,42 +2160,42 @@ New Features: - Load dist/shaka-player.ui.js - See tutorial in docs/tutorials/ui.md - Add option to disable drift-tolerance feature for certain live streams - - https://github.com/google/shaka-player/issues/1729 + - https://github.com/shaka-project/shaka-player/issues/1729 - Upgrade mux.js to the latest (5.1.0) - Support HLS playlists without URI in EXT-X-MEDIA - - https://github.com/google/shaka-player/pull/1732 + - https://github.com/shaka-project/shaka-player/pull/1732 - Add safeSeekOffset to StreamingConfiguration - - https://github.com/google/shaka-player/issues/1723 - - https://github.com/google/shaka-player/pull/1726 + - https://github.com/shaka-project/shaka-player/issues/1723 + - https://github.com/shaka-project/shaka-player/pull/1726 - Add PlayReady license URL parsing (ms:laurl) - - https://github.com/google/shaka-player/issues/484 - - https://github.com/google/shaka-player/pull/1644 + - https://github.com/shaka-project/shaka-player/issues/484 + - https://github.com/shaka-project/shaka-player/pull/1644 - Add support for HLS tags with both value and attributes - - https://github.com/google/shaka-player/issues/1808 - - https://github.com/google/shaka-player/pull/1810 + - https://github.com/shaka-project/shaka-player/issues/1808 + - https://github.com/shaka-project/shaka-player/pull/1810 Bugfixes: - Fixed various typos in comments and docs - - https://github.com/google/shaka-player/pull/1797 - - https://github.com/google/shaka-player/pull/1805 + - https://github.com/shaka-project/shaka-player/pull/1797 + - https://github.com/shaka-project/shaka-player/pull/1805 - Fix CEA timestamps with presentationTimeOffset - Fix config-based clock sync for IPR content - Fix cast serialization of Uint8Array types - - https://github.com/google/shaka-player/issues/1716 + - https://github.com/shaka-project/shaka-player/issues/1716 - Fix event dispatch when text tracks change - Don't include video roles in audio-language-role pairs - - https://github.com/google/shaka-player/issues/1731 + - https://github.com/shaka-project/shaka-player/issues/1731 - Fix MediaSource failures with certain language settings - - https://github.com/google/shaka-player/issues/1696 + - https://github.com/shaka-project/shaka-player/issues/1696 - Fix build paths on Windows - - https://github.com/google/shaka-player/issues/1700 + - https://github.com/shaka-project/shaka-player/issues/1700 Docs: - Update docs to mention ignoreMinBufferTime - - https://github.com/google/shaka-player/issues/1547 - - https://github.com/google/shaka-player/issues/1666 + - https://github.com/shaka-project/shaka-player/issues/1547 + - https://github.com/shaka-project/shaka-player/issues/1666 - Document restrictions on large timescales - - https://github.com/google/shaka-player/issues/1667 + - https://github.com/shaka-project/shaka-player/issues/1667 - Various small docs improvements @@ -2012,54 +2203,54 @@ Docs: Bugfixes: - Reject opus content on Tizen - - https://github.com/google/shaka-player/issues/1751 + - https://github.com/shaka-project/shaka-player/issues/1751 - Fix seekable range on HLS content with non-zero start time - - https://github.com/google/shaka-player/issues/1602 + - https://github.com/shaka-project/shaka-player/issues/1602 ## 2.4.6 (2019-01-22) Bugfixes: - Fix HLS without URI attribute - - https://github.com/google/shaka-player/issues/1086 - - https://github.com/google/shaka-player/issues/1730 - - https://github.com/google/shaka-player/pull/1732 + - https://github.com/shaka-project/shaka-player/issues/1086 + - https://github.com/shaka-project/shaka-player/issues/1730 + - https://github.com/shaka-project/shaka-player/pull/1732 - Handle prereleases of npm and node in build scripts - - https://github.com/google/shaka-player/issues/1758 + - https://github.com/shaka-project/shaka-player/issues/1758 - Fix windows path handling in build scripts - - https://github.com/google/shaka-player/issues/1759 + - https://github.com/shaka-project/shaka-player/issues/1759 - Fix cast receiver errors in getStats - - https://github.com/google/shaka-player/issues/1760 + - https://github.com/shaka-project/shaka-player/issues/1760 - Fix spurious teardown exception on smart TVs - - https://github.com/google/shaka-player/issues/1728 + - https://github.com/shaka-project/shaka-player/issues/1728 - Loosen gap thresholds on Chromecast - - https://github.com/google/shaka-player/issues/1720 + - https://github.com/shaka-project/shaka-player/issues/1720 - Fix support for Safari 12 - Fix support for relative Location URLs in DASH - - https://github.com/google/shaka-player/issues/1668 + - https://github.com/shaka-project/shaka-player/issues/1668 - Fix compliance issues in IE11 EME polyfill - - https://github.com/google/shaka-player/issues/1689 + - https://github.com/shaka-project/shaka-player/issues/1689 - Fix PlayReady playback on Tizen - - https://github.com/google/shaka-player/issues/1712 + - https://github.com/shaka-project/shaka-player/issues/1712 - Fix chopped playback in MS Edge - - https://github.com/google/shaka-player/issues/1597 + - https://github.com/shaka-project/shaka-player/issues/1597 - Fix assertions when EME sessions expire - - https://github.com/google/shaka-player/issues/1599 + - https://github.com/shaka-project/shaka-player/issues/1599 - Fix relative URIs in HLS - - https://github.com/google/shaka-player/issues/1664 + - https://github.com/shaka-project/shaka-player/issues/1664 - Fix compilation error - - https://github.com/google/shaka-player/issues/1658 - - https://github.com/google/shaka-player/pull/1660 + - https://github.com/shaka-project/shaka-player/issues/1658 + - https://github.com/shaka-project/shaka-player/pull/1660 New Features: - Add extended error code for failed license request - - https://github.com/google/shaka-player/issues/1689 + - https://github.com/shaka-project/shaka-player/issues/1689 Demo App: - Disable offline storage on some assets - - https://github.com/google/shaka-player/issues/1768 + - https://github.com/shaka-project/shaka-player/issues/1768 - Update DASH-IF livesim URLs - - https://github.com/google/shaka-player/pull/1736 + - https://github.com/shaka-project/shaka-player/pull/1736 ## 2.5.0-beta2 (2018-11-09) @@ -2068,32 +2259,32 @@ Contains everything in v2.4.5, plus... Bugfixes: - Fix Chromecast receiver id in the demo, broken since v2.5.0-beta - - https://github.com/google/shaka-player/issues/1656 + - https://github.com/shaka-project/shaka-player/issues/1656 - Fix multi-period playback issues introduced in v2.5.0-beta - - https://github.com/google/shaka-player/issues/1601 + - https://github.com/shaka-project/shaka-player/issues/1601 - Fix seekable range with non-zero start - - https://github.com/google/shaka-player/issues/1602 + - https://github.com/shaka-project/shaka-player/issues/1602 - Misc Storage and demo fixes - Fix support for restriction changes after playback - - https://github.com/google/shaka-player/issues/1533 + - https://github.com/shaka-project/shaka-player/issues/1533 - Fix TextEngine buffered range calculations - - https://github.com/google/shaka-player/issues/1562 + - https://github.com/shaka-project/shaka-player/issues/1562 New Features: - Add support for CEA captions in DASH - - https://github.com/google/shaka-player/issues/1404 + - https://github.com/shaka-project/shaka-player/issues/1404 - Set server certificate before Store and Delete - - https://github.com/google/shaka-player/issues/1623 - - https://github.com/google/shaka-player/pull/1639 + - https://github.com/shaka-project/shaka-player/issues/1623 + - https://github.com/shaka-project/shaka-player/pull/1639 - Allow deferring deleting offline sessions. - - https://github.com/google/shaka-player/issues/1326 + - https://github.com/shaka-project/shaka-player/issues/1326 - Added progress events for Fetch plugin. - - https://github.com/google/shaka-player/issues/1504 + - https://github.com/shaka-project/shaka-player/issues/1504 - Add config field to ignore manifest minBufferTime #1547 - - https://github.com/google/shaka-player/issues/1547 - - https://github.com/google/shaka-player/pull/1581 + - https://github.com/shaka-project/shaka-player/issues/1547 + - https://github.com/shaka-project/shaka-player/pull/1581 - Add support for 'individualization-request' messages in EME - - https://github.com/google/shaka-player/issues/1565 + - https://github.com/shaka-project/shaka-player/issues/1565 Docs: - Update Language Normalization Documentation @@ -2108,72 +2299,72 @@ Bugfixes: - Fix gap jumping test failures on IE/Edge/Tizen - Fix stalls on Tizen TV - Fix display of external subtitles - - https://github.com/google/shaka-player/issues/1596 + - https://github.com/shaka-project/shaka-player/issues/1596 - Fix test failures on Safari - Fix filtering of HLS audio-only content - Preserve bandwidth estimate between loads - - https://github.com/google/shaka-player/issues/1366 + - https://github.com/shaka-project/shaka-player/issues/1366 - Retry streaming when we get back online - - https://github.com/google/shaka-player/issues/1427 + - https://github.com/shaka-project/shaka-player/issues/1427 - Fix Storage test contamination - Fix advanced DRM settings pollution across key systems - - https://github.com/google/shaka-player/issues/1524 + - https://github.com/shaka-project/shaka-player/issues/1524 - Fix TextEngine buffered range calculations - - https://github.com/google/shaka-player/issues/1562 + - https://github.com/shaka-project/shaka-player/issues/1562 New Features: - Optimize processXlinks - - https://github.com/google/shaka-player/issues/1640 + - https://github.com/shaka-project/shaka-player/issues/1640 - Add support for Python3 in build scripts - Allow new Periods to add EME init data - - https://github.com/google/shaka-player/issues/1360 + - https://github.com/shaka-project/shaka-player/issues/1360 - Add namespace-aware parsing to TTML parser - - https://github.com/google/shaka-player/issues/1585 + - https://github.com/shaka-project/shaka-player/issues/1585 - An external Promise polyfill is no longer required! Demo App: - Show logs prominently in noinput mode - - https://github.com/google/shaka-player/issues/1610 + - https://github.com/shaka-project/shaka-player/issues/1610 - Disable uncompiled mode on browsers without async - Restore using Enter key to load asset Docs: - Fix tracks sorting in Offline tutorial sample code - - https://github.com/google/shaka-player/issues/1608 - - https://github.com/google/shaka-player/pull/1609 + - https://github.com/shaka-project/shaka-player/issues/1608 + - https://github.com/shaka-project/shaka-player/pull/1609 - Add a note about blank receiver IDs - Rename 'video' to 'mediaElem' to make it clear that audio elements work, too - - https://github.com/google/shaka-player/issues/1555 + - https://github.com/shaka-project/shaka-player/issues/1555 Un-Features: - Un-ship VTTRegion support, which is currently broken in Chrome and does more harm than good - - https://github.com/google/shaka-player/issues/1584 + - https://github.com/shaka-project/shaka-player/issues/1584 ## 2.5.0-beta (2018-08-24) New Features: - Drift is now tolerated in DASH live streams - - https://github.com/google/shaka-player/issues/999 + - https://github.com/shaka-project/shaka-player/issues/999 - Storage can be initialized without Player - - https://github.com/google/shaka-player/issues/1297 + - https://github.com/shaka-project/shaka-player/issues/1297 - DASH Representation IDs are now exposed in a new field in Track - A safe margin parameter was added for clearing the buffer - - https://github.com/google/shaka-player/pull/1154 + - https://github.com/shaka-project/shaka-player/pull/1154 - Added 'retry' event to networking engine - - https://github.com/google/shaka-player/issues/1529 + - https://github.com/shaka-project/shaka-player/issues/1529 - Emsg not referenced in MPD will now be ignored - - https://github.com/google/shaka-player/issues/1548 + - https://github.com/shaka-project/shaka-player/issues/1548 - Extra data given for RESTRICTIONS_CANNOT_BE_MET - - https://github.com/google/shaka-player/issues/1368 + - https://github.com/shaka-project/shaka-player/issues/1368 - A mime type option was added to Player.load - Added Widevine SAMPLE-AES support in HLS - - https://github.com/google/shaka-player/issues/1515 + - https://github.com/shaka-project/shaka-player/issues/1515 - The |manifestUri| method on Player was changed to |assetUri| - Added new request type TIMING for clock sync requests - - https://github.com/google/shaka-player/issues/1488 - - https://github.com/google/shaka-player/pull/1489 + - https://github.com/shaka-project/shaka-player/issues/1488 + - https://github.com/shaka-project/shaka-player/pull/1489 Deprecated: - Passing a ManifestParser factory to Player.load is deprecated and support @@ -2188,39 +2379,39 @@ Deprecated: Bugfixes: - Fix spurious restrictions errors - - https://github.com/google/shaka-player/issues/1541 + - https://github.com/shaka-project/shaka-player/issues/1541 - Don't error when skipping mp4 boxes with bad size - - https://github.com/google/shaka-player/issues/1535 + - https://github.com/shaka-project/shaka-player/issues/1535 - Refactor HttpFetchPlugin to clarify error outcomes - - https://github.com/google/shaka-player/issues/1519 - - https://github.com/google/shaka-player/pull/1532 + - https://github.com/shaka-project/shaka-player/issues/1519 + - https://github.com/shaka-project/shaka-player/pull/1532 - Avoid assertions about $Time$ when it is not used - Stop proxying drmInfo() to reduce cast message sizes - Fix compiler renaming in ParsedBox - - https://github.com/google/shaka-player/issues/1522 + - https://github.com/shaka-project/shaka-player/issues/1522 Docs: - Fixed docs for availabilityWindowOverride - - https://github.com/google/shaka-player/issues/1530 + - https://github.com/shaka-project/shaka-player/issues/1530 ## 2.4.3 (2018-08-06) New Features: - Add availabilityWindowOverride configuration - - https://github.com/google/shaka-player/issues/1177 - - https://github.com/google/shaka-player/issues/1307 + - https://github.com/shaka-project/shaka-player/issues/1177 + - https://github.com/shaka-project/shaka-player/issues/1307 Bugfixes: - Fix repeated download of the same segment in live DASH - - https://github.com/google/shaka-player/issues/1464 - - https://github.com/google/shaka-player/issues/1486 + - https://github.com/shaka-project/shaka-player/issues/1464 + - https://github.com/shaka-project/shaka-player/issues/1486 - Don't clear buffer with a small gap between playhead and buffer start - - https://github.com/google/shaka-player/issues/1459 + - https://github.com/shaka-project/shaka-player/issues/1459 - Allow CDATA in text nodes. - - https://github.com/google/shaka-player/issues/1508 + - https://github.com/shaka-project/shaka-player/issues/1508 - Skip text AdaptationSets with no segment info - - https://github.com/google/shaka-player/issues/1484 + - https://github.com/shaka-project/shaka-player/issues/1484 - Add error code for side-loaded text with live streams Demo app: @@ -2234,14 +2425,14 @@ Docs: Bugfixes: - Fix ignored configuration when input is partially invalid (v2.4.2 only) - - https://github.com/google/shaka-player/issues/1470 + - https://github.com/shaka-project/shaka-player/issues/1470 - Silence DRM engine errors for unencrypted assets - - https://github.com/google/shaka-player/issues/1479 + - https://github.com/shaka-project/shaka-player/issues/1479 - Fix infinite seeking with HLS on V1 Chromecasts - - https://github.com/google/shaka-player/issues/1411 + - https://github.com/shaka-project/shaka-player/issues/1411 - Fix module wrapper to work with CommonJS, AMD, ES modules, as well as Closure and Electron - - https://github.com/google/shaka-player/issues/1463 + - https://github.com/shaka-project/shaka-player/issues/1463 - Fix TextEngine buffered range calculations Demo App: @@ -2250,60 +2441,60 @@ Demo App: Docs: - Fix generated documentation problems (v2.4.2 only) - Move CEA-608/708 to list of supported HLS features (v2.4.2 only) - - https://github.com/google/shaka-player/pull/1465 + - https://github.com/shaka-project/shaka-player/pull/1465 ## 2.3.9 and 2.4.1 (2018-06-13) Bugfixes: - Default to a maximum of 360p for ABR when saveData == true - - https://github.com/google/shaka-player/issues/855 + - https://github.com/shaka-project/shaka-player/issues/855 - Make AbrManager restrictions "soft" so they do not fail playback - Patch Closure Compiler to fix polyfill+wrapper - - https://github.com/google/shaka-player/issues/1455 + - https://github.com/shaka-project/shaka-player/issues/1455 - Fix assertion spam when merging a period into itself - - https://github.com/google/shaka-player/issues/1448 + - https://github.com/shaka-project/shaka-player/issues/1448 - Upgrade WebDriver module to new W3C protocol, fixes WD tests on Firefox & IE - Work around potential hang in transmuxer with multiplexed TS content. - - https://github.com/google/shaka-player/issues/1449 + - https://github.com/shaka-project/shaka-player/issues/1449 Demo app: - Support clearkey license-servers in the demo UI Misc: - Fix nodejs import (still not a supported environment, but does not throw) - - https://github.com/google/shaka-player/issues/1445 - - https://github.com/google/shaka-player/pull/1446 + - https://github.com/shaka-project/shaka-player/issues/1445 + - https://github.com/shaka-project/shaka-player/pull/1446 ## 2.4.0 (2018-05-24) New features: - Support for TTML and VTT regions - - https://github.com/google/shaka-player/issues/1188 + - https://github.com/shaka-project/shaka-player/issues/1188 - Support for CEA captions in TS content - - https://github.com/google/shaka-player/issues/276 + - https://github.com/shaka-project/shaka-player/issues/276 - A video element is no longer required when `Player` is constructed - - https://github.com/google/shaka-player/issues/1087 + - https://github.com/shaka-project/shaka-player/issues/1087 - New `attach()` and `detach()` methods have been added to `Player` to manage attachment to video elements - - https://github.com/google/shaka-player/issues/1087 + - https://github.com/shaka-project/shaka-player/issues/1087 - Allow apps to specify a preferred audio channel count - - https://github.com/google/shaka-player/issues/1013 + - https://github.com/shaka-project/shaka-player/issues/1013 - Live stream playback can begin at a negative offset from the live edge - - https://github.com/google/shaka-player/issues/1178 + - https://github.com/shaka-project/shaka-player/issues/1178 - Add new configure() syntax for easily setting single fields - - https://github.com/google/shaka-player/issues/763 + - https://github.com/shaka-project/shaka-player/issues/763 - player.configure() returns false if player configuration is invalid - Fetch is now preferred over XHR when available - - https://github.com/google/shaka-player/issues/829 + - https://github.com/shaka-project/shaka-player/issues/829 - Request type now appears in shaka.util.Error data for HTTP errors - - https://github.com/google/shaka-player/issues/1253 + - https://github.com/shaka-project/shaka-player/issues/1253 Broken compatibility: - A third-party Promise polyfill is now required for IE 11 support - https://github.com/lahmatiy/es6-promise-polyfill - - https://github.com/google/shaka-player/issues/1260 + - https://github.com/shaka-project/shaka-player/issues/1260 - Text parser plugins now take a nullable segmentStart in TextContext. All application-specific text-parsing plugins MUST be updated. - Text-parsing plugins that produce region information must do so with the new @@ -2340,15 +2531,15 @@ Misc: Bugfixes: - Fix non-default namespace names in DASH - - https://github.com/google/shaka-player/issues/1438 + - https://github.com/shaka-project/shaka-player/issues/1438 - Fix use after destroy() in CastProxy - - https://github.com/google/shaka-player/issues/1423 + - https://github.com/shaka-project/shaka-player/issues/1423 - Fix text track visibility state - - https://github.com/google/shaka-player/issues/1412 + - https://github.com/shaka-project/shaka-player/issues/1412 - Remove licenses when wiping offline storage - - https://github.com/google/shaka-player/issues/1277 + - https://github.com/shaka-project/shaka-player/issues/1277 - Restore backward compatibility for v2.2.x offline storage - - https://github.com/google/shaka-player/issues/1248 + - https://github.com/shaka-project/shaka-player/issues/1248 Demo app: - Update DASH-IF Big Buck Bunny asset @@ -2356,55 +2547,55 @@ Demo app: Docs: - Fix typos and formatting - Build docs as part of build/all.py - - https://github.com/google/shaka-player/issues/1421 + - https://github.com/shaka-project/shaka-player/issues/1421 ## 2.3.7 (2018-04-24) Bugfixes: - Fixed manifest update frequency calculations - - https://github.com/google/shaka-player/issues/1399 + - https://github.com/shaka-project/shaka-player/issues/1399 - Fixed repeated seeking during HLS live streaming on Chromecast - - https://github.com/google/shaka-player/issues/1411 + - https://github.com/shaka-project/shaka-player/issues/1411 Demo app: - Fixed updating of the app URL on Android when pasting into the custom asset field - - https://github.com/google/shaka-player/issues/1079 + - https://github.com/shaka-project/shaka-player/issues/1079 - Added Axinom live test assets - - https://github.com/google/shaka-player/pull/1409 + - https://github.com/shaka-project/shaka-player/pull/1409 ## 2.3.6 (2018-04-11) Bugfixes: - Handle HLS segments tags that occur before playlist tags - - https://github.com/google/shaka-player/issues/1382 + - https://github.com/shaka-project/shaka-player/issues/1382 - Avoid telling AbrManager about key-system-restricted streams, to simplify building AbrManager plugins. - Fixed exported enum definition for network plugin priorities - Fixed ES5 strict mode compatibility in our module wrapper - - https://github.com/google/shaka-player/pull/1398 + - https://github.com/shaka-project/shaka-player/pull/1398 Demo app: - Fixed playback of VDMS assets by updating the license request details - - https://github.com/google/shaka-player/pull/1388 + - https://github.com/shaka-project/shaka-player/pull/1388 ## 2.3.5 (2018-03-29) New features: - Do not buffer audio far ahead of video - - https://github.com/google/shaka-player/issues/964 + - https://github.com/shaka-project/shaka-player/issues/964 Bugfixes: - Fixed early seeking (immediately upon load) - - https://github.com/google/shaka-player/issues/1298 + - https://github.com/shaka-project/shaka-player/issues/1298 - Fixed repeated seeking in HLS live (also affects DASH with timeShiftBufferDepth of zero) - - https://github.com/google/shaka-player/issues/1331 + - https://github.com/shaka-project/shaka-player/issues/1331 - Fixed VTT+MP4 parsing with respect to TRUN box - - https://github.com/google/shaka-player/issues/1266 + - https://github.com/shaka-project/shaka-player/issues/1266 - Fixed hang in StreamingEngine when playing at the left edge of the seek range on slow embedded devices - Work around slow DASH parsing on embedded devices @@ -2423,97 +2614,97 @@ New features: Bugfixes: - Fixed rapid seeking in zero-width seek ranges, such as in HLS live - - https://github.com/google/shaka-player/issues/1331 + - https://github.com/shaka-project/shaka-player/issues/1331 - Fixed use of native controls for text display - - https://github.com/google/shaka-player/issues/1332 + - https://github.com/shaka-project/shaka-player/issues/1332 - Fixed parsing of multiple 'emsg' boxes - - https://github.com/google/shaka-player/issues/1340 + - https://github.com/shaka-project/shaka-player/issues/1340 Demo app: - Added an "unload" button to the demo app - Fixed enabling of TS assets in the demo app - - https://github.com/google/shaka-player/issues/1214 + - https://github.com/shaka-project/shaka-player/issues/1214 Docs: - Added a doc describing DASH manifests - - https://github.com/google/shaka-player/issues/1233 + - https://github.com/shaka-project/shaka-player/issues/1233 - Fixed documentation of CONTENT_UNSUPPORTED_BY_BROWSER error - - https://github.com/google/shaka-player/issues/1349 + - https://github.com/shaka-project/shaka-player/issues/1349 - Updated architecture diagrams - - https://github.com/google/shaka-player/issues/1197 + - https://github.com/shaka-project/shaka-player/issues/1197 ## 2.3.3 (2018-03-01) New features: - Warn if parsing the date from UTCTiming fails - - https://github.com/google/shaka-player/issues/1317 - - https://github.com/google/shaka-player/pull/1318 + - https://github.com/shaka-project/shaka-player/issues/1317 + - https://github.com/shaka-project/shaka-player/pull/1318 - Backpropagate language selections on track change - - https://github.com/google/shaka-player/issues/1299 + - https://github.com/shaka-project/shaka-player/issues/1299 Bugfixes: - Fix MP4+VTT in HLS - - https://github.com/google/shaka-player/issues/1270 + - https://github.com/shaka-project/shaka-player/issues/1270 - Fix track selection during "streaming" event - - https://github.com/google/shaka-player/issues/1119 + - https://github.com/shaka-project/shaka-player/issues/1119 - Work around MSE rounding errors in Edge - - https://github.com/google/shaka-player/issues/1281 + - https://github.com/shaka-project/shaka-player/issues/1281 - Edge bug: https://bit.ly/2ttKiBU - Fix IE stuck buffering at the end after replay - - https://github.com/google/shaka-player/issues/979 + - https://github.com/shaka-project/shaka-player/issues/979 - Fix catastrophic backtracking in TTML text parser - - https://github.com/google/shaka-player/issues/1312 + - https://github.com/shaka-project/shaka-player/issues/1312 - Fix infinite loop when jumping very small gaps - - https://github.com/google/shaka-player/issues/1309 + - https://github.com/shaka-project/shaka-player/issues/1309 - Fix seek range for live content with less than a full availability window - - https://github.com/google/shaka-player/issues/1224 + - https://github.com/shaka-project/shaka-player/issues/1224 - Remove misleading logging in DrmEngine#fillInDrmInfoDefaults - - https://github.com/google/shaka-player/pull/1288 - - https://github.com/google/shaka-player/issues/1284 + - https://github.com/shaka-project/shaka-player/pull/1288 + - https://github.com/shaka-project/shaka-player/issues/1284 - Fix old text cues displayed after loading new text stream - - https://github.com/google/shaka-player/issues/1293 + - https://github.com/shaka-project/shaka-player/issues/1293 - Fix truncated HLS duration with short text streams - - https://github.com/google/shaka-player/issues/1271 + - https://github.com/shaka-project/shaka-player/issues/1271 - Fix DASH SegmentTemplate w/ duration - - https://github.com/google/shaka-player/issues/1232 + - https://github.com/shaka-project/shaka-player/issues/1232 Docs: - Fix out-of-date docs for error 6014 EXPIRED - - https://github.com/google/shaka-player/issues/1319 + - https://github.com/shaka-project/shaka-player/issues/1319 - Simplify prerequisite installation on Linux - - https://github.com/google/shaka-player/issues/1175 + - https://github.com/shaka-project/shaka-player/issues/1175 - Simplify the debugging tutorial - Fix various typos - - https://github.com/google/shaka-player/pull/1272 - - https://github.com/google/shaka-player/pull/1274 + - https://github.com/shaka-project/shaka-player/pull/1272 + - https://github.com/shaka-project/shaka-player/pull/1274 ## 2.3.2 (2018-02-01) New features: - Add Storage.deleteAll() to clear storage when database upgrades fail - - https://github.com/google/shaka-player/issues/1230 - - https://github.com/google/shaka-player/issues/1248 + - https://github.com/shaka-project/shaka-player/issues/1230 + - https://github.com/shaka-project/shaka-player/issues/1248 - Make DASH default presentation delay configurable - - https://github.com/google/shaka-player/issues/1234 - - https://github.com/google/shaka-player/pull/1235 + - https://github.com/shaka-project/shaka-player/issues/1234 + - https://github.com/shaka-project/shaka-player/pull/1235 Bugfixes: - Fix stall during eviction with small bufferBehind values - - https://github.com/google/shaka-player/issues/1123 + - https://github.com/shaka-project/shaka-player/issues/1123 - Fix deletion of offline licenses for demo content - - https://github.com/google/shaka-player/issues/1229 + - https://github.com/shaka-project/shaka-player/issues/1229 - Fix compiler renaming in Player language APIs - - https://github.com/google/shaka-player/issues/1258 + - https://github.com/shaka-project/shaka-player/issues/1258 - Rename Timeline events to include the "Event" suffix - - https://github.com/google/shaka-player/pull/1267 + - https://github.com/shaka-project/shaka-player/pull/1267 Docs: - Fix incorrect year in the change log - - https://github.com/google/shaka-player/pull/1263 + - https://github.com/shaka-project/shaka-player/pull/1263 - Fix some bad annotations found while upgrading jsdoc - - https://github.com/google/shaka-player/issues/1259 + - https://github.com/shaka-project/shaka-player/issues/1259 ## 2.3.1 (2018-01-22) @@ -2521,27 +2712,27 @@ Docs: New features: - All features released in 2.2.10, plus... - DRM content is now implied by DRM config, fixes some ad insertion cases - - https://github.com/google/shaka-player/pull/1217 - - https://github.com/google/shaka-player/issues/1094 + - https://github.com/shaka-project/shaka-player/pull/1217 + - https://github.com/shaka-project/shaka-player/issues/1094 - Add support for mp4a.40.34 mp3 in HLS - - https://github.com/google/shaka-player/issues/1210 + - https://github.com/shaka-project/shaka-player/issues/1210 - Allow ES6 syntax - Replaced deprecated gjslint with eslint Bugfixes: - All fixes released in 2.2.10, plus... - Handle MPEGTS timestamp rollover issues, including WebVTT HLS - - https://github.com/google/shaka-player/issues/1191 + - https://github.com/shaka-project/shaka-player/issues/1191 - Fix MP4 timescale assumptions in HLS - - https://github.com/google/shaka-player/issues/1191 + - https://github.com/shaka-project/shaka-player/issues/1191 - Update muxjs to use new keepOriginalTimestamps option - - https://github.com/google/shaka-player/issues/1194 + - https://github.com/shaka-project/shaka-player/issues/1194 - Avoids line-length limits when building on Windows - - https://github.com/google/shaka-player/issues/1228 + - https://github.com/shaka-project/shaka-player/issues/1228 - Force JS files to use unix newlines on Windows - - https://github.com/google/shaka-player/issues/1228 + - https://github.com/shaka-project/shaka-player/issues/1228 - Fix selection of text streams with no role - - https://github.com/google/shaka-player/issues/1212 + - https://github.com/shaka-project/shaka-player/issues/1212 Docs: - All fixes released in 2.2.10, plus... @@ -2552,71 +2743,71 @@ Docs: New features: - Update Widevine HLS parsing support for SAMPLE-AES-CTR - - https://github.com/google/shaka-player/issues/1227 + - https://github.com/shaka-project/shaka-player/issues/1227 Bugfixes: - Fix display of duration in Chrome cast dialog - - https://github.com/google/shaka-player/issues/1174 + - https://github.com/shaka-project/shaka-player/issues/1174 - Compensate for rounding errors in multi-period manifests - Delay gap-jumping until after seeking is complete - - https://github.com/google/shaka-player/issues/1061 + - https://github.com/shaka-project/shaka-player/issues/1061 - Fix SegmentTemplate w/ duration for live - - https://github.com/google/shaka-player/issues/1204 + - https://github.com/shaka-project/shaka-player/issues/1204 Docs: - Add FAQ entry for file:// requests in Electron - - https://github.com/google/shaka-player/issues/1222 + - https://github.com/shaka-project/shaka-player/issues/1222 - Fixed typos and extraneous tags - Added missing @exportDoc annotations - - https://github.com/google/shaka-player/pull/1208 + - https://github.com/shaka-project/shaka-player/pull/1208 ## 2.3.0 (2017-12-22) New features: - Support for HLS live streams - - https://github.com/google/shaka-player/issues/740 + - https://github.com/shaka-project/shaka-player/issues/740 - Support for HLS VOD streams that do not start at t=0 - - https://github.com/google/shaka-player/issues/1011 + - https://github.com/shaka-project/shaka-player/issues/1011 - Previously supported through configuration, now automatic - MPEG-2 TS content can be transmuxed to MP4 for playback on all browsers - - https://github.com/google/shaka-player/issues/887 + - https://github.com/shaka-project/shaka-player/issues/887 - Requires apps to load https://github.com/videojs/mux.js/ - Do not stream captions until they are shown - - https://github.com/google/shaka-player/issues/1058 + - https://github.com/shaka-project/shaka-player/issues/1058 - Use NetworkInformation API to get initial bandwidth estimate - - https://github.com/google/shaka-player/issues/994 + - https://github.com/shaka-project/shaka-player/issues/994 - https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation - Added a method to list language/role combinations - - https://github.com/google/shaka-player/issues/967 + - https://github.com/shaka-project/shaka-player/issues/967 Demo app: - The demo app is now a Progressive Web App (PWA) and can be used offline - - https://github.com/google/shaka-player/issues/876 + - https://github.com/shaka-project/shaka-player/issues/876 - https://developers.google.com/web/progressive-web-apps/ - Lighthouse: improved page load latency, text contrast ratio, UI performance - - https://github.com/google/shaka-player/issues/905 + - https://github.com/shaka-project/shaka-player/issues/905 - https://developers.google.com/web/tools/lighthouse/ - Roles can now be selected in the demo app - - https://github.com/google/shaka-player/issues/967 + - https://github.com/shaka-project/shaka-player/issues/967 - Added quick links to change between compiled, debug, and uncompiled builds Bugfixes: - Fixed interpretation of EXT-X-START in HLS - - https://github.com/google/shaka-player/issues/1011 + - https://github.com/shaka-project/shaka-player/issues/1011 - Fixed URI extension parsing in HLS - - https://github.com/google/shaka-player/issues/1085 + - https://github.com/shaka-project/shaka-player/issues/1085 - Offline storage API can now download multiple items in parallel - - https://github.com/google/shaka-player/issues/1047 + - https://github.com/shaka-project/shaka-player/issues/1047 Docs: - FAQ, architecture diagrams, and tutorials have all been updated. - - https://github.com/google/shaka-player/issues/1183 + - https://github.com/shaka-project/shaka-player/issues/1183 Broken compatibility: - Text parser plugins now take a Uint8Array, not an ArrayBuffer. All application-specific text-parsing plugins MUST be updated. - - https://github.com/google/shaka-player/issues/1022 + - https://github.com/shaka-project/shaka-player/issues/1022 Deprecated: - The AbrManager configuration interfaces and plugin APIs which were @@ -2637,47 +2828,47 @@ Deprecated: Bugfixes: - Fix excessive memory usage during storage - - https://github.com/google/shaka-player/issues/1167 + - https://github.com/shaka-project/shaka-player/issues/1167 - Fix offline storage with temporary license - - https://github.com/google/shaka-player/issues/1159 + - https://github.com/shaka-project/shaka-player/issues/1159 - Fix exception while casting - - https://github.com/google/shaka-player/issues/1128 + - https://github.com/shaka-project/shaka-player/issues/1128 - Reduced bandwidth of cast messaging - - https://github.com/google/shaka-player/issues/1128 + - https://github.com/shaka-project/shaka-player/issues/1128 - Fix exception when destroying TextDisplayer - - https://github.com/google/shaka-player/issues/1187 + - https://github.com/shaka-project/shaka-player/issues/1187 - Fix presentationTimeOffset in SegmentTemplate - - https://github.com/google/shaka-player/issues/1164 + - https://github.com/shaka-project/shaka-player/issues/1164 - Fix inconsistencies in text visibility across playbacks - - https://github.com/google/shaka-player/issues/1185 + - https://github.com/shaka-project/shaka-player/issues/1185 - Work around bad header formatting in IE 11 - - https://github.com/google/shaka-player/issues/1172 + - https://github.com/shaka-project/shaka-player/issues/1172 - Fix Chromecast PlayReady playback - - https://github.com/google/shaka-player/issues/1070 + - https://github.com/shaka-project/shaka-player/issues/1070 - Fix subtitle display with VTTRegion enabled in Chrome - - https://github.com/google/shaka-player/issues/1188 + - https://github.com/shaka-project/shaka-player/issues/1188 ## 2.2.8 (2017-12-06) Bugfixes: - Do not allow seeking/startup at duration (bump back by 1s) - - https://github.com/google/shaka-player/issues/1014 + - https://github.com/shaka-project/shaka-player/issues/1014 - Don't wait for sessions to close on DrmEngine.destroy - - https://github.com/google/shaka-player/issues/1093 - - https://github.com/google/shaka-player/pull/1168 + - https://github.com/shaka-project/shaka-player/issues/1093 + - https://github.com/shaka-project/shaka-player/pull/1168 - Do not clear buffers on configuration changes unless required - - https://github.com/google/shaka-player/issues/1138 + - https://github.com/shaka-project/shaka-player/issues/1138 - Ignore unsupported STYLE blocks in WebVTT - - https://github.com/google/shaka-player/issues/1104 + - https://github.com/shaka-project/shaka-player/issues/1104 - Fix a null exception in CastReceiver.destroy Demo app: - Fix "ended" video control state on IE - - https://github.com/google/shaka-player/issues/979 + - https://github.com/shaka-project/shaka-player/issues/979 - Fix updates to demo app URL hash on Edge & IE 11 - - https://github.com/google/shaka-player/issues/1111 + - https://github.com/shaka-project/shaka-player/issues/1111 - Fix demo app page-load race on IE 11 @@ -2685,259 +2876,259 @@ Demo app: Bugfixes: - Allow playhead to recover from drift - - https://github.com/google/shaka-player/issues/1105 + - https://github.com/shaka-project/shaka-player/issues/1105 - Fix exception and race which prevented cast status updates - - https://github.com/google/shaka-player/issues/1128 + - https://github.com/shaka-project/shaka-player/issues/1128 - Fix live broadcast startup issues - - https://github.com/google/shaka-player/issues/1150 + - https://github.com/shaka-project/shaka-player/issues/1150 - Fix mis-detection of live streams as IPR - - https://github.com/google/shaka-player/issues/1148 + - https://github.com/shaka-project/shaka-player/issues/1148 - Fix buffering of live streams while paused - - https://github.com/google/shaka-player/issues/1121 + - https://github.com/shaka-project/shaka-player/issues/1121 Demo app: - Add multi-DRM assets from VDMS - - https://github.com/google/shaka-player/issues/780 - - https://github.com/google/shaka-player/pull/781 + - https://github.com/shaka-project/shaka-player/issues/780 + - https://github.com/shaka-project/shaka-player/pull/781 - Add certificate URI field in the custom asset section - - https://github.com/google/shaka-player/issues/1135 - - https://github.com/google/shaka-player/pull/1136 + - https://github.com/shaka-project/shaka-player/issues/1135 + - https://github.com/shaka-project/shaka-player/pull/1136 - Fix broken HLS asset - - https://github.com/google/shaka-player/issues/1137 + - https://github.com/shaka-project/shaka-player/issues/1137 - Update Widevine proxy URI Docs: - Refactor main README.md - Fix build/README.md typo - - https://github.com/google/shaka-player/pull/1139 + - https://github.com/shaka-project/shaka-player/pull/1139 - Fix typo in config tutorial - - https://github.com/google/shaka-player/pull/1124 + - https://github.com/shaka-project/shaka-player/pull/1124 ## 2.2.6 (2017-11-14) Bugfixes: - Cancel network retries when the Player is destroyed - - https://github.com/google/shaka-player/issues/1084 + - https://github.com/shaka-project/shaka-player/issues/1084 - Do not overwrite media from an earlier period when new period is shifted - - https://github.com/google/shaka-player/issues/1098 + - https://github.com/shaka-project/shaka-player/issues/1098 - Do not assume same timescale in manifest and media - - https://github.com/google/shaka-player/issues/1098 + - https://github.com/shaka-project/shaka-player/issues/1098 - Do not fail assertions when media references are shifted outside the period - - https://github.com/google/shaka-player/issues/1098 + - https://github.com/shaka-project/shaka-player/issues/1098 - Fix custom builds which exclude text parsing plugins - - https://github.com/google/shaka-player/issues/1115 + - https://github.com/shaka-project/shaka-player/issues/1115 Demo app: - Rename demo "Autoplay" in demo UI to "Auto-load on page refresh" - - https://github.com/google/shaka-player/issues/1114 + - https://github.com/shaka-project/shaka-player/issues/1114 ## 2.2.5 (2017-11-02) New features: - Add streaming event to allow reconfiguration before streaming starts - - https://github.com/google/shaka-player/issues/1043 + - https://github.com/shaka-project/shaka-player/issues/1043 - Add method to get the parsed manifest structure - - https://github.com/google/shaka-player/issues/1074 + - https://github.com/shaka-project/shaka-player/issues/1074 - Log about deprecated APIs, even in a compiled build with other logs disabled Bugfixes: - Fix interpretation of DASH presentationTimeOffset in SegmentBase - - https://github.com/google/shaka-player/issues/1099 + - https://github.com/shaka-project/shaka-player/issues/1099 ## 2.1.9 (2017-11-02) Bugfixes: - Fix interpretation of DASH presentationTimeOffset in SegmentBase - - https://github.com/google/shaka-player/issues/1099 + - https://github.com/shaka-project/shaka-player/issues/1099 ## 2.2.4 (2017-10-23) Bugfixes: - Don't enforce seek range while paused in live streams (stays paused) - - https://github.com/google/shaka-player/issues/982 + - https://github.com/shaka-project/shaka-player/issues/982 - Fix start time in live streams - - https://github.com/google/shaka-player/issues/1069 + - https://github.com/shaka-project/shaka-player/issues/1069 - Fix handling & transmission of errors from cast receiver to sender - - https://github.com/google/shaka-player/issues/1065 + - https://github.com/shaka-project/shaka-player/issues/1065 Docs: - Added a tutorial for the offline storage and playback APIs - - https://github.com/google/shaka-player/issues/1037 + - https://github.com/shaka-project/shaka-player/issues/1037 ## 2.2.3 (2017-10-17) New features: - Publish an event when the CDM accepts a license - - https://github.com/google/shaka-player/issues/1035 - - https://github.com/google/shaka-player/pull/1049 + - https://github.com/shaka-project/shaka-player/issues/1035 + - https://github.com/shaka-project/shaka-player/pull/1049 - Added assertions and logging to the debug build - Added a debugging method on Player to get buffered ranges Bugfixes: - Fixed race between gap-jumping and seeking - - https://github.com/google/shaka-player/issues/1061 + - https://github.com/shaka-project/shaka-player/issues/1061 - Fixed startTime == 0 in player.load() - - https://github.com/google/shaka-player/issues/1069 + - https://github.com/shaka-project/shaka-player/issues/1069 - Avoid clearing buffer on configure unless restrictions change - - https://github.com/google/shaka-player/issues/1009 + - https://github.com/shaka-project/shaka-player/issues/1009 - Fixed exceptions in the cast receiver demo - - https://github.com/google/shaka-player/issues/1064 + - https://github.com/shaka-project/shaka-player/issues/1064 - Various fixes for concurrent use of CastProxy and related APIs - - https://github.com/google/shaka-player/issues/768 + - https://github.com/shaka-project/shaka-player/issues/768 - Polyfilled various MediaSource issues on Safari 11 - - https://github.com/google/shaka-player/issues/1048 + - https://github.com/shaka-project/shaka-player/issues/1048 - Reject TS content on Safari due to MediaSource bugs - - https://github.com/google/shaka-player/issues/743 + - https://github.com/shaka-project/shaka-player/issues/743 - Fixed stuck progress bar on cast receiver demo - - https://github.com/google/shaka-player/issues/1064 + - https://github.com/shaka-project/shaka-player/issues/1064 Demo app: - Rotating mobile devices triggers fullscreen mode - - https://github.com/google/shaka-player/issues/883 + - https://github.com/shaka-project/shaka-player/issues/883 - Added robustness suggestions for Widevine - - https://github.com/google/shaka-player/pull/1008 + - https://github.com/shaka-project/shaka-player/pull/1008 Docs: - Fixed docs with regard to shaka.text namespace - - https://github.com/google/shaka-player/issues/1046 + - https://github.com/shaka-project/shaka-player/issues/1046 ## 2.2.2 (2017-09-27) New features: - Support for MP4+TTML text streams with multiple MDAT boxes - - https://github.com/google/shaka-player/issues/1028 + - https://github.com/shaka-project/shaka-player/issues/1028 Bugfixes: - Fixed playback hangs in certain content due to rounding error - - https://github.com/google/shaka-player/issues/979 + - https://github.com/shaka-project/shaka-player/issues/979 - Fixed exception when TextTrack mode is set to "disabled" - - https://github.com/google/shaka-player/issues/990 + - https://github.com/shaka-project/shaka-player/issues/990 - Fixed subtitle failures in Safari - - https://github.com/google/shaka-player/issues/991 - - https://github.com/google/shaka-player/issues/1012 + - https://github.com/shaka-project/shaka-player/issues/991 + - https://github.com/shaka-project/shaka-player/issues/1012 - Fixed renaming issues in compiled builds - Fixed exceptions on Tizen 2016 - - https://github.com/google/shaka-player/issues/1022 - - https://github.com/google/shaka-player/issues/935 + - https://github.com/shaka-project/shaka-player/issues/1022 + - https://github.com/shaka-project/shaka-player/issues/935 - Fixed TTML region parsing - - https://github.com/google/shaka-player/issues/1020 + - https://github.com/shaka-project/shaka-player/issues/1020 Demo app: - Auto-select offline copy of an asset after storing it offline - - https://github.com/google/shaka-player/issues/996 - - https://github.com/google/shaka-player/pull/1001 + - https://github.com/shaka-project/shaka-player/issues/996 + - https://github.com/shaka-project/shaka-player/pull/1001 - Removed YouTube-sourced assets, which were very outdated - - https://github.com/google/shaka-player/issues/1015 + - https://github.com/shaka-project/shaka-player/issues/1015 - Added "Shaka Player History" live stream Docs: - Added CORS explanation to the docs - - https://github.com/google/shaka-player/issues/1018 + - https://github.com/shaka-project/shaka-player/issues/1018 ## 2.2.1 (2017-09-01) New features: - Support MP4+TTML in HLS - - https://github.com/google/shaka-player/issues/986 + - https://github.com/shaka-project/shaka-player/issues/986 Bugfixes: - Fixed display of old text cues after loading new content - - https://github.com/google/shaka-player/issues/984 + - https://github.com/shaka-project/shaka-player/issues/984 - Fixed text cue alignment in compiled mode - - https://github.com/google/shaka-player/issues/987 + - https://github.com/shaka-project/shaka-player/issues/987 - Fixed exception triggered when storing offline content - - https://github.com/google/shaka-player/issues/988 + - https://github.com/shaka-project/shaka-player/issues/988 - Fixed cast state when multiple cast senders exist at once - - https://github.com/google/shaka-player/issues/768 + - https://github.com/shaka-project/shaka-player/issues/768 - Fixed several Cast UI issues - Fixed (harmless) assertion failures on Cast receivers Demo app: - Demo UI on mobile now shows help text on store/delete button - - https://github.com/google/shaka-player/pull/995 + - https://github.com/shaka-project/shaka-player/pull/995 Docs: - Document lack of IE support on Windows 7 - - https://github.com/google/shaka-player/pull/993 + - https://github.com/shaka-project/shaka-player/pull/993 ## 2.2.0 (2017-08-23) New features: - Add support for EVENT type playlists in HLS - - https://github.com/google/shaka-player/issues/740 + - https://github.com/shaka-project/shaka-player/issues/740 - Add new option for offline protected content without persistent licensing - - https://github.com/google/shaka-player/issues/873 + - https://github.com/shaka-project/shaka-player/issues/873 - Allow applications to render their own text tracks - - https://github.com/google/shaka-player/issues/796 + - https://github.com/shaka-project/shaka-player/issues/796 - Allow applications to control streaming retry behavior - - https://github.com/google/shaka-player/issues/960 + - https://github.com/shaka-project/shaka-player/issues/960 - Add support for additional TTML styles - - https://github.com/google/shaka-player/issues/923 - - https://github.com/google/shaka-player/issues/927 + - https://github.com/shaka-project/shaka-player/issues/923 + - https://github.com/shaka-project/shaka-player/issues/927 - Add channel count information for both DASH & HLS - - https://github.com/google/shaka-player/issues/424 - - https://github.com/google/shaka-player/issues/826 + - https://github.com/shaka-project/shaka-player/issues/424 + - https://github.com/shaka-project/shaka-player/issues/826 - Add basic xlink support in DASH (actuate=onLoad only) - - https://github.com/google/shaka-player/issues/587 - - https://github.com/google/shaka-player/issues/788 + - https://github.com/shaka-project/shaka-player/issues/587 + - https://github.com/shaka-project/shaka-player/issues/788 - Add API to limit playable/seekable range for VOD content. - - https://github.com/google/shaka-player/issues/246 + - https://github.com/shaka-project/shaka-player/issues/246 - Add new error code for container/codec support issues - - https://github.com/google/shaka-player/issues/868 + - https://github.com/shaka-project/shaka-player/issues/868 - The default ABR manager is much more configurable - - https://github.com/google/shaka-player/issues/744 + - https://github.com/shaka-project/shaka-player/issues/744 - Add stream bandwidth info to variant tracks - - https://github.com/google/shaka-player/issues/834 + - https://github.com/shaka-project/shaka-player/issues/834 - Add player.isAudioOnly() - - https://github.com/google/shaka-player/issues/942 + - https://github.com/shaka-project/shaka-player/issues/942 - Expose presentation start time through player - - https://github.com/google/shaka-player/issues/957 + - https://github.com/shaka-project/shaka-player/issues/957 - Add bandwidth info to switch history - Improved Chromecast media queries - Stricter runtime type-checking of EME cert configuration - - https://github.com/google/shaka-player/issues/784 + - https://github.com/shaka-project/shaka-player/issues/784 Bugfixes: - Fix flakiness in offline-related tests - - https://github.com/google/shaka-player/issues/903 + - https://github.com/shaka-project/shaka-player/issues/903 Demo app: - Added robustness fields to the UI - - https://github.com/google/shaka-player/issues/889 + - https://github.com/shaka-project/shaka-player/issues/889 Docs: - Updated upgrade guide for v2.2 - - https://github.com/google/shaka-player/issues/930 + - https://github.com/shaka-project/shaka-player/issues/930 Broken compatibility: - The text-parsing plugin API has changed. Plugins now return shaka.text.Cue objects instead of VTTCue or TextTrackCue objects. All application-specific text-parsing plugins MUST be updated. - - https://github.com/google/shaka-player/issues/796 + - https://github.com/shaka-project/shaka-player/issues/796 Deprecated: - The configuration for a custom ABR manager has changed. Applications with custom AbrManager implementations SHOULD now configure abrFactory instead of abr.manager. - - https://github.com/google/shaka-player/issues/744 + - https://github.com/shaka-project/shaka-player/issues/744 - The old interface will be removed in v2.3. - The config API for AbrManager has changed. setDefaultEstimate() and setRestrictions() have been replaced with configure(). Applications with custom AbrManager implementations SHOULD implement the new configure() method. - - https://github.com/google/shaka-player/issues/744 + - https://github.com/shaka-project/shaka-player/issues/744 - The old interface will be removed in v2.3. - The choice API for AbrManager has changed. chooseStreams() has been replaced with chooseVariants(), and the switch callback now takes a variant. - - https://github.com/google/shaka-player/issues/954 + - https://github.com/shaka-project/shaka-player/issues/954 - The old interface will be removed in v2.3. - The getTracks() and selectTrack() methods which were deprecated in v2.1 have now been removed. @@ -2947,7 +3138,7 @@ Deprecated: Bugfixes: - Add player.isAudioOnly() to fix flash of audio-only icon when casting - - https://github.com/google/shaka-player/issues/969 + - https://github.com/shaka-project/shaka-player/issues/969 - Fix cast proxying of isAudioOnly and getMediaElement @@ -2956,53 +3147,53 @@ Bugfixes: Bugfixes: - Fixed "Invalid argument" exceptions for subtitles in IE & Edge - Fixed buffering at the end of the stream for some content in IE & Edge - - https://github.com/google/shaka-player/issues/913 + - https://github.com/shaka-project/shaka-player/issues/913 - Fixed seeking with native controls in Edge - - https://github.com/google/shaka-player/issues/951 + - https://github.com/shaka-project/shaka-player/issues/951 - Fixed role selection to clear audio buffer right away - - https://github.com/google/shaka-player/issues/948 + - https://github.com/shaka-project/shaka-player/issues/948 Docs: - Fixed a bug in the upgrade guide for selecting tracks and disabling ABR - - https://github.com/google/shaka-player/issues/962 + - https://github.com/shaka-project/shaka-player/issues/962 ## 2.1.6 (2017-08-09) New features: - Add vp9, opus, and flac mp4 to probeSupport - - https://github.com/google/shaka-player/issues/944 + - https://github.com/shaka-project/shaka-player/issues/944 Bugfixes: - Never adapt across roles or languages - - https://github.com/google/shaka-player/issues/918 - - https://github.com/google/shaka-player/issues/947 + - https://github.com/shaka-project/shaka-player/issues/918 + - https://github.com/shaka-project/shaka-player/issues/947 - Fix parsing byterange attribute in HlsParser - - https://github.com/google/shaka-player/issues/925 + - https://github.com/shaka-project/shaka-player/issues/925 - Fix incorrect segment position after update in some DASH live streams - - https://github.com/google/shaka-player/pull/838 + - https://github.com/shaka-project/shaka-player/pull/838 - Fix support for live streams with no seek range - - https://github.com/google/shaka-player/issues/916 + - https://github.com/shaka-project/shaka-player/issues/916 - Fix display order of cues with identical ranges - - https://github.com/google/shaka-player/issues/848 + - https://github.com/shaka-project/shaka-player/issues/848 - Fix missing cues in WVTT MP4s using default sample duration - - https://github.com/google/shaka-player/issues/919 + - https://github.com/shaka-project/shaka-player/issues/919 - Accept non-integer settings in VTT - - https://github.com/google/shaka-player/issues/919 + - https://github.com/shaka-project/shaka-player/issues/919 - Tolerate bandwidth of 0 or missing bandwidth - - https://github.com/google/shaka-player/issues/938 - - https://github.com/google/shaka-player/issues/940 + - https://github.com/shaka-project/shaka-player/issues/938 + - https://github.com/shaka-project/shaka-player/issues/940 - Fix multiple pipeline flushes on some platforms - Make it safe to install polyfills twice - - https://github.com/google/shaka-player/issues/941 + - https://github.com/shaka-project/shaka-player/issues/941 Demo app: - Fix compiled mode in the demo app. Does not affect the library. Removed defaultConfig_ reference in demo. - - https://github.com/google/shaka-player/issues/929 + - https://github.com/shaka-project/shaka-player/issues/929 - Update license URI for PlayReady test asset - - https://github.com/google/shaka-player/pull/953 - - https://github.com/google/shaka-player/issues/945 + - https://github.com/shaka-project/shaka-player/pull/953 + - https://github.com/shaka-project/shaka-player/issues/945 ## 2.1.5 (2017-07-17) @@ -3012,44 +3203,44 @@ New features: Bugfixes: - Fix key status problems on IE11 and Tizen TVs - - https://github.com/google/shaka-player/issues/884 - - https://github.com/google/shaka-player/issues/890 + - https://github.com/shaka-project/shaka-player/issues/884 + - https://github.com/shaka-project/shaka-player/issues/890 - Fix period switching when streams are not yet available - - https://github.com/google/shaka-player/issues/839 + - https://github.com/shaka-project/shaka-player/issues/839 - Filter out audio-only HLS variants that can't be switched to - - https://github.com/google/shaka-player/issues/824 - - https://github.com/google/shaka-player/issues/861 + - https://github.com/shaka-project/shaka-player/issues/824 + - https://github.com/shaka-project/shaka-player/issues/861 - Fix parsing of Microsoft-packaged HLS content - Fix rounding issues with multi-Period content - - https://github.com/google/shaka-player/issues/882 - - https://github.com/google/shaka-player/issues/909 - - https://github.com/google/shaka-player/issues/911 + - https://github.com/shaka-project/shaka-player/issues/882 + - https://github.com/shaka-project/shaka-player/issues/909 + - https://github.com/shaka-project/shaka-player/issues/911 - Fix exceptions thrown in some cases when switching text tracks - - https://github.com/google/shaka-player/issues/910 + - https://github.com/shaka-project/shaka-player/issues/910 - Fix DASH date parsing when timezone is missing - - https://github.com/google/shaka-player/issues/901 + - https://github.com/shaka-project/shaka-player/issues/901 - Fix persistent storage detection on IE11 and Tizen TVs - Fix test issues on Tizen - - https://github.com/google/shaka-player/issues/893 + - https://github.com/shaka-project/shaka-player/issues/893 - Fix version detection when compiling from the NPM package - - https://github.com/google/shaka-player/issues/871 + - https://github.com/shaka-project/shaka-player/issues/871 - Work around lack of key statuses on Tizen - - https://github.com/google/shaka-player/issues/891 - - https://github.com/google/shaka-player/issues/894 + - https://github.com/shaka-project/shaka-player/issues/891 + - https://github.com/shaka-project/shaka-player/issues/894 Demo app: - Fix missing fullscreen button on IE11 - - https://github.com/google/shaka-player/issues/787 + - https://github.com/shaka-project/shaka-player/issues/787 - Added configuration for gap jumping Docs: - Document HTTPS requirement for EME - - https://github.com/google/shaka-player/issues/867 - - https://github.com/google/shaka-player/issues/928 + - https://github.com/shaka-project/shaka-player/issues/867 + - https://github.com/shaka-project/shaka-player/issues/928 - Update tutorials - - https://github.com/google/shaka-player/issues/862 + - https://github.com/shaka-project/shaka-player/issues/862 - Add FAQ entry on EME robustness - - https://github.com/google/shaka-player/issues/866 + - https://github.com/shaka-project/shaka-player/issues/866 - Update HLS FAQ - Document that we test on Tizen TV now @@ -3058,67 +3249,67 @@ Docs: New features: - Allow role to be specified in selectAudioLanguage and selectTextLanguage - - https://github.com/google/shaka-player/issues/767 + - https://github.com/shaka-project/shaka-player/issues/767 Bugfixes: - Fix changing languages close to a period boundary - - https://github.com/google/shaka-player/issues/797 + - https://github.com/shaka-project/shaka-player/issues/797 - Fix hang in load() when there are pending failures - - https://github.com/google/shaka-player/issues/782 + - https://github.com/shaka-project/shaka-player/issues/782 - Fix DASH parser ignoring certain text streams - - https://github.com/google/shaka-player/issues/875 + - https://github.com/shaka-project/shaka-player/issues/875 - Fix exceptions when side-loading text tracks - - https://github.com/google/shaka-player/issues/821 + - https://github.com/shaka-project/shaka-player/issues/821 - Fix PlayReady support on Chromecast - - https://github.com/google/shaka-player/issues/852 + - https://github.com/shaka-project/shaka-player/issues/852 - Fix version number issues during publication on NPM - - https://github.com/google/shaka-player/issues/869 + - https://github.com/shaka-project/shaka-player/issues/869 - Fix pollution from npm on Windows - - https://github.com/google/shaka-player/issues/776 + - https://github.com/shaka-project/shaka-player/issues/776 - Fix support for npm v5 - - https://github.com/google/shaka-player/issues/854 + - https://github.com/shaka-project/shaka-player/issues/854 Demo app: - Fix control visibility in fullscreen mode on mobile phones - - https://github.com/google/shaka-player/issues/663 + - https://github.com/shaka-project/shaka-player/issues/663 Docs: - Updated welcome docs - Updated list of supported platforms - - https://github.com/google/shaka-player/issues/863 + - https://github.com/shaka-project/shaka-player/issues/863 - Updated FAQ - - https://github.com/google/shaka-player/issues/864 - - https://github.com/google/shaka-player/issues/865 + - https://github.com/shaka-project/shaka-player/issues/864 + - https://github.com/shaka-project/shaka-player/issues/865 ## 2.1.3 (2017-06-06) New features: - Limit network retries for VOD, only retry forever on live - - https://github.com/google/shaka-player/issues/762 - - https://github.com/google/shaka-player/issues/830 - - https://github.com/google/shaka-player/pull/842 + - https://github.com/shaka-project/shaka-player/issues/762 + - https://github.com/shaka-project/shaka-player/issues/830 + - https://github.com/shaka-project/shaka-player/pull/842 - Add stream IDs in getStats().switchHistory - - https://github.com/google/shaka-player/issues/785 - - https://github.com/google/shaka-player/issues/823 - - https://github.com/google/shaka-player/pull/846 + - https://github.com/shaka-project/shaka-player/issues/785 + - https://github.com/shaka-project/shaka-player/issues/823 + - https://github.com/shaka-project/shaka-player/pull/846 - Add label attribute to tracks - - https://github.com/google/shaka-player/issues/825 - - https://github.com/google/shaka-player/pull/811 - - https://github.com/google/shaka-player/pull/831 + - https://github.com/shaka-project/shaka-player/issues/825 + - https://github.com/shaka-project/shaka-player/pull/811 + - https://github.com/shaka-project/shaka-player/pull/831 - Expose role attributes on tracks - - https://github.com/google/shaka-player/issues/767 + - https://github.com/shaka-project/shaka-player/issues/767 - Silence confusing browser-generated errors related to play() - - https://github.com/google/shaka-player/issues/836 + - https://github.com/shaka-project/shaka-player/issues/836 Bugfixes: - Fix offline storage in compiled mode - Choose lowest-bandwidth codecs when multiple are possible - - https://github.com/google/shaka-player/issues/841 + - https://github.com/shaka-project/shaka-player/issues/841 - Fix PlayReady on IE and Edge - - https://github.com/google/shaka-player/issues/837 + - https://github.com/shaka-project/shaka-player/issues/837 - Fix rounding errors on IE11 - - https://github.com/google/shaka-player/pull/832 + - https://github.com/shaka-project/shaka-player/pull/832 - Clean up demo app loader - Fix PlayReady test failures @@ -3127,23 +3318,23 @@ Bugfixes: New features: - Make educated guesses about missing HLS info (CODECS no longer required) - - https://github.com/google/shaka-player/issues/805 + - https://github.com/shaka-project/shaka-player/issues/805 - Add support for PlayReady on Chromecast and Tizen - - https://github.com/google/shaka-player/issues/814 - - https://github.com/google/shaka-player/pull/815 + - https://github.com/shaka-project/shaka-player/issues/814 + - https://github.com/shaka-project/shaka-player/pull/815 Bugfixes: - Fix flakiness in RESTRICTIONS\_CANNOT\_BE\_MET errors - Make isBrowserSupported more strict about MediaSource - Fix detection of audio-only assets in the demo - - https://github.com/google/shaka-player/issues/794 + - https://github.com/shaka-project/shaka-player/issues/794 - Fix exports and generated externs that were broken in v2.1.0 and v2.1.1 - Speed up deletion of offline content - - https://github.com/google/shaka-player/issues/756 + - https://github.com/shaka-project/shaka-player/issues/756 Docs: - Fix docs on subtitles and captions - - https://github.com/google/shaka-player/issues/808 + - https://github.com/shaka-project/shaka-player/issues/808 - Add notes on adaptation to upgrade guide @@ -3151,37 +3342,37 @@ Docs: Backported bugfixes from v2.1.x: - Fix offline download stalls on Android - - https://github.com/google/shaka-player/issues/747 + - https://github.com/shaka-project/shaka-player/issues/747 - Fix track restriction based on key status - - https://github.com/google/shaka-player/issues/761 + - https://github.com/shaka-project/shaka-player/issues/761 - Fix exception in fullscreen polyfill on IE 11 - - https://github.com/google/shaka-player/pull/777 + - https://github.com/shaka-project/shaka-player/pull/777 - Fix exception when reconfiguring serverCertificate - - https://github.com/google/shaka-player/issues/784 + - https://github.com/shaka-project/shaka-player/issues/784 ## 2.1.1 (2017-05-10) New features: - Separate audio and video codec in Track - - https://github.com/google/shaka-player/issues/758 + - https://github.com/shaka-project/shaka-player/issues/758 - Make segment request to establish HLS media MIME type - - https://github.com/google/shaka-player/issues/769 + - https://github.com/shaka-project/shaka-player/issues/769 Bugfixes: - Fix exception in fullscreen polyfill on IE 11 - - https://github.com/google/shaka-player/pull/777 + - https://github.com/shaka-project/shaka-player/pull/777 - Fix exception when reconfiguring serverCertificate - - https://github.com/google/shaka-player/issues/784 + - https://github.com/shaka-project/shaka-player/issues/784 - Don't fire 'trackschanged' event twice - - https://github.com/google/shaka-player/issues/783 + - https://github.com/shaka-project/shaka-player/issues/783 - Fix track restriction based on key status - - https://github.com/google/shaka-player/issues/761 + - https://github.com/shaka-project/shaka-player/issues/761 - Fix offline download stalls on Android - - https://github.com/google/shaka-player/issues/747 + - https://github.com/shaka-project/shaka-player/issues/747 - Fix race condition in gap-jumping code - Fix poster visibility in fullscreen mode - - https://github.com/google/shaka-player/issues/778 + - https://github.com/shaka-project/shaka-player/issues/778 ## 2.1.0 (2017-04-25) @@ -3191,80 +3382,80 @@ New features: - VOD only - Widevine & clear content only - No support for CEA-708 - - https://github.com/google/shaka-player/issues/279 + - https://github.com/shaka-project/shaka-player/issues/279 - Tolerate gaps in the presentation timeline and jump over them - - https://github.com/google/shaka-player/issues/555 + - https://github.com/shaka-project/shaka-player/issues/555 - Add an indicator for critical errors - - https://github.com/google/shaka-player/issues/564 + - https://github.com/shaka-project/shaka-player/issues/564 - Do not retry on HTTP 401/403 errors - - https://github.com/google/shaka-player/issues/620 + - https://github.com/shaka-project/shaka-player/issues/620 - Expand player stats and track metadata - Add loadLatency stat - Add mimeType to tracks - Track state changes (buffering, playing, paused, ended) - DASH trick mode support - - https://github.com/google/shaka-player/issues/538 + - https://github.com/shaka-project/shaka-player/issues/538 - Expose license expiration times through Player - - https://github.com/google/shaka-player/issues/727 + - https://github.com/shaka-project/shaka-player/issues/727 - Add support for EventStream elements in DASH - - https://github.com/google/shaka-player/issues/462 + - https://github.com/shaka-project/shaka-player/issues/462 - Add support for Chromecast Media Playback messages from generic senders - - https://github.com/google/shaka-player/issues/722 + - https://github.com/shaka-project/shaka-player/issues/722 - Add config to ignore key system and init data in DASH manifest - - https://github.com/google/shaka-player/issues/750 + - https://github.com/shaka-project/shaka-player/issues/750 - Add support for asynchronous response filters - - https://github.com/google/shaka-player/issues/610 + - https://github.com/shaka-project/shaka-player/issues/610 - Filter duplicate initData from manifest by key ID - - https://github.com/google/shaka-player/issues/580 + - https://github.com/shaka-project/shaka-player/issues/580 - Optionally adjust start time to segment boundary - - https://github.com/google/shaka-player/issues/683 + - https://github.com/shaka-project/shaka-player/issues/683 - StringUtils and Uint8ArrayUtils are now exported, to make filters easier - - https://github.com/google/shaka-player/issues/667 + - https://github.com/shaka-project/shaka-player/issues/667 - Add audio adaptation to default AbrManager - Add an API to force the Chromecast to disconnect - - https://github.com/google/shaka-player/issues/523 + - https://github.com/shaka-project/shaka-player/issues/523 - Add possibility to delay license request until playback is started - - https://github.com/google/shaka-player/issues/262 + - https://github.com/shaka-project/shaka-player/issues/262 - Add API to get live stream position as Date - - https://github.com/google/shaka-player/issues/356 + - https://github.com/shaka-project/shaka-player/issues/356 - Don't clear buffer if switching to the same stream - - https://github.com/google/shaka-player/issues/693 + - https://github.com/shaka-project/shaka-player/issues/693 - Demo app permalink support through URL hash parameters - - https://github.com/google/shaka-player/issues/709 + - https://github.com/shaka-project/shaka-player/issues/709 - Add a flag so scheme plugins can ask us to ignore cache hits for ABR - Allow passing durations from scheme plugins to compute throughput - - https://github.com/google/shaka-player/issues/621 + - https://github.com/shaka-project/shaka-player/issues/621 - Make ES6 imports easier - - https://github.com/google/shaka-player/issues/466 + - https://github.com/shaka-project/shaka-player/issues/466 - Add separate restrictions to AbrManager - - https://github.com/google/shaka-player/issues/565 + - https://github.com/shaka-project/shaka-player/issues/565 - Allow network plugins to see the request type - - https://github.com/google/shaka-player/issues/602 + - https://github.com/shaka-project/shaka-player/issues/602 Bugfixes: - Make language selection explicit - - https://github.com/google/shaka-player/issues/412 + - https://github.com/shaka-project/shaka-player/issues/412 - Make text track visibility explicit - - https://github.com/google/shaka-player/issues/626 + - https://github.com/shaka-project/shaka-player/issues/626 - Fix firing of 'trackschanged' event for multi-Period content - - https://github.com/google/shaka-player/issues/680 + - https://github.com/shaka-project/shaka-player/issues/680 - Correct time parsing for MP4 VTT subtitles - - https://github.com/google/shaka-player/issues/699 + - https://github.com/shaka-project/shaka-player/issues/699 - Fix playback of live when segments do not extend to the end of the Period - - https://github.com/google/shaka-player/issues/694 + - https://github.com/shaka-project/shaka-player/issues/694 - Allow seeking to 0 in live streams - - https://github.com/google/shaka-player/issues/692 + - https://github.com/shaka-project/shaka-player/issues/692 - Add explicit timestamps to 'emsg' events - - https://github.com/google/shaka-player/issues/698 + - https://github.com/shaka-project/shaka-player/issues/698 - Fix playback of YouTube demo assets - - https://github.com/google/shaka-player/issues/682 + - https://github.com/shaka-project/shaka-player/issues/682 - Allow text parsers to change during playback - - https://github.com/google/shaka-player/issues/571 + - https://github.com/shaka-project/shaka-player/issues/571 Docs: - Add offline storage to v2 upgrade guide - Add additional docs for AbrManager - - https://github.com/google/shaka-player/issues/629 + - https://github.com/shaka-project/shaka-player/issues/629 - Add manifest parser plugin tutorial Broken Compatibility: @@ -3272,7 +3463,7 @@ Broken Compatibility: - Any application looking at track.type will need to be updated. - Removed useRelativeCueTimestamps option - All segmented WebVTT cue timestamps are now segment-relative - - https://github.com/google/shaka-player/issues/726 + - https://github.com/shaka-project/shaka-player/issues/726 - Plugin interface for text parsers has changed - Both old & new interfaces still supported - Support for old interface will be removed in v2.2 @@ -3288,7 +3479,7 @@ Broken Compatibility: Bugfixes: - Suppress controls UI updates when hidden - - https://github.com/google/shaka-player/issues/749 + - https://github.com/shaka-project/shaka-player/issues/749 - Revert keyboard navigation changes in demo, failing on Firefox @@ -3298,20 +3489,20 @@ New Features: - Improved keyboard navigation in demo page for accessibility - Play through small gaps at the start of the timeline - Add a method for accessing the HTMLMediaElement from the Player - - https://github.com/google/shaka-player/pull/723 + - https://github.com/shaka-project/shaka-player/pull/723 - Improved error reporting for HTTP errors Bugfixes: - Fixed a DASH compliance bug in SegmentList w/ presentationTimeOffset - Fixed compiler renaming in emsg events. - - https://github.com/google/shaka-player/issues/717 + - https://github.com/shaka-project/shaka-player/issues/717 - Fix period transitions where text streams may be absent - - https://github.com/google/shaka-player/issues/715 + - https://github.com/shaka-project/shaka-player/issues/715 - Fix Firefox DRM detection - Fix cleanup of expired EME sessions for offline - Fix demo app error thrown when offline is not supported - Fix infinite loop in offline storage of SegmentTemplate-based DASH - - https://github.com/google/shaka-player/issues/739 + - https://github.com/shaka-project/shaka-player/issues/739 - Fix contamination between tests @@ -3319,33 +3510,33 @@ Bugfixes: New Features: - Add Media Session info to demo - - https://github.com/google/shaka-player/pull/689 + - https://github.com/shaka-project/shaka-player/pull/689 - Add support for xml:space in TTML parser - - https://github.com/google/shaka-player/issues/665 + - https://github.com/shaka-project/shaka-player/issues/665 - Add fullscreenEnabled property to fullscreen polyfill - - https://github.com/google/shaka-player/issues/669 + - https://github.com/shaka-project/shaka-player/issues/669 - Allow InbandEventStream elements at Representation level - - https://github.com/google/shaka-player/pull/687 - - https://github.com/google/shaka-player/issues/686 + - https://github.com/shaka-project/shaka-player/pull/687 + - https://github.com/shaka-project/shaka-player/issues/686 - Warning for unsupported indexRange attribute - Warning for duplicate Representation IDs Bugfixes: - Fix cast support broken since 2.0.3 - - https://github.com/google/shaka-player/issues/675 + - https://github.com/shaka-project/shaka-player/issues/675 - Fix timeout errors in cast demo - - https://github.com/google/shaka-player/issues/684 + - https://github.com/shaka-project/shaka-player/issues/684 - Fix infinite buffering caused by a race - - https://github.com/google/shaka-player/issues/600 + - https://github.com/shaka-project/shaka-player/issues/600 - Fix race in StreamingEngine for multi-Period content - - https://github.com/google/shaka-player/issues/655 + - https://github.com/shaka-project/shaka-player/issues/655 - Hide the controls when going fullscreen on phones - - https://github.com/google/shaka-player/issues/663 + - https://github.com/shaka-project/shaka-player/issues/663 - Improve calculation of $TIME$ in SegmentTemplate - - https://github.com/google/shaka-player/issues/690 - - https://github.com/google/shaka-player/pull/706 + - https://github.com/shaka-project/shaka-player/issues/690 + - https://github.com/shaka-project/shaka-player/pull/706 - Fix YouTube asset on demo app - - https://github.com/google/shaka-player/issues/682 + - https://github.com/shaka-project/shaka-player/issues/682 ## 2.0.5 (2017-01-30) @@ -3355,12 +3546,12 @@ Bugfixes: - Possible hang when seeking - Fix race between buffering and Period transition - Fix race between rapid Period transitions - - https://github.com/google/shaka-player/issues/655 + - https://github.com/shaka-project/shaka-player/issues/655 - Fix hang in destroy() when EME sessions are in a bad state - - https://github.com/google/shaka-player/issues/664 + - https://github.com/shaka-project/shaka-player/issues/664 - Fix doubling of time offset for segment-relative cues - - https://github.com/google/shaka-player/issues/595 - - https://github.com/google/shaka-player/pull/599 + - https://github.com/shaka-project/shaka-player/issues/595 + - https://github.com/shaka-project/shaka-player/pull/599 ## 2.0.4 (2017-01-24) @@ -3368,37 +3559,37 @@ Bugfixes: New features: - Support for 4k on Chromecast Ultra - Support for text tracks on Toshiba dTV - - https://github.com/google/shaka-player/issues/635 - - https://github.com/google/shaka-player/pull/643 + - https://github.com/shaka-project/shaka-player/issues/635 + - https://github.com/shaka-project/shaka-player/pull/643 Bugfixes: - Fixed buffering issues at the end of streams in IE/Edge - - https://github.com/google/shaka-player/issues/658 + - https://github.com/shaka-project/shaka-player/issues/658 - Fixed parsing of empty divs in TTML - - https://github.com/google/shaka-player/issues/646 - - https://github.com/google/shaka-player/pull/650 + - https://github.com/shaka-project/shaka-player/issues/646 + - https://github.com/shaka-project/shaka-player/pull/650 - Fixed subtle bug in Promise.resolve polyfill on IE - Fixed test failures on Chromecast Docs: - Added additional docs for offline storage - Updated and clarified debugging tutorial - - https://github.com/google/shaka-player/issues/653 + - https://github.com/shaka-project/shaka-player/issues/653 ## 2.0.3 (2017-01-09) New features: - Treat HTTP 202 status codes as failures - - https://github.com/google/shaka-player/issues/645 + - https://github.com/shaka-project/shaka-player/issues/645 Bugfixes: - Fix race condition in StreamingEngine - Fix race in load/unload in Player - - https://github.com/google/shaka-player/pull/613 - - https://github.com/google/shaka-player/issues/612 + - https://github.com/shaka-project/shaka-player/pull/613 + - https://github.com/shaka-project/shaka-player/issues/612 - Update workarounds for Edge EME bugs - - https://github.com/google/shaka-player/issues/634 + - https://github.com/shaka-project/shaka-player/issues/634 - Add missing events and methods to cast proxy - Fix exclusion of standard features in custom builds - Be more permissive of text failures @@ -3406,45 +3597,45 @@ Bugfixes: ignoreTextStreamFailures config option. - Do not fail StreamingEngine startup because of text streams, regardless of config. - - https://github.com/google/shaka-player/issues/635 + - https://github.com/shaka-project/shaka-player/issues/635 - Fix selectTrack() call with no text tracks - - https://github.com/google/shaka-player/issues/640 + - https://github.com/shaka-project/shaka-player/issues/640 - Fix buffering state for live streams (stop at live edge) - - https://github.com/google/shaka-player/issues/636 + - https://github.com/shaka-project/shaka-player/issues/636 ## 2.0.2 (2016-12-15) New features: - Add support for Toshiba dTV - - https://github.com/google/shaka-player/pull/605 + - https://github.com/shaka-project/shaka-player/pull/605 - TTML subtitles: Support for \ inside a paragraph - - https://github.com/google/shaka-player/pull/572 - - https://github.com/google/shaka-player/pull/584 + - https://github.com/shaka-project/shaka-player/pull/572 + - https://github.com/shaka-project/shaka-player/pull/584 - Parse TTML textAlign settings into align property of a VTTCue - - https://github.com/google/shaka-player/pull/573 + - https://github.com/shaka-project/shaka-player/pull/573 - Improved test stability and coverage reports Bugfixes: - Fix DASH content type parsing - - https://github.com/google/shaka-player/issues/631 + - https://github.com/shaka-project/shaka-player/issues/631 - Tolerate larger gaps at the start - - https://github.com/google/shaka-player/issues/579 + - https://github.com/shaka-project/shaka-player/issues/579 - Fixes for TTML alignment, positioning and cue externs - - https://github.com/google/shaka-player/pull/588 - - https://github.com/google/shaka-player/pull/594 + - https://github.com/shaka-project/shaka-player/pull/588 + - https://github.com/shaka-project/shaka-player/pull/594 - Keep ewma sampling from failing on 0 duration segments - - https://github.com/google/shaka-player/issues/582 - - https://github.com/google/shaka-player/pull/583 + - https://github.com/shaka-project/shaka-player/issues/582 + - https://github.com/shaka-project/shaka-player/pull/583 - Allow text parsers to change during playback - - https://github.com/google/shaka-player/issues/571 + - https://github.com/shaka-project/shaka-player/issues/571 - Fix playback when IE11 modifies the XML DOM - - https://github.com/google/shaka-player/issues/608 - - https://github.com/google/shaka-player/pull/611 + - https://github.com/shaka-project/shaka-player/issues/608 + - https://github.com/shaka-project/shaka-player/pull/611 - Update MediaSource polyfills for Safari 10 - - https://github.com/google/shaka-player/issues/615 + - https://github.com/shaka-project/shaka-player/issues/615 - Throw explicit error on empty manifests - - https://github.com/google/shaka-player/issues/618 + - https://github.com/shaka-project/shaka-player/issues/618 Docs: - Link to error docs from the demo app @@ -3455,58 +3646,58 @@ Docs: New features: - Faster ABR decisions - Add config option for using segment relative timestamps for VTT - - https://github.com/google/shaka-player/issues/480 - - https://github.com/google/shaka-player/pull/542 + - https://github.com/shaka-project/shaka-player/issues/480 + - https://github.com/shaka-project/shaka-player/pull/542 - Log and ignore non-standard WebVTT settings instead of failing - - https://github.com/google/shaka-player/issues/509 + - https://github.com/shaka-project/shaka-player/issues/509 - Make key IDs from the manifest available through DrmInfo - - https://github.com/google/shaka-player/pull/529 + - https://github.com/shaka-project/shaka-player/pull/529 - Provide framerate and codecs information on video tracks - - https://github.com/google/shaka-player/issues/516 - - https://github.com/google/shaka-player/pull/533 + - https://github.com/shaka-project/shaka-player/issues/516 + - https://github.com/shaka-project/shaka-player/pull/533 - Dispatch more useful network error when HEAD request fails Bugfixes: - Fix ABR quality issues when switching tracks (stutters, glitches, etc.) - - https://github.com/google/shaka-player/issues/520 + - https://github.com/shaka-project/shaka-player/issues/520 - Keep user selected text track when switching audio - - https://github.com/google/shaka-player/issues/514 + - https://github.com/shaka-project/shaka-player/issues/514 - Fix vtt with one digit hour - - https://github.com/google/shaka-player/pull/522 + - https://github.com/shaka-project/shaka-player/pull/522 - Fix build scripts for Windows - - https://github.com/google/shaka-player/issues/526 + - https://github.com/shaka-project/shaka-player/issues/526 - Fix buffering event delay - - https://github.com/google/shaka-player/issues/511 + - https://github.com/shaka-project/shaka-player/issues/511 - Workaround bug in Edge buffered ranges - - https://github.com/google/shaka-player/issues/530 + - https://github.com/shaka-project/shaka-player/issues/530 - Fix handling of internal-error key status - - https://github.com/google/shaka-player/issues/539 + - https://github.com/shaka-project/shaka-player/issues/539 - Ignore trick mode tracks - - https://github.com/google/shaka-player/issues/538 + - https://github.com/shaka-project/shaka-player/issues/538 - Fix AdaptationSetSwitching support - Fix buffering logic when switching periods - - https://github.com/google/shaka-player/issues/537 - - https://github.com/google/shaka-player/issues/545 + - https://github.com/shaka-project/shaka-player/issues/537 + - https://github.com/shaka-project/shaka-player/issues/545 - Use data URI content-type for manifest type detection - - https://github.com/google/shaka-player/pull/550 + - https://github.com/shaka-project/shaka-player/pull/550 - Fix audio language changes on Chromecast - - https://github.com/google/shaka-player/issues/544 + - https://github.com/shaka-project/shaka-player/issues/544 - Fix Chromecast receiver idle behavior when looping or replaying - - https://github.com/google/shaka-player/issues/558 + - https://github.com/shaka-project/shaka-player/issues/558 - Fix exception-causing race when TextEngine is destroyed Demo app improvements: - Hide volume & mute buttons on mobile-sized screens - Probe both MP4 and WebM support in DrmEngine - - https://github.com/google/shaka-player/issues/540 + - https://github.com/shaka-project/shaka-player/issues/540 - Update Axinom test assets to v7 - Fix accessibility issues in the demo app - - https://github.com/google/shaka-player/issues/552 + - https://github.com/shaka-project/shaka-player/issues/552 Docs: - Rewrote the debugging tutorial - Misc docs cleanup - - https://github.com/google/shaka-player/pull/536 + - https://github.com/shaka-project/shaka-player/pull/536 ## 2.0.0 (2016-09-07) @@ -3518,126 +3709,126 @@ New features: - Cast from the built-in Chrome dialog as well as the video controls - Use the built-in Chrome dialog to disconnect - Support for in-progress recordings (IPR) - - https://github.com/google/shaka-player/issues/477 + - https://github.com/shaka-project/shaka-player/issues/477 - Can be configured to tolerate text stream failures - - https://github.com/google/shaka-player/issues/474 + - https://github.com/shaka-project/shaka-player/issues/474 - Ignore small gaps in the timeline - - https://github.com/google/shaka-player/issues/472 + - https://github.com/shaka-project/shaka-player/issues/472 - Added EMSG box support - - https://github.com/google/shaka-player/issues/259 + - https://github.com/shaka-project/shaka-player/issues/259 - Reduced test flakiness and improved test speed - Improved VTT parsing - - https://github.com/google/shaka-player/issues/469 + - https://github.com/shaka-project/shaka-player/issues/469 - Improved EME error reporting - - https://github.com/google/shaka-player/issues/468 + - https://github.com/shaka-project/shaka-player/issues/468 - Improved demo app UI for touch screens - Smaller demo app UI (video element above the fold on Nexus 5X) Bugfixes: - Fixed text-related issues in IE11 - - https://github.com/google/shaka-player/issues/501 - - https://github.com/google/shaka-player/issues/502 + - https://github.com/shaka-project/shaka-player/issues/501 + - https://github.com/shaka-project/shaka-player/issues/502 - Fixed a few live edge corner cases - - https://github.com/google/shaka-player/issues/490 - - https://github.com/google/shaka-player/issues/504 + - https://github.com/shaka-project/shaka-player/issues/490 + - https://github.com/shaka-project/shaka-player/issues/504 - Fixed TTML parsing exceptions - - https://github.com/google/shaka-player/issues/473 - - https://github.com/google/shaka-player/issues/506 + - https://github.com/shaka-project/shaka-player/issues/473 + - https://github.com/shaka-project/shaka-player/issues/506 - Fixed text encoding issues with subs - Fixed issues with multi-period eviction - - https://github.com/google/shaka-player/pull/483 + - https://github.com/shaka-project/shaka-player/pull/483 - Defined order of AdaptationSet preference (prefer high quality, low bw) - - https://github.com/google/shaka-player/issues/476 + - https://github.com/shaka-project/shaka-player/issues/476 - Fixed support for manifests with multiple text formats - Fixed support for DASH Representations with multiple Roles - - https://github.com/google/shaka-player/issues/500 + - https://github.com/shaka-project/shaka-player/issues/500 - Fixed CSP compliance for Chrome apps - - https://github.com/google/shaka-player/issues/487 + - https://github.com/shaka-project/shaka-player/issues/487 Planned features we cut: - Cache-detecting bandwidth estimation - - https://github.com/google/shaka-player/issues/324 + - https://github.com/shaka-project/shaka-player/issues/324 ## 2.0.0-beta3 (2016-07-29) Restored Features from v1 Missing in v2.0.0-beta2: - Offline storage and playback - - https://github.com/google/shaka-player/issues/343 + - https://github.com/shaka-project/shaka-player/issues/343 - Clearkey license server support - - https://github.com/google/shaka-player/issues/403 + - https://github.com/shaka-project/shaka-player/issues/403 New features: - Built-in Chromecast support - - https://github.com/google/shaka-player/issues/261 + - https://github.com/shaka-project/shaka-player/issues/261 - TTML text support - - https://github.com/google/shaka-player/issues/111 + - https://github.com/shaka-project/shaka-player/issues/111 - TTML in MP4 - - https://github.com/google/shaka-player/issues/278 + - https://github.com/shaka-project/shaka-player/issues/278 - VTT in MP4 - - https://github.com/google/shaka-player/issues/277 + - https://github.com/shaka-project/shaka-player/issues/277 - Handle QuotaExceededError, automatically reduce buffering goals - - https://github.com/google/shaka-player/issues/258 + - https://github.com/shaka-project/shaka-player/issues/258 - Faster template processing in DASH - - https://github.com/google/shaka-player/issues/405 + - https://github.com/shaka-project/shaka-player/issues/405 - Bitrate upgrades take effect faster - Add a specific error for missing license server URI - - https://github.com/google/shaka-player/issues/371 + - https://github.com/shaka-project/shaka-player/issues/371 - Add adaptation events for language changes - Don't treat network errors as fatal in StreamingEngine - - https://github.com/google/shaka-player/issues/390 + - https://github.com/shaka-project/shaka-player/issues/390 - Provide the application access to DrmInfo structure - - https://github.com/google/shaka-player/issues/272 + - https://github.com/shaka-project/shaka-player/issues/272 - Restructure test/ folder to mimic lib/ folder structure - - https://github.com/google/shaka-player/pull/434 + - https://github.com/shaka-project/shaka-player/pull/434 - Upgrade closure compiler - - https://github.com/google/shaka-player/pull/421 + - https://github.com/shaka-project/shaka-player/pull/421 - New logo! Bugfixes: - Revert ABR changes that caused bandwidth samples to be ignored - - https://github.com/google/shaka-player/issues/367 + - https://github.com/shaka-project/shaka-player/issues/367 - Fix buffering of multi-period text - - https://github.com/google/shaka-player/issues/411 + - https://github.com/shaka-project/shaka-player/issues/411 - Fix various ABR issues - - https://github.com/google/shaka-player/issues/435 + - https://github.com/shaka-project/shaka-player/issues/435 - Fix stuck playback on seek - - https://github.com/google/shaka-player/issues/366 + - https://github.com/shaka-project/shaka-player/issues/366 - Stop refreshing live manifests when unloaded - - https://github.com/google/shaka-player/issues/369 + - https://github.com/shaka-project/shaka-player/issues/369 - Don't adapt between incompatible codecs (mp4a & ec-3) - - https://github.com/google/shaka-player/issues/391 + - https://github.com/shaka-project/shaka-player/issues/391 - Fix race in player WRT external text tracks - - https://github.com/google/shaka-player/issues/418 + - https://github.com/shaka-project/shaka-player/issues/418 - Fix Edge EME workarounds on IE11 - - https://github.com/google/shaka-player/issues/393 + - https://github.com/shaka-project/shaka-player/issues/393 - Work around Safari MSE bugs - Fix relative paths in UTCTiming - - https://github.com/google/shaka-player/issues/376 + - https://github.com/shaka-project/shaka-player/issues/376 - Fix source map paths on windows - - https://github.com/google/shaka-player/issues/413 + - https://github.com/shaka-project/shaka-player/issues/413 - Improve demo app CSS on mobile - Fix buffering state on unload - Fix load/unload/destroy race conditions - Reduce test flake (async tests still flakey on Safari) - Fix context menu display in demo app - - https://github.com/google/shaka-player/issues/422 + - https://github.com/shaka-project/shaka-player/issues/422 - Fix key status, session expiration, and DRM error dispatch - Fix demo app play controls on Android - - https://github.com/google/shaka-player/issues/432 + - https://github.com/shaka-project/shaka-player/issues/432 - Fix corner cases when seeking to the live edge Docs: - Add a license-wrapping tutorial - Add track restriction docs - - https://github.com/google/shaka-player/issues/387 + - https://github.com/shaka-project/shaka-player/issues/387 - Update track and adaptation docs - - https://github.com/google/shaka-player/issues/447 + - https://github.com/shaka-project/shaka-player/issues/447 Broken Compatibility compared to v2.0.0-beta2: - The asynchronous Player.support() has been replaced with the synchronous Player.isBrowserSupported() call - - https://github.com/google/shaka-player/issues/388 + - https://github.com/shaka-project/shaka-player/issues/388 - AbrManager implementations must now handle a partial StreamSet map in chooseStreams() - The wrong keys error has been dropped due to false positives @@ -3647,64 +3838,64 @@ Broken Compatibility compared to v2.0.0-beta2: Restored Features from v1 Missing in v2.0.0-beta: - Track restrictions API - - https://github.com/google/shaka-player/issues/326 - - https://github.com/google/shaka-player/issues/327 + - https://github.com/shaka-project/shaka-player/issues/326 + - https://github.com/shaka-project/shaka-player/issues/327 - Custom controls demo for live - - https://github.com/google/shaka-player/issues/322 + - https://github.com/shaka-project/shaka-player/issues/322 - Trick play demo - - https://github.com/google/shaka-player/issues/328 + - https://github.com/shaka-project/shaka-player/issues/328 New features: - Reduced startup latency - Added player.resetConfiguration() - Added response text to HTTP errors - - https://github.com/google/shaka-player/issues/319 + - https://github.com/shaka-project/shaka-player/issues/319 - Demo controls redesigned with material design icons - Emit an error if the wrong keys are retrieved - - https://github.com/google/shaka-player/issues/301 + - https://github.com/shaka-project/shaka-player/issues/301 - Human-readable errors shown in demo app - Cache-friendly bandwidth estimation - - https://github.com/google/shaka-player/issues/324 + - https://github.com/shaka-project/shaka-player/issues/324 - Improved trick play and playbackRate support - - https://github.com/google/shaka-player/issues/344 + - https://github.com/shaka-project/shaka-player/issues/344 - Allow apps to reset ABR manager estimates - - https://github.com/google/shaka-player/issues/355 + - https://github.com/shaka-project/shaka-player/issues/355 - Support non-zero start times for VOD - - https://github.com/google/shaka-player/issues/341 - - https://github.com/google/shaka-player/issues/348 - - https://github.com/google/shaka-player/issues/357 + - https://github.com/shaka-project/shaka-player/issues/341 + - https://github.com/shaka-project/shaka-player/issues/348 + - https://github.com/shaka-project/shaka-player/issues/357 Bugfixes: - Fix playback of DASH with unaligned Representations - Fixed race conditions on seek - - https://github.com/google/shaka-player/issues/334 + - https://github.com/shaka-project/shaka-player/issues/334 - Improved drift handling - - https://github.com/google/shaka-player/issues/330 + - https://github.com/shaka-project/shaka-player/issues/330 - Fixed stack overflow in StringUtils - - https://github.com/google/shaka-player/issues/335 + - https://github.com/shaka-project/shaka-player/issues/335 - Improved live support - - https://github.com/google/shaka-player/issues/331 - - https://github.com/google/shaka-player/issues/339 - - https://github.com/google/shaka-player/issues/340 - - https://github.com/google/shaka-player/issues/351 + - https://github.com/shaka-project/shaka-player/issues/331 + - https://github.com/shaka-project/shaka-player/issues/339 + - https://github.com/shaka-project/shaka-player/issues/340 + - https://github.com/shaka-project/shaka-player/issues/351 - Fixed player.addTextTrack - Handle CDMs which don't support the same types MSE does - - https://github.com/google/shaka-player/issues/342 + - https://github.com/shaka-project/shaka-player/issues/342 - Fix audio-only encrypted playback - - https://github.com/google/shaka-player/issues/360 + - https://github.com/shaka-project/shaka-player/issues/360 - Fix renaming of event properties - - https://github.com/google/shaka-player/issues/361 + - https://github.com/shaka-project/shaka-player/issues/361 - Warn about missing clock sync elements in live manfiests - - https://github.com/google/shaka-player/issues/290 + - https://github.com/shaka-project/shaka-player/issues/290 - Add option for default clock sync URI - - https://github.com/google/shaka-player/issues/290 + - https://github.com/shaka-project/shaka-player/issues/290 - Fix crash in TextEngine when subs are turned off Docs: - Shaka v2 upgrade guide - http://shaka-player-demo.appspot.com/docs/api/tutorial-upgrade.html - Added enum values (not just names) to generated docs - - https://github.com/google/shaka-player/issues/337 + - https://github.com/shaka-project/shaka-player/issues/337 Broken Compatibility compared to v2.0.0-beta: - None! @@ -3714,9 +3905,9 @@ Broken Compatibility compared to v2.0.0-beta: Bugfixes: - Always build the same input files to a stable output - - https://github.com/google/shaka-player/pull/299 + - https://github.com/shaka-project/shaka-player/pull/299 - Properly extern the 'xhr' property of HTTP errors - - https://github.com/google/shaka-player/pull/319 + - https://github.com/shaka-project/shaka-player/pull/319 ## 2.0.0-beta (2016-04-07) @@ -3724,52 +3915,52 @@ Bugfixes: New Features: - DASH support for: - Multi-Period content - - https://github.com/google/shaka-player/issues/186 + - https://github.com/shaka-project/shaka-player/issues/186 - Location elements - - https://github.com/google/shaka-player/issues/298 + - https://github.com/shaka-project/shaka-player/issues/298 - UTCTiming elements (for clock synchronization) - - https://github.com/google/shaka-player/issues/241 + - https://github.com/shaka-project/shaka-player/issues/241 - Better browser compatibility - Testing on Safari 9, IE 11, Edge, Firefox 45+, Opera, Chrome - - https://github.com/google/shaka-player/issues/101 + - https://github.com/shaka-project/shaka-player/issues/101 - New plugin and build system to extend Shaka - Networking plugins - - https://github.com/google/shaka-player/issues/228 - - https://github.com/google/shaka-player/issues/198 + - https://github.com/shaka-project/shaka-player/issues/228 + - https://github.com/shaka-project/shaka-player/issues/198 - Cache-friendly networking - - https://github.com/google/shaka-player/issues/76 - - https://github.com/google/shaka-player/issues/191 - - https://github.com/google/shaka-player/issues/235 + - https://github.com/shaka-project/shaka-player/issues/76 + - https://github.com/shaka-project/shaka-player/issues/191 + - https://github.com/shaka-project/shaka-player/issues/235 - Limit memory usage by clearing old data from buffer - - https://github.com/google/shaka-player/issues/247 + - https://github.com/shaka-project/shaka-player/issues/247 - Simpler, more mobile-friendly demo app - New test assets - - https://github.com/google/shaka-player/issues/224 + - https://github.com/shaka-project/shaka-player/issues/224 - Made play()/pause() independent of buffering - - https://github.com/google/shaka-player/issues/233 + - https://github.com/shaka-project/shaka-player/issues/233 - Numerical error code system - - https://github.com/google/shaka-player/issues/201 + - https://github.com/shaka-project/shaka-player/issues/201 - Distinguish between subtitle and caption tracks - - https://github.com/google/shaka-player/issues/206 + - https://github.com/shaka-project/shaka-player/issues/206 - Separate audio & text language preferences - - https://github.com/google/shaka-player/issues/207 + - https://github.com/shaka-project/shaka-player/issues/207 - Update timeShiftBufferDepth when updating the manifest - - https://github.com/google/shaka-player/issues/295 + - https://github.com/shaka-project/shaka-player/issues/295 - Simplified clearkey setup using configure() - Initial bandwidth is now configurable: - - https://github.com/google/shaka-player/issues/268 + - https://github.com/shaka-project/shaka-player/issues/268 Bugfixes: - Stopped using Date headers for clock sync - - https://github.com/google/shaka-player/issues/205 - - https://github.com/google/shaka-player/issues/241 + - https://github.com/shaka-project/shaka-player/issues/205 + - https://github.com/shaka-project/shaka-player/issues/241 Docs: - New tutorials! Missing Features from v1 (to be added later): - Custom controls demo for live streams - - https://github.com/google/shaka-player/issues/322 + - https://github.com/shaka-project/shaka-player/issues/322 - Chromecast demo - Trick play demo - Track restrictions based on key status @@ -3784,20 +3975,20 @@ Broken Compatibility: Bugfixes: - Updated Promise polyfill with fixes backported from v2 - Fixed Edge EME compatibility & InvalidStateErrors - - https://github.com/google/shaka-player/issues/282 + - https://github.com/shaka-project/shaka-player/issues/282 - Fixed HttpVideoSource use with clear content (Thanks, Sanborn!) - - https://github.com/google/shaka-player/pull/292 + - https://github.com/shaka-project/shaka-player/pull/292 - Fixed uncompiled-mode performance regression introduced in v1.6.3 - - https://github.com/google/shaka-player/issues/288 + - https://github.com/shaka-project/shaka-player/issues/288 ## 1.6.3 (2016-02-08) Features: - Added opt\_clearBufferOffset for audio (Thanks, Itay) - - https://github.com/google/shaka-player/pull/254 + - https://github.com/shaka-project/shaka-player/pull/254 - Fetch segments from new location after manifest redirect (Thanks, Rob) - - https://github.com/google/shaka-player/pull/266 + - https://github.com/shaka-project/shaka-player/pull/266 Bugfixes: - Several IE11 stability issues and race conditions fixed @@ -3806,7 +3997,7 @@ Bugfixes: - Added stack-based messages to all assertions - Fixed some unit test compatibility issues - Fixed race conditions caused by Promise polyfill - - https://github.com/google/shaka-player/issues/251 + - https://github.com/shaka-project/shaka-player/issues/251 Docs: - Update browser support docs with regard to IE & Firefox @@ -3823,13 +4014,13 @@ Features: the cache-buster. This is necessary for certain CDNs, but please note the tradeoffs before using. Bandwidth estimation can be adversely affected, particularly for low-bandwidth users. - - https://github.com/google/shaka-player/issues/235 - - https://github.com/google/shaka-player/issues/238 - - https://github.com/google/shaka-player/issues/76 + - https://github.com/shaka-project/shaka-player/issues/235 + - https://github.com/shaka-project/shaka-player/issues/238 + - https://github.com/shaka-project/shaka-player/issues/76 Bugfixes: - Fixed interpretation of startNumber for SegmentTemplate w/ duration. - - https://github.com/google/shaka-player/issues/237 + - https://github.com/shaka-project/shaka-player/issues/237 ## 1.6.1 (2015-12-07) @@ -3838,49 +4029,49 @@ Bugfixes: - Fixed handling when all streams are removed in a manifest update. - Fixed annotation mistakes in preparation for a new compiler release. - Fixed Promise polyfill errors in compiled mode. - - https://github.com/google/shaka-player/issues/236 + - https://github.com/shaka-project/shaka-player/issues/236 ## 1.6.0 (2015-11-17) Features: - Partial IE11 & PlayReady support. (Thanks, Jono!) - - https://github.com/google/shaka-player/pull/176 + - https://github.com/shaka-project/shaka-player/pull/176 - *live and offline content not working* - *non-zero start times not working* - *IE11 fails to decode some test assets* - - https://github.com/google/shaka-player/issues/224 + - https://github.com/shaka-project/shaka-player/issues/224 - Added support for setPlaybackStartTime on live streams. - - https://github.com/google/shaka-player/pull/231 + - https://github.com/shaka-project/shaka-player/pull/231 - Improved support for live streaming corner cases. - - https://github.com/google/shaka-player/issues/139 - - https://github.com/google/shaka-player/issues/140 - - https://github.com/google/shaka-player/issues/141 - - https://github.com/google/shaka-player/issues/145 - - https://github.com/google/shaka-player/issues/185 + - https://github.com/shaka-project/shaka-player/issues/139 + - https://github.com/shaka-project/shaka-player/issues/140 + - https://github.com/shaka-project/shaka-player/issues/141 + - https://github.com/shaka-project/shaka-player/issues/145 + - https://github.com/shaka-project/shaka-player/issues/185 - Now builds with three different configs by default. - Full build (all features enabled). - DASH MP4 VOD. (Only DASH w/ SegmentBase, no WebM.) - DASH MP4 live. (Only DASH w/o SegmentBase, no WebM.) - - https://github.com/google/shaka-player/issues/116 + - https://github.com/shaka-project/shaka-player/issues/116 - Changed startNumber implementation to be more consistent. - - https://github.com/google/shaka-player/issues/192 + - https://github.com/shaka-project/shaka-player/issues/192 - Added a new Promise polyfill for IE11. - Added support for WebM w/ unknown size in the Segment element. Bugfixes: - Expired sessions (for example, when using key rotation) are now cleaned up. - - https://github.com/google/shaka-player/issues/210 + - https://github.com/shaka-project/shaka-player/issues/210 - Manifests can now be reprocessed without an update when availabilityStartTime passes. - - https://github.com/google/shaka-player/issues/172 + - https://github.com/shaka-project/shaka-player/issues/172 Test app features: - Added Chromecast support to the demo app. (No changes to the library for this.) - - https://github.com/google/shaka-player/issues/117 + - https://github.com/shaka-project/shaka-player/issues/117 - Removed force-prefixed feature for improved IE11 support. - - https://github.com/google/shaka-player/issues/222 + - https://github.com/shaka-project/shaka-player/issues/222 - Added links to the project and the docs. Broken Compatibility: @@ -3895,12 +4086,12 @@ Broken Compatibility: - setPreferredLanguage - setRestrictions - getRestrictions - - https://github.com/google/shaka-player/issues/203 - - https://github.com/google/shaka-player/issues/93 + - https://github.com/shaka-project/shaka-player/issues/203 + - https://github.com/shaka-project/shaka-player/issues/93 - Removed support for the old-style ContentProtection callback, deprecated since v1.5.0. - - https://github.com/google/shaka-player/issues/203 - - https://github.com/google/shaka-player/issues/71 + - https://github.com/shaka-project/shaka-player/issues/203 + - https://github.com/shaka-project/shaka-player/issues/71 ## 1.5.2 (2015-11-12) @@ -3909,22 +4100,22 @@ A roll-up of recent bugfixes. Bugfixes: - Fixed timestamp correction for some live streams from Elemental. - - https://github.com/google/shaka-player/issues/200 + - https://github.com/shaka-project/shaka-player/issues/200 - Fixed support for manifests with different PSSHs per Representation. - - https://github.com/google/shaka-player/issues/229 + - https://github.com/shaka-project/shaka-player/issues/229 - Fixed support for ContentProtection elements at both AdaptationSet and Representation level in the same manifest. - - https://github.com/google/shaka-player/issues/230 + - https://github.com/shaka-project/shaka-player/issues/230 - Fixed support for bound DrmInfo callbacks. - - https://github.com/google/shaka-player/issues/227 + - https://github.com/shaka-project/shaka-player/issues/227 - Fixed the 'enabled' flag of text tracks when manipulated directly by the video element. - - https://github.com/google/shaka-player/issues/214 + - https://github.com/shaka-project/shaka-player/issues/214 - Fixed buffering to use the correct goal (minBufferTime) when re-buffering. - - https://github.com/google/shaka-player/issues/190 + - https://github.com/shaka-project/shaka-player/issues/190 - Fixed a broken link in the documentation. (Thanks, Leandro.) - - https://github.com/google/shaka-player/issues/217 - - https://github.com/google/shaka-player/pull/218 + - https://github.com/shaka-project/shaka-player/issues/217 + - https://github.com/shaka-project/shaka-player/pull/218 Test app features: - Added a Widevine-encrypted version of the Sintel 4k test asset. @@ -3936,73 +4127,73 @@ A roll-up of recent bugfixes. Bugfixes: - Fixed a major memory leak introduced in 1.5.0. - - https://github.com/google/shaka-player/issues/184 + - https://github.com/shaka-project/shaka-player/issues/184 - Deleting encrypted offline content now deletes persistent sessions. - - https://github.com/google/shaka-player/issues/171 + - https://github.com/shaka-project/shaka-player/issues/171 - Static content using SegmentTemplate is now truncated at the Period's duration. - - https://github.com/google/shaka-player/issues/187 - - https://github.com/google/shaka-player/issues/173 + - https://github.com/shaka-project/shaka-player/issues/187 + - https://github.com/shaka-project/shaka-player/issues/173 - Key status error reporting is now more consistent and provides more information. - Reduced flakiness in some tests. - Requests used for clock sync no longer allow caching. - - https://github.com/google/shaka-player/issues/191 + - https://github.com/shaka-project/shaka-player/issues/191 ## 1.5.0 (2015-09-17) Features: - Added method to set playback start time. - - https://github.com/google/shaka-player/issues/122 - - https://github.com/google/shaka-player/pull/123 + - https://github.com/shaka-project/shaka-player/issues/122 + - https://github.com/shaka-project/shaka-player/pull/123 - Added a text-styling API. - - https://github.com/google/shaka-player/issues/115 + - https://github.com/shaka-project/shaka-player/issues/115 - Added support for AdaptationSet groups. - - https://github.com/google/shaka-player/issues/67 + - https://github.com/shaka-project/shaka-player/issues/67 - Added a new configuration API. - - https://github.com/google/shaka-player/issues/93 + - https://github.com/shaka-project/shaka-player/issues/93 - License preprocessing can now modify HTTP method and server URL. - - https://github.com/google/shaka-player/issues/134 - - https://github.com/google/shaka-player/issues/135 + - https://github.com/shaka-project/shaka-player/issues/134 + - https://github.com/shaka-project/shaka-player/issues/135 - Added an API to load captions not specified in the manifest. - - https://github.com/google/shaka-player/issues/133 + - https://github.com/shaka-project/shaka-player/issues/133 - Added support for live streams using SegmentList. - - https://github.com/google/shaka-player/issues/88 + - https://github.com/shaka-project/shaka-player/issues/88 - Added support for multiple BaseURL elements for failover. - - https://github.com/google/shaka-player/issues/68 + - https://github.com/shaka-project/shaka-player/issues/68 - Gave IAbrManager implementation the ability to clear the buffer when switching streams. - - https://github.com/google/shaka-player/pull/144 + - https://github.com/shaka-project/shaka-player/pull/144 - Added setNetworkCallback API to DashVideoSource to modify network requests. - - https://github.com/google/shaka-player/issues/148 + - https://github.com/shaka-project/shaka-player/issues/148 - Improved error reporting for unplayable content. - Added support for multiple DRM schemes per ContentProtection and simplified DRM scheme configuration. - - https://github.com/google/shaka-player/issues/71 + - https://github.com/shaka-project/shaka-player/issues/71 - Improved documentation for license pre- and post-processing. - - https://github.com/google/shaka-player/issues/137 + - https://github.com/shaka-project/shaka-player/issues/137 Bugfixes: - Restricting all video tracks now fires an error event. - - https://github.com/google/shaka-player/issues/179 - - https://github.com/google/shaka-player/issues/170 + - https://github.com/shaka-project/shaka-player/issues/179 + - https://github.com/shaka-project/shaka-player/issues/170 - Changing text tracks now fires an adaptation event. - - https://github.com/google/shaka-player/issues/147 + - https://github.com/shaka-project/shaka-player/issues/147 - Fixed bad interactions between pausing and negative playback rates. - - https://github.com/google/shaka-player/issues/130 + - https://github.com/shaka-project/shaka-player/issues/130 - Fixed support for negative r values in SegmentTimeline. - - https://github.com/google/shaka-player/issues/162 + - https://github.com/shaka-project/shaka-player/issues/162 - Fixed bugs that could cause infinite buffering for certain configurations. - - https://github.com/google/shaka-player/issues/166 + - https://github.com/shaka-project/shaka-player/issues/166 - Fixed exceptions fired during rapid Player destroy(). - - https://github.com/google/shaka-player/issues/151 + - https://github.com/shaka-project/shaka-player/issues/151 - Fixed linting with conflicting globally-installed copy of linter library. - - https://github.com/google/shaka-player/issues/153 + - https://github.com/shaka-project/shaka-player/issues/153 - Fixed support for SegmentTimelines with presentationTimeOffset. - - https://github.com/google/shaka-player/issues/143 + - https://github.com/shaka-project/shaka-player/issues/143 - Fixed support for apps/content which specify multiple DRM scheme configs. - - https://github.com/google/shaka-player/issues/177 + - https://github.com/shaka-project/shaka-player/issues/177 Broken Compatibility: - Removed Player methods deprecated since v1.3.0. @@ -4017,7 +4208,7 @@ Broken Compatibility: - seek - setMuted - setVolume - - https://github.com/google/shaka-player/issues/118 + - https://github.com/shaka-project/shaka-player/issues/118 Deprecated: - The following methods on Player are deprecated in favor of @@ -4032,11 +4223,11 @@ Deprecated: - setPreferredLanguage - setRestrictions - getRestrictions - - https://github.com/google/shaka-player/issues/93 + - https://github.com/shaka-project/shaka-player/issues/93 - A new two-argument ContentProtectionCallback has been added to DashVideoSource, and the old style is deprecated and will be removed in v1.6.0. - - https://github.com/google/shaka-player/issues/71 + - https://github.com/shaka-project/shaka-player/issues/71 ## 1.4.2 (2015-09-04) @@ -4046,17 +4237,17 @@ A roll-up of recent bugfixes. Bugfixes: - Fix storage of duplicate session IDs for encrypted offline content. - Specify EME sessionTypes, required in newer EME draft. - - https://github.com/google/shaka-player/issues/128 + - https://github.com/shaka-project/shaka-player/issues/128 - Fix regression in rewind support, once more working outside buffered range. - - https://github.com/google/shaka-player/issues/165 + - https://github.com/shaka-project/shaka-player/issues/165 - Support renamed output protection errors from newer EME draft. - Fix seeking in custom controls on Android. - - https://github.com/google/shaka-player/issues/164 + - https://github.com/shaka-project/shaka-player/issues/164 - Fix missing final chunk when storing certain videos for offline playback. - - https://github.com/google/shaka-player/issues/157 + - https://github.com/shaka-project/shaka-player/issues/157 - Prevent crashing of module loaders which use 'define' but are not full AMD loaders. - - https://github.com/google/shaka-player/issues/163 + - https://github.com/shaka-project/shaka-player/issues/163 Test app features: - Added 'offline' URL param. @@ -4070,7 +4261,7 @@ Bugfixes: - An exception is no longer thrown from StreamVideoSource in uncompiled mode when the stream limits cannot be computed. - Fixed support for multiple encrypted audio tracks. - - https://github.com/google/shaka-player/issues/112 + - https://github.com/shaka-project/shaka-player/issues/112 - Fixed support for manifests that use SegmentList with a single URL. - Fixed support for audio and video robustness settings in compiled mode. - The MPD 'main' property is now defined in the correct class. @@ -4081,28 +4272,28 @@ Bugfixes: enum values. - Removed a race in Player.getStats() that could cause NaN stats. - Fixed support to recover from failed segment requests. - - https://github.com/google/shaka-player/issues/131 + - https://github.com/shaka-project/shaka-player/issues/131 - Made rewind, pause, play, and fast-forward consistent with normal video element behavior, the UI, and Player.setPlaybackRate(). - - https://github.com/google/shaka-player/issues/130 - - https://github.com/google/shaka-player/issues/138 + - https://github.com/shaka-project/shaka-player/issues/130 + - https://github.com/shaka-project/shaka-player/issues/138 - Improved seek handling during stream startup. - - https://github.com/google/shaka-player/issues/136 + - https://github.com/shaka-project/shaka-player/issues/136 - Unnecessary seeking events during stream startup are no longer fired. - - https://github.com/google/shaka-player/issues/132 + - https://github.com/shaka-project/shaka-player/issues/132 - Segment fetches are no longer retried if the Stream has been destroyed. - - https://github.com/google/shaka-player/issues/156 + - https://github.com/shaka-project/shaka-player/issues/156 - Fixed support for offline in compiled mode. Features: - The version indicator on the demo page now displays the NPM version (if available) when the git version is unavailable. - Added support to clear the audio buffer when switching tracks. - - https://github.com/google/shaka-player/issues/119 + - https://github.com/shaka-project/shaka-player/issues/119 - Added the ability to detect and recover from multiple buffered ranges. - - https://github.com/google/shaka-player/issues/121 + - https://github.com/shaka-project/shaka-player/issues/121 - Improved error messages when persistent licenses are not supported. - - https://github.com/google/shaka-player/issues/85 + - https://github.com/shaka-project/shaka-player/issues/85 Testing: - Reduced test flakiness overall. @@ -4118,61 +4309,61 @@ Bugfixes: - Overriding a license server URL in the test app no longer causes a PSSH from the MPD to be ignored. - Fixed possible event listener leak. - - https://github.com/google/shaka-player/issues/109 + - https://github.com/shaka-project/shaka-player/issues/109 Features: - Player.destroy() now returns a Promise. - DrmSchemeInfo now has distinctiveIdentifier, persistentState, and robustness parameters. - Clarified buffering event policies. - - https://github.com/google/shaka-player/issues/77 + - https://github.com/shaka-project/shaka-player/issues/77 - Added a license pre-processor. - - https://github.com/google/shaka-player/issues/62 + - https://github.com/shaka-project/shaka-player/issues/62 - Added support for the MPD Location element. - - https://github.com/google/shaka-player/issues/65 + - https://github.com/shaka-project/shaka-player/issues/65 - Custom BandwidthEstimators can now allow XHR caching. - - https://github.com/google/shaka-player/issues/76 + - https://github.com/shaka-project/shaka-player/issues/76 - Added support for startNumber of 0, per the recent DASH spec corrigendum. - - https://github.com/google/shaka-player/issues/10 + - https://github.com/shaka-project/shaka-player/issues/10 - Added support for server certificate APIs through DrmSchemeInfo. - - https://github.com/google/shaka-player/issues/84 + - https://github.com/shaka-project/shaka-player/issues/84 - Major refactor of streaming. Switching representations is now faster and more flexible. Live stream seek ranges are more accurate. - - https://github.com/google/shaka-player/issues/51 + - https://github.com/shaka-project/shaka-player/issues/51 - XHR timeout is now runtime-configurable. - - https://github.com/google/shaka-player/issues/50 + - https://github.com/shaka-project/shaka-player/issues/50 - Buffering goals are now runtime-configurable. - - https://github.com/google/shaka-player/issues/49 + - https://github.com/shaka-project/shaka-player/issues/49 - Alternative IAbrManager implementations can now be injected at runtime. - - https://github.com/google/shaka-player/issues/48 + - https://github.com/shaka-project/shaka-player/issues/48 Test app features: - Added "buffered ahead" and "buffered behind" indicators. - - https://github.com/google/shaka-player/issues/47 + - https://github.com/shaka-project/shaka-player/issues/47 - Converted cycle buttons into checkboxes so cycling can be stopped during playback. - - https://github.com/google/shaka-player/issues/46 + - https://github.com/shaka-project/shaka-player/issues/46 - Test app now jumps to live when the user clicks on the time code in a live stream. - Added an example of a trick-play UI built on the Player API. - - https://github.com/google/shaka-player/issues/54 + - https://github.com/shaka-project/shaka-player/issues/54 Testing: - Disabled code coverage stats in unit tests by default. - - https://github.com/google/shaka-player/issues/105 + - https://github.com/shaka-project/shaka-player/issues/105 - Split unit tests and integration tests into separate test runners. - - https://github.com/google/shaka-player/issues/104 + - https://github.com/shaka-project/shaka-player/issues/104 - Added a Karma config file to make automated testing easier. - Added checks for offline features to the support-testing page. Documentation: - Documented the fact that autoplay does not work on mobile, and why. - Documented error events and how to handle them. - - https://github.com/google/shaka-player/issues/106 + - https://github.com/shaka-project/shaka-player/issues/106 - Documented browser support and porting. - - https://github.com/google/shaka-player/issues/66 + - https://github.com/shaka-project/shaka-player/issues/66 - Documented Player APIs for trick play interface. - - https://github.com/google/shaka-player/issues/54 + - https://github.com/shaka-project/shaka-player/issues/54 ## 1.3.2 (2015-07-06) @@ -4183,10 +4374,10 @@ Bugfixes: - Fixed case-sensitive scheme URI check in the test app. - Fixed support-testing page for very old browsers. - Fixed multi-lingual encrypted content. - - https://github.com/google/shaka-player/issues/112 + - https://github.com/shaka-project/shaka-player/issues/112 - Fixed load-time exceptions in IE 9. - - https://github.com/google/shaka-player/issues/87 - - https://github.com/google/shaka-player/pull/110 + - https://github.com/shaka-project/shaka-player/issues/87 + - https://github.com/shaka-project/shaka-player/pull/110 ## 1.3.1 (2015-05-22) @@ -4196,21 +4387,21 @@ A roll-up of recent bugfixes and small improvements. Bugfixes: - Fixed some broken tests. - Fixed buffering states. - - https://github.com/google/shaka-player/issues/61 + - https://github.com/shaka-project/shaka-player/issues/61 - Fixed fullscreen polyfill installation. - - https://github.com/google/shaka-player/issues/81 + - https://github.com/shaka-project/shaka-player/issues/81 - Fixed handling of live content with minimumUpdatePeriod of 0. - - https://github.com/google/shaka-player/pull/64 + - https://github.com/shaka-project/shaka-player/pull/64 - Fixed selection of live content (type=dynamic). - - https://github.com/google/shaka-player/issues/69 - - https://github.com/google/shaka-player/issues/70 + - https://github.com/shaka-project/shaka-player/issues/69 + - https://github.com/shaka-project/shaka-player/issues/70 - Fixed AJAX request timeouts. - - https://github.com/google/shaka-player/issues/78 - - https://github.com/google/shaka-player/pull/79 + - https://github.com/shaka-project/shaka-player/issues/78 + - https://github.com/shaka-project/shaka-player/pull/79 - Fixed spec compliance for polyfilled session expiration. - Fixed buffer time for offline playback. - Fixed offline API consistency. - - https://github.com/google/shaka-player/issues/72 + - https://github.com/shaka-project/shaka-player/issues/72 Features: - Refactored and updated support test page. @@ -4220,15 +4411,15 @@ Features: - Small improvements to browser compatibility. - (node.childNodes, node.textContent, currentScript, CSS fixes, etc.) - Documented clock sync and CORS issues with live content. - - https://github.com/google/shaka-player/issues/53 + - https://github.com/shaka-project/shaka-player/issues/53 - Documented JRE requirements. - Test app now accepts a URL parameter to make ChromeCast testing easier. - - https://github.com/google/shaka-player/issues/56 + - https://github.com/shaka-project/shaka-player/issues/56 - Stopped using deprecated methods in tests and tutorials. - - https://github.com/google/shaka-player/issues/73 + - https://github.com/shaka-project/shaka-player/issues/73 - Added progress events for storing offline content. - Documented offline APIs. - - https://github.com/google/shaka-player/issues/60 + - https://github.com/shaka-project/shaka-player/issues/60 ## 1.3.0 (2015-04-16) @@ -4238,7 +4429,7 @@ Feature release, introducing live streaming and offline playback. Bugfixes: - Fixed playback and buffering of streams whose index is inaccurate. - Fixed EME spec compliance. - - https://github.com/google/shaka-player/issues/45 + - https://github.com/shaka-project/shaka-player/issues/45 - Fixed FakeEventTarget exception handling. - Fixed aggressive dead code stripping by the compiler. - Fixed a bug in which subtitles were enabled by default without a subtitle @@ -4246,22 +4437,22 @@ Bugfixes: Features: - Added offline playback support. - - https://github.com/google/shaka-player/issues/22 + - https://github.com/shaka-project/shaka-player/issues/22 - Added offline support for encrypted content (on platforms which support persistent licenses). - - https://github.com/google/shaka-player/issues/23 + - https://github.com/shaka-project/shaka-player/issues/23 - Added live stream support. - - https://github.com/google/shaka-player/issues/21 + - https://github.com/shaka-project/shaka-player/issues/21 - Added support for header-based clock synchronization. - Added support for inheriting Segment{Base,List,Template} across levels in MPDs. - Add polyfill support for fullscreen events. - Updated EME usage to the March 12 draft. - Added Player.getAdaptationEnabled(). - - https://github.com/google/shaka-player/pull/31 + - https://github.com/shaka-project/shaka-player/pull/31 - Added support for bandwidth restrictions and restrictions not based on license responses. - - https://github.com/google/shaka-player/pull/36 + - https://github.com/shaka-project/shaka-player/pull/36 - Added support for requireJS and improved support for commonJS. - Sped up integration tests and improved test robustness. - Bandwidth estimates can now be persisted across playbacks. @@ -4304,16 +4495,16 @@ Bugfixes: - Fixed support for mp4a.40.5 audio content. - Improved rewind accuracy. - Fixed decode of query parameters in content URLs. - - https://github.com/google/shaka-player/pull/40 + - https://github.com/shaka-project/shaka-player/pull/40 - Fixed FakeEventTarget for Chrome 43+. - Removed flaky assertion in EME polyfill. - Made AbrManager less aggressive. - Fixed EME spec compatibility and encrypted playback in Chrome 43+. - - https://github.com/google/shaka-player/issues/45 + - https://github.com/shaka-project/shaka-player/issues/45 Features: - Added support for module.exports. - - https://github.com/google/shaka-player/pull/35 + - https://github.com/shaka-project/shaka-player/pull/35 Test app features: - Added a new 4k test asset. @@ -4325,11 +4516,11 @@ Bugfixes: - Version 1.2.1 had multiple issues with its version numbering. These are now corrected, but npm requires unique version numbers to publish. Version 1.2.1 has been pulled from npm. - - https://github.com/google/shaka-player/issues/30 + - https://github.com/shaka-project/shaka-player/issues/30 Features: - Added getAdaptationEnabled() to Player. - - https://github.com/google/shaka-player/issues/29 + - https://github.com/shaka-project/shaka-player/issues/29 ## 1.2.1 (2015-03-10) @@ -4339,7 +4530,7 @@ Branched from v1.2.0. Bugfixes: - Try to recover from a streaming failure. - - https://github.com/google/shaka-player/issues/28 + - https://github.com/shaka-project/shaka-player/issues/28 - Ignore spurious error events from the video tag. - Update docs WRT content restrictions and folder organization. - Fix clearkey errors in Chrome 42+. @@ -4358,14 +4549,14 @@ Lots of internal refactoring and bugfixes, and a few new features. Bugfixes: - Buffer eviction no longer causes hangs on seek. - - https://github.com/google/shaka-player/issues/15 + - https://github.com/shaka-project/shaka-player/issues/15 - Adaptation no longer causes hangs on looping and seeking backward. - - https://github.com/google/shaka-player/issues/26 + - https://github.com/shaka-project/shaka-player/issues/26 - StreamStats no longer shows null for width and height before adaptation. - - https://github.com/google/shaka-player/issues/16 + - https://github.com/shaka-project/shaka-player/issues/16 - Content with differing start times for the audio & video streams no longer exhibits A/V sync issues. - - https://github.com/google/shaka-player/issues/17 + - https://github.com/shaka-project/shaka-player/issues/17 - DrmSchemeInfo's suppressMultipleEncryptedEvents flag is now correctly honored regardless of the timing of events. - Calculations for the $Time$ placeholder in MPD SegmentTemplates has been @@ -4373,28 +4564,28 @@ Bugfixes: - The test app no longer causes mixed-content errors when served over HTTPS. - Small mistakes in URLs and asset names in the test app have been corrected. - Windows checkouts now have consistent newline style. - - https://github.com/google/shaka-player/issues/12 + - https://github.com/shaka-project/shaka-player/issues/12 - Windows build steps documented. - - https://github.com/google/shaka-player/issues/13 + - https://github.com/shaka-project/shaka-player/issues/13 Features: - The isTypeSupported polyfill has been removed and all EME APIs have been updated to the [Feb 9 2015 EME spec]. - - https://github.com/google/shaka-player/issues/2 + - https://github.com/shaka-project/shaka-player/issues/2 - Gaps and overlaps in SegmentTimeline are no longer treated as an error. Large gaps/overlaps will still generate a warning. - - https://github.com/google/shaka-player/issues/24 + - https://github.com/shaka-project/shaka-player/issues/24 - HDCP-related failures are now translated into error events in Chrome 42+. - - https://github.com/google/shaka-player/issues/14 + - https://github.com/shaka-project/shaka-player/issues/14 - The MPD Role tag is now supported as a way of indicating the main AdaptationSet for the purposes of language matching. - - https://github.com/google/shaka-player/issues/20 + - https://github.com/shaka-project/shaka-player/issues/20 - More detail added to AJAX error events. - - https://github.com/google/shaka-player/issues/18 + - https://github.com/shaka-project/shaka-player/issues/18 - The Player now dispatches buffering events. - - https://github.com/google/shaka-player/issues/25 + - https://github.com/shaka-project/shaka-player/issues/25 - Parser support for the new v1 PSSH layout, including parsing of key IDs. - - https://github.com/google/shaka-player/issues/19 + - https://github.com/shaka-project/shaka-player/issues/19 - The fullscreen polyfill has been updated and expanded. - DashVideoSource refactored to split DASH-independent functionality into the generic StreamVideoSource. This should simplify the implementation of new @@ -4420,26 +4611,26 @@ Maintenance release. Bugfixes: - The enabled flag for text tracks is now preserved when switching tracks. Player.enableTextTrack() is no longer required after selectTextTrack(). - - https://github.com/google/shaka-player/issues/1 + - https://github.com/shaka-project/shaka-player/issues/1 - The documentation for Player methods enableTextTrack, setPreferredLanguage, and getCurrentResolution has been corrected. - - https://github.com/google/shaka-player/issues/3 - - https://github.com/google/shaka-player/issues/4 - - https://github.com/google/shaka-player/issues/6 + - https://github.com/shaka-project/shaka-player/issues/3 + - https://github.com/shaka-project/shaka-player/issues/4 + - https://github.com/shaka-project/shaka-player/issues/6 - The AbrManager class is now correctly destroyed. - - https://github.com/google/shaka-player/issues/5 + - https://github.com/shaka-project/shaka-player/issues/5 - Clearkey support for Chrome 41+ has been fixed. - - https://github.com/google/shaka-player/issues/8 + - https://github.com/shaka-project/shaka-player/issues/8 - A new polyfill has been added to compensate for Chrome 41+'s removal of MediaKeys.isTypeSupported. - - https://github.com/google/shaka-player/issues/7 + - https://github.com/shaka-project/shaka-player/issues/7 - Several unused internal methods have been removed from the codebase. - Fixed a failing assertion in one of the MediaKeys polyfills. - Fixed failing code coverage analysis and related parse errors in several tests. - Fixed support for MPDs with SegmentTemplate@duration and MPD@mediaPresentationDuration, but no Period@duration attribute. - - https://github.com/google/shaka-player/issues/9 + - https://github.com/shaka-project/shaka-player/issues/9 Features: - Tests are now checked for style. @@ -4518,4 +4709,3 @@ Broken Compatibility: ## 0.1b (2014-11-21) Private beta release. - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c219c9624f..ea95ca52b8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,8 +3,8 @@ We'd love to accept your patches and contributions to this project. There are just a few small guidelines you need to follow. -1. File a bug at https://github.com/google/shaka-player/issues (if there isn't - one already). If your patch is going to be large, you should start a +1. File a bug at https://github.com/shaka-project/shaka-player/issues (if there + isn't one already). If your patch is going to be large, you should start a discussion on GitHub first. Leave a comment to let us know that you are working on a PR for the issue. diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a0ae42f25e..2c0f1a0823 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -24,6 +24,7 @@ Aaron Vaage Adrián Gómez Llorente +Agajan Jumakuliyev Aidan Ridley Alex Jones Alvaro Velad Galvan @@ -41,15 +42,19 @@ Chris Fillmore Costel Madalin Grecu Damien Deis Dany L'Hébreux +Dl Dador Donato Borrello Duc Pham +Enson Choy Esteban Dosztal Fadomire François Beaufort Gil Gonen +Giorgio Gamberoni Giuseppe Samela Hichem Taoufik Itay Kinnrot +Isaac Ramirez Jacob Trimble Jason Palmer Jeffrey Swan @@ -62,6 +67,7 @@ John Bowers Jonas Birmé Jono Ward Jozef Chúťka +Jun Hong Chong Leandro Ribeiro Moreira Lucas Gabriel Sánchez Matias Russitto @@ -82,6 +88,7 @@ Percy Tse Peter Nycander Prakash Duggaraju Robert Colantuoni +Robert Galluccio Rohit Makasana Roi Lipman Roksolana Ivanyshyn @@ -107,4 +114,5 @@ Vasanth Polipelli Vignesh Venkatasubramanian Vincent Valot Wayne Morgan -Yohann Connell \ No newline at end of file +Yohann Connell +Raymond Cheng diff --git a/README.md b/README.md index c25e61fbe4..e2b2e22874 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,12 @@ For details on what's coming next, see our [development roadmap](roadmap.md). [offline storage and playback]: https://shaka-player-demo.appspot.com/docs/api/tutorial-offline.html +## Maintained branches + +See [maintained-branches.md](https://github.com/shaka-project/shaka-player/blob/main/maintained-branches.md) +for the up-to-date list of maintained branches of Shaka Player. + + ## Platform and browser support matrix |Browser |Windows |Mac |Linux |Android |iOS >= 12 |ChromeOS|Other| @@ -39,6 +45,8 @@ For details on what's coming next, see our [development roadmap](roadmap.md). |Tizen TV³ | - | - | - | - | - | - |**Y**| |WebOS⁶ | - | - | - | - | - | - |**Y**| |Xbox One | - | - | - | - | - | - |**Y**| +|Playstation 4⁷| - | - | - | - | - | - |**Y**| +|Playstation 5⁷| - | - | - | - | - | - |**Y**| NOTES: - ¹: On macOS, only Safari 12+ is supported. On iOS, only iOS 12+ is @@ -52,7 +60,9 @@ NOTES: - ⁶: These are expected to work, but are community-supported and untested by us. - Official support for LG WebOS TV: - https://github.com/google/shaka-player/issues/1330 + https://github.com/shaka-project/shaka-player/issues/1330 + - ⁷: These are expected to work, but are community-supported and untested by + us. We support iOS 12+ through Apple's native HLS player. We provide the same top-level API, but we just set the video's `src` element to the manifest/media. @@ -65,7 +75,7 @@ features and similar APIs for native apps on iOS. This project uses its own media stack, which allows it to play content that would otherwise not be supported. This supports both DASH and HLS manifests. -[Shaka Player Embedded]: https://github.com/google/shaka-player-embedded +[Shaka Player Embedded]: https://github.com/shaka-project/shaka-player-embedded ## Manifest format support matrix @@ -102,12 +112,12 @@ DASH features supported: DASH features **not** supported: - Xlink with actuate=onRequest - Manifests without any segment info: - https://github.com/google/shaka-player/issues/1088 + https://github.com/shaka-project/shaka-player/issues/1088 - Changing codecs during a presentation (unsupported by MSE) - Multiple trick mode tracks for the same resolution at varying framerates or bitrates - Timescales so large that timestamps cannot be represented as integers in - JavaScript (2^53): https://github.com/google/shaka-player/issues/1667 + JavaScript (2^53): https://github.com/shaka-project/shaka-player/issues/1667 ## HLS features @@ -117,7 +127,7 @@ HLS features supported: - Low-latency streaming with partial segments, preload hints, and delta updates - Discontinuity - ISO-BMFF / MP4 / CMAF support - - MPEG-2 TS support (transmuxing provided by [mux.js][] v5.7.0+, must be + - MPEG-2 TS support (transmuxing provided by [mux.js][] v6.2.0+, must be separately included) - WebVTT and TTML - CEA-608/708 captions @@ -125,10 +135,10 @@ HLS features supported: - Encrypted content with FairPlay (Safari on macOS and iOS 12+ only) HLS features **not** supported: - - Key rotation: https://github.com/google/shaka-player/issues/917 - - I-frame-only playlists: https://github.com/google/shaka-player/issues/742 + - Key rotation: https://github.com/shaka-project/shaka-player/issues/917 + - I-frame-only playlists: https://github.com/shaka-project/shaka-player/issues/742 - Raw AAC, MP3, etc (without an MP4 container): - https://github.com/google/shaka-player/issues/2337 + https://github.com/shaka-project/shaka-player/issues/2337 - Low-latency streaming with blocking playlist reload [mux.js]: https://github.com/videojs/mux.js/releases @@ -148,6 +158,8 @@ HLS features **not** supported: |Tizen TV |**Y** |**Y** | - |untested⁵ | |WebOS⁷ |untested⁷ |untested⁷| - |untested⁷ | |Xbox One | - |**Y** | - | - | +|Playstation 4⁷| - |untested⁷| - |untested⁷ | +|Playstation 5⁷| - |untested⁷| - |untested⁷ | Other DRM systems should work out of the box if they are interoperable and compliant to the EME spec. @@ -188,7 +200,7 @@ Shaka Player supports: SegmentTemplate@index - Not supported in HLS - MPEG-2 TS - - With help from [mux.js][] v5.7.0+, can be played on any browser which + - With help from [mux.js][] v6.2.0+, can be played on any browser which supports MP4 - Can find and parse timestamps to find segment start time in HLS - WebVTT @@ -197,10 +209,10 @@ Shaka Player supports: - Supported in both XML form and embedded in MP4 - CEA-608 - Supported embedded in MP4 - - With help from [mux.js][] v5.7.0+, supported embedded in TS + - With help from [mux.js][] v6.2.0+, supported embedded in TS - CEA-708 - Supported embedded in MP4 - - With help from [mux.js][] v5.7.0+, supported embedded in TS + - With help from [mux.js][] v6.2.0+, supported embedded in TS - SubRip (SRT) - UTF-8 encoding only - LyRiCs (LRC) @@ -228,8 +240,10 @@ attributes. * [Hosted builds on jsDelivr](https://www.jsdelivr.com/package/npm/shaka-player) * [Development roadmap](roadmap.md) * [Announcement list](https://groups.google.com/forum/#!forum/shaka-player-users) - ([join](docs/announcement-list-join-group.png) for release and survey - announcements) + ([join](docs/announcement-list-join-group.png) for infrequent + announcements and surveys) + * Subscribe to releases by following + [instructions from this blog](https://www.jessesquires.com/blog/2020/07/30/github-tip-watching-releases/) ## FAQ ## diff --git a/app-engine/README.md b/app-engine/README.md new file mode 100644 index 0000000000..0c2acbd215 --- /dev/null +++ b/app-engine/README.md @@ -0,0 +1,9 @@ +# Google App Engine Code + +This folder contains source code for the services we run on Google App Engine +(appspot.com). + + - shaka-player-demo: Our hosted demo on https://shaka-player-demo.appspot.com/ + + - demo-version-index: An index of Shaka Player releases and demos, hosted at + https://index-dot-shaka-player-demo.appspot.com/ diff --git a/app-engine/demo-version-index/README.md b/app-engine/demo-version-index/README.md new file mode 100644 index 0000000000..bc760d854d --- /dev/null +++ b/app-engine/demo-version-index/README.md @@ -0,0 +1,14 @@ +# Google App Engine Version Index + +This folder contains everything necessary to host an index of Shaka Player +releases and demos at https://index-dot-shaka-player-demo.appspot.com/ + + - app.yaml: App Engine config file. Defines the runtime (Python 3). + + - main.py: A python service that queries available versions and generates the + index from a template. + + - requirements.txt: Used by App Engine to install the necessary Python server + requirements (Flask, App Engine API). + + - templates/index.html: A Jinja2 template used to generate the index HTML. diff --git a/app-engine/demo-version-index/app.yaml b/app-engine/demo-version-index/app.yaml new file mode 100644 index 0000000000..017d92393c --- /dev/null +++ b/app-engine/demo-version-index/app.yaml @@ -0,0 +1,2 @@ +runtime: python39 +default_expiration: 1s diff --git a/app-engine/demo-version-index/main.py b/app-engine/demo-version-index/main.py new file mode 100644 index 0000000000..fe18d1a0f0 --- /dev/null +++ b/app-engine/demo-version-index/main.py @@ -0,0 +1,162 @@ +# Shaka Player Version Index - Appspot Entrypoint +# Copyright 2022 Google LLC +# SPDX-License-Identifier: Apache-2.0 + +# Generate an index of Shaka Player versions on appspot. + +import collections +import google.appengine.api.modules +import jinja2 +import os +import random +import re + +from flask import Flask, render_template + +DEMO_URL_TEMPLATE = 'https://{0}-dot-shaka-player-demo.appspot.com/' + +# In Google Hosted Libraries +HOSTED_URL_TEMPLATE = 'https://ajax.googleapis.com/ajax/libs/shaka-player/{0}/shaka-player.{1}' + +# Before Google Hosted Libraries, v1 appspot URLs +V1_URL_TEMPLATE = 'https://{0}-dot-shaka-player-demo.appspot.com/shaka-player.{1}' +# Before Google Hosted Libraries, v2 appspot URLs +V2_URL_TEMPLATE = 'https://{0}-dot-shaka-player-demo.appspot.com/dist/shaka-player.{1}' + +def version_to_demo_url(v): + return DEMO_URL_TEMPLATE.format(v.replace('.', '-')) + +def version_to_lib_url(v): + if v == 'nightly': + return V2_URL_TEMPLATE.format(v, 'compiled.js') + elif (version_key(v) == version_key('v1.6.5') or + version_key(v) >= version_key('v2.0.6')): + return HOSTED_URL_TEMPLATE.format(v.replace('v', ''), 'compiled.js') + elif version_key(v) >= version_key('v2.0.0-beta'): + return V2_URL_TEMPLATE.format(v.replace('.', '-'), 'compiled.js') + else: + return V1_URL_TEMPLATE.format(v.replace('.', '-'), 'compiled.js') + +def version_to_ui_lib_url(v): + if v == 'nightly': + return V2_URL_TEMPLATE.format(v, 'ui.js') + elif version_key(v) >= version_key('v2.5.0'): + return HOSTED_URL_TEMPLATE.format(v.replace('v', ''), 'ui.js') + else: + return None + +def version_to_lib_externs_url(v): + if v == 'nightly': + return V2_URL_TEMPLATE.format(v, 'compiled.externs.js') + elif version_key(v) >= version_key('v2.0.6'): + return HOSTED_URL_TEMPLATE.format(v.replace('v', ''), 'compiled.externs.js') + else: + return None + +def version_to_ui_lib_externs_url(v): + if v == 'nightly': + return V2_URL_TEMPLATE.format(v, 'ui.externs.js') + elif version_key(v) >= version_key('v2.5.0'): + return HOSTED_URL_TEMPLATE.format(v.replace('v', ''), 'ui.externs.js') + else: + return None + +def version_to_lib_defs_url(v): + if v == 'nightly': + return V2_URL_TEMPLATE.format(v, 'compiled.d.ts') + elif version_key(v) >= version_key('v3.0.6'): + return HOSTED_URL_TEMPLATE.format(v.replace('v', ''), 'compiled.d.ts') + else: + return None + +def version_to_ui_lib_defs_url(v): + if v == 'nightly': + return V2_URL_TEMPLATE.format(v, 'ui.d.ts') + elif version_key(v) >= version_key('v3.0.6'): + return HOSTED_URL_TEMPLATE.format(v.replace('v', ''), 'ui.d.ts') + else: + return None + +def version_to_metadata(v): + return { + 'version': v, + 'best': False, # Corrected later in another loop + 'demo': version_to_demo_url(v), + 'lib': version_to_lib_url(v), + 'ui_lib': version_to_ui_lib_url(v), + 'lib_externs': version_to_lib_externs_url(v), + 'ui_lib_externs': version_to_ui_lib_externs_url(v), + 'lib_defs': version_to_lib_defs_url(v), + 'ui_lib_defs': version_to_ui_lib_defs_url(v), + } + +def is_release_version(name): + return re.match(r'v\d+-\d+-\d+(?:-.+)?', name) + +def appengine_version_to_package_version(version): + # Replace the first two dashes with dots. More dashes indicate a prerelease + # version, as seen in "v2.0.0-beta3". + return version.replace('-', '.', 2) + +def version_key(version): + if version == 'nightly': + # A false version number for nightly, greater than any actual release + # version. + return [float('inf')] + + assert version[0] == 'v' + main_version, _, suffix = version[1:].partition('-') + if not suffix: + suffix = '}}}' # this puts main releases after prerelease versions + version_tuple = [int(x) for x in main_version.split('.')] + return version_tuple + [suffix] + +def get_appengine_versions(): + if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'): + # NOTE: this doesn't return anything useful in a local dev server. + return google.appengine.api.modules.modules.get_versions() + + # For a local dev server, fake it so we can test sorting. + fake_versions = [ + 'v1-6-0', 'v1-6-1', 'v1-6-2', 'v1-6-3', 'v1-6-4', 'v1-6-5', + 'v2-0-0-beta', 'v2-0-0-beta2', 'v2-0-0-beta3', 'v2-0-0', + 'v2-1-0', 'v2-1-1', 'v2-1-2', + 'v2-2-1', 'v2-2-2-beta', 'v2-2-2-beta2', 'v2-2-2', 'v2-2-9', 'v2-2-10', + ] + random.shuffle(fake_versions) # in-place shuffle + return fake_versions + + +app = Flask(__name__) + +@app.route('/') +def root(): + appengine_versions = get_appengine_versions() + # Filter for release versions only. + appengine_versions = filter(is_release_version, appengine_versions) + + # Now convert from appengine versions (v2-0-0) to package versions (v2.0.0). + versions = list(map(appengine_version_to_package_version, appengine_versions)) + # Now sort, putting prerelease versions ahead of the corresponding release. + versions.sort(key=version_key) + + version_metadata = collections.OrderedDict() + latest_by_branch = {} + for v in versions: + version_metadata[v] = version_to_metadata(v) + + # Because |versions| is already sorted, we can just overwrite the entry + # in the latest_by_branch dictionary. + branch_key = tuple(version_key(v)[0:2]) + latest_by_branch[branch_key] = v + + for v in latest_by_branch.values(): + version_metadata[v]['best'] = True + + # Append nightly rather than filter for it, so that it always appears at the + # end of the list. + version_metadata['nightly'] = version_to_metadata('nightly') + version_metadata['nightly']['best'] = True + + for i in version_metadata.values(): print(i) + return render_template('index.html', versions=version_metadata.values()) diff --git a/app-engine/demo-version-index/requirements.txt b/app-engine/demo-version-index/requirements.txt new file mode 100644 index 0000000000..f1baaf589a --- /dev/null +++ b/app-engine/demo-version-index/requirements.txt @@ -0,0 +1,6 @@ +# Shaka Player Version Index - Appspot Python Runtime Requirements +# Copyright 2022 Google LLC +# SPDX-License-Identifier: Apache-2.0 + +Flask==2.0.3 +appengine-python-standard==0.3.1 diff --git a/app-engine/demo-version-index/templates/index.html b/app-engine/demo-version-index/templates/index.html new file mode 100644 index 0000000000..f11d82eaaf --- /dev/null +++ b/app-engine/demo-version-index/templates/index.html @@ -0,0 +1,114 @@ + + + + Shaka Player Demo - Version Index + + + + +
+ +

Shaka Player release demos on appspot

+ + + + + + {% set best_counter = 0 %} + {% for v in versions %} + {% if v.best %} + + {% set best_counter = best_counter + 1 %} + {% else %} + + {% endif %} + + + + + + + + + + {% endfor %} +
Version
{{ v.version }}demonon-UI library + {% if v.ui_lib %} + UI-enabled library + {% endif %} + + {% if v.lib_externs %} + non-UI externs + {% endif %} + + {% if v.ui_lib_externs %} + UI-enabled externs + {% endif %} + + {% if v.lib_defs %} + non-UI typescript defs + {% endif %} + + {% if v.ui_lib_defs %} + UI-enabled typescript defs + {% endif %} +
+ + diff --git a/app-engine/shaka-player-demo/README.md b/app-engine/shaka-player-demo/README.md new file mode 100644 index 0000000000..0d81732eb1 --- /dev/null +++ b/app-engine/shaka-player-demo/README.md @@ -0,0 +1,18 @@ +# Google App Engine Demo + +This folder contains everything necessary to host our demo on +https://shaka-player-demo.appspot.com/ + + - app.yaml: App Engine config file. Defines cache expiration and how specific + URLs are mapped to specific files. + + - main.py: A catch-all python service to serve any non-static files. This + handles HTTP redirects for the root path (this is the only way to + do HTTP redirects in App Engine) and the poster service (which + returns special poster images on certain days). + + - requirements.txt: Used by App Engine to install the necessary Python server + requirements (Flask). + + - time.txt: A static file used for time sync in the client. Configured with + special response headers for cross-origin access. diff --git a/app-engine/shaka-player-demo/app.yaml b/app-engine/shaka-player-demo/app.yaml new file mode 100644 index 0000000000..e93e519724 --- /dev/null +++ b/app-engine/shaka-player-demo/app.yaml @@ -0,0 +1,61 @@ +# Copyright 2016 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +runtime: python39 +default_expiration: 5m + +handlers: +# A static file used for clock sync in the demo app +- url: /time.txt + static_files: time.txt + upload: time.txt + expiration: 0 + http_headers: + Access-Control-Allow-Origin: "*" + Access-Control-Allow-Headers: "If-Modified-Since,Range,Origin" + Access-Control-Expose-Headers: "Date" + Access-Control-Max-Age: "2592000" + +# These used to exist in the repo, but have been generated server-side for many +# years now. +- url: /assets/poster.jpg + script: auto +- url: /assets/audioOnly.gif + script: auto + +# Serve favicon.ico from the demo folder. +- url: /favicon.ico + secure: always + static_files: demo/favicon.ico + upload: demo/favicon.ico + +# For these folders, serve their indexes. +- url: /docs/api/ + secure: always + static_files: docs/api/index.html + upload: docs/api/index.html +- url: /demo/ + secure: always + static_files: demo/index.html + upload: demo/index.html +- url: /demo/ + secure: always + static_files: demo/index.html + upload: demo/index.html + +# Serve everything else directly. +- url: /(.+) + secure: always + static_files: \1 + upload: .+ diff --git a/app-engine/shaka-player-demo/main.py b/app-engine/shaka-player-demo/main.py new file mode 100644 index 0000000000..97c454550d --- /dev/null +++ b/app-engine/shaka-player-demo/main.py @@ -0,0 +1,95 @@ +# Shaka Player Demo - Appspot Entrypoint +# Copyright 2022 Google LLC +# SPDX-License-Identifier: Apache-2.0 + +# Most of the app is served as static content. Any exceptions go here. + +import datetime +import os + +from flask import Flask, make_response, redirect, request, send_file + + +app = Flask(__name__) + + +# Redirect root requests to /demo. +@app.route('/') +def root(): + return redirect('/demo/', code=302) + + +# A Doodle-like service to change the poster on certain days. +# All posters are chosen based on the current date in PST. + +from posters import VIDEO_POSTERS, VIDEO_DEFAULT, AUDIO_POSTERS, AUDIO_DEFAULT + + +# Timezone info for PST. +# I'm ignoring DST to avoid complicating the code. +class PST(datetime.tzinfo): + def utcoffset(self, dt): + return datetime.timedelta(hours=-8) + + def dst(self, dt): + return datetime.timedelta(0) + + def tzname(self, dt): + return 'PST' + + +def get_poster(poster_map, default_poster): + now = datetime.datetime.now(PST()) + today = (now.month, now.day) + today_with_year = (now.month, now.day, now.year) + midnight = datetime.datetime(now.year, now.month, now.day, tzinfo=PST()) + local_expiration = midnight + datetime.timedelta(days=1) + max_age = (local_expiration - now).total_seconds() + + # For internal debugging and testing of the poster service, we can override + # the date. To set an override, open /assets/poster.jpg and run this in the + # JS console: + # document.cookie="posterdate=10-31" + # To clear an override, run: + # document.cookie="posterdate=" + override = request.cookies.get('posterdate') + if override: + override_tuple = [int(x) for x in override.split('-')] + print('Date override:', repr(override_tuple)) + + if len(override_tuple) == 3: + # Override includes year. + today_with_year = tuple(override_tuple) + today = tuple(override_tuple[0:2]) + elif len(override_tuple) == 2: + # Override does not include year, so add the current year. + today_with_year = tuple(override_tuple + [now.year]) + today = tuple(override_tuple) + else: + # Bad override format. Ignore the year, but add a response header to + # indicate that the override failed. For internal debugging of the + # poster service. + print('Bad date override:', override, file=sys.stderr) + + # Prefer a poster for this specific year. + name = poster_map.get(today_with_year, poster_map.get(today, default_poster)) + path = 'posters/%s' % name + + response = make_response( + send_file(path, last_modified=midnight, max_age=max_age)) + + response.headers['Access-Control-Allow-Origin'] = '*' + response.headers['Access-Control-Allow-Headers'] = 'If-Modified-Since,Range' + response.headers['Access-Control-Expose-Headers'] = 'Date' + response.headers['Access-Control-Max-Age'] = '2592000' + + return response + + +@app.route('/assets/poster.jpg') +def get_video_poster(): + return get_poster(VIDEO_POSTERS, VIDEO_DEFAULT) + +@app.route('/assets/audioOnly.gif') +def get_audio_poster(): + return get_poster(AUDIO_POSTERS, AUDIO_DEFAULT) diff --git a/app-engine/shaka-player-demo/posters.py b/app-engine/shaka-player-demo/posters.py new file mode 100644 index 0000000000..19e49e0834 --- /dev/null +++ b/app-engine/shaka-player-demo/posters.py @@ -0,0 +1,110 @@ +# Shaka Player Demo - Poster Definitions +# Copyright 2022 Google LLC +# SPDX-License-Identifier: Apache-2.0 + +# A Doodle-like service to change the poster on certain days. +# All posters are chosen based on the current date in PST. + +# Month constants to make specific dates easier to read. +JANUARY = 1 +FEBRUARY = 2 +MARCH = 3 +APRIL = 4 +MAY = 5 +JUNE = 6 +JULY = 7 +AUGUST = 8 +SEPTEMBER = 9 +OCTOBER = 10 +NOVEMBER = 11 +DECEMBER = 12 + +# Special posters for certain days. +VIDEO_POSTERS = { + # These are the same every year: + # ===== + (FEBRUARY, 14): 'valentines.png', + (APRIL, 1): 'colorbars.gif', + (APRIL, 5): 'trek.jpg', # "First Contact Day": https://bit.ly/2CSXbxw + (OCTOBER, 31): 'zombie.jpg', + # ===== + + # These birthday posters changed each year: + (DECEMBER, 19, 2015): '1yo.jpg', + (DECEMBER, 19, 2016): '2yo.png', + (DECEMBER, 19, 2017): '3yo.png', + + # After this, the birthday poster shows for a whole week: + (DECEMBER, 17, 2018): '4yo.png', + (DECEMBER, 18, 2018): '4yo.png', + (DECEMBER, 19, 2018): '4yo.png', + (DECEMBER, 20, 2018): '4yo.png', + + (DECEMBER, 19, 2019): '5yo.png', + (DECEMBER, 20, 2019): '5yo.png', + (DECEMBER, 21, 2019): '5yo.png', + (DECEMBER, 22, 2019): '5yo.png', + (DECEMBER, 23, 2019): '5yo.png', + (DECEMBER, 24, 2019): '5yo.png', + (DECEMBER, 25, 2019): '5yo.png', + + (DECEMBER, 19, 2020): '6yo.png', + (DECEMBER, 20, 2020): '6yo.png', + (DECEMBER, 21, 2020): '6yo.png', + (DECEMBER, 22, 2020): '6yo.png', + (DECEMBER, 23, 2020): '6yo.png', + (DECEMBER, 24, 2020): '6yo.png', + (DECEMBER, 25, 2020): '6yo.png', + + (DECEMBER, 19, 2021): '7yo.png', + (DECEMBER, 20, 2021): '7yo.png', + (DECEMBER, 21, 2021): '7yo.png', + (DECEMBER, 22, 2021): '7yo.png', + (DECEMBER, 23, 2021): '7yo.png', + (DECEMBER, 24, 2021): '7yo.png', + (DECEMBER, 25, 2021): '7yo.png', + + (DECEMBER, 19, 2022): '8yo.png', + (DECEMBER, 20, 2022): '8yo.png', + (DECEMBER, 21, 2022): '8yo.png', + (DECEMBER, 22, 2022): '8yo.png', + (DECEMBER, 23, 2022): '8yo.png', + (DECEMBER, 24, 2022): '8yo.png', + (DECEMBER, 25, 2022): '8yo.png', + + (DECEMBER, 19, 2023): '9yo.png', + (DECEMBER, 20, 2023): '9yo.png', + (DECEMBER, 21, 2023): '9yo.png', + (DECEMBER, 22, 2023): '9yo.png', + (DECEMBER, 23, 2023): '9yo.png', + (DECEMBER, 24, 2023): '9yo.png', + (DECEMBER, 25, 2023): '9yo.png', + + (DECEMBER, 19, 2024): '10yo.png', + (DECEMBER, 20, 2024): '10yo.png', + (DECEMBER, 21, 2024): '10yo.png', + (DECEMBER, 22, 2024): '10yo.png', + (DECEMBER, 23, 2024): '10yo.png', + (DECEMBER, 24, 2024): '10yo.png', + (DECEMBER, 25, 2024): '10yo.png', +} + +# The default poster. +VIDEO_DEFAULT = 'standard.png' + +# Special audio-only posters. +AUDIO_POSTERS = { + # http://discordia.wikia.com/wiki/Chaoflux + (FEBRUARY, 19): 'audioRickRoll.gif', + # http://discordia.wikia.com/wiki/Discoflux + (MAY, 3): 'audioRickRoll.gif', + # http://discordia.wikia.com/wiki/Confuflux + (JULY, 15): 'audioRickRoll.gif', + # http://discordia.wikia.com/wiki/Bureflux + (SEPTEMBER, 26): 'audioRickRoll.gif', + # http://discordia.wikia.com/wiki/Afflux + (DECEMBER, 8): 'audioRickRoll.gif', +} + +# The default audio-only poster. +AUDIO_DEFAULT = 'audioOnly.gif' diff --git a/app-engine/shaka-player-demo/posters/10yo.png b/app-engine/shaka-player-demo/posters/10yo.png new file mode 100644 index 0000000000..975eb37b24 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/10yo.png differ diff --git a/app-engine/shaka-player-demo/posters/10yo.xcf b/app-engine/shaka-player-demo/posters/10yo.xcf new file mode 100644 index 0000000000..bd6225b212 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/10yo.xcf differ diff --git a/app-engine/shaka-player-demo/posters/1yo.jpg b/app-engine/shaka-player-demo/posters/1yo.jpg new file mode 100644 index 0000000000..6bd52b8060 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/1yo.jpg differ diff --git a/app-engine/shaka-player-demo/posters/2yo.png b/app-engine/shaka-player-demo/posters/2yo.png new file mode 100644 index 0000000000..f945d6f231 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/2yo.png differ diff --git a/app-engine/shaka-player-demo/posters/2yo.xcf b/app-engine/shaka-player-demo/posters/2yo.xcf new file mode 100644 index 0000000000..dcc9de1aae Binary files /dev/null and b/app-engine/shaka-player-demo/posters/2yo.xcf differ diff --git a/app-engine/shaka-player-demo/posters/3yo.png b/app-engine/shaka-player-demo/posters/3yo.png new file mode 100644 index 0000000000..3de5d2c336 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/3yo.png differ diff --git a/app-engine/shaka-player-demo/posters/3yo.xcf b/app-engine/shaka-player-demo/posters/3yo.xcf new file mode 100644 index 0000000000..8abedc2cab Binary files /dev/null and b/app-engine/shaka-player-demo/posters/3yo.xcf differ diff --git a/app-engine/shaka-player-demo/posters/4yo.png b/app-engine/shaka-player-demo/posters/4yo.png new file mode 100644 index 0000000000..2c3cb07496 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/4yo.png differ diff --git a/app-engine/shaka-player-demo/posters/4yo.xcf b/app-engine/shaka-player-demo/posters/4yo.xcf new file mode 100644 index 0000000000..433594aaf5 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/4yo.xcf differ diff --git a/app-engine/shaka-player-demo/posters/5yo.png b/app-engine/shaka-player-demo/posters/5yo.png new file mode 100644 index 0000000000..d2432bc6df Binary files /dev/null and b/app-engine/shaka-player-demo/posters/5yo.png differ diff --git a/app-engine/shaka-player-demo/posters/5yo.xcf b/app-engine/shaka-player-demo/posters/5yo.xcf new file mode 100644 index 0000000000..efe908ff27 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/5yo.xcf differ diff --git a/app-engine/shaka-player-demo/posters/6yo.png b/app-engine/shaka-player-demo/posters/6yo.png new file mode 100644 index 0000000000..2971548973 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/6yo.png differ diff --git a/app-engine/shaka-player-demo/posters/6yo.xcf b/app-engine/shaka-player-demo/posters/6yo.xcf new file mode 100644 index 0000000000..b1da408b8f Binary files /dev/null and b/app-engine/shaka-player-demo/posters/6yo.xcf differ diff --git a/app-engine/shaka-player-demo/posters/7yo.png b/app-engine/shaka-player-demo/posters/7yo.png new file mode 100644 index 0000000000..7469cb1315 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/7yo.png differ diff --git a/app-engine/shaka-player-demo/posters/7yo.xcf b/app-engine/shaka-player-demo/posters/7yo.xcf new file mode 100644 index 0000000000..2526f10da3 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/7yo.xcf differ diff --git a/app-engine/shaka-player-demo/posters/8yo.png b/app-engine/shaka-player-demo/posters/8yo.png new file mode 100644 index 0000000000..6de3adb5ed Binary files /dev/null and b/app-engine/shaka-player-demo/posters/8yo.png differ diff --git a/app-engine/shaka-player-demo/posters/8yo.xcf b/app-engine/shaka-player-demo/posters/8yo.xcf new file mode 100644 index 0000000000..d6907d71de Binary files /dev/null and b/app-engine/shaka-player-demo/posters/8yo.xcf differ diff --git a/app-engine/shaka-player-demo/posters/9yo.png b/app-engine/shaka-player-demo/posters/9yo.png new file mode 100644 index 0000000000..c731ad82db Binary files /dev/null and b/app-engine/shaka-player-demo/posters/9yo.png differ diff --git a/app-engine/shaka-player-demo/posters/9yo.xcf b/app-engine/shaka-player-demo/posters/9yo.xcf new file mode 100644 index 0000000000..32e086bb26 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/9yo.xcf differ diff --git a/app-engine/shaka-player-demo/posters/audioOnly.gif b/app-engine/shaka-player-demo/posters/audioOnly.gif new file mode 100644 index 0000000000..3ee856a27c Binary files /dev/null and b/app-engine/shaka-player-demo/posters/audioOnly.gif differ diff --git a/app-engine/shaka-player-demo/posters/audioRickRoll.gif b/app-engine/shaka-player-demo/posters/audioRickRoll.gif new file mode 100644 index 0000000000..20b969f9bb Binary files /dev/null and b/app-engine/shaka-player-demo/posters/audioRickRoll.gif differ diff --git a/app-engine/shaka-player-demo/posters/colorbars.gif b/app-engine/shaka-player-demo/posters/colorbars.gif new file mode 100644 index 0000000000..d14b62089a Binary files /dev/null and b/app-engine/shaka-player-demo/posters/colorbars.gif differ diff --git a/app-engine/shaka-player-demo/posters/fireworks.jpg b/app-engine/shaka-player-demo/posters/fireworks.jpg new file mode 100644 index 0000000000..dad18b3994 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/fireworks.jpg differ diff --git a/app-engine/shaka-player-demo/posters/party-hat.png b/app-engine/shaka-player-demo/posters/party-hat.png new file mode 100644 index 0000000000..4e0badce42 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/party-hat.png differ diff --git a/app-engine/shaka-player-demo/posters/sources.txt b/app-engine/shaka-player-demo/posters/sources.txt new file mode 100644 index 0000000000..b4846e42c7 --- /dev/null +++ b/app-engine/shaka-player-demo/posters/sources.txt @@ -0,0 +1,46 @@ +Trek poster image derived from: + https://commons.wikimedia.org/wiki/File:Leonard_Nimoy_by_Gage_Skidmore_2.jpg +Author: + https://commons.wikimedia.org/wiki/User:Gage +License: + Creative Commons Share-Alike 3.0 + http://creativecommons.org/licenses/by-sa/3.0/ + +Zombie poster image derived from: + https://www.flickr.com/photos/ofsmallthings/8055153041 +Author: + https://www.flickr.com/photos/ofsmallthings/ +License: + Creative Commons Share-Alike 2.0 + https://creativecommons.org/licenses/by-sa/2.0/ + +Color bars April Fool's image from: + http://kittypizzadope.tumblr.com/post/66751567701 +Author: + unknown +License: + unknown + +Party hat image from: + https://pixabay.com/en/party-hat-celebration-birthday-42329/ +Author: + unknown +License: + Creative Commons 0 - Public Domain 1.0 + https://creativecommons.org/publicdomain/zero/1.0/deed.en + +Party streamers image from: + https://pixabay.com/en/confetti-streamer-party-carnival-1925258/ +Author: + Unknown +License: + Creative Commons 0 - Public Domain 1.0 + https://creativecommons.org/publicdomain/zero/1.0/deed.en + +Fireworks image from: + https://pixabay.com/illustrations/fireworks-sylvester-pyrotechnics-2248223/ +Author: + https://pixabay.com/users/geralt-9301/ +License: + Simplified Pixabay License + https://pixabay.com/service/license/ diff --git a/app-engine/shaka-player-demo/posters/standard.png b/app-engine/shaka-player-demo/posters/standard.png new file mode 100644 index 0000000000..be3300e0eb Binary files /dev/null and b/app-engine/shaka-player-demo/posters/standard.png differ diff --git a/app-engine/shaka-player-demo/posters/trek.jpg b/app-engine/shaka-player-demo/posters/trek.jpg new file mode 100644 index 0000000000..bb75d4d7dd Binary files /dev/null and b/app-engine/shaka-player-demo/posters/trek.jpg differ diff --git a/app-engine/shaka-player-demo/posters/valentines.png b/app-engine/shaka-player-demo/posters/valentines.png new file mode 100644 index 0000000000..9349bdc8c3 Binary files /dev/null and b/app-engine/shaka-player-demo/posters/valentines.png differ diff --git a/app-engine/shaka-player-demo/posters/zombie.jpg b/app-engine/shaka-player-demo/posters/zombie.jpg new file mode 100644 index 0000000000..7f5627231c Binary files /dev/null and b/app-engine/shaka-player-demo/posters/zombie.jpg differ diff --git a/app-engine/shaka-player-demo/requirements.txt b/app-engine/shaka-player-demo/requirements.txt new file mode 100644 index 0000000000..21e169e84e --- /dev/null +++ b/app-engine/shaka-player-demo/requirements.txt @@ -0,0 +1,5 @@ +# Shaka Player Demo - Appspot Python Runtime Requirements +# Copyright 2022 Google LLC +# SPDX-License-Identifier: Apache-2.0 + +Flask==2.0.3 diff --git a/app-engine/shaka-player-demo/time.txt b/app-engine/shaka-player-demo/time.txt new file mode 100644 index 0000000000..5a922560cc --- /dev/null +++ b/app-engine/shaka-player-demo/time.txt @@ -0,0 +1 @@ +Time is an illusion; lunchtime doubly so. diff --git a/build/README.md b/build/README.md index 01758bf8d9..dd15d305de 100644 --- a/build/README.md +++ b/build/README.md @@ -80,8 +80,8 @@ directly: * `--external` will run integration tests against external assets. This will take an extremely long time to run, and requires a fast and reliable internet connection. -* `--drm` will run integration tests against DRM license servers. This will - require a connection to the open internet. +* `--no-drm` will skip integration tests against DRM license servers. Not + specifying this flag requires a connection to the open internet. * `--uncompiled` will run integration tests using the uncompiled library instead of the compiled version. * `--random` will run the tests in a random order to isolate test dependencies. @@ -99,7 +99,7 @@ will choose a defaults based on your platform. However, if you pass any arguments to `test.py`, it will not choose browsers and you *must* pass `--browsers`. -[lib/debug/log.js]: https://github.com/google/shaka-player/blob/master/lib/debug/log.js +[lib/debug/log.js]: https://github.com/shaka-project/shaka-player/blob/main/lib/debug/log.js ## Stats diff --git a/build/checkversion.py b/build/checkversion.py index 4bc770dc2e..4a86e6104f 100755 --- a/build/checkversion.py +++ b/build/checkversion.py @@ -37,7 +37,7 @@ def changelog_version(): """Gets the version of the library from the CHANGELOG.""" path = os.path.join(shakaBuildHelpers.get_source_base(), 'CHANGELOG.md') with shakaBuildHelpers.open_file(path, 'r') as f: - match = re.search(r'## (.*) \(', f.read()) + match = re.search(r'^###? \[(.*?)\]\(', f.read(), re.MULTILINE) return match.group(1) if match else '' diff --git a/build/conformance.textproto b/build/conformance.textproto index 4bd8235025..6413d27096 100644 --- a/build/conformance.textproto +++ b/build/conformance.textproto @@ -306,3 +306,38 @@ requirement: { 'instead.' whitelist_regexp: 'lib/net/http_fetch_plugin.js' } + +# Disallow the use of generators, which are a major performance issue. See +# https://github.com/shaka-project/shaka-player/issues/4062#issuecomment-1079428268 +requirement: { + type: BANNED_CODE_PATTERN + value: + "/** @param {*} x */ " + "function *template(x) { yield x; }" + error_message: + "ES6 generators are a major performance issue! Find another solution. " + "See also https://bit.ly/3wAsoj5" + whitelist_regexp: "node_modules/" +} + +# Disallow the general use of TextDecoder and TextEncoder, which is not +# available on all supported platforms. +requirement: { + type: BANNED_NAME_CALL + value: "TextDecoder" + value: "window.TextDecoder" + error_message: + "Using \"TextDecoder\" directly is not allowed; " + "because is not supported on Xbox and old browsers." + whitelist_regexp: "lib/util/string_utils.js" +} + +requirement: { + type: BANNED_NAME_CALL + value: "TextEncoder" + value: "window.TextEncoder" + error_message: + "Using \"TextEncoder\" directly is not allowed; " + "because is not supported on Xbox and old browsers." + whitelist_regexp: "lib/util/string_utils.js" +} diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile new file mode 100644 index 0000000000..a833ed7703 --- /dev/null +++ b/build/docker/Dockerfile @@ -0,0 +1,20 @@ +# Alpine was chosen by providing a node container less than 100mb +FROM node:17.7.1-alpine3.15 + +WORKDIR /usr/src/app + +# Install dependencies +RUN apk add --update --no-cache openssh git python3 openjdk11-jre-headless +RUN ln -sf python3 /usr/bin/python + +# Change to non-root user +USER node + +# Prevent proxy timeout error (very slow connections) +RUN npm config set fetch-retry-mintimeout 20000 +RUN npm config set fetch-retry-maxtimeout 120000 +RUN npm config rm proxy +RUN npm config rm https-proxy + +# Run compilation +CMD [ "python", "build/all.py" ] diff --git a/build/docker/docker-compose.yml b/build/docker/docker-compose.yml new file mode 100644 index 0000000000..68984ac8ce --- /dev/null +++ b/build/docker/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3' + +services: + shaka-compiler: + build: ./ + container_name: shaka-compiler + volumes: + - ../../:/usr/src/app + +# Others services can be added here diff --git a/build/gendeps.py b/build/gendeps.py index 22f02bac84..0b77d2e611 100755 --- a/build/gendeps.py +++ b/build/gendeps.py @@ -24,17 +24,6 @@ import shakaBuildHelpers -# The relative path in each of these is relative to Closure's base.js, which -# lives at node_modules/google-closure-library/closure/goog/base.js -deps_args = [ - '--root_with_prefix=lib ../../../../lib', - '--root_with_prefix=ui ../../../../ui', - '--root_with_prefix=third_party ../../../../third_party', - '--root_with_prefix=dist ../../../../dist', - '--root_with_prefix=demo ../../../../demo', -] - - def main(_): """Generates the uncompiled dependencies files.""" # Update node modules if needed. @@ -50,13 +39,27 @@ def main(_): except OSError: pass os.chdir(base) - deps_writer = os.path.join( - 'node_modules', 'google-closure-library', - 'closure', 'bin', 'build', 'depswriter.py') + + make_deps = shakaBuildHelpers.get_node_binary( + 'google-closure-deps', 'closure-make-deps') try: - cmd_line = [sys.executable or 'python', deps_writer] + deps_args + cmd_line = make_deps + [ + # Folders to search for sources using goog.require/goog.provide + '-r', 'demo', 'lib', 'ui', 'third_party', + # Individual files to add to those + '-f', 'dist/locales.js', + # The path to the folder containing the Closure library's base.js + '--closure-path', 'node_modules/google-closure-library/closure/goog', + ] deps = shakaBuildHelpers.execute_get_output(cmd_line) + + # This command doesn't use exit codes for some stupid reason. + # TODO: Remove when https://github.com/google/closure-library/issues/1162 + # is resolved and we have upgraded. + if len(deps) == 0: + return 1 + with open(os.path.join(base, 'dist', 'deps.js'), 'wb') as f: f.write(deps) return 0 diff --git a/build/generateExterns.js b/build/generateExterns.js index 02d8c959e4..5460180e0a 100755 --- a/build/generateExterns.js +++ b/build/generateExterns.js @@ -818,7 +818,7 @@ function main(args) { // foo.bar.baz, foo and foo.bar will both need to be declared first. const namespaces = new Set(); const namespaceDeclarations = []; - for (const name of names) { + for (const name of Array.from(names).sort()) { // Add the full name "foo.bar.baz" and its prototype ahead of time. We // should never generate these as namespaces. namespaces.add(name); diff --git a/build/shaka-lab.yaml b/build/shaka-lab.yaml new file mode 100644 index 0000000000..e8c071ffa5 --- /dev/null +++ b/build/shaka-lab.yaml @@ -0,0 +1,163 @@ +# Selenium grid config for the Shaka lab. This is the source of truth for the +# browsers and devices in the Shaka lab at Google. + +# For syntax and general information, see docs/selenium-grid-config.md + + +# A set of variables to contain repeated configurations which can then be +# referenced below. The syntax for the variable is "name: &name", which +# generates an "anchor" with the given name. Later, you can inject the +# contents of the variable with "*name". +vars: + firefox_config: &firefox_config + moz:firefoxOptions: + # Override Firefox default preferences in the temporary profile created + # for each test run. + prefs: + # Overrides Selenium's explicit default setting, to allow Firefox to + # install the Widevine CDM on demand. + media.gmp-manager.updateEnabled: true + # Overrides Firefox's Linux-specific default setting to disable DRM. + media.eme.enabled: true + + minimum_chrome_args: &minimum_chrome_args + # On Chrome m59+ we can test EME on platforms with pop-up prompts, such as + # Android and ChromeOS. Note that this flag does not take a port number + # (domain vs origin). + # This flag requires setting --user-data-dir as well, however, webdriver + # already takes care of that for us (except on Android). + - "--unsafely-allow-protected-media-identifier-for-domain=karma.shakalab.rocks" + # Normally, Chrome disallows autoplaying videos in many cases. Enable it + # for testing. + - "--autoplay-policy=no-user-gesture-required" + + minimum_chrome_android_args: &minimum_chrome_android_args + # There is no way in YAML to natively merge arrays, so we start by + # duplicating the flags from minimum_chrome_args above. + - "--unsafely-allow-protected-media-identifier-for-domain=karma.shakalab.rocks" + - "--autoplay-policy=no-user-gesture-required" + # On Android we must set --user-data-dir. WebDriver does not do it for + # us as it does on other platforms. Without --user-data-dir, + # --unsafely-allow... does not work. + - "--user-data-dir=/data/data/com.android.chrome/cache" + + minimum_chromeos_args: &minimum_chromeos_args + # There is no way in YAML to natively merge arrays, so we start by + # duplicating the flags from minimum_chrome_args above. + - "--unsafely-allow-protected-media-identifier-for-domain=karma.shakalab.rocks" + - "--autoplay-policy=no-user-gesture-required" + # Allow remote attestation even though the device may be in dev mode. This + # is critical for testing involving L1 content licenses. + - "--allow-ra-in-dev-mode" + + chrome_config: &chrome_config + goog:chromeOptions: + args: *minimum_chrome_args + + # Instruct chromedriver not to disable component updater. The + # component updater must run in order for the Widevine CDM to be + # available when using a new user-data-dir. + # TODO(http://crbug.com/613581): Remove once Chrome bug is fixed. + excludeSwitches: + - "disable-component-update" + + chrome_android_config: &chrome_android_config + goog:chromeOptions: + args: *minimum_chrome_android_args + + # Once the new session request reaches chromedriver, it will take + # the androidPackage option as a request to start Chrome through + # adb on the tethered device. + androidPackage: com.android.chrome + + chromeos_config: &chromeos_config + # Pass these client-specified arguments through generic-webdriver-server. + # This array will be appended after "--" instead of being set through one + # specific flag. For example, with ["--foo", "--bar=baz"] in the args, + # this would generate a command like: + # chromeos-webdriver-server.js -- --foo --bar=baz + # Those parameters will be passed on to Chrome instead of used by the + # WebDriver server. + generic:args: *minimum_chromeos_args + + +ChromeMac: + browser: chrome + os: Mac + extra_config: *chrome_config + +FirefoxMac: + browser: firefox + os: Mac + extra_config: *firefox_config + +Safari: + browser: safari + os: Mac + +SafariTP: + # TODO(b/152646297): Safari TP not launching as of Safari 15.4 + disabled: true + browser: safari + os: Mac + extra_config: + safari.options: + technologyPreview: true + +ChromeWindows: + browser: chrome + os: Windows + extra_config: *chrome_config + +FirefoxWindows: + browser: firefox + os: Windows + extra_config: *firefox_config + +IE11: + # IE11 support has been removed from the latest release branch. + disabled: true + browser: internet explorer + os: Windows + extra_config: + se:ieOptions: + # The zoom setting must be checked, or screenshot tests will be way off! + ignoreZoomSetting: false + ignoreProtectedModeSettings: true + +Edge: + browser: msedge + os: Windows + +ChromeLinux: + browser: chrome + os: Linux + extra_config: *chrome_config + +FirefoxLinux: + browser: firefox + os: Linux + extra_config: *firefox_config + +ChromeAndroid: + browser: chrome + os: Android + extra_config: *chrome_android_config + +Chromecast: + browser: chromecast + +Chromebook: + # TODO(b/145916766): Persistent license tests failing + disabled: true + browser: chromeos + version: Pixelbook + extra_config: *chromeos_config + +Tizen: + # TODO(joeyparrish): Get Tizen TV mounted in the lab and connected + disabled: true + browser: tizen + +XboxOne: + browser: xboxone diff --git a/build/shakaBuildHelpers.py b/build/shakaBuildHelpers.py index a8aeffea33..63a26bffb5 100644 --- a/build/shakaBuildHelpers.py +++ b/build/shakaBuildHelpers.py @@ -63,23 +63,6 @@ def _modules_need_update(): return False - -def _parse_version(version): - """Converts the given string version to a tuple of numbers.""" - # Handle any prerelease or build metadata, such as -beta or -g1234 - if '-' in version: - version, trailer = version.split('-') - else: - # Versions without a trailer should sort later than those with a trailer. - # For example, 2.5.0-beta comes before 2.5.0. - # To accomplish this, we synthesize a trailer which sorts later than any - # _reasonable_ alphanumeric version trailer would. These characters have a - # high value in ASCII. - trailer = '}}}' - numeric_parts = [int(i) for i in version.split('.')] - return tuple(numeric_parts + [trailer]) - - def get_source_base(): """Returns the absolute path to the source code base.""" return os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) @@ -338,21 +321,13 @@ def update_node_modules(): base = cygwin_safe_path(get_source_base()) - # Check the version of npm. - version = execute_get_output(['npm', '-v']).decode('utf8') - - if _parse_version(version) < _parse_version('5.0.0'): - logging.error('npm version is too old, please upgrade. e.g.:') - logging.error(' npm install -g npm') - return False - # Update the modules. # Actually change directories instead of using npm --prefix. - # See npm/npm#17027 and google/shaka-player#776 for more details. + # See npm/npm#17027 and shaka-project/shaka-player#776 for more details. with InDir(base): - # npm update seems to be the wrong thing in npm v5, so use install. - # See google/shaka-player#854 for more details. - execute_get_output(['npm', 'install']) + # npm ci uses package-lock.json to get a stable, reproducible set of + # packages installed. + execute_get_output(['npm', 'ci']) # Update the timestamp of the file that tracks when we last updated. open(_node_modules_last_update_path(), 'wb').close() diff --git a/build/test.py b/build/test.py index 405c068016..047f40eb96 100755 --- a/build/test.py +++ b/build/test.py @@ -19,13 +19,22 @@ import argparse import json import logging +import os import platform +import re import build import gendeps import shakaBuildHelpers +# Set a higher default for capture_timeout in grid mode. If the test gets +# queued by the grid, this may prevent Karma from killing the session while +# waiting. +LOCAL_CAPTURE_TIMEOUT = 1 * 60 * 1000 # 1m in ms +SELENIUM_CAPTURE_TIMEOUT = 10 * 60 * 1000 # 10m in ms + + class _HandleMixedListsAction(argparse.Action): '''Action to handle comma-separated and space-separated lists. @@ -59,6 +68,21 @@ def __call__(self, parser, namespace, new_argument, option_string=None): merged[key] = value setattr(namespace, self.dest, merged) +def _KeyValueValidator(argument): + '''To validate the option has a key value pair format. + + When you forget to provide the option in key=value format, + it reminds you by throwing an error before executing any tests. + ''' + + keyValuePair = [str for str in argument.split('=') if str != '']; + + if len(keyValuePair) == 2: + return argument + else: + raise argparse.ArgumentTypeError( + 'Received %s but expecting format of key=value' % argument + ) def _IntGreaterThanZero(x): i = int(x) @@ -80,11 +104,13 @@ def _GetDefaultBrowsers(): return ['Chrome','Edge','Firefox','Safari'] if shakaBuildHelpers.is_windows() or shakaBuildHelpers.is_cygwin(): - return ['Chrome','Edge','Firefox','IE'] + return ['Chrome','Edge','Firefox'] raise Error('Unrecognized system: %s' % platform.uname()[0]) +# TODO(joeyparrish): When internal tools using this Launcher system are removed, +# simplify this whole mess. class Launcher: """A stateful object for parsing arguments and running Karma commands. @@ -111,7 +137,7 @@ def __init__(self, description): running_commands = self.parser.add_argument_group( 'Running', - 'These commands affect how tests are ran.') + 'These commands affect how tests are run.') logging_commands = self.parser.add_argument_group( 'Logging', 'These commands affect what gets logged and how the logs will appear.') @@ -183,8 +209,14 @@ def __init__(self, description): action='store_true') running_commands.add_argument( '--drm', - help='Run tests that require DRM.', + help='Run tests that require DRM (on by default).', + default=True, action='store_true') + running_commands.add_argument( + '--no-drm', '--nodrm', + help='Skip tests that require DRM (opposite of --drm).', + dest='drm', + action='store_false') running_commands.add_argument( '--quarantined', help='Run tests that have been quarantined.', @@ -215,9 +247,9 @@ def __init__(self, description): running_commands.add_argument( '--capture-timeout', help='Kill the browser if it does not capture in the given time [ms]. ' - '(default %(default)s)', - type=int, - default=60000) + '(default {} for local, {} for Selenium)'.format( + LOCAL_CAPTURE_TIMEOUT, SELENIUM_CAPTURE_TIMEOUT), + type=int) running_commands.add_argument( '--delay-tests', help='Insert an artificial delay between tests, in seconds. ' @@ -229,6 +261,11 @@ def __init__(self, description): default=None, const=2, nargs='?') + running_commands.add_argument( + '--spec-hide-passed', + help='If provided, configure the spec reporter to hide passing tests.', + action='store_true', + default=False) running_commands.add_argument( '--test-custom-asset', help='Run asset playback tests on a custom manifest URI.', @@ -239,7 +276,7 @@ def __init__(self, description): help='Configure license servers for the custom asset playback test. ' 'May be specified multiple times to configure multiple key ' 'systems.', - type=str, + type=_KeyValueValidator, metavar='KEY_SYSTEM_ID=LICENSE_SERVER_URI', action=_HandleKeyValuePairs) running_commands.add_argument( @@ -253,6 +290,13 @@ def __init__(self, description): help="Don't use Babel to convert ES6 to ES5.", dest='babel', action='store_false') + running_commands.add_argument( + '--grid-address', + help='Address (hostname:port) of a Selenium grid to run tests on.') + running_commands.add_argument( + '--grid-config', + help='Path to a yaml config defining Selenium grid browsers. ' + '(See docs/selenium-grid-config.md)') logging_commands.add_argument( @@ -308,6 +352,17 @@ def __init__(self, description): help='Specify the hostname to be used when capturing browsers. This ' 'defaults to localhost.', default='localhost') + networking_commands.add_argument( + '--tls-key', + help='Specify a TLS key to serve tests over HTTPs.') + networking_commands.add_argument( + '--tls-cert', + help='Specify a TLS cert to serve tests over HTTPs.') + networking_commands.add_argument( + '--lets-encrypt-folder', + help="Specify a Let's Encrypt folder to search for the latest key and " + "cert, to serve tests over HTTPs. This overrides --tls-key and " + "--tls-cert.") pre_launch_commands.add_argument( @@ -340,27 +395,36 @@ def ParseArguments(self, args): pass_through = [ 'auto_watch', 'babel', + 'browsers', 'capture_timeout', 'colors', + 'delay_tests', 'drm', + 'exclude_browsers', 'external', 'filter', + 'grid_address', + 'grid_config', 'hostname', 'html_coverage_report', 'log_level', 'logging', + 'no_browsers', 'port', 'quarantined', 'quick', 'random', + 'reporters', 'report_slower_than', 'seed', 'single_run', - 'uncompiled', - 'delay_tests', + 'spec_hide_passed', 'test_custom_asset', 'test_custom_license_server', 'test_timeout', + 'tls_key', + 'tls_cert', + 'uncompiled', ] # Check each value before setting it to avoid passing null values. @@ -369,8 +433,33 @@ def ParseArguments(self, args): if value is not None: self.karma_config[name] = value - if self.parsed_args.reporters: - self.karma_config['reporters'] = self.parsed_args.reporters + if not self.parsed_args.capture_timeout: + # The default for capture_timeout depends on whether or not we are using + # a Selenium grid. + if self.parsed_args.grid_config: + self.karma_config['capture_timeout'] = SELENIUM_CAPTURE_TIMEOUT + else: + self.karma_config['capture_timeout'] = LOCAL_CAPTURE_TIMEOUT + + self._HandleLetsEncryptConfig() + + def _HandleLetsEncryptConfig(self): + folder = self.parsed_args.lets_encrypt_folder + if not folder: + return + + max_serial_number = 0 + # Go through the contents of the folder to find the latest key & cert. + for file_name in os.listdir(folder): + matches = re.match(r'(?:privkey|fullchain)(\d+).pem', file_name) + if matches: + serial_number = int(matches.group(1)) + max_serial_number = max(max_serial_number, serial_number) + + self.karma_config['tls_key'] = os.path.join( + folder, 'privkey{}.pem'.format(max_serial_number)) + self.karma_config['tls_cert'] = os.path.join( + folder, 'fullchain{}.pem'.format(max_serial_number)) def ResolveBrowsers(self, default_browsers): """Decide what browsers we should use. @@ -379,25 +468,7 @@ def ResolveBrowsers(self, default_browsers): additional logic to derive a browser list from the parsed arguments. """ assert(default_browsers and len(default_browsers)) - - if self.parsed_args.no_browsers: - logging.warning('In this mode browsers must manually connect to karma.') - elif self.parsed_args.browsers: - self.karma_config['browsers'] = self.parsed_args.browsers - else: - logging.warning('Using default browsers: %s', default_browsers) - self.karma_config['browsers'] = default_browsers - - # Check if there are any browsers that we should remove - if self.parsed_args.exclude_browsers and 'browsers' in self.karma_config: - all_browsers = set(self.karma_config['browsers']) - bad_browsers = set(self.parsed_args.exclude_browsers) - if bad_browsers - all_browsers: - raise RuntimeError('Attempting to exclude unselected browsers: %s' % - ','.join(bad_browsers - all_browsers)) - - good_browsers = all_browsers - bad_browsers - self.karma_config['browsers'] = list(good_browsers) + self.karma_config['default_browsers'] = default_browsers def RunCommand(self, karma_conf): """Build a command and send it to Karma for execution. diff --git a/build/wrapper.template.js b/build/wrapper.template.js index 136dbd8711..9e84801948 100644 --- a/build/wrapper.template.js +++ b/build/wrapper.template.js @@ -6,7 +6,7 @@ (function() { // This is "window" in browsers and "global" in nodejs. - // See https://github.com/google/shaka-player/issues/1445 + // See https://github.com/shaka-project/shaka-player/issues/1445 var innerGlobal = typeof window != 'undefined' ? window : global; // This is where our library exports things to. It is "this" in the wrapped @@ -18,7 +18,7 @@ // $jscomp.global, which will be "window", or "global", or "this", depending // on circumstances. // See https://github.com/google/closure-compiler/issues/2957 and - // https://github.com/google/shaka-player/issues/1455#issuecomment-393250035 + // https://github.com/shaka-project/shaka-player/issues/1455#issuecomment-393250035 // We provide "global" for use by Closure, and "window" for use by the Shaka // library itself. Both point to "innerGlobal" above. diff --git a/demo/TengwarTelcontar.woff2 b/demo/TengwarTelcontar.woff2 new file mode 100644 index 0000000000..62404f98ea Binary files /dev/null and b/demo/TengwarTelcontar.woff2 differ diff --git a/demo/asset_card.js b/demo/asset_card.js index 5eee45806f..dbe71173d5 100644 --- a/demo/asset_card.js +++ b/demo/asset_card.js @@ -4,11 +4,10 @@ * SPDX-License-Identifier: Apache-2.0 */ - goog.provide('shakaDemo.AssetCard'); - goog.require('goog.asserts'); +goog.require('shakaAssets'); goog.require('shakaDemo.MessageIds'); goog.require('shakaDemo.Tooltips'); goog.requireType('ShakaDemoAssetInfo'); diff --git a/demo/cast_receiver/index.html b/demo/cast_receiver/index.html index 74e9520f24..e7454d2aca 100644 --- a/demo/cast_receiver/index.html +++ b/demo/cast_receiver/index.html @@ -63,7 +63,7 @@ -
+
diff --git a/demo/cast_receiver/receiver_app.css b/demo/cast_receiver/receiver_app.css index 2bf14f21c7..4a53c7ab20 100644 --- a/demo/cast_receiver/receiver_app.css +++ b/demo/cast_receiver/receiver_app.css @@ -4,7 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -/* Experimentation has revealed that unless html, body, and videoContainer are +/* Experimentation has revealed that unless html, body, and video-container are * width and height 100%, video can force all its parents to grow larger than * window.innerHeight, causing things to be cut off for some content. */ @@ -25,7 +25,7 @@ body { color: white; } -#videoContainer { +#video-container { width: 100%; height: 100%; } @@ -83,29 +83,29 @@ body:after { height: 0; overflow: hidden; z-index: -1; - content: url(idle1.jpg) url(idle2.jpg) url(idle3.jpg); + content: url("idle1.jpg") url("idle2.jpg") url("idle3.jpg"); } @keyframes bg-change { - 0% { background-image: url('idle1.jpg'); padding-left: 0; } + 0% { background-image: url("idle1.jpg"); padding-left: 0; } - 32% { background-image: url('idle1.jpg'); padding-left: 0; } + 32% { background-image: url("idle1.jpg"); padding-left: 0; } - 34% { background-image: url('idle2.jpg'); padding-left: 0; } + 34% { background-image: url("idle2.jpg"); padding-left: 0; } - 49% { background-image: url('idle2.jpg'); padding-left: 0; } + 49% { background-image: url("idle2.jpg"); padding-left: 0; } - 50% { background-image: url('idle2.jpg'); padding-left: 400px; } + 50% { background-image: url("idle2.jpg"); padding-left: 400px; } - 65% { background-image: url('idle2.jpg'); padding-left: 400px; } + 65% { background-image: url("idle2.jpg"); padding-left: 400px; } - 67% { background-image: url('idle3.jpg'); padding-left: 400px; } + 67% { background-image: url("idle3.jpg"); padding-left: 400px; } - 87% { background-image: url('idle3.jpg'); padding-left: 400px; } + 87% { background-image: url("idle3.jpg"); padding-left: 400px; } - 88% { background-image: url('idle3.jpg'); padding-left: 0; } + 88% { background-image: url("idle3.jpg"); padding-left: 0; } - 98% { background-image: url('idle3.jpg'); padding-left: 0; } + 98% { background-image: url("idle3.jpg"); padding-left: 0; } - 100% { background-image: url('idle1.jpg'); padding-left: 0; } + 100% { background-image: url("idle1.jpg"); padding-left: 0; } } diff --git a/demo/common/assets.js b/demo/common/assets.js index 743e7ca245..fdee95d8c5 100644 --- a/demo/common/assets.js +++ b/demo/common/assets.js @@ -13,6 +13,8 @@ goog.require('ShakaDemoAssetInfo'); goog.require('shakaDemo.MessageIds'); +goog.provide('shakaAssets'); + // Types and enums {{{ /** @@ -78,7 +80,7 @@ shakaAssets.identifierForKeySystem = (keySystem) => { const KeySystem = shakaAssets.KeySystem; switch (keySystem) { case KeySystem.CLEAR_KEY: return 'org.w3.clearkey'; - case KeySystem.FAIRPLAY: return 'com.apple.fps.1_0'; + case KeySystem.FAIRPLAY: return 'com.apple.fps'; case KeySystem.PLAYREADY: return 'com.microsoft.playready'; case KeySystem.WIDEVINE: return 'com.widevine.alpha'; default: return 'no drm protection'; @@ -499,7 +501,7 @@ shakaAssets.testAssets = [ .addFeature(shakaAssets.Feature.MP4) .addFeature(shakaAssets.Feature.SUBTITLES) .addFeature(shakaAssets.Feature.LIVE) - .setIMAAssetKey('_lDu24IaSYaYAMEfixipNQ'), + .setIMAAssetKey('PSzZMzAkSXCmlJOWDmRj8Q'), new ShakaDemoAssetInfo( /* name= */ 'Tears of Steel (multicodec, surround + stereo)', /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png', diff --git a/demo/config.js b/demo/config.js index e4f5556ea3..7da66bcddd 100644 --- a/demo/config.js +++ b/demo/config.js @@ -11,7 +11,6 @@ goog.require('goog.asserts'); goog.require('shakaDemo.BoolInput'); goog.require('shakaDemo.DatalistInput'); goog.require('shakaDemo.InputContainer'); -goog.require('shakaDemo.Main'); goog.require('shakaDemo.MessageIds'); goog.require('shakaDemo.NumberInput'); goog.require('shakaDemo.SelectInput'); diff --git a/demo/custom.js b/demo/custom.js index 7ce29cb795..99a742a6d3 100644 --- a/demo/custom.js +++ b/demo/custom.js @@ -12,7 +12,6 @@ goog.require('ShakaDemoAssetInfo'); goog.require('shakaDemo.AssetCard'); goog.require('shakaDemo.Input'); goog.require('shakaDemo.InputContainer'); -goog.require('shakaDemo.Main'); goog.require('shakaDemo.MessageIds'); goog.require('shakaDemo.TextInput'); diff --git a/demo/customWarning.txt b/demo/customWarning.txt index 68d6071589..34c99ffef1 100644 --- a/demo/customWarning.txt +++ b/demo/customWarning.txt @@ -4,5 +4,5 @@ of the asset you were playing at the time you pressed the bug report button. We have detected that you were playing a custom asset. If this asset's URL is confidential, you might instead want to fill out an issue template manually: -https://github.com/google/shaka-player/issues/new/choose ---> \ No newline at end of file +https://github.com/shaka-project/shaka-player/issues/new/choose +--> diff --git a/demo/demo.less b/demo/demo.less index e4fd529f92..c6a6f654d6 100644 --- a/demo/demo.less +++ b/demo/demo.less @@ -4,6 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ +/* stylelint-disable selector-class-pattern -- MDL classes can't be changed */ + // Import the MDL styles with the desired color scheme. @import (css, inline) "../node_modules/material-design-lite/dist/material.indigo-blue.min.css"; @import (css, inline) "../node_modules/dialog-polyfill/dialog-polyfill.css"; @@ -15,7 +17,7 @@ @drawer-width: 550px; @mdl-footer-link-color: #9e9e9e; /* copied from MDL stylesheet */ -@mdl-button-color: rgb(63,81,181); /* copied from MDL stylesheet */ +@mdl-button-color: rgb(63 81 181); /* copied from MDL stylesheet */ @progress-circle-size: 45px; @progress-circle-thickness: 5px; @@ -24,7 +26,7 @@ * here we override the font family for the MDL class. Without this, the menu * on the left side of the screen has no icon. */ .material-icons { - font-family: 'Material Icons Round'; + font-family: "Material Icons Round"; } /* Conflicting styles between the icons font & the MDL buttons caused some @@ -71,14 +73,22 @@ main.mdl-layout__content { /* Give the button a round background, meant to look like the play button. */ border-radius: 50%; - width: 32px; color: #000; - background: rgba(255, 255, 255, 0.85); + background: rgba(255 255 255 / 85%); } html, body { /* Ensure everything has a consistent font. */ - font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-family: Roboto-Regular, Roboto, sans-serif, TengwarTelcontar; +} + +// This font supports the Sindarin (sjn) translation. +@font-face { + font-family: TengwarTelcontar; + // This could be served from demo/ (uncompiled) or dist (compiled). + src: url("../demo/TengwarTelcontar.woff2") format("woff2"); + font-weight: normal; + font-style: normal; } /* Change the default opacity of the ripple container, to get around an iOS bug. @@ -171,7 +181,7 @@ html, body { background-color: @error-color; color: white; position: relative; - padding: 0 0; + padding: 0; top: 0; right: 1em; float: right; @@ -203,56 +213,56 @@ html, body { /* features */ &[icon="high_definition"] { - background-image: data-uri('icons/custom_high_definition.svg'); + background-image: data-uri("icons/custom_high_definition.svg"); } &[icon="ultra_high_definition"] { - background-image: data-uri('icons/custom_ultra_high_definition.svg'); + background-image: data-uri("icons/custom_ultra_high_definition.svg"); } &[icon="subtitles"] { - background-image: data-uri('icons/baseline-subtitles-24px.svg'); + background-image: data-uri("icons/baseline-subtitles-24px.svg"); } &[icon="closed_caption"] { - background-image: data-uri('icons/baseline-closed_caption-24px.svg'); + background-image: data-uri("icons/baseline-closed_caption-24px.svg"); } &[icon="live"] { - background-image: data-uri('icons/baseline-live_tv-24px.svg'); + background-image: data-uri("icons/baseline-live_tv-24px.svg"); } &[icon="trick_mode"] { - background-image: data-uri('icons/baseline-fast_forward-24px.svg'); + background-image: data-uri("icons/baseline-fast_forward-24px.svg"); } &[icon="surround_sound"] { - background-image: data-uri('icons/baseline-surround_sound-24px.svg'); + background-image: data-uri("icons/baseline-surround_sound-24px.svg"); } &[icon="multiple_languages"] { - background-image: data-uri('icons/baseline-language-24px.svg'); + background-image: data-uri("icons/baseline-language-24px.svg"); } &[icon="ad"] { - background-image: data-uri('icons/custom_ad.svg'); + background-image: data-uri("icons/custom_ad.svg"); } &[icon="audio_only"] { - background-image: data-uri('icons/baseline-audiotrack-24px.svg'); + background-image: data-uri("icons/baseline-audiotrack-24px.svg"); } /* key systems */ &[icon="widevine"] { - background-image: data-uri('icons/custom_widevine.svg'); + background-image: data-uri("icons/custom_widevine.svg"); } &[icon="clear_key"] { - background-image: data-uri('icons/custom_clear_key.svg'); + background-image: data-uri("icons/custom_clear_key.svg"); } &[icon="playready"] { - background-image: data-uri('icons/custom_playready.svg'); + background-image: data-uri("icons/custom_playready.svg"); } } diff --git a/demo/demo_uncompiled.js b/demo/demo_uncompiled.js index b4cf5da887..f64f649439 100644 --- a/demo/demo_uncompiled.js +++ b/demo/demo_uncompiled.js @@ -4,20 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -goog.require('shakaDemo.AssetCard'); -goog.require('shakaDemo.CloseButton'); goog.require('shakaDemo.Config'); goog.require('shakaDemo.Custom'); -goog.require('shakaDemo.Utils'); goog.require('shakaDemo.Front'); -goog.require('shakaDemo.BoolInput'); -goog.require('shakaDemo.DatalistInput'); -goog.require('shakaDemo.Input'); -goog.require('shakaDemo.MessageIds'); -goog.require('shakaDemo.NumberInput'); -goog.require('shakaDemo.SelectInput'); -goog.require('shakaDemo.TextInput'); -goog.require('shakaDemo.InputContainer'); -goog.require('shakaDemo.Main'); goog.require('shakaDemo.Search'); -goog.require('shakaDemo.Tooltips'); +goog.require('shakaDemo.Main'); diff --git a/demo/index.html b/demo/index.html index 649f342339..c9e15bb3c0 100644 --- a/demo/index.html +++ b/demo/index.html @@ -50,8 +50,6 @@ - - @@ -141,7 +139,7 @@

  • -
  • +
  • diff --git a/demo/main.js b/demo/main.js index 8e0a5c48c8..db7ac5faac 100644 --- a/demo/main.js +++ b/demo/main.js @@ -164,7 +164,7 @@ shakaDemo.Main = class { case shaka.ui.Overlay.FailReasonCode.NO_BROWSER_SUPPORT: message = this.getLocalizedString( shakaDemo.MessageIds.FAILURE_NO_BROWSER_SUPPORT); - href = 'https://github.com/google/shaka-player#' + + href = 'https://github.com/shaka-project/shaka-player#' + 'platform-and-browser-support-matrix'; break; case shaka.ui.Overlay.FailReasonCode.PLAYER_FAILED_TO_LOAD: @@ -289,7 +289,7 @@ shakaDemo.Main = class { // Navigate to the github issue opening interface, with the // partially-filled template as a preset body. - let url = 'https://github.com/google/shaka-player/issues/new?'; + let url = 'https://github.com/shaka-project/shaka-player/issues/new?'; url += 'body=' + encodeURIComponent(text); // Open in another tab. window.open(url, '_blank'); @@ -1227,9 +1227,6 @@ shakaDemo.Main = class { // The currently-selected asset changed, so update asset cards. this.dispatchEventWithName_('shaka-main-selected-asset-changed'); - await this.drmConfiguration_(asset); - this.controls_.getCastProxy().setAppData({'asset': asset}); - // Enable the correct set of controls before loading. // The video container influences the TextDisplayer used. if (this.nativeControlsEnabled_) { @@ -1244,6 +1241,9 @@ shakaDemo.Main = class { this.player_.setVideoContainer(this.container_); } + await this.drmConfiguration_(asset); + this.controls_.getCastProxy().setAppData({'asset': asset}); + // Finally, the asset can be loaded. let manifestUri = asset.manifestUri; // If we have an offline copy, use that. If the offlineUri field is null, @@ -1608,7 +1608,7 @@ shakaDemo.Main = class { /** * Sets the "version-string" divs to a version string. - * For example, "v2.5.4-master (uncompiled)". + * For example, "v2.5.4-main (uncompiled)". * @private */ setUpVersionStrings_() { diff --git a/dist/controls.css b/dist/controls.css index 86facdb342..04cdefb178 100644 --- a/dist/controls.css +++ b/dist/controls.css @@ -3,7 +3,7 @@ * Copyright 2016 Google LLC * SPDX-License-Identifier: Apache-2.0 */ -.shaka-hidden{display:none!important}.shaka-video-container{position:relative;top:0;left:0;display:flex}.shaka-video-container .material-icons-round{font-family:'Material Icons Round';font-size:24px}.shaka-video-container *{font-family:Roboto-Regular,Roboto,sans-serif}.shaka-video-container:fullscreen{width:100%;height:100%;background-color:#000}.shaka-video-container:fullscreen .shaka-text-container{font-size:4.4vmin}.shaka-video-container:-webkit-full-screen{width:100%;height:100%;background-color:#000}.shaka-video-container:-webkit-full-screen .shaka-text-container{font-size:4.4vmin}.shaka-video-container:-moz-full-screen{width:100%;height:100%;background-color:#000}.shaka-video-container:-moz-full-screen .shaka-text-container{font-size:4.4vmin}.shaka-video-container:-ms-fullscreen{width:100%;height:100%;background-color:#000}.shaka-video-container:-ms-fullscreen .shaka-text-container{font-size:4.4vmin}.shaka-controls-container{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:0;width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;z-index:1}.shaka-video-container:not([shaka-controls=true]) .shaka-controls-container{display:none}.shaka-controls-container *{flex-shrink:0}.shaka-controls-container[casting=true] .shaka-fullscreen-button{display:none}.shaka-bottom-controls{width:96%;padding:0;padding-bottom:2.5%;z-index:1}.shaka-controls-button-panel{padding:0;margin:0;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;overflow:hidden;min-width:48px;font-size:12px;font-weight:400;font-style:normal;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;opacity:0;transition:opacity cubic-bezier(.4,0,.6,1) .6s}.shaka-controls-container[casting=true] .shaka-controls-button-panel,.shaka-controls-container[shown=true] .shaka-controls-button-panel{opacity:1}.shaka-controls-button-panel>*{color:#fff;height:32px;line-height:.5;margin:1px 6px;padding:0;background:0 0;border:0;cursor:pointer}.shaka-controls-button-panel .shaka-overflow-menu-only{display:none}.shaka-play-button-container{margin:0;width:100%;height:100%;flex-shrink:1;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center}.shaka-scrim-container{margin:0;width:100%;height:100%;flex-shrink:1;position:absolute;left:0;right:0;top:0;bottom:0;opacity:0;transition:opacity cubic-bezier(.4,0,.6,1) .6s;background:linear-gradient(to top,#000 0,rgba(0,0,0,0) 15%)}.shaka-controls-container[casting=true] .shaka-scrim-container,.shaka-controls-container[shown=true] .shaka-scrim-container{opacity:1}.shaka-text-container{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;bottom:0;width:100%;min-width:48px;transition:bottom cubic-bezier(.4,0,.6,1) .1s;transition-delay:.5s}.shaka-text-container span:not(.shaka-text-wrapper){display:inline;font-size:20px;line-height:1.4;background-color:rgba(0,0,0,.8);color:#fff}.shaka-text-container span.shaka-text-wrapper{display:inline;background:0 0}.shaka-controls-container[shown=true]~.shaka-text-container{bottom:15%;transition-delay:0s}.shaka-spinner-container{position:absolute;left:0;right:0;top:0;bottom:0;width:100%;height:100%;flex-shrink:1;display:flex;justify-content:center;align-items:center}.shaka-video-container:not([shaka-controls=true]) .shaka-spinner-container{display:none}.shaka-spinner{position:relative;top:0;left:0;margin:0;box-sizing:border-box;padding:7.8%;width:0;height:0;filter:drop-shadow(0 0 2px rgba(255, 255, 255, .5))}.shaka-play-button{box-sizing:border-box;padding:7.5%;width:0;height:0;margin:0;border-radius:50%;box-shadow:rgba(0,0,0,.1) 0 0 20px 0;border:none;background-size:50%;background-repeat:no-repeat;background-position:center center;background-color:rgba(255,255,255,.9);opacity:0;transition:opacity cubic-bezier(.4,0,.6,1) .6s}.shaka-controls-container[casting=true] .shaka-play-button,.shaka-controls-container[shown=true] .shaka-play-button{opacity:1}.shaka-play-button[icon=play]{background-image:url(data:image/svg+xml,%3Csvg%20fill%3D%22%23000000%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M8%205v14l11-7z%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%0A%3C%2Fsvg%3E)}.shaka-play-button[icon=pause]{background-image:url(data:image/svg+xml,%3Csvg%20fill%3D%22%23000000%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M6%2019h4V5H6v14zm8-14v14h4V5h-4z%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%0A%3C%2Fsvg%3E)}.shaka-current-time{font-size:14px;color:#fff;height:auto;cursor:pointer}.shaka-current-time[disabled]{background-color:transparent;color:#fff;cursor:default}.shaka-controls-container button:focus,.shaka-controls-container input:focus{outline:1px solid Highlight}.shaka-controls-container button:-moz-focus-inner,.shaka-controls-container input:-moz-focus-outer{outline:0;border:0}.shaka-controls-container:not(.shaka-keyboard-navigation) button:focus,.shaka-controls-container:not(.shaka-keyboard-navigation) input:focus{outline:0}.shaka-range-container{position:relative;top:0;left:0;margin:4px 6px;height:4px;border-radius:4px;background:#fff}.shaka-volume-bar-container{width:100px}.shaka-range-element{-webkit-appearance:none;background:0 0;position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:0;width:100%;height:100%;height:12px;top:-4px;z-index:1}.shaka-range-element::-webkit-slider-runnable-track{width:100%;height:12px;background:0 0;color:transparent;border:none}.shaka-range-element::-webkit-slider-thumb{-webkit-appearance:none;border:none;border-radius:12px;height:12px;width:12px;background:#fff}.shaka-range-element::-moz-range-track{width:100%;height:12px;background:0 0;color:transparent;border:none}.shaka-range-element::-moz-range-thumb{-webkit-appearance:none;border:none;border-radius:12px;height:12px;width:12px;background:#fff}.shaka-seek-bar-container{opacity:0;transition:opacity cubic-bezier(.4,0,.6,1) .6s}.shaka-controls-container[casting=true] .shaka-seek-bar-container,.shaka-controls-container[shown=true] .shaka-seek-bar-container{opacity:1}.shaka-ad-markers{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:0;width:100%;height:100%}/*! +.shaka-hidden{display:none!important}.shaka-video-container{position:relative;top:0;left:0;display:flex}.shaka-video-container .material-icons-round{font-family:"Material Icons Round";font-size:24px}.shaka-video-container *{font-family:Roboto-Regular,Roboto,sans-serif,TengwarTelcontar}.shaka-video-container:fullscreen{width:100%;height:100%;background-color:#000}.shaka-video-container:fullscreen .shaka-text-container{font-size:4.4vmin}.shaka-video-container:-webkit-full-screen{width:100%;height:100%;background-color:#000}.shaka-video-container:-webkit-full-screen .shaka-text-container{font-size:4.4vmin}.shaka-video-container:-moz-full-screen{width:100%;height:100%;background-color:#000}.shaka-video-container:-moz-full-screen .shaka-text-container{font-size:4.4vmin}.shaka-video-container:-ms-fullscreen{width:100%;height:100%;background-color:#000}.shaka-video-container:-ms-fullscreen .shaka-text-container{font-size:4.4vmin}.shaka-controls-container{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:0;width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;z-index:1}.shaka-video-container:not([shaka-controls=true]) .shaka-controls-container{display:none}.shaka-controls-container *{flex-shrink:0}.shaka-controls-container[casting=true] .shaka-fullscreen-button{display:none}.shaka-bottom-controls{width:96%;padding:0;padding-bottom:2.5%;z-index:1}.shaka-controls-button-panel{padding:0;margin:0;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;overflow:hidden;min-width:48px;font-size:12px;font-weight:400;font-style:normal;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s}.shaka-controls-container[casting=true] .shaka-controls-button-panel,.shaka-controls-container[shown=true] .shaka-controls-button-panel{opacity:1}.shaka-controls-button-panel>*{color:#fff;height:32px;line-height:.5;margin:1px;padding:0 5px;background:0 0;border:0;cursor:pointer}.shaka-controls-button-panel .shaka-overflow-menu-only{display:none}.shaka-play-button-container{margin:0;width:100%;height:100%;flex-shrink:1;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center}.shaka-scrim-container{margin:0;width:100%;height:100%;flex-shrink:1;position:absolute;left:0;right:0;top:0;bottom:0;opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s;background:linear-gradient(to top,#000 0,transparent 15%)}.shaka-controls-container[casting=true] .shaka-scrim-container,.shaka-controls-container[shown=true] .shaka-scrim-container{opacity:1}.shaka-text-container{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;bottom:0;width:100%;min-width:48px;transition:bottom cubic-bezier(.4, 0, .6, 1) .1s;transition-delay:0.5s;font-size:20px;line-height:1.4;color:#fff}.shaka-text-container span.shaka-text-wrapper{display:inline;background:0 0}.shaka-controls-container[shown=true]~.shaka-text-container{bottom:15%;transition-delay:0s}.shaka-spinner-container{position:absolute;left:0;right:0;top:0;bottom:0;width:100%;height:100%;flex-shrink:1;display:flex;justify-content:center;align-items:center}.shaka-video-container:not([shaka-controls=true]) .shaka-spinner-container{display:none}.shaka-spinner{position:relative;top:0;left:0;margin:0;box-sizing:border-box;padding:calc(15.6% / 2);width:0;height:0;filter:drop-shadow(0 0 2px rgba(255 255 255 / 50%))}.shaka-play-button{box-sizing:border-box;padding:calc(15% / 2);width:0;height:0;margin:0;border-radius:50%;box-shadow:rgba(0 0 0 / 10%) 0 0 20px 0;border:none;background-size:50%;background-repeat:no-repeat;background-position:center center;background-color:rgba(255 255 255 / 90%);opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s}.shaka-controls-container[casting=true] .shaka-play-button,.shaka-controls-container[shown=true] .shaka-play-button{opacity:1}.shaka-play-button[icon=play]{background-image:url("data:image/svg+xml,%3Csvg%20fill%3D%22%23000000%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M8%205v14l11-7z%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%0A%3C%2Fsvg%3E")}.shaka-play-button[icon=pause]{background-image:url("data:image/svg+xml,%3Csvg%20fill%3D%22%23000000%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M6%2019h4V5H6v14zm8-14v14h4V5h-4z%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%0A%3C%2Fsvg%3E")}.shaka-current-time{font-size:14px;color:#fff;cursor:pointer}.shaka-current-time[disabled]{background-color:transparent;color:#fff;cursor:default}.shaka-controls-container button:focus,.shaka-controls-container input:focus{outline:1px solid Highlight}.shaka-controls-container button:-moz-focus-inner,.shaka-controls-container input:-moz-focus-outer{outline:0;border:0}.shaka-controls-container:not(.shaka-keyboard-navigation) button:focus,.shaka-controls-container:not(.shaka-keyboard-navigation) input:focus{outline:0}.shaka-range-container{position:relative;top:0;left:0;margin:calc((12px - 4px)/ 2) 6px;height:4px;border-radius:4px;background:#fff}.shaka-volume-bar-container{width:100px;padding:0}.shaka-range-element{-webkit-appearance:none;background:0 0;position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:0;width:100%;height:100%;height:12px;top:calc((4px - 12px)/ 2);z-index:1}.shaka-range-element::-webkit-slider-runnable-track{width:100%;cursor:pointer;height:12px;background:0 0;color:transparent;border:none}.shaka-range-element::-webkit-slider-thumb{-webkit-appearance:none;border:none;border-radius:12px;height:12px;width:12px;background:#fff}.shaka-range-element::-moz-range-track{width:100%;cursor:pointer;height:12px;background:0 0;color:transparent;border:none}.shaka-range-element::-moz-range-thumb{-webkit-appearance:none;border:none;border-radius:12px;height:12px;width:12px;background:#fff}.shaka-seek-bar-container{opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s}.shaka-controls-container[casting=true] .shaka-seek-bar-container,.shaka-controls-container[shown=true] .shaka-seek-bar-container{opacity:1}.shaka-ad-markers{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:0;width:100%;height:100%}/*! * @license * The SVG/CSS buffering spinner is based on http://codepen.io/jczimm/pen/vEBpoL * Some local modifications have been made. @@ -27,4 +27,4 @@ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. - */.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,.4);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-captions-on{color:#000}.shaka-captions-off{color:grey}.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 6px}.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:-2%;display:flex;flex-direction:row;margin:0}.shaka-skip-ad-button{padding:5px 15px;background:rgba(0,0,0,.7);border:none;cursor:pointer}.shaka-skip-ad-button:disabled{background:rgba(0,0,0,.3)}.shaka-skip-ad-counter{padding:5px 5px;background:rgba(0,0,0,.7);margin:0}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/roboto/v29/KFOmCnqEu92Fr1Mu4mxP.ttf) format('truetype')}@font-face{font-family:'Material Icons Round';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsround/v94/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmM.otf) format('opentype')}.material-icons-round{font-family:'Material Icons Round';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr}/*# sourceMappingURL=controls.css.map */ \ No newline at end of file + */.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-captions-on{color:#000}.shaka-captions-off{color:grey}.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}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxP.ttf) format('truetype')}@font-face{font-family:'Material Icons Round';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsround/v106/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmM.otf) format('opentype')}.material-icons-round{font-family:'Material Icons Round';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr}/*# sourceMappingURL=controls.css.map */ \ No newline at end of file diff --git a/dist/controls.css.map b/dist/controls.css.map index 4fd3a0fcb5..334c4eac4d 100644 --- a/dist/controls.css.map +++ b/dist/controls.css.map @@ -1 +1 @@ -{"version":3,"sources":["../ui/less/general.less","$stdin","../ui/less/containers.less","../ui/less/buttons.less","../ui/less/range_elements.less","../ui/less/spinner.less","../ui/less/other_elements.less","../ui/less/overflow_menu.less","../ui/less/ad_controls.less","../ui/https:/fonts.googleapis.com/css?family=Roboto","../ui/https:/fonts.googleapis.com/icon?family=Material+Icons+Round"],"names":[],"mappings":"AAqBA,cCNE,QDSA,eEZF,uBDwBE,SDgBA,SCPA,IDYA,EACA,KAAA,ECRA,QCjCA,KAGA,6CACE,YAAA,uBACA,UAAA,KAIF,yBACE,YAAA,eAAA,OAAA,WAsBkB,kCFrBpB,MAAA,KACA,OAAA,KEWA,iBAAA,KAEA,wDDiCA,UC7BE,QAIkB,2CFtBpB,MAAA,KACA,OAAA,KEWA,iBAAA,KAEA,iED4CA,UCxCE,QAKkB,wCFvBpB,MAAA,KACA,OAAA,KEWA,iBAAA,KAEA,8DDuDA,UCnDE,QAMkB,sCFxBpB,MAAA,KACA,OAAA,KEWA,iBAAA,KAEA,4DDkEA,UC9DE,QAoBJ,0BD2DE,SDtDA,SAGA,IAAA,EACA,KAAA,EACA,MAAA,EACA,OAAA,EACA,OAAA,EACA,QAAA,EAnDA,MAAA,KACA,OAAA,KE2CA,WAAA,WAGA,QAAA,KAGA,eAAA,OAGA,gBAAA,SAGA,YAAA,ODsEA,QC9DA,EF+BoD,4EAzGpD,QAAA,KEsEA,4BFUA,YAAA,EEFE,iEF9EF,QAAA,KEsFF,uBACE,MAAA,IACA,QAAA,EACA,eAAA,KDsEA,QC/DA,EAMF,6BAEE,QAAA,EACA,OAAA,EAGA,QAAA,KACA,eAAA,IAGA,gBAAA,SAGA,YAAA,OAGA,SAAA,OACA,UAAA,KDgEA,UC5DA,KACA,YAAA,IACA,WAAA,OFpIA,YAAA,KACA,oBAAA,KACA,iBAAA,KACA,gBAAA,KA+FA,QAAA,EAGA,WAAA,QAAA,wBAAA,IAK0C,qEADF,mEAEtC,QAAA,EEkCA,+BAEA,MAAA,KAGA,OAAA,KAGA,YAAA,GFzHF,OAAA,IAAA,IE8HE,QAAA,EDqEF,WCjEE,IACA,OAAA,EACA,OAAA,QAKyB,uDAC3B,QAAA,KAMF,6BDiEE,OC9DA,EF9JA,MAAA,KACA,OAAA,KA2EA,YAAA,ECsJA,SDtKA,SACA,KAAA,EACA,MAAA,EACA,IAAA,EACA,OAAA,EEoGA,QAAA,KACA,gBAAA,OACA,YAAA,OAGF,uBACE,OAAA,EF1KA,MAAA,KACA,OAAA,KA2EA,YAAA,ECwKA,SDxLA,SACA,KAAA,EACA,MAAA,EACA,IAAA,EACA,OAAA,EAiBA,QAAA,EAGA,WAAA,QAAA,wBAAA,IC6KA,WChFA,iDFxF0C,+DADF,6DAEtC,QAAA,EE0FJ,sBDsFE,SD9MA,SACA,KAAA,EACA,MAAA,EACA,IAAA,EACA,OAAA,ECkNA,eCxFA,KAGA,OAAA,EACA,MAAA,KACA,UAAA,KD2FA,WCnFmB,OAAnB,wBAAA,IACA,iBAAA,IAGQ,oDACN,QAAA,OACA,UAAA,KACA,YAAA,IACA,iBAAA,eACA,MAAA,KAGE,8CACF,QAAA,OACA,WAAA,IAIoC,4DDuFtC,OCpFA,IDuFA,iBCnFA,GAIF,yBDqFE,SD7PA,SACA,KAAA,EACA,MAAA,EACA,IAAA,EACA,OAAA,EAhEA,MAAA,KACA,OAAA,KEwOA,YAAA,EACA,QAAA,KACA,gBAAA,OACA,YAAA,OF7IoD,2EAzGpD,QAAA,KE2PF,eD6FE,SDtTA,SCkUA,ID7TA,EACA,KAAA,EE4NA,OAAA,EACA,WAAA,WACA,QAAA,KACA,MAAA,EACA,OAAA,EDsGA,OClGA,6CC3QF,mBFyXE,WEjXA,WACA,QAAA,KACA,MAAA,EACA,OAAA,EFyXA,OErXA,EAGA,cAAA,IAGA,WAAA,eAAA,EAAA,EAAA,KAAA,EAGA,OAAA,KFqXA,gBEhXA,IACA,kBAAA,UACA,oBAAA,OAAA,OAGA,iBAAA,qBHwDA,QAAA,EAGA,WAAA,QAAA,wBAAA,IAK0C,2DADF,yDAEtC,QAAA,EGzDD,8BACC,iBAAkB,4UAGnB,+BACC,iBAAkB,8VAQtB,oBACE,UAAA,KACA,MAAA,KFwXA,OEpXA,KACA,OAAA,QAEC,8BFuXD,iBE7bA,YACA,MAAA,KACA,OAAA,QA2EM,uCAAa,sCF6XnB,QE1XE,IAAA,MAAA,UAKI,kDAAwB,iDAC5B,QAAA,EACA,OAAA,EAQI,uEAAa,sEACjB,QAAA,ECsBJ,uBHwYE,SDvdA,SCgeA,ID3dA,EACA,KAAA,EIjBA,OAAA,IAAA,IAGA,OAAA,IAGA,cAAA,IAGA,WAAA,KAqFF,4BACE,MAAA,MAGF,qBA9CE,mBAAA,KACA,WAAA,IH4cA,SDneA,SAGA,IAAA,EACA,KAAA,EACA,MAAA,EACA,OAAA,EACA,OAAA,EACA,QAAA,EAnDA,MAAA,KACA,OAAA,KC+hBA,OGtdA,KH0dA,IGtdA,KHydA,QGrdA,EAGC,oDAxDD,MAAA,KHmhBA,OG9gBA,KHkhBA,WG9gBA,IACA,MAAA,YACA,OAAA,KAiDC,2CA1CD,mBAAA,KH8gBA,OG1gBA,KAGA,cAAA,KACA,OAAA,KACA,MAAA,KAGA,WAAA,KAmCC,uCAjED,MAAA,KH6iBA,OGxiBA,KH4iBA,WGxiBA,IACA,MAAA,YACA,OAAA,KA0DC,uCAnDD,mBAAA,KHwiBA,OGpiBA,KAGA,cAAA,KACA,OAAA,KACA,MAAA,KAGA,WAAA,KAwDF,0BJlCE,QAAA,EAGA,WAAA,QAAA,wBAAA,IAK0C,kEADF,gEAEtC,QAAA,EI6BJ,kBHufE,SDnkBA,SAGA,IAAA,EACA,KAAA,EACA,MAAA,EACA,OAAA,EACA,OAAA,EACA,QAAA,EAnDA,MAAA,KACA,OAAA;;;;;;;;;;;;;;;;;;;;;;;;AKDF,mBJ8pBE,SDnnBA,SAGA,IAAA,EACA,KAAA,EACA,MAAA,EACA,OAAA,EK1CA,UAAA,OAAA,GAAA,OAAA,SACA,iBAAA,OAAA,OAGA,MAAA,KACA,OAAA,KACA,OAAA,EACA,QAAA,EAIF,oBACE,OAAA,QACA,iBAAA,GAAA,IACA,kBAAA,EAGA,UAAA,KAAA,GAAA,YAAA,SAGA,eAAA,MAIF,kBACE,KACE,UAAW,gBAKf,gBACE,GACE,iBAAA,EAAA,IACA,kBAAA,EAGF,IACE,iBAAA,GAAA,IACA,kBAAA,MAGF,KACE,iBAAA,GAAA,IACA,kBAAA,QCrEJ,cAEE,OAAA,QN4FA,YAAA,EMtFA,UAAA,EL+uBA,OK3uBA,ECdF,qBACA,qBNqwBE,WMlwBA,OACA,WAAA,KAGA,YAAA,OAGA,WAAA,KACA,WAAA,EAAA,IAAA,IAAA,EAAA,eACA,cAAA,IACA,WAAA,MACA,UAAA,MPsFA,QAAA,EAGA,WAAA,QAAA,wBAAA,ICgrBA,QMlwBA,KACA,eAAA,OAGA,SAAA,SACA,QAAA,EACA,MAAA,KACA,OAAA,KPgF0C,6DAAA,6DADF,2DAAA,2DAEtC,QAAA,EO9EF,4BAAA,4BACE,UAAA,KACA,WAAA,IACA,MAAA,KACA,OAAA,KACA,WAAA,KACA,QAAA,MAAA,IAGA,QAAA,KACA,YAAA,OAQA,OAAA,QALC,kCAAA,kCACC,WAAA,QAOF,kCAAA,kCACE,OAAA,QAG0B,6DAAA,6DAC1B,WAAA,QAMJ,uBAAA,uBAEE,aAAA,KACA,cAAA,KAKD,wCAAA,wCAEC,OAAA,KAUiB,0BACnB,WAAA,KAKF,6BACE,SAAA,SAGA,QAAA,KACA,eAAA,OAMF,8BAEE,MAAA,gBAKA,0BAEE,YAAA,KAQF,oCAEE,YAAA,EAIF,iCAEE,cAAA,KAKJ,iBAEE,KAAA,KAIF,mBACE,MAAA,KAIF,oBACE,MAAA,KC1IuB,0CAEvB,eAAA,KAGA,iEACE,eAAA,KAIJ,gCAAiC,gCP84B/B,SD70BA,SACA,KAAA,EACA,MAAA,EACA,IAAA,EACA,OAAA,EQ/DA,mFAAA,mFPs5BA,OOl5BI,IAKN,gCRVE,MAAA,KACA,OAAA,KA2EA,YAAA,EQ9DK,sDACH,eAAA,KAIJ,mBAGE,QAAA,KACA,eAAA,IACA,QAAA,EP+4BA,eO34BA,GRmEoD,qEAzGpD,QAAA,KQwCA,0BAAQ,uBACN,MAAA,KACA,UAAA,QAGK,mDRxBP,OAAA,IAAA,IQ6BF,kBAAmB,mBRnCjB,QAAA,KACA,gBAAA,SACA,eAAA,OCo7BA,YO78BA,IAAA,IAAA,IAAA,KA+DF,yBPm5BE,SOh5BA,SPm5BA,MO34BA,IACA,QAAA,KACA,eAAA,IACA,OAAA,EAGF,sBACE,QAAA,IAAA,KACA,WAAA,eACA,OAAA,KAMA,OAAA,QAJC,+BACC,WAAA,eAMJ,uBACE,QAAA,IAAA,IACA,WAAA,eACA,OAAA,ECzGF,WACE,YAAa,OACb,WAAY,OACZ,YAAa,IACb,IAAK,qEAAoE,mBCJ3E,WACE,YAAa,uBACb,WAAY,OACZ,YAAa,IACb,IAAK,iGAAgG,mBAGvG,sBACE,YAAa,uBACb,YAAa,IACb,WAAY,OACZ,UAAW,KACX,YAAa,EACb,eAAgB,OAChB,eAAgB,KAChB,QAAS,aACT,YAAa,OACb,UAAW,OACX,UAAW"} \ No newline at end of file +{"version":3,"sources":["$stdin"],"names":[],"mappings":"AAaA,cAGE,QAAS,eAkBX,uBASE,SAAU,SAIV,IAAK,EACL,KAAM,EAGN,QAAS,KAIX,6CACE,YAAa,uBACb,UAAW,KAEb,yBACE,YAAa,cAAc,CAAE,MAAM,CAAE,UAAU,CAAE,iBAQnD,kCACE,MAAO,KACP,OAAQ,KACR,iBAAkB,KAEpB,wDAIE,UAAW,QAEb,2CACE,MAAO,KACP,OAAQ,KACR,iBAAkB,KAEpB,iEAIE,UAAW,QAEb,wCACE,MAAO,KACP,OAAQ,KACR,iBAAkB,KAEpB,8DAIE,UAAW,QAEb,sCACE,MAAO,KACP,OAAQ,KACR,iBAAkB,KAEpB,4DAIE,UAAW,QAab,0BASE,SAAU,SAEV,IAAK,EACL,KAAM,EACN,MAAO,EACP,OAAQ,EACR,OAAQ,EACR,QAAS,EACT,MAAO,KACP,OAAQ,KAER,WAAY,WAEZ,QAAS,KAET,eAAgB,OAEhB,gBAAiB,SAEjB,YAAa,OAKb,QAAS,EAEX,4EACE,QAAS,KAEX,4BACE,YAAa,EAKf,iEACE,QAAS,KAIX,uBACE,MAAO,IACP,QAAS,EACT,eAAgB,KAMhB,QAAS,EAKX,6BAEE,QAAS,EACT,OAAQ,EAER,QAAS,KACT,eAAgB,IAEhB,gBAAiB,SAEjB,YAAa,OAEb,SAAU,OACV,UAAW,KAGX,UAAW,KACX,YAAa,IACb,WAAY,OAEZ,YAAa,KACb,oBAAqB,KACrB,iBAAkB,KAClB,gBAAiB,KAEjB,QAAS,EAET,WAAY,QAAQ,2BAA6B,IAOnD,qEADA,mEAEE,QAAS,EAEX,+BAEE,MAAO,KAEP,OAAQ,KAER,YAAa,GAEb,OAAQ,IACR,QAAS,EAAE,IAGX,WAAY,IACZ,OAAQ,EACR,OAAQ,QAGV,uDACE,QAAS,KAKX,6BAGE,OAAQ,EACR,MAAO,KACP,OAAQ,KACR,YAAa,EAIb,SAAU,SACV,KAAM,EACN,MAAO,EACP,IAAK,EACL,OAAQ,EAER,QAAS,KACT,gBAAiB,OACjB,YAAa,OAEf,uBACE,OAAQ,EACR,MAAO,KACP,OAAQ,KACR,YAAa,EAIb,SAAU,SACV,KAAM,EACN,MAAO,EACP,IAAK,EACL,OAAQ,EAER,QAAS,EAET,WAAY,QAAQ,2BAA6B,IAIjD,WAAY,+CAGd,+DADA,6DAEE,QAAS,EAEX,sBAIE,SAAU,SACV,KAAM,EACN,MAAO,EACP,IAAK,EACL,OAAQ,EAIR,eAAgB,KAEhB,OAAQ,EACR,MAAO,KACP,UAAW,KAOX,WAAY,OAAO,2BAA6B,IAChD,iBAAkB,KAElB,UAAW,KACX,YAAa,IACb,MAAO,KAET,8CACE,QAAS,OACT,WAAY,IAEd,4DAGE,OAAQ,IAGR,iBAAkB,GAGpB,yBAIE,SAAU,SACV,KAAM,EACN,MAAO,EACP,IAAK,EACL,OAAQ,EACR,MAAO,KACP,OAAQ,KACR,YAAa,EACb,QAAS,KACT,gBAAiB,OACjB,YAAa,OAEf,2EACE,QAAS,KAEX,eAcE,SAAU,SAIV,IAAK,EACL,KAAM,EACN,OAAQ,EACR,WAAY,WACZ,QAAS,gBACT,MAAO,EACP,OAAQ,EAGR,OAAQ,6CASV,mBAQE,WAAY,WACZ,QAAS,cACT,MAAO,EACP,OAAQ,EAGR,OAAQ,EAER,cAAe,IAEf,WAAY,kBAAkB,EAAE,EAAE,KAAK,EAEvC,OAAQ,KAIR,gBAAiB,IACjB,kBAAmB,UACnB,oBAAqB,OAAO,OAE5B,iBAAkB,wBAElB,QAAS,EAET,WAAY,QAAQ,2BAA6B,IASnD,2DADA,yDAEE,QAAS,EAEX,8BACE,iBAAkB,8UAEpB,+BACE,iBAAkB,gWAMpB,oBACE,UAAW,KACX,MAAO,KACP,OAAQ,QAEV,8BAGE,iBAAkB,YAClB,MAAO,KACP,OAAQ,QAOV,uCACA,sCAGE,QAAS,IAAI,MAAM,UAErB,kDACA,iDACE,QAAS,EACT,OAAQ,EAKV,uEACA,sEACE,QAAS,EAoCX,uBAUE,SAAU,SAIV,IAAK,EACL,KAAM,EAEN,OAAQ,sBAAuB,IAE/B,OAAQ,IAER,cAAe,IAEf,WAAY,KAEd,4BACE,MAAO,MACP,QAAS,EAEX,qBAEE,mBAAoB,KACpB,WAAY,IAUZ,SAAU,SAEV,IAAK,EACL,KAAM,EACN,MAAO,EACP,OAAQ,EACR,OAAQ,EACR,QAAS,EACT,MAAO,KACP,OAAQ,KAIR,OAAQ,KAGR,IAAK,sBAGL,QAAS,EAIX,oDAEE,MAAO,KAIP,OAAQ,QAIR,OAAQ,KAGR,WAAY,IACZ,MAAO,YACP,OAAQ,KAEV,2CAEE,mBAAoB,KAGpB,OAAQ,KAER,cAAe,KACf,OAAQ,KACR,MAAO,KAEP,WAAY,KAEd,uCAEE,MAAO,KAIP,OAAQ,QAIR,OAAQ,KAGR,WAAY,IACZ,MAAO,YACP,OAAQ,KAEV,uCAEE,mBAAoB,KAGpB,OAAQ,KAER,cAAe,KACf,OAAQ,KACR,MAAO,KAEP,WAAY,KAEd,0BAEE,QAAS,EAET,WAAY,QAAQ,2BAA6B,IAKnD,kEADA,gEAEE,QAAS,EAEX,kBASE,SAAU,SAEV,IAAK,EACL,KAAM,EACN,MAAO,EACP,OAAQ,EACR,OAAQ,EACR,QAAS,EACT,MAAO,KACP,OAAQ,KAEV;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,mBAYE,SAAU,SAEV,IAAK,EACL,KAAM,EACN,MAAO,EACP,OAAQ,EAER,UAAW,OAAO,GAAG,OAAO,SAC5B,iBAAkB,OAAO,OAEzB,MAAO,KACP,OAAQ,KACR,OAAQ,EACR,QAAS,EAGX,oBACE,OAAQ,QACR,iBAAkB,EAAE,CAAE,IACtB,kBAAmB,EAEnB,UAAW,KAAK,GAAG,YAAY,SAE/B,eAAgB,MAGlB,kBACE,KACE,UAAW,gBAIf,gBACE,GACE,iBAAkB,CAAC,CAAE,IACrB,kBAAmB,EAErB,IACE,iBAAkB,EAAE,CAAE,IACtB,kBAAmB,MAErB,KACE,iBAAkB,EAAE,CAAE,IACtB,kBAAmB,QAWvB,cAEE,OAAQ,QAER,YAAa,EAEb,UAAW,EAGX,OAAQ,EASV,qBACA,qBAGE,WAAY,OACZ,WAAY,KAEZ,YAAa,OAEb,WAAY,KACZ,WAAY,EAAE,IAAI,IAAI,EAAE,kBACxB,cAAe,IACf,WAAY,MACZ,UAAW,MAGX,QAAS,EAET,WAAY,QAAQ,2BAA6B,IAKjD,QAAS,KACT,eAAgB,OAEhB,SAAU,SACV,QAAS,EACT,MAAO,KACP,OAAQ,KASV,6DACA,6DAHA,2DACA,2DAGE,QAAS,EAEX,4BACA,4BACE,UAAW,KACX,WAAY,IACZ,MAAO,KACP,OAAQ,KACR,WAAY,KACZ,QAAS,MAAM,IAEf,QAAS,KACT,YAAa,OAGb,OAAQ,QAGV,kCACA,kCACE,WAAY,QAEd,kCACA,kCACE,OAAQ,QAEV,6DACA,6DACE,WAAY,QAEd,uBACA,uBAEE,aAAc,KACd,cAAe,KAEjB,wCACA,wCAEE,OAAQ,KAQV,0BACE,WAAY,KAId,6BACE,SAAU,SAEV,QAAS,KACT,eAAgB,OAKlB,8BAEE,MAAO,kBAGT,0BAEE,YAAa,KAQf,oCAEE,YAAa,EAEf,iCAEE,cAAe,KAGjB,iBAEE,KAAM,KAGR,mBACE,MAAO,KAGT,oBACE,MAAO,KAQT,0CAEE,eAAgB,KAGlB,iEACE,eAAgB,KAElB,gCACA,gCAIE,SAAU,SACV,KAAM,EACN,MAAO,EACP,IAAK,EACL,OAAQ,EAKV,mFACA,mFAGE,OAAQ,IAEV,gCACE,MAAO,KACP,OAAQ,KACR,YAAa,EAEf,sDACE,eAAgB,KAElB,mBACE,QAAS,KACT,eAAgB,IAChB,QAAS,EAGT,eAAgB,GAElB,qEACE,QAAS,KAEX,0BACA,uBACE,MAAO,KACP,UAAW,QAEb,mDACE,OAAQ,IAEV,kBACA,mBACE,QAAS,KACT,gBAAiB,SACjB,eAAgB,OAGhB,YAAa,IAAI,IAAI,IAAI,KAE3B,yBAGE,SAAU,SAOV,MAAO,2BACP,QAAS,KACT,eAAgB,IAChB,OAAQ,EAEV,sBACE,QAAS,IAAI,KACb,WAAY,kBACZ,OAAQ,KACR,OAAQ,QAEV,+BACE,WAAY,kBAEd,uBACE,QAAS,IACT,WAAY,kBACZ,OAAQ,EAEV,WACE,YAAa,OACb,WAAY,OACZ,YAAa,IACb,IAAK,qEAAqE,mBAG5E,WACE,YAAa,uBACb,WAAY,OACZ,YAAa,IACb,IAAK,kGAAkG,mBAGzG,sBACE,YAAa,uBACb,YAAa,IACb,WAAY,OACZ,UAAW,KACX,YAAa,EACb,eAAgB,OAChB,eAAgB,KAChB,QAAS,aACT,YAAa,OACb,UAAW,OACX,UAAW"} \ No newline at end of file diff --git a/dist/demo.compiled.debug.js b/dist/demo.compiled.debug.js index c94ed0afda..31876b1b85 100644 --- a/dist/demo.compiled.debug.js +++ b/dist/demo.compiled.debug.js @@ -8,7 +8,7 @@ $jscomp.arrayFromIterable=function(a){return a instanceof Array?a:$jscomp.arrayF $jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};$jscomp.getGlobal=function(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b>>0,$jscomp.propertyToPolyfillSymbol[e]=$jscomp.IS_SYMBOL_NATIVE? +$jscomp.polyfillIsolated=function(a,b,c,d){var e=a.split(".");a=1===e.length;d=e[0];d=!a&&d in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var f=0;f>>0,$jscomp.propertyToPolyfillSymbol[e]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(e):$jscomp.POLYFILL_PREFIX+c+"$"+e),$jscomp.defineProperty(d,$jscomp.propertyToPolyfillSymbol[e],{configurable:!0,writable:!0,value:b})))}; $jscomp.getConstructImplementation=function(){function a(){function c(){}new c;Reflect.construct(c,[],function(){});return new c instanceof c}if($jscomp.TRUST_ES6_POLYFILLS&&"undefined"!=typeof Reflect&&Reflect.construct){if(a())return Reflect.construct;var b=Reflect.construct;return function(c,d,e){c=b(c,d);e&&Reflect.setPrototypeOf(c,e.prototype);return c}}return function(c,d,e){void 0===e&&(e=c);e=$jscomp.objectCreate(e.prototype||Object.prototype);return Function.prototype.apply.call(c,e,d)|| e}};$jscomp.construct={valueOf:$jscomp.getConstructImplementation}.valueOf();$jscomp.underscoreProtoCanBeSet=function(){var a={a:!0},b={};try{return b.__proto__=a,b.a}catch(c){}return!1};$jscomp.setPrototypeOf=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.setPrototypeOf?Object.setPrototypeOf:$jscomp.underscoreProtoCanBeSet()?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null; @@ -24,51 +24,49 @@ $jscomp.generator.Context.PropertyIterator=function(a){this.object_=a;this.prope $jscomp.generator.Engine_.prototype.next_=function(a){this.context_.start_();if(this.context_.yieldAllIterator_)return this.yieldAllStep_(this.context_.yieldAllIterator_.next,a,this.context_.next_);this.context_.next_(a);return this.nextStep_()}; $jscomp.generator.Engine_.prototype.return_=function(a){this.context_.start_();var b=this.context_.yieldAllIterator_;if(b)return this.yieldAllStep_("return"in b?b["return"]:function(c){return{value:c,done:!0}},a,this.context_["return"]);this.context_["return"](a);return this.nextStep_()}; $jscomp.generator.Engine_.prototype.throw_=function(a){this.context_.start_();if(this.context_.yieldAllIterator_)return this.yieldAllStep_(this.context_.yieldAllIterator_["throw"],a,this.context_.next_);this.context_.throw_(a);return this.nextStep_()}; -$jscomp.generator.Engine_.prototype.yieldAllStep_=function(a,b,c){try{var d=a.call(this.context_.yieldAllIterator_,b);$jscomp.generator.ensureIteratorResultIsObject_(d);if(!d.done)return this.context_.stop_(),d;var e=d.value}catch(g){return this.context_.yieldAllIterator_=null,this.context_.throw_(g),this.nextStep_()}this.context_.yieldAllIterator_=null;c.call(this.context_,e);return this.nextStep_()}; +$jscomp.generator.Engine_.prototype.yieldAllStep_=function(a,b,c){try{var d=a.call(this.context_.yieldAllIterator_,b);$jscomp.generator.ensureIteratorResultIsObject_(d);if(!d.done)return this.context_.stop_(),d;var e=d.value}catch(f){return this.context_.yieldAllIterator_=null,this.context_.throw_(f),this.nextStep_()}this.context_.yieldAllIterator_=null;c.call(this.context_,e);return this.nextStep_()}; $jscomp.generator.Engine_.prototype.nextStep_=function(){for(;this.context_.nextAddress;)try{var a=this.program_(this.context_);if(a)return this.context_.stop_(),{value:a.value,done:!1}}catch(b){this.context_.yieldResult=void 0,this.context_.throw_(b)}this.context_.stop_();if(this.context_.abruptCompletion_){a=this.context_.abruptCompletion_;this.context_.abruptCompletion_=null;if(a.isException)throw a.exception;return{value:a["return"],done:!0}}return{value:void 0,done:!0}}; $jscomp.generator.Generator_=function(a){this.next=function(b){return a.next_(b)};this["throw"]=function(b){return a.throw_(b)};this["return"]=function(b){return a.return_(b)};this[Symbol.iterator]=function(){return this}};$jscomp.generator.createGenerator=function(a,b){var c=new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(b));$jscomp.setPrototypeOf&&a.prototype&&$jscomp.setPrototypeOf(c,a.prototype);return c}; -$jscomp.asyncExecutePromiseGenerator=function(a){function b(d){return a.next(d)}function c(d){return a["throw"](d)}return new Promise(function(d,e){function g(f){f.done?d(f.value):Promise.resolve(f.value).then(b,c).then(g,e)}g(a.next())})};$jscomp.asyncExecutePromiseGeneratorFunction=function(a){return $jscomp.asyncExecutePromiseGenerator(a())};$jscomp.asyncExecutePromiseGeneratorProgram=function(a){return $jscomp.asyncExecutePromiseGenerator(new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(a)))}; +$jscomp.asyncExecutePromiseGenerator=function(a){function b(d){return a.next(d)}function c(d){return a["throw"](d)}return new Promise(function(d,e){function f(g){g.done?d(g.value):Promise.resolve(g.value).then(b,c).then(f,e)}f(a.next())})};$jscomp.asyncExecutePromiseGeneratorFunction=function(a){return $jscomp.asyncExecutePromiseGenerator(a())};$jscomp.asyncExecutePromiseGeneratorProgram=function(a){return $jscomp.asyncExecutePromiseGenerator(new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(a)))}; $jscomp.polyfill("Reflect",function(a){return a?a:{}},"es6","es3");$jscomp.polyfill("Reflect.construct",function(a){return $jscomp.construct},"es6","es3");$jscomp.polyfill("Reflect.setPrototypeOf",function(a){if(a)return a;if($jscomp.setPrototypeOf){var b=$jscomp.setPrototypeOf;return function(c,d){try{return b(c,d),!0}catch(e){return!1}}}return null},"es6","es5");$jscomp.initSymbol=function(){}; -$jscomp.polyfill("Symbol",function(a){if(a)return a;var b=function(g,f){this.$jscomp$symbol$id_=g;$jscomp.defineProperty(this,"description",{configurable:!0,writable:!0,value:f})};b.prototype.toString=function(){return this.$jscomp$symbol$id_};var c="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",d=0,e=function(g){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new b(c+(g||"")+"_"+d++,g)};return e},"es6","es3"); +$jscomp.polyfill("Symbol",function(a){if(a)return a;var b=function(f,g){this.$jscomp$symbol$id_=f;$jscomp.defineProperty(this,"description",{configurable:!0,writable:!0,value:g})};b.prototype.toString=function(){return this.$jscomp$symbol$id_};var c="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",d=0,e=function(f){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new b(c+(f||"")+"_"+d++,f)};return e},"es6","es3"); $jscomp.polyfill("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;cg&&(g=Math.max(g+e,0));gf&&(f=Math.max(f+e,0));f=g}},"es6","es3");$jscomp.polyfill("Object.entries",function(a){return a?a:function(b){var c=[],d;for(d in b)$jscomp.owns(b,d)&&c.push([d,b[d]]);return c}},"es8","es3"); -$jscomp.polyfill("Array.prototype.values",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(b,c){return c})}},"es8","es3"); -$jscomp.polyfill("Array.from",function(a){return a?a:function(b,c,d){c=null!=c?c:function(h){return h};var e=[],g="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];if("function"==typeof g){b=g.call(b);for(var f=0;!(g=b.next()).done;)e.push(c.call(d,g.value,f++))}else for(g=b.length,f=0;f=f}},"es6","es3");$jscomp.polyfill("Object.entries",function(a){return a?a:function(b){var c=[],d;for(d in b)$jscomp.owns(b,d)&&c.push([d,b[d]]);return c}},"es8","es3"); +$jscomp.polyfill("Array.prototype.values",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(b,c){return c})}},"es8","es3");$jscomp.polyfill("Object.values",function(a){return a?a:function(b){var c=[],d;for(d in b)$jscomp.owns(b,d)&&c.push(b[d]);return c}},"es8","es3");var COMPILED=!0,goog=goog||{};goog.global=this||self; +goog.exportPath_=function(a,b,c,d){a=a.split(".");d=d||goog.global;a[0]in d||"undefined"==typeof d.execScript||d.execScript("var "+a[0]);for(var e;a.length&&(e=a.shift());)if(a.length||void 0===b)d=d[e]&&d[e]!==Object.prototype[e]?d[e]:d[e]={};else if(!c&&goog.isObject(b)&&goog.isObject(d[e]))for(var f in b)b.hasOwnProperty(f)&&(d[e][f]=b[f]);else d[e]=b}; +goog.define=function(a,b){var c=b;if(!COMPILED){var d=goog.global.CLOSURE_UNCOMPILED_DEFINES,e=goog.global.CLOSURE_DEFINES;d&&void 0===d.nodeType&&Object.prototype.hasOwnProperty.call(d,a)?c=d[a]:e&&void 0===e.nodeType&&Object.prototype.hasOwnProperty.call(e,a)&&(c=e[a])}return c};goog.FEATURESET_YEAR=2012;goog.DEBUG=!0;goog.LOCALE="en";goog.getLocale=function(){return goog.LOCALE};goog.TRUSTED_SITE=!0;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1; +goog.provide=function(a){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");if(!COMPILED&&goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');goog.constructNamespace_(a)};goog.constructNamespace_=function(a,b,c){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var d=a;(d=d.substring(0,d.lastIndexOf(".")))&&!goog.getObjectByName(d);)goog.implicitNamespaces_[d]=!0}goog.exportPath_(a,b,c)};goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/; +goog.getScriptNonce_=function(a){a=(a||goog.global).document;return(a=a.querySelector&&a.querySelector("script[nonce]"))&&(a=a.nonce||a.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(a)?a:""};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/; +goog.module=function(a){if("string"!==typeof a||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module."); +goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};goog.module.getInternal_=function(a){if(!COMPILED){if(a in goog.loadedModules_)return goog.loadedModules_[a].exports;if(!goog.implicitNamespaces_[a])return a=goog.getObjectByName(a),null!=a?a:null}return null};goog.ModuleType={ES6:"es6",GOOG:"goog"};goog.moduleLoaderState_=null; +goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()};goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG};goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var a=goog.global.$jscomp;return a?"function"!=typeof a.getCurrentModulePath?!1:!!a.getCurrentModulePath():!1}; goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInGoogModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0}; goog.declareModuleId=function(a){if(!COMPILED){if(!goog.isInEs6ModuleLoader_())throw Error("goog.declareModuleId may only be called from within an ES6 module");if(goog.moduleLoaderState_&&goog.moduleLoaderState_.moduleName)throw Error("goog.declareModuleId may only be called once per module.");if(a in goog.loadedModules_)throw Error('Module with namespace "'+a+'" already exists.');}if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=a;else{var b=goog.global.$jscomp;if(!b||"function"!=typeof b.getCurrentModulePath)throw Error('Module with namespace "'+ a+'" has been loaded incorrectly.');b=b.require(b.getCurrentModulePath());goog.loadedModules_[a]={exports:b,type:goog.ModuleType.ES6,moduleId:a}}};goog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&null!=goog.getObjectByName(a)},goog.implicitNamespaces_={"goog.module":!0}); @@ -79,53 +77,52 @@ goog.ASSUME_ES_MODULES_TRANSPILED=!1;goog.TRANSPILE_TO_LANGUAGE="";goog.TRANSPIL goog.loadModule=function(a){var b=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1,type:goog.ModuleType.GOOG};var c={},d=c;if("function"===typeof a)d=a.call(void 0,d);else if("string"===typeof a)d=goog.loadModuleFromSource_.call(void 0,d,a);else throw Error("Invalid module definition");var e=goog.moduleLoaderState_.moduleName;if("string"===typeof e&&e)goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(e,d,c!==d):goog.SEAL_MODULE_EXPORTS&& Object.seal&&"object"==typeof d&&null!=d&&Object.seal(d),goog.loadedModules_[e]={exports:d,type:goog.ModuleType.GOOG,moduleId:goog.moduleLoaderState_.moduleName};else throw Error('Invalid module name "'+e+'"');}finally{goog.moduleLoaderState_=b}};goog.loadModuleFromSource_=function(a,b){eval(goog.CLOSURE_EVAL_PREFILTER_.createScript(b));return a};goog.normalizePath_=function(a){a=a.split("/");for(var b=0;b>>0); -goog.uidCounter_=0;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if("function"===typeof a.clone)return a.clone();b="array"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)}; +goog.uidCounter_=0;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if("function"===typeof a.clone)return a.clone();if("undefined"!==typeof Map&&a instanceof Map)return new Map(a);if("undefined"!==typeof Set&&a instanceof Set)return new Set(a);b="array"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)}; goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2").replace(/'/g,"'").replace(/"/g,'"').replace(/&/g,"&"));b&&(a=a.replace(/\{\$([^}]+)}/g,function(d,e){return null!=b&&e in b?b[e]:d}));return a}; -goog.getMsgWithFallback=function(a,b){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,!0,c)};goog.exportProperty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(d,e,g){for(var f=Array(arguments.length-2),h=2;h{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')}); -a("es7",function(){return b("2**3==8")});a("es8",function(){return b("async()=>1,1")});a("es9",function(){return b("({...rest}={}),1")});a("es_2019",function(){return b('let r;try{throw 0}catch{r="\u2029"};r')});a("es_2020",function(){return b("null?.x??1")});a("es_next",function(){return!1});return{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(a,b){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var c=this.createRequiresTranspilation_(); +goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var a=goog.global.document,b=a.currentScript;a=b?[b]:a.getElementsByTagName("SCRIPT");for(b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?");d=-1==d?c.length:d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}}},goog.findBasePath_(),goog.Transpiler=function(){this.requiresTranspilation_=null;this.transpilationTarget_=goog.TRANSPILE_TO_LANGUAGE},goog.Transpiler.prototype.createRequiresTranspilation_=function(){function a(f, +g){e?d[f]=!0:g()?(c=f,d[f]=!1):e=d[f]=!0}function b(f){try{return!!eval(goog.CLOSURE_EVAL_PREFILTER_.createScript(f))}catch(g){return!1}}var c="es3",d={es3:!1},e=!1;a("es5",function(){return b("[1,].length==1")});a("es6",function(){return goog.isEdge_()?!1:b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')}); +a("es7",function(){return b("2**3==8")});a("es8",function(){return b("async()=>1,1")});a("es9",function(){return b("({...rest}={}),1")});a("es_2019",function(){return b('let r;try{r="\u2029"}catch{};r')});a("es_2020",function(){return b("null?.x??1")});a("es_next",function(){return!1});return{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(a,b){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var c=this.createRequiresTranspilation_(); this.requiresTranspilation_=c.map;this.transpilationTarget_=this.transpilationTarget_||c.target}if(a in this.requiresTranspilation_)return this.requiresTranspilation_[a]?!0:!goog.inHtmlDocument_()||"es6"!=b||"noModule"in goog.global.document.createElement("script")?!1:!0;throw Error("Unknown language mode: "+a);},goog.Transpiler.prototype.transpile=function(a,b){return goog.transpile_(a,b,this.transpilationTarget_)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(a){return a.replace(/<\/(SCRIPT)/ig, -"\\x3c/$1")},goog.DebugLoader_=function(){this.dependencies_={};this.idToPath_={};this.written_={};this.loadingDeps_=[];this.depsToLoad_=[];this.paused_=!1;this.factory_=new goog.DependencyFactory(goog.transpiler_);this.deferredCallbacks_={};this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(a,b){function c(){d&&(goog.global.setTimeout(d,0),d=null)}var d=b;if(a.length){for(var e=[],g=0;g\x3c/script>';g+="";g=goog.Dependency.defer_?g+("document.getElementById('script-"+e+"').onload = function() {\n goog.Dependency.callback_('"+e+"', this);\n};\n"):g+("goog.Dependency.callback_('"+e+"', document.getElementById('script-"+e+"'));");g+="\x3c/script>";b.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(g):g)}else{var f=b.createElement("script");f.defer=goog.Dependency.defer_; -f.async=!1;c&&(f.nonce=c);goog.DebugLoader_.IS_OLD_IE_?(a.pause(),f.onreadystatechange=function(){if("loaded"==f.readyState||"complete"==f.readyState)a.loaded(),a.resume()}):f.onload=function(){f.onload=null;a.loaded()};f.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path):this.path;b.head.appendChild(f)}}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),"deps.js"==this.relativePath?(goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."), -a.loaded()):a.pause()},goog.Es6ModuleDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,b,c,d,e)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(a){function b(l,m){var n="",p=goog.getScriptNonce();p&&(n=' nonce="'+p+'"');n=m?'