shaka-player 4.2.3 → 4.2.4

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 (46) hide show
  1. package/AUTHORS +1 -0
  2. package/CHANGELOG.md +15 -0
  3. package/CONTRIBUTORS +1 -0
  4. package/dist/deps.js +2 -2
  5. package/dist/locales.js +26 -26
  6. package/dist/shaka-player.compiled.d.ts +5 -1
  7. package/dist/shaka-player.compiled.debug.d.ts +5 -1
  8. package/dist/shaka-player.compiled.debug.externs.js +2 -1
  9. package/dist/shaka-player.compiled.debug.js +83 -80
  10. package/dist/shaka-player.compiled.debug.map +3 -3
  11. package/dist/shaka-player.compiled.externs.js +2 -1
  12. package/dist/shaka-player.compiled.js +565 -562
  13. package/dist/shaka-player.compiled.map +3 -3
  14. package/dist/shaka-player.ui.d.ts +5 -1
  15. package/dist/shaka-player.ui.debug.d.ts +5 -1
  16. package/dist/shaka-player.ui.debug.externs.js +2 -1
  17. package/dist/shaka-player.ui.debug.js +99 -96
  18. package/dist/shaka-player.ui.debug.map +3 -3
  19. package/dist/shaka-player.ui.externs.js +2 -1
  20. package/dist/shaka-player.ui.js +694 -691
  21. package/dist/shaka-player.ui.map +3 -3
  22. package/externs/mux.js +3 -0
  23. package/lib/cast/cast_proxy.js +2 -1
  24. package/lib/cast/cast_receiver.js +19 -5
  25. package/lib/cast/cast_sender.js +2 -1
  26. package/lib/cast/cast_utils.js +16 -6
  27. package/lib/hls/hls_parser.js +9 -2
  28. package/lib/media/media_source_engine.js +6 -0
  29. package/lib/media/playhead.js +23 -1
  30. package/lib/media/streaming_engine.js +3 -12
  31. package/lib/media/transmuxer.js +6 -0
  32. package/lib/player.js +24 -11
  33. package/lib/util/manifest_parser_utils.js +4 -0
  34. package/package.json +1 -1
  35. package/roadmap.md +24 -6
  36. package/test/cast/cast_receiver_integration.js +97 -16
  37. package/test/cast/cast_receiver_unit.js +17 -12
  38. package/test/cast/cast_utils_unit.js +1 -0
  39. package/test/media/media_source_engine_integration.js +31 -0
  40. package/test/media/playhead_unit.js +41 -0
  41. package/test/media/streaming_engine_integration.js +13 -0
  42. package/test/media/streaming_engine_unit.js +36 -23
  43. package/test/player_unit.js +87 -0
  44. package/test/test/util/simple_fakes.js +3 -0
  45. package/ui/controls.js +4 -1
  46. package/ui/settings_menu.js +11 -2
package/AUTHORS CHANGED
@@ -32,6 +32,7 @@ Edgeware AB <*@edgeware.tv>
32
32
  Enson Choy <enson.choy@harmonicinc.com>
33
33
  Esteban Dosztal <edosztal@gmail.com>
34
34
  Fadomire <fadomire@gmail.com>
35
+ Gerardo Meola <meola.gerardo@gmail.com>
35
36
  Gil Gonen <gil.gonen@gmail.com>
36
37
  Giorgio Gamberoni <giorgio.gamberoni@gmail.com>
