shaka-player 3.3.5 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/.github/config.yml +1 -0
  2. package/.github/workflows/demo-version-index.yaml +8 -0
  3. package/.github/workflows/release-please.yaml +18 -2
  4. package/.github/workflows/sync-labels.yaml +33 -0
  5. package/.github/workflows/update-issues.yaml +29 -0
  6. package/.github/workflows/validate-pr-title.yaml +35 -0
  7. package/AUTHORS +1 -0
  8. package/CHANGELOG.md +215 -41
  9. package/CONTRIBUTORS +1 -0
  10. package/README.md +14 -11
  11. package/app-engine/demo-version-index/README.md +3 -3
  12. package/app-engine/demo-version-index/app.yaml +27 -1
  13. package/app-engine/demo-version-index/generate.py +164 -0
  14. package/app-engine/demo-version-index/main.py +4 -155
  15. package/app-engine/demo-version-index/requirements.txt +0 -1
  16. package/build/checkversion.py +1 -1
  17. package/build/compiler.py +1 -1
  18. package/build/misspellings.txt +1 -0
  19. package/build/shaka-lab.yaml +0 -2
  20. package/build/types/polyfill +0 -3
  21. package/demo/common/asset.js +17 -1
  22. package/demo/common/assets.js +29 -0
  23. package/demo/common/message_ids.js +6 -3
  24. package/demo/config.js +10 -11
  25. package/demo/custom.js +39 -0
  26. package/demo/demo.less +0 -1
  27. package/demo/demo_utils.js +0 -1
  28. package/demo/locales/en.json +6 -3
  29. package/demo/locales/source.json +22 -10
  30. package/demo/main.js +9 -6
  31. package/demo/search.js +2 -1
  32. package/dist/controls.css +3 -3
  33. package/dist/controls.css.map +1 -1
  34. package/dist/demo.compiled.debug.js +71 -64
  35. package/dist/demo.compiled.debug.map +3 -3
  36. package/dist/demo.compiled.js +71 -64
  37. package/dist/demo.compiled.map +3 -3
  38. package/dist/demo.css +1 -1
  39. package/dist/demo.css.map +1 -1
  40. package/dist/deps.js +17 -20
  41. package/dist/locales.js +33 -31
  42. package/dist/receiver.compiled.debug.js +32 -28
  43. package/dist/receiver.compiled.debug.map +3 -3
  44. package/dist/receiver.compiled.js +32 -28
  45. package/dist/receiver.compiled.map +3 -3
  46. package/dist/shaka-player.compiled.d.ts +311 -314
  47. package/dist/shaka-player.compiled.debug.d.ts +311 -314
  48. package/dist/shaka-player.compiled.debug.externs.js +126 -126
  49. package/dist/shaka-player.compiled.debug.js +430 -484
  50. package/dist/shaka-player.compiled.debug.map +4 -4
  51. package/dist/shaka-player.compiled.externs.js +126 -126
  52. package/dist/shaka-player.compiled.js +829 -845
  53. package/dist/shaka-player.compiled.map +4 -4
  54. package/dist/shaka-player.ui.d.ts +357 -358
  55. package/dist/shaka-player.ui.debug.d.ts +357 -358
  56. package/dist/shaka-player.ui.debug.externs.js +134 -126
  57. package/dist/shaka-player.ui.debug.js +489 -541
  58. package/dist/shaka-player.ui.debug.map +4 -4
  59. package/dist/shaka-player.ui.externs.js +134 -126
  60. package/dist/shaka-player.ui.js +988 -1000
  61. package/dist/shaka-player.ui.map +4 -4
  62. package/docs/tutorials/config.md +0 -2
  63. package/docs/tutorials/drm-config.md +5 -0
  64. package/docs/tutorials/fairplay.md +7 -22
  65. package/docs/tutorials/faq.md +0 -11
  66. package/docs/tutorials/index.json +2 -8
  67. package/docs/tutorials/plugins.md +1 -3
  68. package/docs/tutorials/upgrade.md +85 -11
  69. package/externs/polyfill.js +15 -0
  70. package/externs/shaka/manifest.js +5 -1
  71. package/externs/shaka/net.js +12 -0
  72. package/externs/shaka/offline.js +5 -1
  73. package/externs/shaka/player.js +39 -21
  74. package/externs/shaka/text.js +12 -12
  75. package/externs/sourcebuffer.js +15 -0
  76. package/lib/abr/simple_abr_manager.js +2 -1
  77. package/lib/ads/client_side_ad.js +13 -2
  78. package/lib/ads/client_side_ad_manager.js +22 -4
  79. package/lib/cast/cast_utils.js +0 -1
  80. package/lib/dash/content_protection.js +85 -5
  81. package/lib/dash/dash_parser.js +1 -0
  82. package/lib/hls/hls_parser.js +390 -747
  83. package/lib/hls/manifest_text_parser.js +2 -3
  84. package/lib/media/drm_engine.js +105 -37
  85. package/lib/media/gap_jumping_controller.js +10 -45
  86. package/lib/media/media_source_engine.js +150 -30
  87. package/lib/media/playhead.js +2 -5
  88. package/lib/media/presentation_timeline.js +1 -2
  89. package/lib/media/segment_index.js +13 -46
  90. package/lib/media/segment_reference.js +47 -1
  91. package/lib/media/streaming_engine.js +28 -11
  92. package/lib/media/time_ranges_utils.js +4 -9
  93. package/lib/net/networking_engine.js +3 -0
  94. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  95. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  96. package/lib/offline/manifest_converter.js +1 -0
  97. package/lib/offline/storage.js +8 -41
  98. package/lib/player.js +17 -201
  99. package/lib/polyfill/media_capabilities.js +12 -6
  100. package/lib/polyfill/mediasource.js +0 -28
  101. package/lib/polyfill/patchedmediakeys_nop.js +2 -0
  102. package/lib/polyfill/patchedmediakeys_webkit.js +2 -0
  103. package/lib/text/cue.js +0 -6
  104. package/lib/text/lrc_text_parser.js +8 -0
  105. package/lib/text/mp4_ttml_parser.js +8 -0
  106. package/lib/text/mp4_vtt_parser.js +8 -0
  107. package/lib/text/sbv_text_parser.js +8 -0
  108. package/lib/text/simple_text_displayer.js +1 -7
  109. package/lib/text/srt_text_parser.js +8 -0
  110. package/lib/text/ssa_text_parser.js +8 -0
  111. package/lib/text/text_engine.js +19 -3
  112. package/lib/text/ttml_text_parser.js +8 -0
  113. package/lib/text/ui_text_displayer.js +1 -7
  114. package/lib/text/vtt_text_parser.js +27 -5
  115. package/lib/text/web_vtt_generator.js +1 -7
  116. package/lib/util/error.js +9 -13
  117. package/lib/util/fairplay_utils.js +109 -0
  118. package/lib/util/functional.js +0 -42
  119. package/lib/util/mime_utils.js +16 -5
  120. package/lib/util/platform.js +45 -0
  121. package/lib/util/player_configuration.js +17 -6
  122. package/lib/util/pssh.js +23 -4
  123. package/lib/util/stream_utils.js +92 -22
  124. package/lib/util/uint8array_utils.js +0 -16
  125. package/lib/util/xml_utils.js +1 -1
  126. package/package.json +5 -2
  127. package/roadmap.md +19 -19
  128. package/shaka-player.uncompiled.js +0 -3
  129. package/test/dash/dash_parser_content_protection_unit.js +44 -0
  130. package/test/dash/dash_parser_segment_template_unit.js +3 -4
  131. package/test/demo/demo_unit.js +2 -1
  132. package/test/hls/hls_live_unit.js +155 -230
  133. package/test/hls/hls_parser_unit.js +515 -432
  134. package/test/media/drm_engine_unit.js +86 -120
  135. package/test/media/media_source_engine_integration.js +25 -3
  136. package/test/media/media_source_engine_unit.js +3 -2
  137. package/test/media/playhead_unit.js +27 -191
  138. package/test/media/segment_index_unit.js +15 -25
  139. package/test/media/streaming_engine_integration.js +2 -39
  140. package/test/media/streaming_engine_unit.js +3 -2
  141. package/test/media/time_ranges_utils_unit.js +0 -5
  142. package/test/offline/manifest_convert_unit.js +34 -4
  143. package/test/offline/offline_manifest_parser_unit.js +1 -0
  144. package/test/offline/storage_integration.js +5 -4
  145. package/test/player_external.js +0 -6
  146. package/test/player_integration.js +16 -0
  147. package/test/player_unit.js +26 -0
  148. package/test/test/util/fake_media_source_engine.js +11 -4
  149. package/test/test/util/manifest_generator.js +3 -1
  150. package/test/test/util/manifest_parser_util.js +4 -1
  151. package/test/test/util/offline_utils.js +1 -0
  152. package/test/test/util/streaming_engine_util.js +1 -0
  153. package/test/test/util/test_scheme.js +24 -1
  154. package/test/test/util/util.js +4 -4
  155. package/test/text/cue_integration.js +2 -2
  156. package/test/text/lrc_text_parser_unit.js +6 -7
  157. package/test/text/mp4_ttml_parser_unit.js +6 -4
  158. package/test/text/mp4_vtt_parser_unit.js +6 -5
  159. package/test/text/sbv_text_parser_unit.js +5 -6
  160. package/test/text/srt_text_parser_unit.js +5 -6
  161. package/test/text/ssa_text_parser_unit.js +17 -29
  162. package/test/text/text_engine_unit.js +45 -5
  163. package/test/text/ttml_text_parser_unit.js +77 -77
  164. package/test/text/vtt_text_parser_unit.js +116 -59
  165. package/test/ui/ui_integration.js +0 -16
  166. package/test/ui/ui_unit.js +27 -0
  167. package/test/util/cmcd_manager_unit.js +3 -0
  168. package/test/util/stream_utils_unit.js +23 -7
  169. package/ui/controls.js +65 -40
  170. package/ui/fullscreen_button.js +26 -6
  171. package/ui/less/containers.less +4 -4
  172. package/ui/less/general.less +1 -1
  173. package/ui/less/range_elements.less +1 -0
  174. package/ui/locales/en.json +1 -0
  175. package/ui/locales/source.json +5 -0
  176. package/ui/resolution_selection.js +31 -33
  177. package/ui/ui.js +0 -17
  178. package/.github/pull_request_template.md +0 -10
  179. package/docs/tutorials/upgrade-v2-5.md +0 -441
  180. package/docs/tutorials/upgrade-v3.md +0 -38
  181. package/lib/polyfill/mathround.js +0 -49
  182. package/lib/polyfill/patchedmediakeys_apple.js +0 -744
  183. package/lib/polyfill/patchedmediakeys_ms.js +0 -698
  184. package/test/util/functional_unit.js +0 -82
