shaka-player 3.2.6 → 3.2.7

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 (59) hide show
  1. package/.github/workflows/build-and-test.yaml +0 -1
  2. package/.github/workflows/release-please.yaml +1 -1
  3. package/.github/workflows/selenium-lab-tests.yaml +0 -1
  4. package/CHANGELOG.md +16 -0
  5. package/build/README.md +2 -2
  6. package/build/checkversion.py +1 -1
  7. package/build/generateTsDefs.py +0 -2
  8. package/build/test.py +7 -1
  9. package/dist/controls.css +1 -1
  10. package/dist/locales.js +31 -31
  11. package/dist/shaka-player.compiled.d.ts +225 -226
  12. package/dist/shaka-player.compiled.debug.d.ts +225 -226
  13. package/dist/shaka-player.compiled.debug.externs.js +1 -0
  14. package/dist/shaka-player.compiled.debug.js +217 -212
  15. package/dist/shaka-player.compiled.debug.map +3 -3
  16. package/dist/shaka-player.compiled.externs.js +1 -0
  17. package/dist/shaka-player.compiled.js +771 -767
  18. package/dist/shaka-player.compiled.map +3 -3
  19. package/dist/shaka-player.ui.d.ts +267 -268
  20. package/dist/shaka-player.ui.debug.d.ts +267 -268
  21. package/dist/shaka-player.ui.debug.externs.js +1 -0
  22. package/dist/shaka-player.ui.debug.js +138 -133
  23. package/dist/shaka-player.ui.debug.map +3 -3
  24. package/dist/shaka-player.ui.externs.js +1 -0
  25. package/dist/shaka-player.ui.js +893 -888
  26. package/dist/shaka-player.ui.map +3 -3
  27. package/karma.conf.js +4 -0
  28. package/lib/dash/dash_parser.js +2 -3
  29. package/lib/hls/hls_parser.js +23 -11
  30. package/lib/media/media_source_engine.js +7 -1
  31. package/lib/offline/indexeddb/storage_mechanism.js +4 -2
  32. package/lib/player.js +165 -107
  33. package/lib/util/config_utils.js +25 -0
  34. package/lib/util/error.js +7 -0
  35. package/lib/util/manifest_parser_utils.js +1 -1
  36. package/lib/util/mime_utils.js +48 -1
  37. package/lib/util/periods.js +5 -4
  38. package/lib/util/player_configuration.js +9 -14
  39. package/lib/util/stream_utils.js +4 -2
  40. package/package.json +1 -1
  41. package/test/cast/cast_utils_unit.js +1 -0
  42. package/test/dash/dash_parser_manifest_unit.js +0 -24
  43. package/test/hls/hls_live_unit.js +26 -0
  44. package/test/hls/manifest_text_parser_unit.js +19 -0
  45. package/test/media/media_source_engine_integration.js +1 -0
  46. package/test/media/media_source_engine_unit.js +4 -4
  47. package/test/media/streaming_engine_integration.js +2 -0
  48. package/test/offline/indexeddb_storage_unit.js +1 -1
  49. package/test/offline/storage_compatibility_unit.js +1 -1
  50. package/test/player_external.js +7 -1
  51. package/test/player_integration.js +6 -10
  52. package/test/player_src_equals_integration.js +81 -83
  53. package/test/player_unit.js +98 -1
  54. package/test/test/boot.js +9 -0
  55. package/test/test/externs/filters.js +4 -0
  56. package/test/test/util/simple_fakes.js +31 -2
  57. package/test/util/mime_utils_unit.js +54 -0
  58. package/test/util/periods_unit.js +79 -0
  59. package/docs/tutorials/gsoc-ideas-list.md +0 -3
@@ -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:
@@ -50,7 +50,7 @@ jobs:
50
50
  tag-main:
51
51
  runs-on: ubuntu-latest
52
52
  needs: release
53
- if: needs.release.outputs.release_created
53
+ if: needs.release.outputs.release_created && endsWith(needs.release.outputs.tag_name, '.0') == false
54
54
  steps:
55
55
  - uses: actions/checkout@v2
56
56
  with:
