shaka-player 3.3.4 → 4.0.1

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 (201) hide show
  1. package/.github/config.yml +1 -0
  2. package/.github/workflows/build-and-test.yaml +0 -1
  3. package/.github/workflows/demo-version-index.yaml +8 -0
  4. package/.github/workflows/release-please.yaml +19 -3
  5. package/.github/workflows/selenium-lab-tests.yaml +0 -1
  6. package/.github/workflows/sync-labels.yaml +33 -0
  7. package/.github/workflows/update-issues.yaml +29 -0
  8. package/.github/workflows/validate-pr-title.yaml +35 -0
  9. package/AUTHORS +1 -0
  10. package/CHANGELOG.md +209 -28
  11. package/CONTRIBUTORS +1 -0
  12. package/README.md +10 -7
  13. package/app-engine/demo-version-index/README.md +3 -3
  14. package/app-engine/demo-version-index/app.yaml +27 -1
  15. package/app-engine/demo-version-index/generate.py +164 -0
  16. package/app-engine/demo-version-index/main.py +4 -155
  17. package/app-engine/demo-version-index/requirements.txt +0 -1
  18. package/build/README.md +2 -2
  19. package/build/compiler.py +1 -1
  20. package/build/generateTsDefs.py +0 -2
  21. package/build/misspellings.txt +1 -0
  22. package/build/shaka-lab.yaml +0 -2
  23. package/build/test.py +7 -1
  24. package/build/types/core +0 -1
  25. package/build/types/polyfill +0 -3
  26. package/demo/common/asset.js +17 -1
  27. package/demo/common/assets.js +29 -0
  28. package/demo/common/message_ids.js +6 -3
  29. package/demo/config.js +10 -11
  30. package/demo/custom.js +39 -0
  31. package/demo/demo_utils.js +0 -1
  32. package/demo/locales/en.json +6 -3
  33. package/demo/locales/source.json +22 -10
  34. package/demo/main.js +9 -6
  35. package/demo/search.js +2 -1
  36. package/dist/controls.css +1 -1
  37. package/dist/demo.compiled.debug.js +71 -64
  38. package/dist/demo.compiled.debug.map +3 -3
  39. package/dist/demo.compiled.js +71 -64
  40. package/dist/demo.compiled.map +3 -3
  41. package/dist/demo.css +1 -1
  42. package/dist/demo.css.map +1 -1
  43. package/dist/deps.js +16 -20
  44. package/dist/locales.js +33 -31
  45. package/dist/receiver.compiled.debug.js +32 -28
  46. package/dist/receiver.compiled.debug.map +3 -3
  47. package/dist/receiver.compiled.js +32 -28
  48. package/dist/receiver.compiled.map +3 -3
  49. package/dist/shaka-player.compiled.d.ts +78 -82
  50. package/dist/shaka-player.compiled.debug.d.ts +78 -82
  51. package/dist/shaka-player.compiled.debug.externs.js +127 -126
  52. package/dist/shaka-player.compiled.debug.js +471 -523
  53. package/dist/shaka-player.compiled.debug.map +4 -4
  54. package/dist/shaka-player.compiled.externs.js +127 -126
  55. package/dist/shaka-player.compiled.js +844 -858
  56. package/dist/shaka-player.compiled.map +4 -4
  57. package/dist/shaka-player.ui.d.ts +80 -82
  58. package/dist/shaka-player.ui.debug.d.ts +80 -82
  59. package/dist/shaka-player.ui.debug.externs.js +135 -126
  60. package/dist/shaka-player.ui.debug.js +531 -581
  61. package/dist/shaka-player.ui.debug.map +4 -4
  62. package/dist/shaka-player.ui.externs.js +135 -126
  63. package/dist/shaka-player.ui.js +991 -1001
  64. package/dist/shaka-player.ui.map +4 -4
  65. package/docs/tutorials/config.md +0 -2
  66. package/docs/tutorials/drm-config.md +5 -0
  67. package/docs/tutorials/fairplay.md +7 -22
  68. package/docs/tutorials/faq.md +0 -11
  69. package/docs/tutorials/index.json +2 -8
  70. package/docs/tutorials/plugins.md +1 -3
  71. package/docs/tutorials/upgrade.md +85 -11
  72. package/externs/polyfill.js +15 -0
  73. package/externs/shaka/manifest.js +5 -1
  74. package/externs/shaka/net.js +12 -0
  75. package/externs/shaka/offline.js +5 -1
  76. package/externs/shaka/player.js +39 -21
  77. package/externs/shaka/text.js +12 -12
  78. package/externs/sourcebuffer.js +15 -0
  79. package/karma.conf.js +4 -0
  80. package/lib/ads/client_side_ad.js +13 -2
  81. package/lib/ads/client_side_ad_manager.js +22 -4
  82. package/lib/cast/cast_utils.js +0 -1
  83. package/lib/dash/content_protection.js +85 -5
  84. package/lib/dash/dash_parser.js +3 -3
  85. package/lib/hls/hls_parser.js +391 -747
  86. package/lib/hls/manifest_text_parser.js +2 -3
  87. package/lib/media/drm_engine.js +102 -37
  88. package/lib/media/gap_jumping_controller.js +10 -45
  89. package/lib/media/media_source_engine.js +157 -31
  90. package/lib/media/playhead.js +2 -5
  91. package/lib/media/presentation_timeline.js +1 -2
  92. package/lib/media/segment_index.js +13 -46
  93. package/lib/media/segment_reference.js +47 -1
  94. package/lib/media/streaming_engine.js +28 -11
  95. package/lib/media/time_ranges_utils.js +4 -9
  96. package/lib/net/networking_engine.js +3 -0
  97. package/lib/offline/indexeddb/storage_mechanism.js +4 -2
  98. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  99. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  100. package/lib/offline/manifest_converter.js +1 -0
  101. package/lib/offline/storage.js +100 -132
  102. package/lib/player.js +181 -307
  103. package/lib/polyfill/media_capabilities.js +12 -6
  104. package/lib/polyfill/mediasource.js +0 -28
  105. package/lib/polyfill/patchedmediakeys_nop.js +2 -0
  106. package/lib/polyfill/patchedmediakeys_webkit.js +2 -0
  107. package/lib/text/cue.js +0 -6
  108. package/lib/text/lrc_text_parser.js +8 -0
  109. package/lib/text/mp4_ttml_parser.js +8 -0
  110. package/lib/text/mp4_vtt_parser.js +8 -0
  111. package/lib/text/sbv_text_parser.js +8 -0
  112. package/lib/text/simple_text_displayer.js +1 -7
  113. package/lib/text/srt_text_parser.js +8 -0
  114. package/lib/text/ssa_text_parser.js +8 -0
  115. package/lib/text/text_engine.js +19 -3
  116. package/lib/text/ttml_text_parser.js +8 -0
  117. package/lib/text/ui_text_displayer.js +1 -7
  118. package/lib/text/vtt_text_parser.js +27 -5
  119. package/lib/text/web_vtt_generator.js +1 -7
  120. package/lib/util/config_utils.js +25 -0
  121. package/lib/util/error.js +16 -13
  122. package/lib/util/fairplay_utils.js +109 -0
  123. package/lib/util/functional.js +0 -42
  124. package/lib/util/manifest_parser_utils.js +1 -1
  125. package/lib/util/mime_utils.js +50 -1
  126. package/lib/util/periods.js +5 -4
  127. package/lib/util/platform.js +45 -0
  128. package/lib/util/player_configuration.js +26 -20
  129. package/lib/util/pssh.js +23 -4
  130. package/lib/util/stream_utils.js +96 -24
  131. package/lib/util/uint8array_utils.js +0 -16
  132. package/lib/util/xml_utils.js +1 -1
  133. package/package.json +4 -1
  134. package/roadmap.md +19 -19
  135. package/shaka-player.uncompiled.js +0 -3
  136. package/test/cast/cast_utils_unit.js +1 -0
  137. package/test/dash/dash_parser_content_protection_unit.js +44 -0
  138. package/test/dash/dash_parser_manifest_unit.js +0 -24
  139. package/test/dash/dash_parser_segment_template_unit.js +3 -4
  140. package/test/demo/demo_unit.js +2 -1
  141. package/test/hls/hls_live_unit.js +121 -220
  142. package/test/hls/hls_parser_unit.js +515 -432
  143. package/test/hls/manifest_text_parser_unit.js +19 -0
  144. package/test/media/drm_engine_unit.js +86 -120
  145. package/test/media/media_source_engine_integration.js +26 -3
  146. package/test/media/media_source_engine_unit.js +7 -6
  147. package/test/media/playhead_unit.js +27 -191
  148. package/test/media/segment_index_unit.js +15 -25
  149. package/test/media/streaming_engine_integration.js +4 -39
  150. package/test/media/streaming_engine_unit.js +3 -2
  151. package/test/media/time_ranges_utils_unit.js +0 -5
  152. package/test/offline/indexeddb_storage_unit.js +1 -1
  153. package/test/offline/manifest_convert_unit.js +34 -4
  154. package/test/offline/offline_manifest_parser_unit.js +1 -0
  155. package/test/offline/storage_compatibility_unit.js +1 -1
  156. package/test/offline/storage_integration.js +5 -4
  157. package/test/player_external.js +7 -7
  158. package/test/player_integration.js +22 -10
  159. package/test/player_src_equals_integration.js +81 -83
  160. package/test/player_unit.js +124 -1
  161. package/test/test/boot.js +9 -0
  162. package/test/test/externs/filters.js +4 -0
  163. package/test/test/util/fake_media_source_engine.js +11 -4
  164. package/test/test/util/manifest_generator.js +3 -1
  165. package/test/test/util/manifest_parser_util.js +4 -1
  166. package/test/test/util/offline_utils.js +1 -0
  167. package/test/test/util/simple_fakes.js +31 -2
  168. package/test/test/util/streaming_engine_util.js +1 -0
  169. package/test/test/util/test_scheme.js +24 -1
  170. package/test/test/util/util.js +4 -4
  171. package/test/text/cue_integration.js +2 -2
  172. package/test/text/lrc_text_parser_unit.js +6 -7
  173. package/test/text/mp4_ttml_parser_unit.js +6 -4
  174. package/test/text/mp4_vtt_parser_unit.js +6 -5
  175. package/test/text/sbv_text_parser_unit.js +5 -6
  176. package/test/text/srt_text_parser_unit.js +5 -6
  177. package/test/text/ssa_text_parser_unit.js +17 -29
  178. package/test/text/text_engine_unit.js +45 -5
  179. package/test/text/ttml_text_parser_unit.js +77 -77
  180. package/test/text/vtt_text_parser_unit.js +116 -59
  181. package/test/ui/ui_integration.js +0 -16
  182. package/test/ui/ui_unit.js +27 -0
  183. package/test/util/cmcd_manager_unit.js +3 -0
  184. package/test/util/mime_utils_unit.js +54 -0
  185. package/test/util/periods_unit.js +79 -0
  186. package/test/util/stream_utils_unit.js +23 -7
  187. package/ui/controls.js +65 -40
  188. package/ui/fullscreen_button.js +26 -6
  189. package/ui/less/containers.less +3 -3
  190. package/ui/locales/en.json +1 -0
  191. package/ui/locales/source.json +5 -0
  192. package/ui/resolution_selection.js +31 -33
  193. package/ui/ui.js +0 -17
  194. package/docs/tutorials/gsoc-ideas-list.md +0 -3
  195. package/docs/tutorials/upgrade-v2-5.md +0 -441
  196. package/docs/tutorials/upgrade-v3.md +0 -38
  197. package/lib/polyfill/mathround.js +0 -49
  198. package/lib/polyfill/patchedmediakeys_apple.js +0 -744
  199. package/lib/polyfill/patchedmediakeys_ms.js +0 -698
  200. package/lib/util/mutex.js +0 -52
  201. package/test/util/functional_unit.js +0 -82