@@ -0,0 +1 @@
1
+ blank_issues_enabled: false
@@ -9,12 +9,20 @@ on:
9
9
  paths:
10
10
  - .github/workflows/demo-version-index.yaml
11
11
  - app-engine/demo-version-index/**
12
+ release:
13
+ types: [published]
12
14
 
13
15
  jobs:
14
16
  appspot:
15
17
  runs-on: ubuntu-latest
16
18
  steps:
17
19
  - uses: actions/checkout@v2
20
+ with:
21
+ # We need a list of all tags for this, so fetch the entire history.
22
+ fetch-depth: 0
23
+
24
+ - name: Generate static content
25
+ run: python3 app-engine/demo-version-index/generate.py
18
26
 
19
27
  - uses: google-github-actions/auth@v0
20
28
  with:
@@ -28,9 +28,10 @@ jobs:
28
28
  - name: Custom update Player version
29
29
  if: steps.release.outputs.release_created == false
30
30
  run: |
31
- # Check out the branch that release-please created, if it exists.
31
+ # Check out the branch that release-please created.
32
+ # If it does not exist, FAIL!
32
33
  git fetch
33
- git checkout release-please--branches--${{ github.ref_name }} || exit 0
34
+ git checkout release-please--branches--${{ github.ref_name }}--components--shaka-player || exit 1
34
35
  # If it does exist, update lib/player.js in the PR branch, so that the
35
36
  # -uncompiled tag remains in the player version in that context.
36
37
  VERSION="v$(jq -r .version package.json)-uncompiled"
@@ -145,3 +146,18 @@ jobs:
145
146
  project_id: shaka-player-demo
146
147
  version: ${{ env.APPSPOT_SUBDOMAIN }}
147
148
  promote: ${{ env.APPSPOT_PROMOTE }}
149
+
150
+ auto-branch:
151
+ runs-on: ubuntu-latest
152
+ needs: release
153
+ if: needs.release.outputs.release_created && endsWith(needs.release.outputs.tag_name, '.0')
154
+ steps:
155
+ - uses: actions/checkout@v2
156
+ with:
157
+ fetch-depth: 0
158
+
159
+ - name: Create release branch
160
+ run: |
161
+ TAG=${{ needs.release.outputs.tag_name }}
162
+ BRANCH=$(echo "$TAG" | sed -e 's/\.0$/.x/')
163
+ git push origin HEAD:"$BRANCH"
@@ -0,0 +1,33 @@
1
+ # Install this in .github/workflows/ to automate label updates
2
+ name: Sync Labels
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ # Allows for manual triggering.
7
+ inputs:
8
+ dry_run:
9
+ description: "If true, don't make any actual changes"
10
+ required: false
11
+ default: false
12
+ schedule:
13
+ # Run every week on Sunday at 5:42 AM.
14
+ - cron: '42 5 * * 0'
15
+
16
+ jobs:
17
+ sync-labels:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - name: Checkout code
21
+ uses: actions/checkout@v2
22
+ with:
23
+ repository: shaka-project/shaka-github-tools
24
+
25
+ # TODO: revert to micnncim and new release after landing
26
+ # https://github.com/micnncim/action-label-syncer/pull/68
27
+ - uses: joeyparrish/action-label-syncer@v1.8.0
28
+ with:
29
+ dry_run: ${{ github.event.inputs.dry_run || false }}
30
+ prune: true
31
+ manifest: sync-labels/configs/${{ github.repository }}.yaml
32
+ repository: ${{ github.repository }}
33
+ token: ${{ github.token }}
@@ -0,0 +1,29 @@
1
+ # Install this in .github/workflows/ to automate issue maintenance.
2
+ name: Update Issues
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ # Allows for manual triggering.
7
+ schedule:
8
+ # Run every 30 minutes
9
+ - cron: '*/30 * * * *'
10
+
11
+ permissions:
12
+ issues: write
13
+
14
+ jobs:
15
+ update-issues:
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - name: Checkout code
19
+ uses: actions/checkout@v2
20
+ with:
21
+ repository: shaka-project/shaka-github-tools
22
+
23
+ - name: Update Issues
24
+ env:
25
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26
+ run: |
27
+ cd update-issues
28
+ npm ci
29
+ node main.js
@@ -0,0 +1,35 @@
1
+ name: Validate PR Title
2
+
3
+ # We recommend that maintainers use this Chrome/Firefox extension so that
4
+ # squashed PRs will have the merged commit message default to the PR title and
5
+ # description: https://github.com/zachwhaley/squashed-merge-message
6
+ #
7
+ # This avoids the need to amend commits after the fact to match the desired PR
8
+ # syntax. As long as the PR itself is properly-formatted, this extension will
9
+ # help you commit the right format to the repo, too. This, in turn, feeds the
10
+ # changelog and release workflows.
11
+
12
+ on:
13
+ # NOTE: The automated PRs from release-please-action do not seem to trigger
14
+ # any of the default PR triggers (opened, synchronize, reopened). So we need
15
+ # additional types. This is a good set that makes it easy to trigger the
16
+ # workflow manually if needed.
17
+ pull_request_target:
18
+ types:
19
+ - opened
20
+ - reopened
21
+ - edited
22
+ - synchronize
23
+ - assigned
24
+ - labeled
25
+ - ready_for_review
26
+ - review_requested
27
+
28
+ jobs:
29
+ main:
30
+ name: Validate PR Title
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: amannn/action-semantic-pull-request@v4
34
+ env:
35
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
package/AUTHORS CHANGED
@@ -67,6 +67,7 @@ Rostislav Hejduk <Ross-cz@users.noreply.github.com>
67
67
  SameGoal Inc. <*@samegoal.com>
68
68
  Sanborn Hilland <sanbornh@rogers.com>
69
69
  Sander Saares <sander@saares.eu>
70
+ Sanil Raut <sr1990003@gmail.com>
70
71
  Swank Motion Pictures Inc. <*@swankmp.com>
71
72
  TalkTalk Plc <*@talktalkplc.com>
72
73
  Tatsiana Gelahova <tatsiana.gelahova@gmail.com>
package/CHANGELOG.md CHANGED
@@ -1,58 +1,147 @@
1
1
  # Changelog
2
2
 
3
- ### [3.3.5](https://github.com/shaka-project/shaka-player/compare/v3.3.4...v3.3.5) (2022-05-17)
3
+ ## [4.0.2](https://github.com/shaka-project/shaka-player/compare/v4.0.1...v4.0.2) (2022-06-02)
4
4
 
5
5
 
6
6
  ### Bug Fixes
7
7
 
