shaka-player 3.3.4 → 3.3.5

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 (63) 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 +18 -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/build/types/core +0 -1
  10. package/dist/controls.css +1 -1
  11. package/dist/deps.js +1 -2
  12. package/dist/locales.js +30 -30
  13. package/dist/shaka-player.compiled.d.ts +238 -239
  14. package/dist/shaka-player.compiled.debug.d.ts +238 -239
  15. package/dist/shaka-player.compiled.debug.externs.js +1 -0
  16. package/dist/shaka-player.compiled.debug.js +149 -147
  17. package/dist/shaka-player.compiled.debug.map +4 -4
  18. package/dist/shaka-player.compiled.externs.js +1 -0
  19. package/dist/shaka-player.compiled.js +844 -842
  20. package/dist/shaka-player.compiled.map +4 -4
  21. package/dist/shaka-player.ui.d.ts +282 -283
  22. package/dist/shaka-player.ui.debug.d.ts +282 -283
  23. package/dist/shaka-player.ui.debug.externs.js +1 -0
  24. package/dist/shaka-player.ui.debug.js +222 -220
  25. package/dist/shaka-player.ui.debug.map +4 -4
  26. package/dist/shaka-player.ui.externs.js +1 -0
  27. package/dist/shaka-player.ui.js +956 -954
  28. package/dist/shaka-player.ui.map +4 -4
  29. package/karma.conf.js +4 -0
  30. package/lib/dash/dash_parser.js +2 -3
  31. package/lib/hls/hls_parser.js +23 -11
  32. package/lib/media/media_source_engine.js +7 -1
  33. package/lib/offline/indexeddb/storage_mechanism.js +4 -2
  34. package/lib/offline/storage.js +92 -91
  35. package/lib/player.js +165 -107
  36. package/lib/util/config_utils.js +25 -0
  37. package/lib/util/error.js +7 -0
  38. package/lib/util/manifest_parser_utils.js +1 -1
  39. package/lib/util/mime_utils.js +48 -1
  40. package/lib/util/periods.js +5 -4
  41. package/lib/util/player_configuration.js +9 -14
  42. package/lib/util/stream_utils.js +4 -2
  43. package/package.json +1 -1
  44. package/test/cast/cast_utils_unit.js +1 -0
  45. package/test/dash/dash_parser_manifest_unit.js +0 -24
  46. package/test/hls/hls_live_unit.js +26 -0
  47. package/test/hls/manifest_text_parser_unit.js +19 -0
  48. package/test/media/media_source_engine_integration.js +1 -0
  49. package/test/media/media_source_engine_unit.js +4 -4
  50. package/test/media/streaming_engine_integration.js +2 -0
  51. package/test/offline/indexeddb_storage_unit.js +1 -1
  52. package/test/offline/storage_compatibility_unit.js +1 -1
  53. package/test/player_external.js +7 -1
  54. package/test/player_integration.js +6 -10
  55. package/test/player_src_equals_integration.js +81 -83
  56. package/test/player_unit.js +98 -1
  57. package/test/test/boot.js +9 -0
  58. package/test/test/externs/filters.js +4 -0
  59. package/test/test/util/simple_fakes.js +31 -2
  60. package/test/util/mime_utils_unit.js +54 -0
  61. package/test/util/periods_unit.js +79 -0
  62. package/docs/tutorials/gsoc-ideas-list.md +0 -3
  63. package/lib/util/mutex.js +0 -52
@@ -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,23 @@
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)
4
+
5
+
6
+ ### Bug Fixes
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)
20
+
3
21
  ### [3.3.4](https://github.com/shaka-project/shaka-player/compare/v3.3.3...v3.3.4) (2022-04-26)
4
22
 
5
23
 
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/build/types/core CHANGED
@@ -84,7 +84,6 @@
84
84
  +../../lib/util/mp4_box_parsers.js
85
85
  +../../lib/util/mp4_parser.js
86
86
  +../../lib/util/multi_map.js
87
- +../../lib/util/mutex.js
88
87
  +../../lib/util/networking.js