@@ -0,0 +1 @@
1
+ blank_issues_enabled: false
@@ -111,7 +111,6 @@ jobs:
111
111
  python build/test.py \
112
112
  --browsers "$browser" \
113
113
  --reporters spec --spec-hide-passed \
114
- --drm \
115
114
  ${{ matrix.extra_flags }}
116
115
 
117
116
  build_in_docker:
@@ -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"
@@ -50,7 +51,7 @@ jobs:
50
51
  tag-main:
51
52
  runs-on: ubuntu-latest
52
53
  needs: release
53
- if: needs.release.outputs.release_created
54
+ if: needs.release.outputs.release_created && endsWith(needs.release.outputs.tag_name, '.0') == false
54
55
  steps:
55
56
  - uses: actions/checkout@v2
56
57
  with:
@@ -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"
@@ -76,7 +76,6 @@ jobs:
76
76
  run: |
77
77
  python3 build/test.py \
78
78
  --reporters spec --spec-hide-passed \
79
- --drm \
80
79
  --lets-encrypt-folder /etc/shakalab.rocks \
81
80
  --hostname karma.shakalab.rocks \
82
81
  --port 61731 \
@@ -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,40 +1,136 @@
1
1
  # Changelog
2
2
 
3
- ### [3.3.4](https://github.com/shaka-project/shaka-player/compare/v3.3.3...v3.3.4) (2022-04-26)
3
+ ### [4.0.1](https://github.com/shaka-project/shaka-player/compare/v4.0.0...v4.0.1) (2022-05-18)
4
4
 
