shaka-player 4.2.11 → 4.2.13

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 (73) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +11 -0
  2. package/.github/workflows/appspot.yaml +39 -0
  3. package/.github/workflows/build-and-test.yaml +15 -0
  4. package/.github/workflows/selenium-lab-tests.yaml +3 -2
  5. package/.github/workflows/update-issues.yaml +1 -0
  6. package/CHANGELOG.md +42 -0
  7. package/CONTRIBUTORS +1 -0
  8. package/demo/custom.js +1 -1
  9. package/dist/demo.compiled.debug.js +2 -2
  10. package/dist/demo.compiled.debug.map +2 -2
  11. package/dist/demo.compiled.js +2 -2
  12. package/dist/demo.compiled.map +2 -2
  13. package/dist/deps.js +3 -3
  14. package/dist/locales.js +33 -33
  15. package/dist/shaka-player.compiled.d.ts +22 -0
  16. package/dist/shaka-player.compiled.debug.d.ts +22 -0
  17. package/dist/shaka-player.compiled.debug.js +233 -232
  18. package/dist/shaka-player.compiled.debug.map +3 -3
  19. package/dist/shaka-player.compiled.js +738 -738
  20. package/dist/shaka-player.compiled.map +3 -3
  21. package/dist/shaka-player.ui.d.ts +22 -0
  22. package/dist/shaka-player.ui.debug.d.ts +22 -0
  23. package/dist/shaka-player.ui.debug.js +259 -258
  24. package/dist/shaka-player.ui.debug.map +3 -3
  25. package/dist/shaka-player.ui.js +917 -916
  26. package/dist/shaka-player.ui.map +4 -4
  27. package/docs/tutorials/drm-config.md +9 -6
  28. package/docs/tutorials/selenium-grid-config.md +60 -8
  29. package/externs/ima.js +34 -0
  30. package/karma.conf.js +50 -7
  31. package/lib/abr/simple_abr_manager.js +6 -6
  32. package/lib/cea/mp4_cea_parser.js +30 -14
  33. package/lib/dash/dash_parser.js +18 -3
  34. package/lib/hls/hls_parser.js +13 -2
  35. package/lib/media/drm_engine.js +14 -8
  36. package/lib/media/gap_jumping_controller.js +24 -2
  37. package/lib/media/media_source_engine.js +5 -3
  38. package/lib/media/playhead.js +11 -0
  39. package/lib/media/region_observer.js +19 -1
  40. package/lib/media/streaming_engine.js +7 -3
  41. package/lib/media/video_wrapper.js +6 -1
  42. package/lib/player.js +9 -8
  43. package/lib/polyfill/abort_controller.js +7 -0
  44. package/lib/polyfill/orientation.js +34 -7
  45. package/lib/text/vtt_text_parser.js +3 -1
  46. package/lib/util/manifest_parser_utils.js +5 -3
  47. package/lib/util/mp4_box_parsers.js +8 -3
  48. package/lib/util/platform.js +14 -0
  49. package/lib/util/stream_utils.js +70 -26
  50. package/package.json +2 -3
  51. package/test/cast/cast_utils_unit.js +4 -1
  52. package/test/cea/mp4_cea_parser_unit.js +26 -3
  53. package/test/dash/dash_parser_manifest_unit.js +120 -0
  54. package/test/hls/hls_parser_unit.js +222 -0
  55. package/test/media/drm_engine_integration.js +2 -2
  56. package/test/media/region_observer_unit.js +2 -1
  57. package/test/media/segment_index_unit.js +3 -3
  58. package/test/media/streaming_engine_integration.js +14 -11
  59. package/test/offline/offline_integration.js +6 -3
  60. package/test/player_external.js +19 -16
  61. package/test/player_integration.js +35 -48
  62. package/test/player_src_equals_integration.js +9 -5
  63. package/test/test/assets/multiple-trun-init.mp4 +0 -0
  64. package/test/test/assets/multiple-trun-segment.mp4 +0 -0
  65. package/test/test/util/fake_demo_main.js +7 -3
  66. package/test/test/util/layout_tests.js +2 -2
  67. package/test/test/util/ui_utils.js +9 -2
  68. package/test/test/util/util.js +6 -27
  69. package/test/test/util/waiter.js +73 -3
  70. package/test/ui/ad_ui_unit.js +9 -9
  71. package/test/util/stream_utils_unit.js +46 -0
  72. package/ui/range_element.js +5 -0
  73. package/ui/resolution_selection.js +7 -1