@@ -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 \
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ### [3.2.7](https://github.com/shaka-project/shaka-player/compare/v3.2.6...v3.2.7) (2022-05-17)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **dash:** Fix playback of Dolby Atmos ([#4173](https://github.com/shaka-project/shaka-player/issues/4173)) ([1a6e93a](https://github.com/shaka-project/shaka-player/commit/1a6e93add8bea530e80d32e6e1edd2983c15b4e3)), closes [#4171](https://github.com/shaka-project/shaka-player/issues/4171)
9
+ * Do not report MANIFEST RESTRICTIONS_CANNOT_BE_MET error twice ([#4194](https://github.com/shaka-project/shaka-player/issues/4194)) ([28d651b](https://github.com/shaka-project/shaka-player/commit/28d651b0cdd7ed0b7c5e560800d35333ee7c534f)), closes [#4190](https://github.com/shaka-project/shaka-player/issues/4190)
10
+ * Fix encryption detection to work around broken platforms ([#4169](https://github.com/shaka-project/shaka-player/issues/4169)) ([b945376](https://github.com/shaka-project/shaka-player/commit/b94537675033e0752ccb9abca32f28b6d278a205))
11
+ * Fix event listener leaks in Player ([#4229](https://github.com/shaka-project/shaka-player/issues/4229)) ([5cab30d](https://github.com/shaka-project/shaka-player/commit/5cab30dc1a6a2d0e84897ffdc2e12fb0fa4d15e4))
12
+ * Fix exception with streaming.startAtSegmentBoundary ([#4216](https://github.com/shaka-project/shaka-player/issues/4216)) ([b3d4c1c](https://github.com/shaka-project/shaka-player/commit/b3d4c1cc2ddcadca27aca0b92d24649992e31361)), closes [#4188](https://github.com/shaka-project/shaka-player/issues/4188)
13
+ * Fix PERIOD_FLATTENING_FAILED error when periods have different base sample types ([#4206](https://github.com/shaka-project/shaka-player/issues/4206)) ([9202678](https://github.com/shaka-project/shaka-player/commit/9202678ec821078b433ff387ba2c926bfd8d7958)), closes [#4202](https://github.com/shaka-project/shaka-player/issues/4202)
14
+ * **hls:** Fix av1 codec selection in HLS. ([#4203](https://github.com/shaka-project/shaka-player/issues/4203)) ([c72ac92](https://github.com/shaka-project/shaka-player/commit/c72ac92d067734ec11e7ba67e58530127de8f78c))
15
+ * **hls:** Fix X-PRELOAD-HINT failure with LL mode off ([#4212](https://github.com/shaka-project/shaka-player/issues/4212)) ([59463fb](https://github.com/shaka-project/shaka-player/commit/59463fbc5512a7b2395dc1d04c180a4d35e8dac3)), closes [#4185](https://github.com/shaka-project/shaka-player/issues/4185)
16
+ * Revert "Add missing module export in generated typescript defs" ([#4175](https://github.com/shaka-project/shaka-player/issues/4175)) ([763e932](https://github.com/shaka-project/shaka-player/commit/763e932f589e91bf45b8dc85bd40428c30abe262)), closes [#4167](https://github.com/shaka-project/shaka-player/issues/4167)
17
+ * Wait for chapters track to be loaded ([#4228](https://github.com/shaka-project/shaka-player/issues/4228)) ([0245971](https://github.com/shaka-project/shaka-player/commit/02459714a0ec6c202e8fd121392831eaa9dc3962)), closes [#4186](https://github.com/shaka-project/shaka-player/issues/4186)
18
+
3
19
  ### [3.2.6](https://github.com/shaka-project/shaka-player/compare/v3.2.5...v3.2.6) (2022-04-26)
4
20
 
5
21
 
package/build/README.md CHANGED
@@ -80,8 +80,8 @@ directly:
80
80
  * `--external` will run integration tests against external assets. This will
81
81
  take an extremely long time to run, and requires a fast and reliable internet
82
82
  connection.
83
- * `--drm` will run integration tests against DRM license servers. This will
84
- require a connection to the open internet.
83
+ * `--no-drm` will skip integration tests against DRM license servers. Not
84
+ specifying this flag requires a connection to the open internet.
85
85
  * `--uncompiled` will run integration tests using the uncompiled library instead
86
86
  of the compiled version.
87
87
  * `--random` will run the tests in a random order to isolate test dependencies.
@@ -77,7 +77,7 @@ def main(_):
77
77
  logging.error('Changelog version does not match git version.')
78
78
  ret = 1
79
79
 
80
- return ret
80
+ return 0
81
81
 
82
82
 
83
83
  if __name__ == '__main__':
@@ -102,8 +102,6 @@ def GenerateTsDefs(inputs, output):
102
102
  f.write(license_header)
103
103
  f.write(b'\n')
104
104
  f.write(contents)
105
- f.write(b'\n')
106
- f.write(b'export default shaka;\n')
107
105
 
108
106
 
109
107
  def CreateParser():
package/build/test.py CHANGED
@@ -209,8 +209,14 @@ class Launcher:
209
209
  action='store_true')
210
210
  running_commands.add_argument(
211
211
  '--drm',
212
- help='Run tests that require DRM.',
212
+ help='Run tests that require DRM (on by default).',
213
+ default=True,
213
214
  action='store_true')
215
+ running_commands.add_argument(
216
+ '--no-drm', '--nodrm',
217
+ help='Skip tests that require DRM (opposite of --drm).',
218
+ dest='drm',
219
+ action='store_false')
214
220
  running_commands.add_argument(
215
221
  '--quarantined',
216
222
  help='Run tests that have been quarantined.',
package/dist/controls.css CHANGED
@@ -27,4 +27,4 @@
27
27
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
28
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
29
  * SOFTWARE.
30
- */.shaka-spinner-svg{position:absolute;top:0;left:0;right:0;bottom:0;animation:rotate 2s linear infinite;transform-origin:center center;width:100%;height:100%;margin:0;padding:0}.shaka-spinner-path{stroke:#202124;stroke-dasharray:20,200;stroke-dashoffset:0;animation:dash 1s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.shaka-spacer{cursor:default;flex-shrink:1;flex-grow:1;margin:0}.shaka-overflow-menu,.shaka-settings-menu{overflow-x:hidden;overflow-y:auto;white-space:nowrap;background:#fff;box-shadow:0 1px 9px 0 rgba(0 0 0 / 40%);border-radius:2px;max-height:250px;min-width:180px;opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s;display:flex;flex-direction:column;position:absolute;z-index:2;right:15px;bottom:30px}.shaka-controls-container[casting=true] .shaka-overflow-menu,.shaka-controls-container[casting=true] .shaka-settings-menu,.shaka-controls-container[shown=true] .shaka-overflow-menu,.shaka-controls-container[shown=true] .shaka-settings-menu{opacity:1}.shaka-overflow-menu button,.shaka-settings-menu button{font-size:14px;background:0 0;color:#000;border:none;min-height:30px;padding:3.5px 6px;display:flex;align-items:center;cursor:pointer}.shaka-overflow-menu button:hover,.shaka-settings-menu button:hover{background:#e0e0e0}.shaka-overflow-menu button label,.shaka-settings-menu button label{cursor:pointer}.shaka-keyboard-navigation .shaka-overflow-menu button:focus,.shaka-keyboard-navigation .shaka-settings-menu button:focus{background:#e0e0e0}.shaka-overflow-menu i,.shaka-settings-menu i{padding-left:10px;padding-right:10px}.shaka-overflow-menu.shaka-low-position,.shaka-settings-menu.shaka-low-position{bottom:15px}.shaka-overflow-menu span{text-align:left}.shaka-overflow-button-label{position:relative;display:flex;flex-direction:column}.shaka-current-selection-span{color:rgba(0 0 0 / 54%)}.shaka-settings-menu span{margin-left:54px}.shaka-back-to-overflow-button span{margin-left:0}.shaka-back-to-overflow-button i{padding-right:20px}.shaka-auto-span{left:17px}.shaka-captions-on{color:#000}.shaka-captions-off{color:grey}.shaka-controls-container[ad-active=true]{pointer-events:none}.shaka-controls-container[ad-active=true] .shaka-bottom-controls{pointer-events:auto}.shaka-client-side-ad-container,.shaka-server-side-ad-container{position:absolute;left:0;right:0;top:0;bottom:0}.shaka-video-container[shaka-controls=true] .shaka-client-side-ad-container iframe,.shaka-video-container[shaka-controls=true] .shaka-server-side-ad-container iframe{height:90%}.shaka-server-side-ad-container{width:100%;height:100%;flex-shrink:1}.shaka-server-side-ad-container:not([ad-active=true]){pointer-events:none}.shaka-ad-controls{display:flex;flex-direction:row;z-index:1;padding-bottom:1%}.shaka-video-container:not([shaka-controls=true]) .shaka-ad-controls{display:none}.shaka-ad-controls button,.shaka-ad-controls div{color:#fff;font-size:initial}.shaka-ad-controls div:not(.shaka-skip-ad-counter){margin:1px 6px}.shaka-ad-counter,.shaka-ad-position{display:flex;justify-content:flex-end;flex-direction:column;text-shadow:1px 1px 4px #000}.shaka-skip-ad-container{position:relative;right:calc((100% - 96%)/ 2 * -1);display:flex;flex-direction:row;margin:0}.shaka-skip-ad-button{padding:5px 15px;background:rgba(0 0 0 / 70%);border:none;cursor:pointer}.shaka-skip-ad-button:disabled{background:rgba(0 0 0 / 30%)}.shaka-skip-ad-counter{padding:5px;background:rgba(0 0 0 / 70%);margin:0}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/roboto/v29/KFOmCnqEu92Fr1Mu4mxP.ttf) format('truetype')}@font-face{font-family:'Material Icons Round';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsround/v101/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmM.otf) format('opentype')}.material-icons-round{font-family:'Material Icons Round';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr}/*# sourceMappingURL=controls.css.map */
30
+ */.shaka-spinner-svg{position:absolute;top:0;left:0;right:0;bottom:0;animation:rotate 2s linear infinite;transform-origin:center center;width:100%;height:100%;margin:0;padding:0}.shaka-spinner-path{stroke:#202124;stroke-dasharray:20,200;stroke-dashoffset:0;animation:dash 1s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.shaka-spacer{cursor:default;flex-shrink:1;flex-grow:1;margin:0}.shaka-overflow-menu,.shaka-settings-menu{overflow-x:hidden;overflow-y:auto;white-space:nowrap;background:#fff;box-shadow:0 1px 9px 0 rgba(0 0 0 / 40%);border-radius:2px;max-height:250px;min-width:180px;opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s;display:flex;flex-direction:column;position:absolute;z-index:2;right:15px;bottom:30px}.shaka-controls-container[casting=true] .shaka-overflow-menu,.shaka-controls-container[casting=true] .shaka-settings-menu,.shaka-controls-container[shown=true] .shaka-overflow-menu,.shaka-controls-container[shown=true] .shaka-settings-menu{opacity:1}.shaka-overflow-menu button,.shaka-settings-menu button{font-size:14px;background:0 0;color:#000;border:none;min-height:30px;padding:3.5px 6px;display:flex;align-items:center;cursor:pointer}.shaka-overflow-menu button:hover,.shaka-settings-menu button:hover{background:#e0e0e0}.shaka-overflow-menu button label,.shaka-settings-menu button label{cursor:pointer}.shaka-keyboard-navigation .shaka-overflow-menu button:focus,.shaka-keyboard-navigation .shaka-settings-menu button:focus{background:#e0e0e0}.shaka-overflow-menu i,.shaka-settings-menu i{padding-left:10px;padding-right:10px}.shaka-overflow-menu.shaka-low-position,.shaka-settings-menu.shaka-low-position{bottom:15px}.shaka-overflow-menu span{text-align:left}.shaka-overflow-button-label{position:relative;display:flex;flex-direction:column}.shaka-current-selection-span{color:rgba(0 0 0 / 54%)}.shaka-settings-menu span{margin-left:54px}.shaka-back-to-overflow-button span{margin-left:0}.shaka-back-to-overflow-button i{padding-right:20px}.shaka-auto-span{left:17px}.shaka-captions-on{color:#000}.shaka-captions-off{color:grey}.shaka-controls-container[ad-active=true]{pointer-events:none}.shaka-controls-container[ad-active=true] .shaka-bottom-controls{pointer-events:auto}.shaka-client-side-ad-container,.shaka-server-side-ad-container{position:absolute;left:0;right:0;top:0;bottom:0}.shaka-video-container[shaka-controls=true] .shaka-client-side-ad-container iframe,.shaka-video-container[shaka-controls=true] .shaka-server-side-ad-container iframe{height:90%}.shaka-server-side-ad-container{width:100%;height:100%;flex-shrink:1}.shaka-server-side-ad-container:not([ad-active=true]){pointer-events:none}.shaka-ad-controls{display:flex;flex-direction:row;z-index:1;padding-bottom:1%}.shaka-video-container:not([shaka-controls=true]) .shaka-ad-controls{display:none}.shaka-ad-controls button,.shaka-ad-controls div{color:#fff;font-size:initial}.shaka-ad-controls div:not(.shaka-skip-ad-counter){margin:1px 6px}.shaka-ad-counter,.shaka-ad-position{display:flex;justify-content:flex-end;flex-direction:column;text-shadow:1px 1px 4px #000}.shaka-skip-ad-container{position:relative;right:calc((100% - 96%)/ 2 * -1);display:flex;flex-direction:row;margin:0}.shaka-skip-ad-button{padding:5px 15px;background:rgba(0 0 0 / 70%);border:none;cursor:pointer}.shaka-skip-ad-button:disabled{background:rgba(0 0 0 / 30%)}.shaka-skip-ad-counter{padding:5px;background:rgba(0 0 0 / 70%);margin:0}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxP.ttf) format('truetype')}@font-face{font-family:'Material Icons Round';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsround/v102/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmM.otf) format('opentype')}.material-icons-round{font-family:'Material Icons Round';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr}/*# sourceMappingURL=controls.css.map */
package/dist/locales.js CHANGED
@@ -719,43 +719,43 @@ shaka.ui.Locales.addTo = function(localization) {
719
719
  * @const
720
720
  */
721
721
  shaka.ui.Locales.Ids = {
722
- AIRPLAY: 'AIRPLAY',
723
- SUBTITLE_FORCED: 'SUBTITLE_FORCED',
724
- LANGUAGE: 'LANGUAGE',
725
- UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
726
- OFF: 'OFF',
727
- UNMUTE: 'UNMUTE',
728
- PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
722
+ AD_PROGRESS: 'AD_PROGRESS',
723
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
724
+ MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
725
+ BACK: 'BACK',
726
+ VOLUME: 'VOLUME',
727
+ PAUSE: 'PAUSE',
729
728
  EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
730
729
  NOT_APPLICABLE: 'NOT_APPLICABLE',
731
- SKIP_TO_LIVE: 'SKIP_TO_LIVE',
732
- UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
733
- EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
734
730
  SEEK: 'SEEK',
735
- AD_TIME: 'AD_TIME',
736
- CAPTIONS: 'CAPTIONS',
737
- EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
738
- LIVE: 'LIVE',
739
- MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
740
731
  AD_DURATION: 'AD_DURATION',
741
- PAUSE: 'PAUSE',
742
- PLAYBACK_RATE: 'PLAYBACK_RATE',
743
- REWIND: 'REWIND',
744
- FAST_FORWARD: 'FAST_FORWARD',
745
- AD_PROGRESS: 'AD_PROGRESS',
746
- REPLAY: 'REPLAY',
747
- BACK: 'BACK',
748
- MUTE: 'MUTE',
749
- LOOP: 'LOOP',
732
+ LANGUAGE: 'LANGUAGE',
733
+ SKIP_TO_LIVE: 'SKIP_TO_LIVE',
734
+ FULL_SCREEN: 'FULL_SCREEN',
750
735
  CAST: 'CAST',
751
- ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
752
- AUTO_QUALITY: 'AUTO_QUALITY',
736
+ LIVE: 'LIVE',
737
+ UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
738
+ SUBTITLE_FORCED: 'SUBTITLE_FORCED',
753
739
  RESOLUTION: 'RESOLUTION',
754
- MORE_SETTINGS: 'MORE_SETTINGS',
755
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
756
- ON: 'ON',
740
+ PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
757
741
  PLAY: 'PLAY',
758
- VOLUME: 'VOLUME',
759
- FULL_SCREEN: 'FULL_SCREEN',
742
+ EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
743
+ OFF: 'OFF',
744
+ MUTE: 'MUTE',
745
+ AIRPLAY: 'AIRPLAY',
746
+ UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
747
+ CAPTIONS: 'CAPTIONS',
748
+ AD_TIME: 'AD_TIME',
749
+ AUTO_QUALITY: 'AUTO_QUALITY',
750
+ ON: 'ON',
751
+ PLAYBACK_RATE: 'PLAYBACK_RATE',
752
+ MORE_SETTINGS: 'MORE_SETTINGS',
753
+ EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
754
+ ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
755
+ UNMUTE: 'UNMUTE',
756
+ REPLAY: 'REPLAY',
757
+ FAST_FORWARD: 'FAST_FORWARD',
758
+ REWIND: 'REWIND',
760
759
  SKIP_AD: 'SKIP_AD',
760
+ LOOP: 'LOOP',
761
761
  };