89
88
  +../../lib/util/object_utils.js
90
89
  +../../lib/util/operation_manager.js
package/dist/controls.css CHANGED
@@ -51,4 +51,4 @@
51
51
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
52
52
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
53
53
  * SOFTWARE.
54
- */.shaka-tooltips-on{overflow:visible}.shaka-tooltips-on>[class*=shaka-tooltip]{position:relative}.shaka-tooltips-on>[class*=shaka-tooltip]:active:after,.shaka-tooltips-on>[class*=shaka-tooltip]:focus-visible:after,.shaka-tooltips-on>[class*=shaka-tooltip]:hover:after{content:attr(aria-label);font-family:Roboto-Regular,Roboto,sans-serif;line-height:calc(32px / 2);white-space:nowrap;font-size:13px;background:rgba(35 35 35 / 90%);color:#fff;border-radius:3px;padding:5px 10px;position:absolute;bottom:calc(32px + 5px);left:calc(32px / 2);-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%)}.shaka-tooltips-on>.shaka-tooltip-status:active:after,.shaka-tooltips-on>.shaka-tooltip-status:focus-visible:after,.shaka-tooltips-on>.shaka-tooltip-status:hover:after{content:attr(aria-label) " (" attr(shaka-status) ")"}.shaka-tooltips-on button:first-child:active:after,.shaka-tooltips-on button:first-child:focus-visible:after,.shaka-tooltips-on button:first-child:hover:after{left:0;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}.shaka-tooltips-on button:last-child:active:after,.shaka-tooltips-on button:last-child:focus-visible:after,.shaka-tooltips-on button:last-child:hover:after{left:32px;-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);-ms-transform:translateX(-100%);-o-transform:translateX(-100%);transform:translateX(-100%)}@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 */
54
+ */.shaka-tooltips-on{overflow:visible}.shaka-tooltips-on>[class*=shaka-tooltip]{position:relative}.shaka-tooltips-on>[class*=shaka-tooltip]:active:after,.shaka-tooltips-on>[class*=shaka-tooltip]:focus-visible:after,.shaka-tooltips-on>[class*=shaka-tooltip]:hover:after{content:attr(aria-label);font-family:Roboto-Regular,Roboto,sans-serif;line-height:calc(32px / 2);white-space:nowrap;font-size:13px;background:rgba(35 35 35 / 90%);color:#fff;border-radius:3px;padding:5px 10px;position:absolute;bottom:calc(32px + 5px);left:calc(32px / 2);-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%)}.shaka-tooltips-on>.shaka-tooltip-status:active:after,.shaka-tooltips-on>.shaka-tooltip-status:focus-visible:after,.shaka-tooltips-on>.shaka-tooltip-status:hover:after{content:attr(aria-label) " (" attr(shaka-status) ")"}.shaka-tooltips-on button:first-child:active:after,.shaka-tooltips-on button:first-child:focus-visible:after,.shaka-tooltips-on button:first-child:hover:after{left:0;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}.shaka-tooltips-on button:last-child:active:after,.shaka-tooltips-on button:last-child:focus-visible:after,.shaka-tooltips-on button:last-child:hover:after{left:32px;-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);-ms-transform:translateX(-100%);-o-transform:translateX(-100%);transform:translateX(-100%)}@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/deps.js CHANGED
@@ -104,7 +104,7 @@ goog.addDependency('../../../../lib/offline/offline_manifest_parser.js', ['shaka
104
104
  goog.addDependency('../../../../lib/offline/offline_scheme.js', ['shaka.offline.OfflineScheme'], ['goog.asserts', 'shaka.net.NetworkingEngine', 'shaka.offline.OfflineUri', 'shaka.offline.StorageMuxer', 'shaka.util.AbortableOperation', 'shaka.util.Error'], {'lang': 'es6'});
105
105
  goog.addDependency('../../../../lib/offline/offline_uri.js', ['shaka.offline.OfflineUri'], [], {'lang': 'es6'});
106
106
  goog.addDependency('../../../../lib/offline/session_deleter.js', ['shaka.offline.SessionDeleter'], ['shaka.log', 'shaka.media.DrmEngine', 'shaka.util.ArrayUtils'], {'lang': 'es8'});
107
- goog.addDependency('../../../../lib/offline/storage.js', ['shaka.offline.Storage'], ['goog.asserts', 'shaka.Deprecate', 'shaka.Player', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.media.ManifestParser', 'shaka.net.NetworkingEngine', 'shaka.offline.DownloadInfo', 'shaka.offline.DownloadManager', 'shaka.offline.OfflineUri', 'shaka.offline.SessionDeleter', 'shaka.offline.StorageMuxer', 'shaka.offline.StoredContentUtils', 'shaka.offline.StreamBandwidthEstimator', 'shaka.util.AbortableOperation', 'shaka.util.ArrayUtils', 'shaka.util.ConfigUtils', 'shaka.util.Destroyer', 'shaka.util.Error', 'shaka.util.Functional', 'shaka.util.IDestroyable', 'shaka.util.Iterables', 'shaka.util.MimeUtils', 'shaka.util.Mutex', 'shaka.util.Platform', 'shaka.util.PlayerConfiguration', 'shaka.util.StreamUtils'], {'lang': 'es8'});
107
+ goog.addDependency('../../../../lib/offline/storage.js', ['shaka.offline.Storage'], ['goog.asserts', 'shaka.Deprecate', 'shaka.Player', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.media.ManifestParser', 'shaka.net.NetworkingEngine', 'shaka.offline.DownloadInfo', 'shaka.offline.DownloadManager', 'shaka.offline.OfflineUri', 'shaka.offline.SessionDeleter', 'shaka.offline.StorageMuxer', 'shaka.offline.StoredContentUtils', 'shaka.offline.StreamBandwidthEstimator', 'shaka.util.AbortableOperation', 'shaka.util.ArrayUtils', 'shaka.util.ConfigUtils', 'shaka.util.Destroyer', 'shaka.util.Error', 'shaka.util.Functional', 'shaka.util.IDestroyable', 'shaka.util.Iterables', 'shaka.util.MimeUtils', 'shaka.util.Platform', 'shaka.util.PlayerConfiguration', 'shaka.util.StreamUtils'], {'lang': 'es8'});
108
108
  goog.addDependency('../../../../lib/offline/storage_muxer.js', ['shaka.offline.StorageCellHandle', 'shaka.offline.StorageCellPath', 'shaka.offline.StorageMuxer'], ['shaka.log', 'shaka.util.Error', 'shaka.util.IDestroyable'], {'lang': 'es8'});
109
109
  goog.addDependency('../../../../lib/offline/stored_content_utils.js', ['shaka.offline.StoredContentUtils'], ['goog.asserts', 'shaka.offline.ManifestConverter', 'shaka.offline.OfflineUri', 'shaka.util.StreamUtils'], {'lang': 'es6'});
110
110
  goog.addDependency('../../../../lib/offline/stream_bandwidth_estimator.js', ['shaka.offline.StreamBandwidthEstimator'], ['shaka.log'], {'lang': 'es6'});
@@ -172,7 +172,6 @@ goog.addDependency('../../../../lib/util/mime_utils.js', ['shaka.util.MimeUtils'
172
172
  goog.addDependency('../../../../lib/util/mp4_box_parsers.js', ['shaka.util.Mp4BoxParsers'], ['shaka.util.DataViewReader'], {'lang': 'es6'});
173
173
  goog.addDependency('../../../../lib/util/mp4_parser.js', ['shaka.util.Mp4Parser'], ['goog.asserts', 'shaka.log', 'shaka.util.DataViewReader'], {'lang': 'es6'});
174
174
  goog.addDependency('../../../../lib/util/multi_map.js', ['shaka.util.MultiMap'], [], {'lang': 'es6'});
175
- goog.addDependency('../../../../lib/util/mutex.js', ['shaka.util.Mutex'], [], {'lang': 'es8'});
176
175
  goog.addDependency('../../../../lib/util/networking.js', ['shaka.util.Networking'], ['shaka.net.NetworkingEngine'], {'lang': 'es6'});
177
176
  goog.addDependency('../../../../lib/util/object_utils.js', ['shaka.util.ObjectUtils'], [], {'lang': 'es6'});
178
177
  goog.addDependency('../../../../lib/util/operation_manager.js', ['shaka.util.OperationManager'], ['shaka.util.ArrayUtils', 'shaka.util.IDestroyable'], {'lang': 'es6'});
package/dist/locales.js CHANGED
@@ -720,44 +720,44 @@ shaka.ui.Locales.addTo = function(localization) {
720
720
  * @const
721
721
  */
722
722
  shaka.ui.Locales.Ids = {
723
- AUTO_QUALITY: 'AUTO_QUALITY',
724
- LANGUAGE: 'LANGUAGE',
725
- RESOLUTION: 'RESOLUTION',
726
- MORE_SETTINGS: 'MORE_SETTINGS',
727
- MUTE: 'MUTE',
728
- PLAYBACK_RATE: 'PLAYBACK_RATE',
729
- UNMUTE: 'UNMUTE',
730
- BACK: 'BACK',
731
- SUBTITLE_FORCED: 'SUBTITLE_FORCED',
732
- MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
733
- AD_TIME: 'AD_TIME',
734
723
  AD_PROGRESS: 'AD_PROGRESS',
735
- ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
724
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
725
+ MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
726
+ BACK: 'BACK',
727
+ VOLUME: 'VOLUME',
728
+ PAUSE: 'PAUSE',
729
+ EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
730
+ NOT_APPLICABLE: 'NOT_APPLICABLE',
736
731
  SEEK: 'SEEK',
732
+ AD_DURATION: 'AD_DURATION',
733
+ LANGUAGE: 'LANGUAGE',
734
+ SKIP_TO_LIVE: 'SKIP_TO_LIVE',
735
+ FULL_SCREEN: 'FULL_SCREEN',
736
+ CAST: 'CAST',
737
+ LIVE: 'LIVE',
738
+ UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
739
+ SUBTITLE_FORCED: 'SUBTITLE_FORCED',
740
+ RESOLUTION: 'RESOLUTION',
741
+ PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
737
742
  PLAY: 'PLAY',
738
743
  EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
739
744
  OFF: 'OFF',
745
+ MUTE: 'MUTE',
746
+ AIRPLAY: 'AIRPLAY',
747
+ UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
748
+ CAPTIONS: 'CAPTIONS',
749
+ AD_TIME: 'AD_TIME',
750
+ AUTO_QUALITY: 'AUTO_QUALITY',
751
+ ON: 'ON',
740
752
  STATISTICS: 'STATISTICS',
741
- LIVE: 'LIVE',
753
+ PLAYBACK_RATE: 'PLAYBACK_RATE',
754
+ MORE_SETTINGS: 'MORE_SETTINGS',
755
+ EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
756
+ ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
757
+ UNMUTE: 'UNMUTE',
742
758
  REPLAY: 'REPLAY',
743
- UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
744
- CAST: 'CAST',
745
- FULL_SCREEN: 'FULL_SCREEN',
746
759
  FAST_FORWARD: 'FAST_FORWARD',
760
+ REWIND: 'REWIND',
747
761
  SKIP_AD: 'SKIP_AD',
748
- AD_DURATION: 'AD_DURATION',
749
762
  LOOP: 'LOOP',
750
- PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
751
- REWIND: 'REWIND',
752
- UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
753
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
754
- CAPTIONS: 'CAPTIONS',
755
- AIRPLAY: 'AIRPLAY',
756
- SKIP_TO_LIVE: 'SKIP_TO_LIVE',
757
- EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
758
- NOT_APPLICABLE: 'NOT_APPLICABLE',
759
- VOLUME: 'VOLUME',
760
- PAUSE: 'PAUSE',
761
- EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
762
- ON: 'ON',
763
763
  };