package/dist/deps.js CHANGED
@@ -39,7 +39,7 @@ goog.addDependency('../../../../lib/cea/cea_utils.js', ['shaka.cea.CeaUtils', 's
39
39
  goog.addDependency('../../../../lib/cea/dtvcc_packet_builder.js', ['shaka.cea.DtvccPacket', 'shaka.cea.DtvccPacketBuilder'], ['shaka.util.Error'], {'lang': 'es6'});
40
40
  goog.addDependency('../../../../lib/cea/i_caption_decoder.js', ['shaka.cea.ICaptionDecoder'], ['shaka.text.Cue'], {'lang': 'es6'});
41
41
  goog.addDependency('../../../../lib/cea/i_cea_parser.js', ['shaka.cea.ICeaParser'], [], {'lang': 'es6'});
42
- goog.addDependency('../../../../lib/cea/mp4_cea_parser.js', ['shaka.cea.Mp4CeaParser'], ['goog.asserts', 'shaka.cea.ICeaParser', 'shaka.cea.SeiProcessor', 'shaka.util.DataViewReader', 'shaka.util.Error', 'shaka.util.Mp4BoxParsers', 'shaka.util.Mp4Parser'], {'lang': 'es6'});
42
+ goog.addDependency('../../../../lib/cea/mp4_cea_parser.js', ['shaka.cea.Mp4CeaParser'], ['goog.asserts', 'shaka.cea.ICeaParser', 'shaka.cea.SeiProcessor', 'shaka.log', 'shaka.util.DataViewReader', 'shaka.util.Error', 'shaka.util.Mp4BoxParsers', 'shaka.util.Mp4Parser'], {'lang': 'es6'});
43
43
  goog.addDependency('../../../../lib/cea/sei_processor.js', ['shaka.cea.SeiProcessor'], [], {'lang': 'es6'});
44
44
  goog.addDependency('../../../../lib/dash/content_protection.js', ['shaka.dash.ContentProtection'], ['goog.asserts', 'shaka.log', 'shaka.util.BufferUtils', 'shaka.util.Error', 'shaka.util.ManifestParserUtils', 'shaka.util.Pssh', 'shaka.util.StringUtils', 'shaka.util.Uint8ArrayUtils', 'shaka.util.XmlUtils'], {'lang': 'es8'});
45
45
  goog.addDependency('../../../../lib/dash/dash_parser.js', ['shaka.dash.DashParser'], ['goog.asserts', 'shaka.abr.Ewma', 'shaka.dash.ContentProtection', 'shaka.dash.MpdUtils', 'shaka.dash.SegmentBase', 'shaka.dash.SegmentList', 'shaka.dash.SegmentTemplate', 'shaka.log', 'shaka.media.ManifestParser', 'shaka.media.PresentationTimeline', 'shaka.media.SegmentIndex', 'shaka.net.NetworkingEngine', 'shaka.text.TextEngine', 'shaka.util.CmcdManager', 'shaka.util.Error', 'shaka.util.Functional', 'shaka.util.LanguageUtils', 'shaka.util.ManifestParserUtils', 'shaka.util.MimeUtils', 'shaka.util.Networking', 'shaka.util.OperationManager', 'shaka.util.PeriodCombiner', 'shaka.util.StringUtils', 'shaka.util.Timer', 'shaka.util.XmlUtils'], {'lang': 'es8'});
@@ -116,7 +116,7 @@ goog.addDependency('../../../../lib/polyfill/encryption_scheme.js', ['shaka.poly
116
116
  goog.addDependency('../../../../lib/polyfill/fullscreen.js', ['shaka.polyfill.Fullscreen'], ['shaka.polyfill'], {'lang': 'es6'});
117
117
  goog.addDependency('../../../../lib/polyfill/media_capabilities.js', ['shaka.polyfill.MediaCapabilities'], ['shaka.log', 'shaka.polyfill', 'shaka.util.Platform'], {'lang': 'es8'});
118
118
  goog.addDependency('../../../../lib/polyfill/mediasource.js', ['shaka.polyfill.MediaSource'], ['shaka.log', 'shaka.polyfill', 'shaka.util.MimeUtils', 'shaka.util.Platform'], {'lang': 'es6'});
119
- goog.addDependency('../../../../lib/polyfill/orientation.js', ['shaka.polyfill.Orientation'], ['shaka.polyfill', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget'], {'lang': 'es6'});
119
+ goog.addDependency('../../../../lib/polyfill/orientation.js', ['shaka.polyfill.Orientation'], ['shaka.log', 'shaka.polyfill', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget'], {'lang': 'es6'});
120
120
  goog.addDependency('../../../../lib/polyfill/patchedmediakeys_apple.js', ['shaka.polyfill.PatchedMediaKeysApple'], ['goog.asserts', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.polyfill', 'shaka.util.BufferUtils', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.MediaReadyState', 'shaka.util.PublicPromise', 'shaka.util.StringUtils'], {'lang': 'es6'});
121
121
  goog.addDependency('../../../../lib/polyfill/patchedmediakeys_nop.js', ['shaka.polyfill.PatchedMediaKeysNop'], ['goog.asserts', 'shaka.log', 'shaka.polyfill'], {'lang': 'es6'});
122
122
  goog.addDependency('../../../../lib/polyfill/patchedmediakeys_webkit.js', ['shaka.polyfill.PatchedMediaKeysWebkit'], ['goog.asserts', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.polyfill', 'shaka.util.BufferUtils', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.PublicPromise', 'shaka.util.StringUtils', 'shaka.util.Timer', 'shaka.util.Uint8ArrayUtils'], {'lang': 'es6'});
@@ -216,7 +216,7 @@ goog.addDependency('../../../../ui/play_button.js', ['shaka.ui.PlayButton'], ['s
216
216
  goog.addDependency('../../../../ui/playback_rate_selection.js', ['shaka.ui.PlaybackRateSelection'], ['shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom'], {'lang': 'es6'});
217
217
  goog.addDependency('../../../../ui/presentation_time.js', ['shaka.ui.PresentationTimeTracker'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Locales', 'shaka.ui.Utils', 'shaka.util.Dom'], {'lang': 'es6'});
218
218
  goog.addDependency('../../../../ui/range_element.js', ['shaka.ui.RangeElement'], ['shaka.ui.Element', 'shaka.util.Dom', 'shaka.util.Timer'], {'lang': 'es6'});
219
- goog.addDependency('../../../../ui/resolution_selection.js', ['shaka.ui.ResolutionSelection'], ['goog.asserts', 'shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {'lang': 'es6'});
219
+ goog.addDependency('../../../../ui/resolution_selection.js', ['shaka.ui.ResolutionSelection'], ['goog.asserts', 'shaka.Player', 'shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {'lang': 'es6'});
220
220
  goog.addDependency('../../../../ui/rewind_button.js', ['shaka.ui.RewindButton'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.util.Dom'], {'lang': 'es6'});
221
221
  goog.addDependency('../../../../ui/seek_bar.js', ['shaka.ui.SeekBar'], ['shaka.ads.AdManager', 'shaka.ui.Constants', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.RangeElement', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.Timer'], {'lang': 'es6'});
222
222
  goog.addDependency('../../../../ui/settings_menu.js', ['shaka.ui.SettingsMenu'], ['shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent', 'shaka.util.Iterables'], {'lang': 'es6'});
package/dist/locales.js CHANGED
@@ -721,45 +721,45 @@ shaka.ui.Locales.addTo = function(localization) {
721
721
  * @const
722
722
  */
723
723
  shaka.ui.Locales.Ids = {
724
- SKIP_AD: 'SKIP_AD',
725
- CAPTIONS: 'CAPTIONS',
726
- AD_PROGRESS: 'AD_PROGRESS',
727
724
  SKIP_TO_LIVE: 'SKIP_TO_LIVE',
728
- LIVE: 'LIVE',
729
- EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
730
- FULL_SCREEN: 'FULL_SCREEN',
731
725
  CAST: 'CAST',
732
- RESOLUTION: 'RESOLUTION',
733
- PLAYBACK_RATE: 'PLAYBACK_RATE',
734
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
735
- FAST_FORWARD: 'FAST_FORWARD',
736
- MORE_SETTINGS: 'MORE_SETTINGS',
737
- REPLAY: 'REPLAY',
738
- VOLUME: 'VOLUME',
739
- REWIND: 'REWIND',
740
- MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
741
- MUTE: 'MUTE',
726
+ EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
742
727
  NOT_APPLICABLE: 'NOT_APPLICABLE',
743
- OFF: 'OFF',
744
- LOOP: 'LOOP',
745
- UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
746
- ON: 'ON',
747
- QUALITY: 'QUALITY',
748
- STATISTICS: 'STATISTICS',
749
- AIRPLAY: 'AIRPLAY',
728
+ EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
729
+ CAPTIONS: 'CAPTIONS',
730
+ PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
750
731
  UNMUTE: 'UNMUTE',
751
- AD_DURATION: 'AD_DURATION',
752
- UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
753
- SUBTITLE_FORCED: 'SUBTITLE_FORCED',
754
- SEEK: 'SEEK',
755
- BACK: 'BACK',
756
- EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
757
- LANGUAGE: 'LANGUAGE',
732
+ EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
758
733
  AUTO_QUALITY: 'AUTO_QUALITY',
734
+ MORE_SETTINGS: 'MORE_SETTINGS',
735
+ FULL_SCREEN: 'FULL_SCREEN',
736
+ UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
737
+ STATISTICS: 'STATISTICS',
759
738
  AD_TIME: 'AD_TIME',
739
+ AD_DURATION: 'AD_DURATION',
740
+ AIRPLAY: 'AIRPLAY',
741
+ SKIP_AD: 'SKIP_AD',
742
+ ON: 'ON',
743
+ OFF: 'OFF',
744
+ PAUSE: 'PAUSE',
745
+ LIVE: 'LIVE',
746
+ FAST_FORWARD: 'FAST_FORWARD',
747
+ SUBTITLE_FORCED: 'SUBTITLE_FORCED',
760
748
  ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
761
- PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
749
+ SEEK: 'SEEK',
750
+ QUALITY: 'QUALITY',
762
751
  PLAY: 'PLAY',
763
- PAUSE: 'PAUSE',
764
- EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
752
+ MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
753
+ RESOLUTION: 'RESOLUTION',
754
+ LOOP: 'LOOP',
755
+ AD_PROGRESS: 'AD_PROGRESS',
756
+ REWIND: 'REWIND',
757
+ REPLAY: 'REPLAY',
758
+ LANGUAGE: 'LANGUAGE',
759
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
760
+ UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
761
+ BACK: 'BACK',
762
+ VOLUME: 'VOLUME',
763
+ MUTE: 'MUTE',
764
+ PLAYBACK_RATE: 'PLAYBACK_RATE',
765
765
  };
@@ -3070,6 +3070,28 @@ declare namespace google.ima {
3070
3070
  }
3071
3071
  }
3072
3072
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3073
+ declare namespace google.ima.dai.api {
3074
+ enum OmidAccessMode {
3075
+ DOMAIN = 'domain' ,
3076
+ FULL = 'full' ,
3077
+ LIMITED = 'limited' ,
3078
+ }
3079
+ }
3080
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3081
+ declare namespace google.ima.dai.api {
3082
+ enum OmidVerificationVendor {
3083
+ COMSCORE = 7.0 ,
3084
+ DOUBLEVERIFY = 3.0 ,
3085
+ GOOGLE = 9.0 ,
3086
+ INTEGRAL_AD_SCIENCE = 4.0 ,
3087
+ MEETRICS = 8.0 ,
3088
+ MOAT = 2.0 ,
3089
+ NIELSEN = 6.0 ,
3090
+ OTHER = 1.0 ,
3091
+ PIXELATE = 5.0 ,
3092
+ }
3093
+ }
3094
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3073
3095
  declare namespace google.ima.dai.api.StreamEvent {
3074
3096
  enum Type {
3075
3097
  AD_BREAK_ENDED = 'adBreakEnded' ,
@@ -3070,6 +3070,28 @@ declare namespace google.ima {
3070
3070
  }
3071
3071
  }
3072
3072
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3073
+ declare namespace google.ima.dai.api {
3074
+ enum OmidAccessMode {
3075
+ DOMAIN = 'domain' ,
3076
+ FULL = 'full' ,
3077
+ LIMITED = 'limited' ,
3078
+ }
3079
+ }
3080
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3081
+ declare namespace google.ima.dai.api {
3082
+ enum OmidVerificationVendor {
3083
+ COMSCORE = 7.0 ,
3084
+ DOUBLEVERIFY = 3.0 ,
3085
+ GOOGLE = 9.0 ,
3086
+ INTEGRAL_AD_SCIENCE = 4.0 ,
3087
+ MEETRICS = 8.0 ,
3088
+ MOAT = 2.0 ,
3089
+ NIELSEN = 6.0 ,
3090
+ OTHER = 1.0 ,
3091
+ PIXELATE = 5.0 ,
3092
+ }
3093
+ }
3094
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3073
3095
  declare namespace google.ima.dai.api.StreamEvent {
3074
3096
  enum Type {
3075
3097
  AD_BREAK_ENDED = 'adBreakEnded' ,