8
- * **dash:** Fix playback of Dolby Atmos ([#4173](https://github.com/shaka-project/shaka-player/issues/4173)) ([ced8ab3](https://github.com/shaka-project/shaka-player/commit/ced8ab31f57229fca9353769caeb7698c9f84d50)), closes [#4171](https://github.com/shaka-project/shaka-player/issues/4171)
9
- * Do not report MANIFEST RESTRICTIONS_CANNOT_BE_MET error twice ([#4194](https://github.com/shaka-project/shaka-player/issues/4194)) ([565e9e0](https://github.com/shaka-project/shaka-player/commit/565e9e0191cab88094aaa15cd3ae90cef00ffdc3)), closes [#4190](https://github.com/shaka-project/shaka-player/issues/4190)
10
- * Fix encryption detection to work around broken platforms ([#4169](https://github.com/shaka-project/shaka-player/issues/4169)) ([87893e8](https://github.com/shaka-project/shaka-player/commit/87893e84ec1dda20109ecab1fbc90db8736b4ba9))
11
- * Fix event listener leaks in Player ([#4229](https://github.com/shaka-project/shaka-player/issues/4229)) ([1fe8df2](https://github.com/shaka-project/shaka-player/commit/1fe8df20c4945ba255b1737540535e587768055f))
12
- * Fix exception with streaming.startAtSegmentBoundary ([#4216](https://github.com/shaka-project/shaka-player/issues/4216)) ([1b6ca04](https://github.com/shaka-project/shaka-player/commit/1b6ca044672efbfacdbd2444e382f23be77150df)), closes [#4188](https://github.com/shaka-project/shaka-player/issues/4188)
13
- * Fix PERIOD_FLATTENING_FAILED error when periods have different base sample types ([#4206](https://github.com/shaka-project/shaka-player/issues/4206)) ([04ff0fc](https://github.com/shaka-project/shaka-player/commit/04ff0fcc8b1e1606ecb6dccda96cc7da368d10e6)), closes [#4202](https://github.com/shaka-project/shaka-player/issues/4202)
14
- * **hls:** Fix av1 codec selection in HLS. ([#4203](https://github.com/shaka-project/shaka-player/issues/4203)) ([e493a56](https://github.com/shaka-project/shaka-player/commit/e493a56b9e51f85afb06d31b75ad6b91f59acd80))
15
- * **hls:** Fix X-PRELOAD-HINT failure with LL mode off ([#4212](https://github.com/shaka-project/shaka-player/issues/4212)) ([5167717](https://github.com/shaka-project/shaka-player/commit/5167717177edc256d06afef469b0a206ed0b88e4)), closes [#4185](https://github.com/shaka-project/shaka-player/issues/4185)
16
- * **offline:** Clean up orphaned segments on abort ([#4177](https://github.com/shaka-project/shaka-player/issues/4177)) ([a5cc491](https://github.com/shaka-project/shaka-player/commit/a5cc491a9269994c30e4c6efbd281c332951e281))
17
- * **offline:** Speed up offline storage by ~87% ([#4176](https://github.com/shaka-project/shaka-player/issues/4176)) ([dc27a26](https://github.com/shaka-project/shaka-player/commit/dc27a263289e42f131f04bbc4c43e2c4f4e27870)), closes [#4166](https://github.com/shaka-project/shaka-player/issues/4166)
18
- * Revert "Add missing module export in generated typescript defs" ([#4175](https://github.com/shaka-project/shaka-player/issues/4175)) ([c44507a](https://github.com/shaka-project/shaka-player/commit/c44507a2e86a81e56671534a9983da94a1c7baf4)), closes [#4167](https://github.com/shaka-project/shaka-player/issues/4167)
19
- * Wait for chapters track to be loaded ([#4228](https://github.com/shaka-project/shaka-player/issues/4228)) ([6a1f0d0](https://github.com/shaka-project/shaka-player/commit/6a1f0d0b2779134e472c817491086b2c18c35027)), closes [#4186](https://github.com/shaka-project/shaka-player/issues/4186)
8
+ * **abr:** use Network Info API in ABR getBandwidthEstimate ([#4263](https://github.com/shaka-project/shaka-player/issues/4263)) ([2a12f0d](https://github.com/shaka-project/shaka-player/commit/2a12f0dc3c95220fc4c35b9871823eb685ecf337))
9
+ * Don't send drmsessionupdate after unload ([#4248](https://github.com/shaka-project/shaka-player/issues/4248)) ([d7a7024](https://github.com/shaka-project/shaka-player/commit/d7a70247b2c381f1ba1d129618e45771f0e58061))
10
+ * Fix audio mime type in multiplexed HLS stream ([#4241](https://github.com/shaka-project/shaka-player/issues/4241)) ([467fc8b](https://github.com/shaka-project/shaka-player/commit/467fc8b14b4a9ede601a1501ec901149088fc0c7))
11
+ * **HLS:** Fix duplicate hinted segments ([#4258](https://github.com/shaka-project/shaka-player/issues/4258)) ([d92881b](https://github.com/shaka-project/shaka-player/commit/d92881b7ae350ad41eda7b0aeb87d9e32b59375a)), closes [#4223](https://github.com/shaka-project/shaka-player/issues/4223)
12
+ * **ui:** Widen touchable button area ([#3249](https://github.com/shaka-project/shaka-player/issues/3249)) ([96b2965](https://github.com/shaka-project/shaka-player/commit/96b296595c32885caac66af7b04bdc1f59d0c790))
20
13
 
21
- ### [3.3.4](https://github.com/shaka-project/shaka-player/compare/v3.3.3...v3.3.4) (2022-04-26)
14
+ ### [4.0.1](https://github.com/shaka-project/shaka-player/compare/v4.0.0...v4.0.1) (2022-05-18)
22
15
 
23
16
 
24
17
  ### Bug Fixes
25
18
 
26
- * Add missing module export in generated typescript defs ([#4163](https://github.com/shaka-project/shaka-player/issues/4163)) ([164e601](https://github.com/shaka-project/shaka-player/commit/164e60184ac9842451d91e123c35367892f82c46))
27
- * **css:** Fix missing % in calculation ([#4157](https://github.com/shaka-project/shaka-player/issues/4157)) ([ee8404f](https://github.com/shaka-project/shaka-player/commit/ee8404f24ba8855a72d3f412b4a4667eb988fb56))
28
- * **css:** Fix missing calc() statements ([#4156](https://github.com/shaka-project/shaka-player/issues/4156)) ([002d5eb](https://github.com/shaka-project/shaka-player/commit/002d5ebd3d4771a082300d8987fbd019d40f9b68)), closes [#4155](https://github.com/shaka-project/shaka-player/issues/4155)
29
-
30
- ### [3.3.3](https://github.com/shaka-project/shaka-player/compare/v3.3.2...v3.3.3) (2022-04-25)
31
-
32
-
33
- ### Bug Fixes
34
-
35
- * **cea:** make a more robust CEA MP4 parser ([#3965](https://github.com/shaka-project/shaka-player/issues/3965)) ([7281e0f](https://github.com/shaka-project/shaka-player/commit/7281e0f229bcc004b64ad3b899ad16131541036b))
36
- * **cmcd:** Fix Symbol usage in CMCD on Xbox One ([#4073](https://github.com/shaka-project/shaka-player/issues/4073)) ([c638b4f](https://github.com/shaka-project/shaka-player/commit/c638b4fe882da5b0331ec0ad3ba3648fa63cb786)), closes [#4072](https://github.com/shaka-project/shaka-player/issues/4072)
37
- * **dash:** Account for bandwidth before filtering text stream ([#3765](https://github.com/shaka-project/shaka-player/issues/3765)) ([edd58fc](https://github.com/shaka-project/shaka-player/commit/edd58fc9a5e0461d69fed635433fc7d0ea7e31ee)), closes [#3724](https://github.com/shaka-project/shaka-player/issues/3724)
38
- * **dash:** Fix performance regression ([#4064](https://github.com/shaka-project/shaka-player/issues/4064)) ([bfac645](https://github.com/shaka-project/shaka-player/commit/bfac645e589190d002f91a57b68941ab68584941))
39
- * Fix exceptions when quickly shutting down src= on Safari ([#4088](https://github.com/shaka-project/shaka-player/issues/4088)) ([2e10748](https://github.com/shaka-project/shaka-player/commit/2e107484e3975f17b9d9a99f6074b804aab05f04)), closes [#4087](https://github.com/shaka-project/shaka-player/issues/4087)
40
- * Fix playRangeEnd for certain content ([#4068](https://github.com/shaka-project/shaka-player/issues/4068)) ([11f998d](https://github.com/shaka-project/shaka-player/commit/11f998d97254a1b9ca27b2a461bf850db2c76eaa)), closes [#4026](https://github.com/shaka-project/shaka-player/issues/4026)
41
- * **performance:** Eliminate use of ES6 generators ([#4092](https://github.com/shaka-project/shaka-player/issues/4092)) ([5bb5502](https://github.com/shaka-project/shaka-player/commit/5bb5502a194154c6277ac7fb48addd314c37ebdb)), closes [#4062](https://github.com/shaka-project/shaka-player/issues/4062)
42
- * Select first of identical audio streams ([#3869](https://github.com/shaka-project/shaka-player/issues/3869)) ([603fdc1](https://github.com/shaka-project/shaka-player/commit/603fdc16014fad6a0cde520675b4c2359877c62b))
43
- * **ttml:** Center subtitles by default ([#4023](https://github.com/shaka-project/shaka-player/issues/4023)) ([02604ab](https://github.com/shaka-project/shaka-player/commit/02604abb3d831d33cbe14f6b8a7808e29f419cbf))
44
- * **UI:** Add cursor pointer to range elements ([#4059](https://github.com/shaka-project/shaka-player/issues/4059)) ([2ca947e](https://github.com/shaka-project/shaka-player/commit/2ca947ecad3ca208a379185e916cef7189b605bf)), closes [#3220](https://github.com/shaka-project/shaka-player/issues/3220)
45
-
46
- ## [3.3.2](https://github.com/shaka-project/shaka-player/compare/v3.3.1...v3.3.2) (2022-02-16)
19
+ * Do not report MANIFEST RESTRICTIONS_CANNOT_BE_MET error twice ([#4194](https://github.com/shaka-project/shaka-player/issues/4194)) ([0b03e79](https://github.com/shaka-project/shaka-player/commit/0b03e7900bd28420e6b066f909a69ff511144471)), closes [#4190](https://github.com/shaka-project/shaka-player/issues/4190)
20
+ * **fairplay:** Re-add initDataTransform config ([#4231](https://github.com/shaka-project/shaka-player/issues/4231)) ([9a6f150](https://github.com/shaka-project/shaka-player/commit/9a6f150c082e477f9dae95c4436d6ff764481d02))
21
+ * Fix event listener leaks in Player ([#4229](https://github.com/shaka-project/shaka-player/issues/4229)) ([e6c3b22](https://github.com/shaka-project/shaka-player/commit/e6c3b226ba25cd62b288c75da895531ed27087c0))
22
+ * Fix exception with streaming.startAtSegmentBoundary ([#4216](https://github.com/shaka-project/shaka-player/issues/4216)) ([24eac2c](https://github.com/shaka-project/shaka-player/commit/24eac2c4bcea726f36d11845d8a174672c28e74f)), closes [#4188](https://github.com/shaka-project/shaka-player/issues/4188)
23
+ * Fix PERIOD_FLATTENING_FAILED error when periods have different base sample types ([#4206](https://github.com/shaka-project/shaka-player/issues/4206)) ([0482aec](https://github.com/shaka-project/shaka-player/commit/0482aec127e5429434ba015bd98ae8c5e15fef68)), closes [#4202](https://github.com/shaka-project/shaka-player/issues/4202)
24
+ * Fix VTT cue timing in HLS ([#4217](https://github.com/shaka-project/shaka-player/issues/4217)) ([69d1c14](https://github.com/shaka-project/shaka-player/commit/69d1c143aaade9167cba03a05daea5b94b3ccf95)), closes [#4191](https://github.com/shaka-project/shaka-player/issues/4191)
25
+ * **hls:** Fix av1 codec selection in HLS. ([#4203](https://github.com/shaka-project/shaka-player/issues/4203)) ([4d418be](https://github.com/shaka-project/shaka-player/commit/4d418be18334b181ab7f32f9e9fe66522fc9057a))
26
+ * **hls:** Fix X-PRELOAD-HINT failure with LL mode off ([#4212](https://github.com/shaka-project/shaka-player/issues/4212)) ([ae84aac](https://github.com/shaka-project/shaka-player/commit/ae84aac87cc4331139a98441c90993319a3b19ef)), closes [#4185](https://github.com/shaka-project/shaka-player/issues/4185)
27
+ * Wait for chapters track to be loaded ([#4228](https://github.com/shaka-project/shaka-player/issues/4228)) ([dec3d9c](https://github.com/shaka-project/shaka-player/commit/dec3d9c50505a6a7707232f595acbe1cfea8c3a0)), closes [#4186](https://github.com/shaka-project/shaka-player/issues/4186)
28
+
29
+ ## [4.0.0](https://github.com/shaka-project/shaka-player/compare/v3.3.0...v4.0.0) (2022-04-30)
30
+
31
+
32
+ ### ⚠ BREAKING CHANGES
33
+
34
+ * Remove small/large gap config, always jump gaps (#4125)
35
+ * **config:** `manifest.dash.defaultPresentationDelay` has been replaced by `manifest.defaultPresentationDelay` (deprecated in v3.0.0)
36
+ * **config:** Configuration of factories should be plain factory functions, not constructors; these will not be invoked with `new` (deprecated in v3.1.0)
37
+ * **player:** `shaka.Player.prototype.addTextTrack()` has been replaced by `addTextTrackAsync()`, which returns a `Promise` (deprecated in v3.1.0)
38
+ * **ui:** `shaka.ui.TrackLabelFormat` has been renamed to `shaka.ui.Overlay.TrackLabelFormat` (deprecated in v3.1.0)
39
+ * **ui:** `shaka.ui.FailReasonCode` has been renamed to `shaka.ui.Overlay.FailReasonCode` (deprecated in v3.1.0)
40
+ * **offline:** `shaka.offline.Storage.prototype.store()` returns `AbortableOperation` instead of `Promise` (deprecated in v3.0.0)
41
+ * **offline:** `shaka.offline.Storage.prototype.getStoreInProgress()` has been removed; concurrent operations are supported, so callers don't need to check this (deprecated in v3.0.0)
42
+ * `shaka.util.Uint8ArrayUtils.equal` has been replaced by `shaka.util.BufferUtils.equal`, which can handle multiple types of buffers (deprecated in v3.0.0)
43
+ * **manifest:** `shaka.media.SegmentIndex.prototype.destroy()` has been replaced by `release()`, which is synchronous (deprecated in v3.0.0)
44
+ * **manifest:** `shaka.media.SegmentIterator.prototype.seek()`, which mutates the iterator, has been replaced by `shaka.media.SegmentIndex.getIteratorForTime()` (deprecated in v3.1.0)
45
+ * **manifest:** `shaka.media.SegmentIndex.prototype.merge()` has become private; use `mergeAndEvict()` instead (deprecated in v3.2.0)
46
+ * **plugin:** `AbrManager` plugins must implement the `playbackRateChanged()` method (deprecated in v3.0.0)
47
+ * **plugin:** `shaka.extern.Cue.prototype.spacer` has been replaced by the more clearly-named `lineBreak` (deprecated in v3.1.0)
48
+ * **plugin:** `IUIElement` plugins must have a `release()` method (not `destroy()`) (deprecated in v3.0.0)
49
+ * Remove deprecated features, update upgrade guides (#4089)
50
+ * Remove support for Safari 12 and iOS 12 (#4112)
51
+ * **hls:** HLS disabled in old browsers/platforms due to incompatibilities (#3964)
52
+
53
+ ### Features
54
+
55
+ * `shaka.util.Uint8ArrayUtils.equal` has been replaced by `shaka.util.BufferUtils.equal`, which can handle multiple types of buffers (deprecated in v3.0.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
56
+ * Add Dockerfile and docker build instructions ([925de19](https://github.com/shaka-project/shaka-player/commit/925de1995eeb22863e8d4e92d720465834619288))
57
+ * add modern EME support for FairPlay ([#3776](https://github.com/shaka-project/shaka-player/issues/3776)) ([6d76a13](https://github.com/shaka-project/shaka-player/commit/6d76a135e5128dfd47653acea025d0a264d121d5))
58
+ * add new methods to FairPlayUtils ([#4029](https://github.com/shaka-project/shaka-player/issues/4029)) ([f1eeac1](https://github.com/shaka-project/shaka-player/commit/f1eeac1efb618aa7202b17b67c43056714f8da2f))
59
+ * add option for segment-relative VTT timings ([#4083](https://github.com/shaka-project/shaka-player/issues/4083)) ([f382cc7](https://github.com/shaka-project/shaka-player/commit/f382cc702be6cc28266fe61a33e43573cb22be57))
60
+ * Add separate audio and video MIME types to Track API ([#3892](https://github.com/shaka-project/shaka-player/issues/3892)) ([74c491d](https://github.com/shaka-project/shaka-player/commit/74c491d2e0042f62385813f04e74517cf00fcade)), closes [#3888](https://github.com/shaka-project/shaka-player/issues/3888)
61
+ * Allow WebP and AVIF image streams ([#3856](https://github.com/shaka-project/shaka-player/issues/3856)) ([9f3fb46](https://github.com/shaka-project/shaka-player/commit/9f3fb46d371d52f58bc9a7fc5beefe51890879ed)), closes [#3845](https://github.com/shaka-project/shaka-player/issues/3845)
62
+ * **config:** `manifest.dash.defaultPresentationDelay` has been replaced by `manifest.defaultPresentationDelay` (deprecated in v3.0.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
63
+ * **config:** Configuration of factories should be plain factory functions, not constructors; these will not be invoked with `new` (deprecated in v3.1.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
64
+ * **dash:** Construct ClearKey PSSH based on MPD ContentProtection ([#4104](https://github.com/shaka-project/shaka-player/issues/4104)) ([b83b412](https://github.com/shaka-project/shaka-player/commit/b83b4120f46ae94e3ce194f43b13517b7a736f07))
65
+ * **dash:** Parse ClearKey license URL in MPD ([#4066](https://github.com/shaka-project/shaka-player/issues/4066)) ([19e24b1](https://github.com/shaka-project/shaka-player/commit/19e24b1d741b4ba6946011748be8b759b4b71773))
66
+ * **demo:** Add Apple Advanced HLS Stream (TS) with raw AAC ([#3933](https://github.com/shaka-project/shaka-player/issues/3933)) ([1becadf](https://github.com/shaka-project/shaka-player/commit/1becadfc93ca06d64d0c9ace37c80213268a1675))
67
+ * **demo:** Added demo asset with raw AAC. ([014c7b3](https://github.com/shaka-project/shaka-player/commit/014c7b302b292a22f62d4e01230b927b33bc51da)), closes [#2337](https://github.com/shaka-project/shaka-player/issues/2337)
68
+ * **DRM:** add drmInfo to license requests ([#4030](https://github.com/shaka-project/shaka-player/issues/4030)) ([abe846e](https://github.com/shaka-project/shaka-player/commit/abe846e1a3456b029822ea42eb0520dec547fda6))
69
+ * **DRM:** add initData and initDataType to license requests ([#4039](https://github.com/shaka-project/shaka-player/issues/4039)) ([bdc5ea7](https://github.com/shaka-project/shaka-player/commit/bdc5ea767ebe55bb0b18dd106e269ab3fecd6d00))
70
+ * **HLS:** Containerless format support ([36d0b54](https://github.com/shaka-project/shaka-player/commit/36d0b5484fad68dc1d640fbddf2fae3e1eb7169b)), closes [#2337](https://github.com/shaka-project/shaka-player/issues/2337)
71
+ * **hls:** HLS disabled in old browsers/platforms due to incompatibilities ([#3964](https://github.com/shaka-project/shaka-player/issues/3964)) ([0daa00f](https://github.com/shaka-project/shaka-player/commit/0daa00fc7f074c1c86968ed0fcd84bc30254ee6d))
72
+ * **hls:** make a head request if hls subtitles have no extension ([#4140](https://github.com/shaka-project/shaka-player/issues/4140)) ([19e12b5](https://github.com/shaka-project/shaka-player/commit/19e12b5e282e661a9a17a6bfbb87c565faf2bc6e))
73
+ * **hls:** parse EXT-X-GAP ([#4134](https://github.com/shaka-project/shaka-player/issues/4134)) ([42eecc8](https://github.com/shaka-project/shaka-player/commit/42eecc84f992ca6a680c3a5fd46d1c300fe92a72))
74
+ * **HLS:** Re-add TS support to Safari ([#4097](https://github.com/shaka-project/shaka-player/issues/4097)) ([8a3bed7](https://github.com/shaka-project/shaka-player/commit/8a3bed710c104c9729fec2072318e50f9fe15ab2))
75
+ * **hls:** Read EXT-X-PROGRAM-DATE-TIME ([#4034](https://github.com/shaka-project/shaka-player/issues/4034)) ([89409ce](https://github.com/shaka-project/shaka-player/commit/89409cee3eaeb6764dbc191b7408bf45eecdced3)), closes [#2337](https://github.com/shaka-project/shaka-player/issues/2337)
76
+ * **manifest:** `shaka.media.SegmentIndex.prototype.destroy()` has been replaced by `release()`, which is synchronous (deprecated in v3.0.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
77
+ * **manifest:** `shaka.media.SegmentIndex.prototype.merge()` has become private; use `mergeAndEvict()` instead (deprecated in v3.2.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
78
+ * **manifest:** `shaka.media.SegmentIterator.prototype.seek()`, which mutates the iterator, has been replaced by `shaka.media.SegmentIndex.getIteratorForTime()` (deprecated in v3.1.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
79
+ * **offline:** `shaka.offline.Storage.prototype.getStoreInProgress()` has been removed; concurrent operations are supported, so callers don't need to check this (deprecated in v3.0.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
80
+ * **offline:** `shaka.offline.Storage.prototype.store()` returns `AbortableOperation` instead of `Promise` (deprecated in v3.0.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
81
+ * **offline:** improve the speed of offline downloads ([#4168](https://github.com/shaka-project/shaka-player/issues/4168)) ([73f6de3](https://github.com/shaka-project/shaka-player/commit/73f6de3e01ae4ed3b86302add7ee16c86c3b9b78))
82
+ * only polyfill MCap for non Android-based Cast devices. ([#4170](https://github.com/shaka-project/shaka-player/issues/4170)) ([11321d8](https://github.com/shaka-project/shaka-player/commit/11321d8f26b01412fa5173aa6efcf777186fa7a0))
83
+ * **player:** `shaka.Player.prototype.addTextTrack()` has been replaced by `addTextTrackAsync()`, which returns a `Promise` (deprecated in v3.1.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
84
+ * **plugin:** `AbrManager` plugins must implement the `playbackRateChanged()` method (deprecated in v3.0.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
85
+ * **plugin:** `IUIElement` plugins must have a `release()` method (not `destroy()`) (deprecated in v3.0.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
86
+ * **plugin:** `shaka.extern.Cue.prototype.spacer` has been replaced by the more clearly-named `lineBreak` (deprecated in v3.1.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
87
+ * Public release of Sindarin (sjn) translation easter egg ([#4033](https://github.com/shaka-project/shaka-player/issues/4033)) ([9029d06](https://github.com/shaka-project/shaka-player/commit/9029d0677e0e0325e0dbe939907ba60ecec74c92))
88
+ * Remove deprecated features, update upgrade guides ([#4089](https://github.com/shaka-project/shaka-player/issues/4089)) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
89
+ * Remove small/large gap config, always jump gaps ([#4125](https://github.com/shaka-project/shaka-player/issues/4125)) ([0fd1999](https://github.com/shaka-project/shaka-player/commit/0fd19997dde7b03bad7464a82dc86d7b2cd8a304))
90
+ * Remove support for Safari 12 and iOS 12 ([#4112](https://github.com/shaka-project/shaka-player/issues/4112)) ([8bb7044](https://github.com/shaka-project/shaka-player/commit/8bb70449d33c31a0e7fc312260dc001cc9e3a792))
91
+ * **ui:** `shaka.ui.FailReasonCode` has been renamed to `shaka.ui.Overlay.FailReasonCode` (deprecated in v3.1.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
92
+ * **ui:** `shaka.ui.TrackLabelFormat` has been renamed to `shaka.ui.Overlay.TrackLabelFormat` (deprecated in v3.1.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
93
+ * **ui:** Add quality selection for audio-only content ([#3649](https://github.com/shaka-project/shaka-player/issues/3649)) ([adc3502](https://github.com/shaka-project/shaka-player/commit/adc3502d55f39eaca30f3c42e17961ec7d681c80)), closes [#2071](https://github.com/shaka-project/shaka-player/issues/2071)
94
+ * **UI:** Add video fullscreen support for iOS ([#3853](https://github.com/shaka-project/shaka-player/issues/3853)) ([8d1b5e6](https://github.com/shaka-project/shaka-player/commit/8d1b5e6b07e979bd641da0b2b53c5f8e872422ad)), closes [#3832](https://github.com/shaka-project/shaka-player/issues/3832)
47
95
 
48
96
 
49
97
  ### Bug Fixes
50
98
 
51
- * Add explicit release() for FakeEventTarget ([#3950](https://github.com/shaka-project/shaka-player/issues/3950)) ([1f9dd98](https://github.com/shaka-project/shaka-player/commit/1f9dd9856eb21079ca789b2c8f7e461438cb13de))
52
- * Fix download of some HLS assets ([#3934](https://github.com/shaka-project/shaka-player/issues/3934)) ([449065c](https://github.com/shaka-project/shaka-player/commit/449065c84c5b6e4bbceba03c2345a3330ac2d1a7))
53
- * Fix exception in StreamingEngine for EMSG with HLS ([#3887](https://github.com/shaka-project/shaka-player/issues/3887)) ([ca1ca33](https://github.com/shaka-project/shaka-player/commit/ca1ca33c3caf1787c52713ccb151ea59a9285649)), closes [#3886](https://github.com/shaka-project/shaka-player/issues/3886)
54
- * Fix memory leak in DASH live streams with inband EventStream ([#3957](https://github.com/shaka-project/shaka-player/issues/3957)) ([6eb81da](https://github.com/shaka-project/shaka-player/commit/6eb81dae36a9cced95bd99f5356b69205c264ee0))
55
- * **HLS:** skip whitespace in attributes ([#3884](https://github.com/shaka-project/shaka-player/issues/3884)) ([6305555](https://github.com/shaka-project/shaka-player/commit/6305555d40ca0e8be1604fc1f07dd34112b62530))
99
+ * Add explicit release() for FakeEventTarget ([#3950](https://github.com/shaka-project/shaka-player/issues/3950)) ([f1c1585](https://github.com/shaka-project/shaka-player/commit/f1c1585afb2cfa3eb6b7465c8b32c9bad8e62d15))
100
+ * Add missing module export in generated typescript defs ([feefd7b](https://github.com/shaka-project/shaka-player/commit/feefd7b7d1cc318800c8d83de8cce81c57939f7d))
101
+ * Avoid WebCrypto randomUUID when CMCD disabled ([4731c76](https://github.com/shaka-project/shaka-player/commit/4731c7677f4f179f19ae647d3bb1edfda40dac53))
102
+ * **cea:** make a more robust CEA MP4 parser ([#3965](https://github.com/shaka-project/shaka-player/issues/3965)) ([2687b95](https://github.com/shaka-project/shaka-player/commit/2687b95d5830179c53914a7e903ecfbaced429cc))
103
+ * Clear buffer on seek if mediaState is updating ([#3795](https://github.com/shaka-project/shaka-player/issues/3795)) ([9705639](https://github.com/shaka-project/shaka-player/commit/9705639f4514d8d2dbfe5d81a31388f99e6be507)), closes [#3299](https://github.com/shaka-project/shaka-player/issues/3299)
104
+ * **cmcd:** Fix Symbol usage in CMCD on Xbox One ([#4073](https://github.com/shaka-project/shaka-player/issues/4073)) ([4005754](https://github.com/shaka-project/shaka-player/commit/400575498f34cf252aaba0bc1367953b8cf44537)), closes [#4072](https://github.com/shaka-project/shaka-player/issues/4072)
105
+ * **css:** Fix missing % in calculation ([#4157](https://github.com/shaka-project/shaka-player/issues/4157)) ([1c86195](https://github.com/shaka-project/shaka-player/commit/1c8619582319c46c524807aa4bdff1191b2efc91))
106
+ * **dash:** Account for bandwidth before filtering text stream ([#3765](https://github.com/shaka-project/shaka-player/issues/3765)) ([0b04aec](https://github.com/shaka-project/shaka-player/commit/0b04aecdd7ad4184a72b8cf562318b28128344bf)), closes [#3724](https://github.com/shaka-project/shaka-player/issues/3724)
107
+ * **dash:** Fix performance regression ([#4064](https://github.com/shaka-project/shaka-player/issues/4064)) ([298b604](https://github.com/shaka-project/shaka-player/commit/298b60481d34bd9d776874fe1b9a8eea05b533d9))
108
+ * **dash:** Fix playback of Dolby Atmos ([#4173](https://github.com/shaka-project/shaka-player/issues/4173)) ([d51fe23](https://github.com/shaka-project/shaka-player/commit/d51fe23b7fab99501818c18cc76586e1ec4abcdd)), closes [#4171](https://github.com/shaka-project/shaka-player/issues/4171)
109
+ * Fix broken deps file generation on Windows ([#4086](https://github.com/shaka-project/shaka-player/issues/4086)) ([9660ce8](https://github.com/shaka-project/shaka-player/commit/9660ce85df48856b964eebc330c28beba2e3068a)), closes [#4085](https://github.com/shaka-project/shaka-player/issues/4085)
110
+ * Fix CMCD property mangling ([#3842](https://github.com/shaka-project/shaka-player/issues/3842)) ([fa5932c](https://github.com/shaka-project/shaka-player/commit/fa5932ca8f604952590734bf8bdc27ad8e69e8d8)), closes [#3839](https://github.com/shaka-project/shaka-player/issues/3839)
111
+ * Fix CMCD top bitrate reporting ([#3852](https://github.com/shaka-project/shaka-player/issues/3852)) ([922778a](https://github.com/shaka-project/shaka-player/commit/922778a5ebd2d58ca0c1e804745ca40cda1228bc)), closes [#3851](https://github.com/shaka-project/shaka-player/issues/3851)
112
+ * Fix compiler error introduced in [#3864](https://github.com/shaka-project/shaka-player/issues/3864) ([#3906](https://github.com/shaka-project/shaka-player/issues/3906)) ([0635e2c](https://github.com/shaka-project/shaka-player/commit/0635e2c055c13a405048c7696389c1dfc039902f))
113
+ * Fix download of some HLS assets ([#3934](https://github.com/shaka-project/shaka-player/issues/3934)) ([36ca820](https://github.com/shaka-project/shaka-player/commit/36ca820877965db8bcc8b9c4b2a428317301bb95))
114
+ * Fix duplicate CMCD parameters in HLS live content ([#3875](https://github.com/shaka-project/shaka-player/issues/3875)) ([f27401c](https://github.com/shaka-project/shaka-player/commit/f27401cc151a435ae8fb12be4e86d672c331e1e5)), closes [#3862](https://github.com/shaka-project/shaka-player/issues/3862)
115
+ * Fix encryption detection to work around broken platforms ([#4169](https://github.com/shaka-project/shaka-player/issues/4169)) ([c5f474e](https://github.com/shaka-project/shaka-player/commit/c5f474ef983169e6ff29f1594d15a9b50b12d316))
116
+ * Fix exception in StreamingEngine for EMSG with HLS ([#3887](https://github.com/shaka-project/shaka-player/issues/3887)) ([48433ab](https://github.com/shaka-project/shaka-player/commit/48433abe74c5f603cf06097e391ffdfa22d64256)), closes [#3886](https://github.com/shaka-project/shaka-player/issues/3886)
117
+ * Fix exceptions when quickly shutting down src= on Safari ([#4088](https://github.com/shaka-project/shaka-player/issues/4088)) ([ca08230](https://github.com/shaka-project/shaka-player/commit/ca08230fbe85d66176c7fa1fb4f9782d0ab364fc)), closes [#4087](https://github.com/shaka-project/shaka-player/issues/4087)
118
+ * Fix MediaCapabilities polyfill on Safari ([0201f2b](https://github.com/shaka-project/shaka-player/commit/0201f2b7604e76062b68b8b1acbf098faf71d019)), closes [#3696](https://github.com/shaka-project/shaka-player/issues/3696) [#3530](https://github.com/shaka-project/shaka-player/issues/3530)
119
+ * Fix memory leak in DASH live streams with inband EventStream ([#3957](https://github.com/shaka-project/shaka-player/issues/3957)) ([b7f04cb](https://github.com/shaka-project/shaka-player/commit/b7f04cb36bda664ec9cf23a081d237793907eaae))
120
+ * Fix misdetection of HEVC support on MS Edge ([#3897](https://github.com/shaka-project/shaka-player/issues/3897)) ([dfb3699](https://github.com/shaka-project/shaka-player/commit/dfb369935b9e84fe69a7d38c7904fb0e00dc064a)), closes [#3860](https://github.com/shaka-project/shaka-player/issues/3860)
121
+ * Fix missing throughput in CMCD for HLS live ([#3874](https://github.com/shaka-project/shaka-player/issues/3874)) ([df55944](https://github.com/shaka-project/shaka-player/commit/df55944e8f49bdf8e34a679219cd6596ba46c777)), closes [#3873](https://github.com/shaka-project/shaka-player/issues/3873)
122
+ * Fix playback failure due to rounding errors ([1cc99c1](https://github.com/shaka-project/shaka-player/commit/1cc99c1241c89b5fb5a989dd52ff0b9a9753b65f)), closes [#3717](https://github.com/shaka-project/shaka-player/issues/3717)
123
+ * Fix playRangeEnd for certain content ([#4068](https://github.com/shaka-project/shaka-player/issues/4068)) ([5c81f3b](https://github.com/shaka-project/shaka-player/commit/5c81f3bddb9e48431556f4d622364043fee4ea80)), closes [#4026](https://github.com/shaka-project/shaka-player/issues/4026)
124
+ * Fix support for TTAF1 namespace (old version of TTML) ([#3864](https://github.com/shaka-project/shaka-player/issues/3864)) ([771619f](https://github.com/shaka-project/shaka-player/commit/771619ff0ef8ba0e3da9569ded3894b428d03c58)), closes [#3009](https://github.com/shaka-project/shaka-player/issues/3009)
125
+ * Fix usage of Shaka without polyfills ([dfc44cb](https://github.com/shaka-project/shaka-player/commit/dfc44cbca6b95eb137882075cb8bf02cfc73a9d3))
126
+ * **hls:** Fixed buffering issue with live HLS ([#4002](https://github.com/shaka-project/shaka-player/issues/4002)) ([c438e85](https://github.com/shaka-project/shaka-player/commit/c438e857f2f122eb45899148e067d68ffec3477c))
127
+ * **HLS:** skip whitespace in attributes ([#3884](https://github.com/shaka-project/shaka-player/issues/3884)) ([ea6c02a](https://github.com/shaka-project/shaka-player/commit/ea6c02aece1510598a898c235e66335d20eabedb))
128
+ * **hls:** Support playing media playlists directly ([#4080](https://github.com/shaka-project/shaka-player/issues/4080)) ([48dd205](https://github.com/shaka-project/shaka-player/commit/48dd20562c2226f61cc753a922629e44c1866f6d)), closes [#3536](https://github.com/shaka-project/shaka-player/issues/3536)
129
+ * **image:** Fix HLS image track issues ([264c842](https://github.com/shaka-project/shaka-player/commit/264c84249684ee809f53fd4117f9aab4e0a599ac)), closes [#3840](https://github.com/shaka-project/shaka-player/issues/3840)
130
+ * **image:** Fix thumbnails issues ([#3858](https://github.com/shaka-project/shaka-player/issues/3858)) ([087a9b4](https://github.com/shaka-project/shaka-player/commit/087a9b489b030aa0dc80011ca4e0a0c7a4124ecd))
131
+ * **offline:** Clean up orphaned segments on abort ([#4177](https://github.com/shaka-project/shaka-player/issues/4177)) ([c07447f](https://github.com/shaka-project/shaka-player/commit/c07447f00e9095020890366695561b71b045e55a))
132
+ * **offline:** Speed up offline storage by ~87% ([#4176](https://github.com/shaka-project/shaka-player/issues/4176)) ([c1c9613](https://github.com/shaka-project/shaka-player/commit/c1c96135120480afc9615713812eecc4a51f153b)), closes [#4166](https://github.com/shaka-project/shaka-player/issues/4166)
133
+ * **performance:** Eliminate use of ES6 generators ([#4092](https://github.com/shaka-project/shaka-player/issues/4092)) ([57c7324](https://github.com/shaka-project/shaka-player/commit/57c73241a0e8ce1615f7b3aca4c3ad8f69b7e8c2)), closes [#4062](https://github.com/shaka-project/shaka-player/issues/4062)
134
+ * Revert "Add missing module export in generated typescript defs" ([#4175](https://github.com/shaka-project/shaka-player/issues/4175)) ([fe4f5c6](https://github.com/shaka-project/shaka-player/commit/fe4f5c6e19214d6cf4d42da9430de03040532bab)), closes [#4167](https://github.com/shaka-project/shaka-player/issues/4167)
135
+ * Select first of identical audio streams ([#3869](https://github.com/shaka-project/shaka-player/issues/3869)) ([a6d8610](https://github.com/shaka-project/shaka-player/commit/a6d8610241dc7c8abd56cf7f0d48993d6139dcae))
136
+ * Support multiple chapter tracks with same language ([#3868](https://github.com/shaka-project/shaka-player/issues/3868)) ([8c626ae](https://github.com/shaka-project/shaka-player/commit/8c626aec238c01ebad7ccd06c9313e4f2e99d383)), closes [#3597](https://github.com/shaka-project/shaka-player/issues/3597)
137
+ * **text:** Fix caption overlap. ([bf67d87](https://github.com/shaka-project/shaka-player/commit/bf67d87387b1dfc4d3d8e0661bfe4efb1e4083b2)), closes [#3850](https://github.com/shaka-project/shaka-player/issues/3850) [#3741](https://github.com/shaka-project/shaka-player/issues/3741)
138
+ * **text:** Fix webvtt offset in sequence mode ([#3955](https://github.com/shaka-project/shaka-player/issues/3955)) ([a4e9267](https://github.com/shaka-project/shaka-player/commit/a4e926772e1b754fe968ee6f97490f08a40fe535)), closes [#2337](https://github.com/shaka-project/shaka-player/issues/2337)
139
+ * **text:** Inherit alignment from regions. ([e9df8fb](https://github.com/shaka-project/shaka-player/commit/e9df8fb10c3752cb833e89c8ac793241497e29b6))
140
+ * **text:** Made nested cues inherit region ([#3837](https://github.com/shaka-project/shaka-player/issues/3837)) ([3ff48cb](https://github.com/shaka-project/shaka-player/commit/3ff48cba9b28a29e8decc11898e326d7918bc8f4)), closes [#3743](https://github.com/shaka-project/shaka-player/issues/3743)
141
+ * **text:** Remove caption wrapper bgColor ([#3838](https://github.com/shaka-project/shaka-player/issues/3838)) ([0117441](https://github.com/shaka-project/shaka-player/commit/0117441bb06e0325b84666d2a5a76c0c2de81725)), closes [#3745](https://github.com/shaka-project/shaka-player/issues/3745)
142
+ * **ttml:** Center subtitles by default ([#4023](https://github.com/shaka-project/shaka-player/issues/4023)) ([f2f24d5](https://github.com/shaka-project/shaka-player/commit/f2f24d528f71e59c81d6172c24da2f412ca18d70))
143
+ * **UI:** Add cursor pointer to range elements ([#4059](https://github.com/shaka-project/shaka-player/issues/4059)) ([33e8400](https://github.com/shaka-project/shaka-player/commit/33e84009dc9f6d48884ecfc2f66eeb285f60d05a)), closes [#3220](https://github.com/shaka-project/shaka-player/issues/3220)
144
+ * **UI:** Fix text UI not updating when text is disabled ([#3867](https://github.com/shaka-project/shaka-player/issues/3867)) ([9f53d39](https://github.com/shaka-project/shaka-player/commit/9f53d394279066f29a2d391b6964cba11c4a3e1e)), closes [#3728](https://github.com/shaka-project/shaka-player/issues/3728)
56
145
 
57
146
  ## 3.3.1 (2022-01-28)
58
147
 
@@ -108,6 +197,91 @@ Bugfixes:
108
197
  - Avoid WebCrypto randomUUID when CMCD disabled
109
198
 
110
199
 
200
+ ## 3.2.3 (2022-01-28)
201
+
202
+ Bugfixes:
203
+ - Fix support for TTAF1 namespace (old version of TTML)
204
+ - https://github.com/shaka-project/shaka-player/issues/3009
205
+ - https://github.com/shaka-project/shaka-player/pull/3864
206
+ - https://github.com/shaka-project/shaka-player/pull/3906
207
+ - Fix misdetection of HEVC support on MS Edge
208
+ - https://github.com/shaka-project/shaka-player/pull/3897
209
+ - Fix caption overlap
210
+ - https://github.com/shaka-project/shaka-player/issues/3850
211
+ - https://github.com/shaka-project/shaka-player/issues/3741
212
+ - Support multiple chapter tracks with same language
213
+ - https://github.com/shaka-project/shaka-player/issues/3597
214
+ - https://github.com/shaka-project/shaka-player/pull/3868
215
+ - Fix text UI not updating when text is disabled
216
+ - https://github.com/shaka-project/shaka-player/issues/3728
217
+ - https://github.com/shaka-project/shaka-player/pull/3867
218
+ - Clear buffer on seek if mediaState is updating
219
+ - https://github.com/shaka-project/shaka-player/issues/3299
220
+ - https://github.com/shaka-project/shaka-player/pull/3795
221
+ - Fix thumbnails issues
222
+ - https://github.com/shaka-project/shaka-player/pull/3858
223
+ - Made nested cues inherit region
224
+ - https://github.com/shaka-project/shaka-player/issues/3743
225
+ - https://github.com/shaka-project/shaka-player/pull/3837
226
+ - Fix MediaCapabilities polyfill on Safari
227
+ - https://github.com/shaka-project/shaka-player/issues/3696
228
+ - https://github.com/shaka-project/shaka-player/issues/3530
229
+ - Fix usage of Shaka without polyfills
230
+ - https://github.com/shaka-project/shaka-player/issues/3843
231
+ - Fix playback failure due to rounding errors
232
+ - https://github.com/shaka-project/shaka-player/issues/3717
233
+ - Fix HLS image track issues
234
+ - https://github.com/shaka-project/shaka-player/issues/3840
235
+ - Remove caption wrapper bgColor
236
+ - https://github.com/shaka-project/shaka-player/issues/3745
237
+ - https://github.com/shaka-project/shaka-player/pull/3838
238
+ - Support "forced-subtitle" role
239
+ - https://github.com/shaka-project/shaka-player/issues/3767
240
+ - https://github.com/shaka-project/shaka-player/pull/3807
241
+ - Fix time element height on Safari
242
+ - https://github.com/shaka-project/shaka-player/issues/3739
243
+ - https://github.com/shaka-project/shaka-player/pull/3809
244
+
245
+
246
+ ## 3.1.5 (2022-01-28)
247
+
248
+ Bugfixes:
249
+ - Fix support for TTAF1 namespace (old version of TTML)
250
+ - https://github.com/shaka-project/shaka-player/issues/3009
251
+ - https://github.com/shaka-project/shaka-player/pull/3864
252
+ - https://github.com/shaka-project/shaka-player/pull/3906
253
+ - Fix misdetection of HEVC support on MS Edge
254
+ - https://github.com/shaka-project/shaka-player/pull/3897
255
+ - Fix caption overlap
256
+ - https://github.com/shaka-project/shaka-player/issues/3850
257
+ - https://github.com/shaka-project/shaka-player/issues/3741
258
+ - Fix text UI not updating when text is disabled
259
+ - https://github.com/shaka-project/shaka-player/issues/3728
260
+ - https://github.com/shaka-project/shaka-player/pull/3867
261
+ - Clear buffer on seek if mediaState is updating
262
+ - https://github.com/shaka-project/shaka-player/issues/3299
263
+ - https://github.com/shaka-project/shaka-player/pull/3795
264
+ - Made nested cues inherit region
265
+ - https://github.com/shaka-project/shaka-player/issues/3743
266
+ - https://github.com/shaka-project/shaka-player/pull/3837
267
+ - Fix MediaCapabilities polyfill on Safari
268
+ - https://github.com/shaka-project/shaka-player/issues/3696
269
+ - https://github.com/shaka-project/shaka-player/issues/3530
270
+ - Fix usage of Shaka without polyfills
271
+ - https://github.com/shaka-project/shaka-player/issues/3843
272
+ - Fix playback failure due to rounding errors
273
+ - https://github.com/shaka-project/shaka-player/issues/3717
274
+ - Remove caption wrapper bgColor
275
+ - https://github.com/shaka-project/shaka-player/issues/3745
276
+ - https://github.com/shaka-project/shaka-player/pull/3838
277
+ - Support "forced-subtitle" role
278
+ - https://github.com/shaka-project/shaka-player/issues/3767
279
+ - https://github.com/shaka-project/shaka-player/pull/3807
280
+ - Fix time element height on Safari
281
+ - https://github.com/shaka-project/shaka-player/issues/3739
282
+ - https://github.com/shaka-project/shaka-player/pull/3809
283
+
284
+
111
285
  ## 3.3.0 (2022-01-07)
112
286
 
113
287
  New Features:
@@ -2221,7 +2395,7 @@ Demo App:
2221
2395
 
2222
2396
  Docs:
2223
2397
  - Add a public roadmap document
2224
- - https://github.com/shaka-project/shaka-player/blob/master/roadmap.md
2398
+ - https://github.com/shaka-project/shaka-player/blob/main/roadmap.md
2225
2399
 
2226
2400
 
2227
2401
  ## 2.5.1 (2019-05-20)
package/CONTRIBUTORS CHANGED
@@ -97,6 +97,7 @@ Sam Dutton <dutton@google.com>
97
97
  Sanborn Hilland <sanbornh@rogers.com>
98
98
  Sander Saares <sander@saares.eu>
99
99
  Sandra Lokshina <ismena@google.com>
100
+ Sanil Raut <sr1990003@gmail.com>
100
101
  Satheesh Velmurugan <satheesh@philo.com>
101
102
  Semih Gokceoglu <semih.gkcoglu@gmail.com>
102
103
  Seth Madison <seth@philo.com>
package/README.md CHANGED
@@ -26,7 +26,7 @@ For details on what's coming next, see our [development roadmap](roadmap.md).
26
26
 
27
27
  ## Platform and browser support matrix
28
28
 
29
- |Browser |Windows |Mac |Linux |Android |iOS >= 12 |ChromeOS|Other|
29
+ |Browser |Windows |Mac |Linux |Android |iOS >= 13 |ChromeOS|Other|
30
30
  |:---------:|:--------:|:-------:|:-------:|:-------:|:--------:|:------:|:---:|
31
31
  |Chrome¹ |**Y** |**Y** |**Y** |**Y** |**Native**|**Y** | - |
32
32
  |Firefox¹ |**Y** |**Y** |**Y** |untested⁵|**Native**| - | - |
@@ -41,7 +41,7 @@ For details on what's coming next, see our [development roadmap](roadmap.md).
41
41
  |Xbox One | - | - | - | - | - | - |**Y**|
42
42
 
43
43
  NOTES:
44
- - ¹: On macOS, only Safari 12+ is supported. On iOS, only iOS 12+ is
44
+ - ¹: On macOS, only Safari 13+ is supported. On iOS, only iOS 13+ is
45
45
  supported. Older versions will be rejected.
46
46
  - ²: The latest stable Chromecast firmware is tested. Both sender and receiver
47
47
  can be implemented with Shaka Player.
@@ -54,7 +54,7 @@ NOTES:
54
54
  - Official support for LG WebOS TV:
55
55
  https://github.com/shaka-project/shaka-player/issues/1330
56
56
 
57
- We support iOS 12+ through Apple's native HLS player. We provide the same
57
+ We support iOS 13+ through Apple's native HLS player. We provide the same
58
58
  top-level API, but we just set the video's `src` element to the manifest/media.
59
59
  So we are dependent on the browser supporting the manifests.
60
60
 
@@ -112,23 +112,24 @@ DASH features **not** supported:
112
112
 
113
113
  ## HLS features
114
114
 
115
+ **Only supported on browsers with SourceBuffer.mode=sequence support**
116
+
115
117
  HLS features supported:
116
118
  - VOD, Live, and Event types
117
119
  - Low-latency streaming with partial segments, preload hints, and delta updates
118
120
  - Discontinuity
119
121
  - ISO-BMFF / MP4 / CMAF support
120
- - MPEG-2 TS support (transmuxing provided by [mux.js][] v5.7.0+, must be
122
+ - MPEG-2 TS support (transmuxing provided by [mux.js][] v6.1.0+, must be
121
123
  separately included)
122
124
  - WebVTT and TTML
123
125
  - CEA-608/708 captions
124
126
  - Encrypted content with PlayReady and Widevine
125
- - Encrypted content with FairPlay (Safari on macOS and iOS 12+ only)
127
+ - Encrypted content with FairPlay (Safari on macOS and iOS 13+ only)
128
+ - Raw AAC, MP3, etc (without an MP4 container)
126
129
 
127
130
  HLS features **not** supported:
128
131
  - Key rotation: https://github.com/shaka-project/shaka-player/issues/917
129
132
  - I-frame-only playlists: https://github.com/shaka-project/shaka-player/issues/742
130
- - Raw AAC, MP3, etc (without an MP4 container):
131
- https://github.com/shaka-project/shaka-player/issues/2337
132
133
  - Low-latency streaming with blocking playlist reload
133
134
 
134
135
  [mux.js]: https://github.com/videojs/mux.js/releases
@@ -171,7 +172,9 @@ NOTES:
171
172
  |HLS |**Y** |**Y** |**Y** ¹ | - |
172
173
 
173
174
  NOTES:
174
- - ¹: We support FairPlay through Apple's native HLS player.
175
+ - ¹: By default, FairPlay is handled using Apple's native HLS player, when on
176
+ Safari. We do support FairPlay through MSE/EME, however. See the
177
+ `streaming.useNativeHlsOnSafari` configuration value.
175
178
 
176
179
 
177
180
  ## Media container and subtitle support
@@ -188,7 +191,7 @@ Shaka Player supports:
188
191
  SegmentTemplate@index
189
192
  - Not supported in HLS
190
193
  - MPEG-2 TS
191
- - With help from [mux.js][] v5.7.0+, can be played on any browser which
194
+ - With help from [mux.js][] v6.1.0+, can be played on any browser which
192
195
  supports MP4
193
196
  - Can find and parse timestamps to find segment start time in HLS
194
197
  - WebVTT
@@ -197,10 +200,10 @@ Shaka Player supports:
197
200
  - Supported in both XML form and embedded in MP4
198
201
  - CEA-608
199
202
  - Supported embedded in MP4
200
- - With help from [mux.js][] v5.7.0+, supported embedded in TS
203
+ - With help from [mux.js][] v6.1.0+, supported embedded in TS
201
204
  - CEA-708
202
205
  - Supported embedded in MP4
203
- - With help from [mux.js][] v5.7.0+, supported embedded in TS
206
+ - With help from [mux.js][] v6.1.0+, supported embedded in TS
204
207
  - SubRip (SRT)
205
208
  - UTF-8 encoding only
206
209
  - LyRiCs (LRC)