5
5
 
6
6
  ### Bug Fixes
7
7
 
8
- * 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))
9
- * **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))
10
- * **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)
11
-
12
- ### [3.3.3](https://github.com/shaka-project/shaka-player/compare/v3.3.2...v3.3.3) (2022-04-25)
13
-
14
-
15
- ### Bug Fixes
16
-
17
- * **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))
18
- * **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)
19
- * **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)
20
- * **dash:** Fix performance regression ([#4064](https://github.com/shaka-project/shaka-player/issues/4064)) ([bfac645](https://github.com/shaka-project/shaka-player/commit/bfac645e589190d002f91a57b68941ab68584941))
21
- * 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)
22
- * 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)
23
- * **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)
24
- * 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))
25
- * **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))
26
- * **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)
27
-
28
- ## [3.3.2](https://github.com/shaka-project/shaka-player/compare/v3.3.1...v3.3.2) (2022-02-16)
8
+ * 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)
9
+ * **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))
10
+ * 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))
11
+ * 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)
12
+ * 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)
13
+ * 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)
14
+ * **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))
15
+ * **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)
16
+ * 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)
17
+
18
+ ## [4.0.0](https://github.com/shaka-project/shaka-player/compare/v3.3.0...v4.0.0) (2022-04-30)
19
+
20
+
21
+ ### ⚠ BREAKING CHANGES
22
+
23
+ * Remove small/large gap config, always jump gaps (#4125)
24
+ * **config:** `manifest.dash.defaultPresentationDelay` has been replaced by `manifest.defaultPresentationDelay` (deprecated in v3.0.0)
25
+ * **config:** Configuration of factories should be plain factory functions, not constructors; these will not be invoked with `new` (deprecated in v3.1.0)
26
+ * **player:** `shaka.Player.prototype.addTextTrack()` has been replaced by `addTextTrackAsync()`, which returns a `Promise` (deprecated in v3.1.0)
27
+ * **ui:** `shaka.ui.TrackLabelFormat` has been renamed to `shaka.ui.Overlay.TrackLabelFormat` (deprecated in v3.1.0)
28
+ * **ui:** `shaka.ui.FailReasonCode` has been renamed to `shaka.ui.Overlay.FailReasonCode` (deprecated in v3.1.0)
29
+ * **offline:** `shaka.offline.Storage.prototype.store()` returns `AbortableOperation` instead of `Promise` (deprecated in v3.0.0)
30
+ * **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)
31
+ * `shaka.util.Uint8ArrayUtils.equal` has been replaced by `shaka.util.BufferUtils.equal`, which can handle multiple types of buffers (deprecated in v3.0.0)
32
+ * **manifest:** `shaka.media.SegmentIndex.prototype.destroy()` has been replaced by `release()`, which is synchronous (deprecated in v3.0.0)
33
+ * **manifest:** `shaka.media.SegmentIterator.prototype.seek()`, which mutates the iterator, has been replaced by `shaka.media.SegmentIndex.getIteratorForTime()` (deprecated in v3.1.0)
34
+ * **manifest:** `shaka.media.SegmentIndex.prototype.merge()` has become private; use `mergeAndEvict()` instead (deprecated in v3.2.0)
35
+ * **plugin:** `AbrManager` plugins must implement the `playbackRateChanged()` method (deprecated in v3.0.0)
36
+ * **plugin:** `shaka.extern.Cue.prototype.spacer` has been replaced by the more clearly-named `lineBreak` (deprecated in v3.1.0)
37
+ * **plugin:** `IUIElement` plugins must have a `release()` method (not `destroy()`) (deprecated in v3.0.0)
38
+ * Remove deprecated features, update upgrade guides (#4089)
39
+ * Remove support for Safari 12 and iOS 12 (#4112)
40
+ * **hls:** HLS disabled in old browsers/platforms due to incompatibilities (#3964)
41
+
42
+ ### Features
43
+
44
+ * `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))
45
+ * Add Dockerfile and docker build instructions ([925de19](https://github.com/shaka-project/shaka-player/commit/925de1995eeb22863e8d4e92d720465834619288))
46
+ * 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))
47
+ * 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))
48
+ * 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))
49
+ * 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)
50
+ * 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)
51
+ * **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))
52
+ * **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))
53
+ * **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))
54
+ * **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))
55
+ * **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))
56
+ * **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)
57
+ * **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))
58
+ * **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))
59
+ * **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)
60
+ * **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))
61
+ * **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))
62
+ * **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))
63
+ * **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))
64
+ * **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)
65
+ * **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))
66
+ * **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))
67
+ * **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))
68
+ * **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))
69
+ * **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))
70
+ * **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))
71
+ * 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))
72
+ * **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))
73
+ * **plugin:** `AbrManager` plugins must implement the `playbackRateChanged()` method (deprecated in v3.0.0) ([ac5acc8](https://github.com/shaka-project/shaka-player/commit/ac5acc80cb8d2bcb58455e8f66f7e1c2d18b0a3a))
74
+ * **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))
75
+ * **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))
76
+ * 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))
77
+ * 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))
78
+ * 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))
79
+ * 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))
80
+ * **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))
81
+ * **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))
82
+ * **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)
83
+ * **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)
29
84
 
30
85
 
31
86
  ### Bug Fixes
32
87
 
33
- * 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))
34
- * 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))
35
- * 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)
36
- * 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))
37
- * **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))
88
+ * 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))
89
+ * Add missing module export in generated typescript defs ([feefd7b](https://github.com/shaka-project/shaka-player/commit/feefd7b7d1cc318800c8d83de8cce81c57939f7d))
90
+ * Avoid WebCrypto randomUUID when CMCD disabled ([4731c76](https://github.com/shaka-project/shaka-player/commit/4731c7677f4f179f19ae647d3bb1edfda40dac53))
91
+ * **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))
92
+ * 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)
93
+ * **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)
94
+ * **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))
95
+ * **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)
96
+ * **dash:** Fix performance regression ([#4064](https://github.com/shaka-project/shaka-player/issues/4064)) ([298b604](https://github.com/shaka-project/shaka-player/commit/298b60481d34bd9d776874fe1b9a8eea05b533d9))
97
+ * **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)
98
+ * 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)
99
+ * 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)
100
+ * 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)
101
+ * 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))
102
+ * 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))
103
+ * 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)
104
+ * 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))
105
+ * 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)
106
+ * 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)
107
+ * 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)
108
+ * 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))
109
+ * 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)
110
+ * 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)
111
+ * 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)
112
+ * 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)
113
+ * 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)
114
+ * Fix usage of Shaka without polyfills ([dfc44cb](https://github.com/shaka-project/shaka-player/commit/dfc44cbca6b95eb137882075cb8bf02cfc73a9d3))
115
+ * **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))
116
+ * **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))
117
+ * **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)
118
+ * **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)
119
+ * **image:** Fix thumbnails issues ([#3858](https://github.com/shaka-project/shaka-player/issues/3858)) ([087a9b4](https://github.com/shaka-project/shaka-player/commit/087a9b489b030aa0dc80011ca4e0a0c7a4124ecd))
120
+ * **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))
121
+ * **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)
122
+ * **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)
123
+ * 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)
124
+ * 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))
125
+ * 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)
126
+ * **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)
127
+ * **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)
128
+ * **text:** Inherit alignment from regions. ([e9df8fb](https://github.com/shaka-project/shaka-player/commit/e9df8fb10c3752cb833e89c8ac793241497e29b6))
129
+ * **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)
130
+ * **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)
131
+ * **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))
132
+ * **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)
133
+ * **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)
38
134
 
39
135
  ## 3.3.1 (2022-01-28)
40
136
 
@@ -90,6 +186,91 @@ Bugfixes:
90
186
  - Avoid WebCrypto randomUUID when CMCD disabled
91
187
 
92
188
 
189
+ ## 3.2.3 (2022-01-28)
190
+
191
+ Bugfixes:
192
+ - Fix support for TTAF1 namespace (old version of TTML)
193
+ - https://github.com/shaka-project/shaka-player/issues/3009
194
+ - https://github.com/shaka-project/shaka-player/pull/3864
195
+ - https://github.com/shaka-project/shaka-player/pull/3906
196
+ - Fix misdetection of HEVC support on MS Edge
197
+ - https://github.com/shaka-project/shaka-player/pull/3897
198
+ - Fix caption overlap
199
+ - https://github.com/shaka-project/shaka-player/issues/3850
200
+ - https://github.com/shaka-project/shaka-player/issues/3741
201
+ - Support multiple chapter tracks with same language
202
+ - https://github.com/shaka-project/shaka-player/issues/3597
203
+ - https://github.com/shaka-project/shaka-player/pull/3868
204
+ - Fix text UI not updating when text is disabled
205
+ - https://github.com/shaka-project/shaka-player/issues/3728
206
+ - https://github.com/shaka-project/shaka-player/pull/3867
207
+ - Clear buffer on seek if mediaState is updating
208
+ - https://github.com/shaka-project/shaka-player/issues/3299
209
+ - https://github.com/shaka-project/shaka-player/pull/3795
210
+ - Fix thumbnails issues
211
+ - https://github.com/shaka-project/shaka-player/pull/3858
212
+ - Made nested cues inherit region
213
+ - https://github.com/shaka-project/shaka-player/issues/3743
214
+ - https://github.com/shaka-project/shaka-player/pull/3837
215
+ - Fix MediaCapabilities polyfill on Safari
216
+ - https://github.com/shaka-project/shaka-player/issues/3696
217
+ - https://github.com/shaka-project/shaka-player/issues/3530
218
+ - Fix usage of Shaka without polyfills
219
+ - https://github.com/shaka-project/shaka-player/issues/3843
220
+ - Fix playback failure due to rounding errors
221
+ - https://github.com/shaka-project/shaka-player/issues/3717
222
+ - Fix HLS image track issues
223
+ - https://github.com/shaka-project/shaka-player/issues/3840
224
+ - Remove caption wrapper bgColor
225
+ - https://github.com/shaka-project/shaka-player/issues/3745
226
+ - https://github.com/shaka-project/shaka-player/pull/3838
227
+ - Support "forced-subtitle" role
228
+ - https://github.com/shaka-project/shaka-player/issues/3767
229
+ - https://github.com/shaka-project/shaka-player/pull/3807
230
+ - Fix time element height on Safari
231
+ - https://github.com/shaka-project/shaka-player/issues/3739
232
+ - https://github.com/shaka-project/shaka-player/pull/3809
233
+
234
+
235
+ ## 3.1.5 (2022-01-28)
236
+
237
+ Bugfixes:
238
+ - Fix support for TTAF1 namespace (old version of TTML)
239
+ - https://github.com/shaka-project/shaka-player/issues/3009
240
+ - https://github.com/shaka-project/shaka-player/pull/3864
241
+ - https://github.com/shaka-project/shaka-player/pull/3906
242
+ - Fix misdetection of HEVC support on MS Edge
243
+ - https://github.com/shaka-project/shaka-player/pull/3897
244
+ - Fix caption overlap
245
+ - https://github.com/shaka-project/shaka-player/issues/3850
246
+ - https://github.com/shaka-project/shaka-player/issues/3741
247
+ - Fix text UI not updating when text is disabled
248
+ - https://github.com/shaka-project/shaka-player/issues/3728
249
+ - https://github.com/shaka-project/shaka-player/pull/3867
250
+ - Clear buffer on seek if mediaState is updating
251
+ - https://github.com/shaka-project/shaka-player/issues/3299
252
+ - https://github.com/shaka-project/shaka-player/pull/3795
253
+ - Made nested cues inherit region
254
+ - https://github.com/shaka-project/shaka-player/issues/3743
255
+ - https://github.com/shaka-project/shaka-player/pull/3837
256
+ - Fix MediaCapabilities polyfill on Safari
257
+ - https://github.com/shaka-project/shaka-player/issues/3696
258
+ - https://github.com/shaka-project/shaka-player/issues/3530
259
+ - Fix usage of Shaka without polyfills
260
+ - https://github.com/shaka-project/shaka-player/issues/3843
261
+ - Fix playback failure due to rounding errors
262
+ - https://github.com/shaka-project/shaka-player/issues/3717
263
+ - Remove caption wrapper bgColor
264
+ - https://github.com/shaka-project/shaka-player/issues/3745
265
+ - https://github.com/shaka-project/shaka-player/pull/3838
266
+ - Support "forced-subtitle" role
267
+ - https://github.com/shaka-project/shaka-player/issues/3767
268
+ - https://github.com/shaka-project/shaka-player/pull/3807
269
+ - Fix time element height on Safari
270
+ - https://github.com/shaka-project/shaka-player/issues/3739
271
+ - https://github.com/shaka-project/shaka-player/pull/3809
272
+
273
+
93
274
  ## 3.3.0 (2022-01-07)
94
275
 
95
276
  New Features:
@@ -2203,7 +2384,7 @@ Demo App:
2203
2384
 
2204
2385
  Docs:
2205
2386
  - Add a public roadmap document
2206
- - https://github.com/shaka-project/shaka-player/blob/master/roadmap.md
2387
+ - https://github.com/shaka-project/shaka-player/blob/main/roadmap.md
2207
2388
 
2208
2389
 
2209
2390
  ## 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,6 +112,8 @@ 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
@@ -122,13 +124,12 @@ HLS features supported:
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
@@ -5,10 +5,10 @@ releases and demos at https://index-dot-shaka-player-demo.appspot.com/
5
5
 
6
6
  - app.yaml: App Engine config file. Defines the runtime (Python 3).
7
7
 
8
- - main.py: A python service that queries available versions and generates the
9
- index from a template.
8
+ - generate.py: A python script that generates the index's static content from
9
+ a template.
10
10
 
11
11
  - requirements.txt: Used by App Engine to install the necessary Python server
12
- requirements (Flask, App Engine API).
12
+ requirements (Flask).
13
13
 
14
14
  - templates/index.html: A Jinja2 template used to generate the index HTML.
@@ -1,2 +1,28 @@
1
+ # Copyright 2022 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
1
15
  runtime: python39
2
- default_expiration: 1s
16
+ default_expiration: 1h
17
+
18
+ handlers:
19
+ # Server static/index.html as the root.
20
+ - url: /
21
+ secure: always
22
+ static_files: static/index.html
23
+ upload: static/index.html
24
+ # Any other requests are served from the static/ folder.
25
+ - url: /(.+)
26
+ secure: always
27
+ static_files: static/\1
28
+ upload: static/.+