37
38
  Giuseppe Samela <giuseppe.samela@gmail.com>
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.2.4](https://github.com/shaka-project/shaka-player/compare/v4.2.3...v4.2.4) (2022-11-09)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * Allow overriding special handling of 404s ([#4635](https://github.com/shaka-project/shaka-player/issues/4635)) ([bf3e4e8](https://github.com/shaka-project/shaka-player/commit/bf3e4e8967ab938c95861d3f02eb1bcf76722a5c)), closes [#4548](https://github.com/shaka-project/shaka-player/issues/4548)
9
+ * **cast:** Reduce size of Cast update messages ([#4644](https://github.com/shaka-project/shaka-player/issues/4644)) ([2ee9803](https://github.com/shaka-project/shaka-player/commit/2ee9803f295bbdf7911740c4b5f35b81e8a7488c))
10
+ * Content reload starttime with HLS on iOS ([#4575](https://github.com/shaka-project/shaka-player/issues/4575)) ([f02e25a](https://github.com/shaka-project/shaka-player/commit/f02e25af91eeb18939f16460702b8f9ec226b54c)), closes [#4244](https://github.com/shaka-project/shaka-player/issues/4244)
11
+ * embed cc not shown when seeking back ([#4643](https://github.com/shaka-project/shaka-player/issues/4643)) ([3743fe8](https://github.com/shaka-project/shaka-player/commit/3743fe8ab70ce8bebd46ff4a667ddce188ec49c6)), closes [#4641](https://github.com/shaka-project/shaka-player/issues/4641)
12
+ * Fix detection of ac4, dts, and dolby h265 ([#4657](https://github.com/shaka-project/shaka-player/issues/4657)) ([9da2b47](https://github.com/shaka-project/shaka-player/commit/9da2b47deba36f4c50fed10c859f46a432e20576))
13
+ * focus on first element when back to the settings menu ([#4653](https://github.com/shaka-project/shaka-player/issues/4653)) ([f507c89](https://github.com/shaka-project/shaka-player/commit/f507c89bf63b0ec5b7802cd31ac3f3cca05ff237)), closes [#4652](https://github.com/shaka-project/shaka-player/issues/4652)
14
+ * **HLS:** Fix detection of WebVTT subtitles in HLS by extension ([#4663](https://github.com/shaka-project/shaka-player/issues/4663)) ([731bd96](https://github.com/shaka-project/shaka-player/commit/731bd96644cbbd3fa39992fd62a4ae6de8389e74))
15
+ * **HLS:** Infer missing codecs from config ([#4656](https://github.com/shaka-project/shaka-player/issues/4656)) ([507d96e](https://github.com/shaka-project/shaka-player/commit/507d96e74239973fb904d6ade4615ac8888a9d57))
16
+ * **ui:** Fix exception on screen rotation if fullscreen is not supported ([#4669](https://github.com/shaka-project/shaka-player/issues/4669)) ([6c54db9](https://github.com/shaka-project/shaka-player/commit/6c54db91e03c4ff4a2c073b45dcb05e8591295d0))
17
+
3
18
  ## [4.2.3](https://github.com/shaka-project/shaka-player/compare/v4.2.2...v4.2.3) (2022-10-29)
4
19
 
5
20
 
package/CONTRIBUTORS CHANGED
@@ -50,6 +50,7 @@ Enson Choy <enson.choy@harmonicinc.com>
50
50
  Esteban Dosztal <edosztal@gmail.com>
51
51
  Fadomire <fadomire@gmail.com>
52
52
  François Beaufort <fbeaufort@google.com>
53
+ Gerardo Meola <meola.gerardo@gmail.com>
53
54
  Gil Gonen <gil.gonen@gmail.com>
54
55
  Giorgio Gamberoni <giorgio.gamberoni@gmail.com>
55
56
  Giuseppe Samela <giuseppe.samela@gmail.com>
package/dist/deps.js CHANGED
@@ -68,7 +68,7 @@ goog.addDependency('../../../../lib/media/manifest_parser.js', ['shaka.media.Man
68
68
  goog.addDependency('../../../../lib/media/media_source_engine.js', ['shaka.media.MediaSourceEngine'], ['goog.asserts', 'shaka.log', 'shaka.media.ContentWorkarounds', 'shaka.media.IClosedCaptionParser', 'shaka.media.SegmentReference', 'shaka.media.TimeRangesUtils', 'shaka.media.Transmuxer', 'shaka.text.TextEngine', 'shaka.util.Destroyer', 'shaka.util.Error', 'shaka.util.EventManager', 'shaka.util.Functional', 'shaka.util.IDestroyable', 'shaka.util.ManifestParserUtils', 'shaka.util.MimeUtils', 'shaka.util.Platform', 'shaka.util.PublicPromise'], {'lang': 'es8'});
69
69
  goog.addDependency('../../../../lib/media/mp4_segment_index_parser.js', ['shaka.media.Mp4SegmentIndexParser'], ['goog.asserts', 'shaka.log', 'shaka.media.InitSegmentReference', 'shaka.media.SegmentReference', 'shaka.util.Error', 'shaka.util.Mp4Parser'], {'lang': 'es6'});
70
70
  goog.addDependency('../../../../lib/media/play_rate_controller.js', ['shaka.media.PlayRateController'], ['goog.asserts', 'shaka.log', 'shaka.util.IReleasable', 'shaka.util.Timer'], {'lang': 'es6'});
71
- goog.addDependency('../../../../lib/media/playhead.js', ['shaka.media.MediaSourcePlayhead', 'shaka.media.Playhead', 'shaka.media.SrcEqualsPlayhead'], ['goog.asserts', 'shaka.log', 'shaka.media.GapJumpingController', 'shaka.media.StallDetector', 'shaka.media.StallDetector.MediaElementImplementation', 'shaka.media.TimeRangesUtils', 'shaka.media.VideoWrapper', 'shaka.util.EventManager', 'shaka.util.IReleasable', 'shaka.util.MediaReadyState', 'shaka.util.Timer'], {'lang': 'es6'});
71
+ goog.addDependency('../../../../lib/media/playhead.js', ['shaka.media.MediaSourcePlayhead', 'shaka.media.Playhead', 'shaka.media.SrcEqualsPlayhead'], ['goog.asserts', 'shaka.log', 'shaka.media.GapJumpingController', 'shaka.media.StallDetector', 'shaka.media.StallDetector.MediaElementImplementation', 'shaka.media.TimeRangesUtils', 'shaka.media.VideoWrapper', 'shaka.util.EventManager', 'shaka.util.IReleasable', 'shaka.util.MediaReadyState', 'shaka.util.Timer'], {'lang': 'es8'});
72
72
  goog.addDependency('../../../../lib/media/playhead_observer.js', ['shaka.media.IPlayheadObserver', 'shaka.media.PlayheadObserverManager'], ['shaka.util.IReleasable', 'shaka.util.Timer'], {'lang': 'es6'});
73
73
  goog.addDependency('../../../../lib/media/presentation_timeline.js', ['shaka.media.PresentationTimeline'], ['goog.asserts', 'shaka.log', 'shaka.media.SegmentReference'], {'lang': 'es6'});
74
74
  goog.addDependency('../../../../lib/media/quality_observer.js', ['shaka.media.QualityObserver'], ['shaka.log', 'shaka.media.IPlayheadObserver', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget'], {'lang': 'es6'});
@@ -217,7 +217,7 @@ goog.addDependency('../../../../ui/range_element.js', ['shaka.ui.RangeElement'],
217
217
  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'});
218
218
  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'});
219
219
  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'});
220
- goog.addDependency('../../../../ui/settings_menu.js', ['shaka.ui.SettingsMenu'], ['shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {'lang': 'es6'});
220
+ 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'});
221
221
  goog.addDependency('../../../../ui/skip_ad_button.js', ['shaka.ui.SkipAdButton'], ['goog.asserts', 'shaka.ads.AdManager', 'shaka.ui.Element', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.Timer'], {'lang': 'es6'});
222
222
  goog.addDependency('../../../../ui/small_play_button.js', ['shaka.ui.SmallPlayButton'], ['shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.PlayButton'], {'lang': 'es6'});
223
223
  goog.addDependency('../../../../ui/spacer.js', ['shaka.ui.Spacer'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.util.Dom'], {'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
+ PAUSE: 'PAUSE',
725
+ UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
724
726
  EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
725
- BACK: 'BACK',
727
+ REWIND: 'REWIND',
726
728
  PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
727
- NOT_APPLICABLE: 'NOT_APPLICABLE',
729
+ LIVE: 'LIVE',
730
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
728
731
  MUTE: 'MUTE',
729
- PAUSE: 'PAUSE',
730
732
  SKIP_AD: 'SKIP_AD',
731
- LOOP: 'LOOP',
732
- PLAY: 'PLAY',
733
- SUBTITLE_FORCED: 'SUBTITLE_FORCED',
734
- RESOLUTION: 'RESOLUTION',
735
- REWIND: 'REWIND',
736
- MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
737
733
  SEEK: 'SEEK',
734
+ LOOP: 'LOOP',
738
735
  EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
739
- AD_DURATION: 'AD_DURATION',
740
736
  FULL_SCREEN: 'FULL_SCREEN',
741
- CAST: 'CAST',
742
- AD_PROGRESS: 'AD_PROGRESS',
737
+ BACK: 'BACK',
738
+ SUBTITLE_FORCED: 'SUBTITLE_FORCED',
743
739
  EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
744
- UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
745
- UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
740
+ AD_TIME: 'AD_TIME',
741
+ OFF: 'OFF',
746
742
  REPLAY: 'REPLAY',
747
- AUTO_QUALITY: 'AUTO_QUALITY',
748
- LIVE: 'LIVE',
743
+ UNMUTE: 'UNMUTE',
744
+ FAST_FORWARD: 'FAST_FORWARD',
749
745
  VOLUME: 'VOLUME',
750
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
751
- ON: 'ON',
752
- SKIP_TO_LIVE: 'SKIP_TO_LIVE',
746
+ MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
747
+ AUTO_QUALITY: 'AUTO_QUALITY',
748
+ AD_DURATION: 'AD_DURATION',
749
+ AIRPLAY: 'AIRPLAY',
753
750
  ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
754
- OFF: 'OFF',
751
+ UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
755
752
  LANGUAGE: 'LANGUAGE',
753
+ STATISTICS: 'STATISTICS',
756
754
  QUALITY: 'QUALITY',
757
755
  MORE_SETTINGS: 'MORE_SETTINGS',
758
- CAPTIONS: 'CAPTIONS',
759
- AIRPLAY: 'AIRPLAY',
760
- UNMUTE: 'UNMUTE',
761
- AD_TIME: 'AD_TIME',
762
- FAST_FORWARD: 'FAST_FORWARD',
756
+ NOT_APPLICABLE: 'NOT_APPLICABLE',
757
+ ON: 'ON',
758
+ PLAY: 'PLAY',
759
+ CAST: 'CAST',
760
+ AD_PROGRESS: 'AD_PROGRESS',
763
761
  PLAYBACK_RATE: 'PLAYBACK_RATE',
764
- STATISTICS: 'STATISTICS',
762
+ CAPTIONS: 'CAPTIONS',
763
+ RESOLUTION: 'RESOLUTION',
764
+ SKIP_TO_LIVE: 'SKIP_TO_LIVE',
765
765
  };
@@ -294,7 +294,7 @@ declare namespace shaka {
294
294
  * If the player has loaded content, and streaming seen an error, but the
295
295
  * could not resume streaming, this will return <code>false</code>.
296
296
  */
297
- retryStreaming ( ) : boolean ;
297
+ retryStreaming (retryDelaySeconds ? : number ) : boolean ;
298
298
  /**
299
299
  * Get the range of time (in seconds) that seeking is allowed. If the player
300
300
  * has not loaded content, this will return a range from 0 to 0.
@@ -3218,6 +3218,10 @@ declare namespace muxjs.mp4 {
3218
3218
  */
3219
3219
  on (type : string , listener : Function | null ) : any ;
3220
3220
  push (data : Uint8Array ) : any ;
3221
+ /**
3222
+ * Reset captions.
3223
+ */
3224
+ resetCaptions ( ) : any ;
3221
3225
  setBaseMediaDecodeTime (time : number ) : any ;
3222
3226
  }
3223
3227
  }
@@ -294,7 +294,7 @@ declare namespace shaka {
294
294
  * If the player has loaded content, and streaming seen an error, but the
295
295
  * could not resume streaming, this will return <code>false</code>.
296
296
  */
297
- retryStreaming ( ) : boolean ;
297
+ retryStreaming (retryDelaySeconds ? : number ) : boolean ;
298
298
  /**
299
299
  * Get the range of time (in seconds) that seeking is allowed. If the player
300
300
  * has not loaded content, this will return a range from 0 to 0.
@@ -3218,6 +3218,10 @@ declare namespace muxjs.mp4 {
3218
3218
  */
3219
3219
  on (type : string , listener : Function | null ) : any ;
3220
3220
  push (data : Uint8Array ) : any ;
3221
+ /**
3222
+ * Reset captions.
3223
+ */
3224
+ resetCaptions ( ) : any ;
3221
3225
  setBaseMediaDecodeTime (time : number ) : any ;
3222
3226
  }
3223
3227
  }
@@ -2772,9 +2772,10 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2772
2772
  * <p>
2773
2773
  * If the player has loaded content, and streaming seen an error, but the
2774
2774
  * could not resume streaming, this will return <code>false</code>.
2775
+ * @param {number=} retryDelaySeconds
2775
2776
  * @return {boolean}
2776
2777
  */
2777
- retryStreaming() {}
2778
+ retryStreaming(retryDelaySeconds) {}
2778
2779
  /**
2779
2780
  * Get the manifest that the player has loaded. If the player has not loaded
2780
2781
  * any content, this will return <code>null</code>.