shaka-player 4.11.16 → 4.11.18

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 (53) hide show
  1. package/dist/deps.js +2 -2
  2. package/dist/locales.js +34 -34
  3. package/dist/shaka-player.compiled.d.ts +11 -3
  4. package/dist/shaka-player.compiled.debug.d.ts +11 -3
  5. package/dist/shaka-player.compiled.debug.externs.js +8 -5
  6. package/dist/shaka-player.compiled.debug.js +363 -350
  7. package/dist/shaka-player.compiled.debug.map +3 -3
  8. package/dist/shaka-player.compiled.externs.js +8 -5
  9. package/dist/shaka-player.compiled.js +1359 -1351
  10. package/dist/shaka-player.compiled.map +4 -4
  11. package/dist/shaka-player.ui.d.ts +11 -3
  12. package/dist/shaka-player.ui.debug.d.ts +11 -3
  13. package/dist/shaka-player.ui.debug.externs.js +8 -5
  14. package/dist/shaka-player.ui.debug.js +504 -491
  15. package/dist/shaka-player.ui.debug.map +3 -3
  16. package/dist/shaka-player.ui.externs.js +8 -5
  17. package/dist/shaka-player.ui.js +1572 -1563
  18. package/dist/shaka-player.ui.map +3 -3
  19. package/externs/shaka/codecs.js +21 -0
  20. package/externs/shaka/offline.js +4 -0
  21. package/lib/cast/cast_utils.js +1 -0
  22. package/lib/hls/hls_parser.js +26 -5
  23. package/lib/media/drm_engine.js +70 -29
  24. package/lib/media/manifest_filterer.js +2 -1
  25. package/lib/media/media_source_engine.js +115 -33
  26. package/lib/media/segment_utils.js +50 -44
  27. package/lib/offline/download_info.js +5 -0
  28. package/lib/offline/download_manager.js +54 -0
  29. package/lib/offline/manifest_converter.js +1 -0
  30. package/lib/offline/storage.js +12 -3
  31. package/lib/player.js +52 -29
  32. package/lib/polyfill/media_capabilities.js +1 -1
  33. package/lib/text/simple_text_displayer.js +9 -1
  34. package/lib/text/ui_text_displayer.js +2 -14
  35. package/lib/transmuxer/aac_transmuxer.js +11 -3
  36. package/lib/transmuxer/ac3_transmuxer.js +11 -3
  37. package/lib/transmuxer/ec3_transmuxer.js +11 -3
  38. package/lib/transmuxer/h264.js +143 -70
  39. package/lib/transmuxer/mp3_transmuxer.js +11 -3
  40. package/lib/transmuxer/ts_transmuxer.js +68 -28
  41. package/lib/util/drm_utils.js +20 -0
  42. package/lib/util/mime_utils.js +3 -0
  43. package/lib/util/object_utils.js +83 -0
  44. package/lib/util/platform.js +48 -40
  45. package/lib/util/stream_utils.js +37 -113
  46. package/lib/util/ts_parser.js +111 -85
  47. package/package.json +1 -1
  48. package/ui/ad_counter.js +5 -0
  49. package/ui/controls.js +4 -2
  50. package/ui/fast_forward_button.js +7 -0
  51. package/ui/play_button.js +1 -1
  52. package/ui/playback_rate_selection.js +1 -1
  53. package/ui/rewind_button.js +7 -0
package/dist/deps.js CHANGED
@@ -105,7 +105,7 @@ goog.addDependency('../../../../lib/net/http_plugin_utils.js', ['shaka.net.HttpP
105
105
  goog.addDependency('../../../../lib/net/http_xhr_plugin.js', ['shaka.net.HttpXHRPlugin'], ['goog.asserts', 'shaka.net.HttpPluginUtils', 'shaka.net.NetworkingEngine', 'shaka.util.AbortableOperation', 'shaka.util.Error'], {'lang': 'es6'});
106
106
  goog.addDependency('../../../../lib/net/networking_engine.js', ['shaka.net.NetworkingEngine', 'shaka.net.NetworkingEngine.AdvancedRequestType', 'shaka.net.NetworkingEngine.PendingRequest', 'shaka.net.NetworkingEngine.RequestType'], ['goog.Uri', 'goog.asserts', 'shaka.net.Backoff', 'shaka.util.AbortableOperation', 'shaka.util.BufferUtils', 'shaka.util.Error', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.IDestroyable', 'shaka.util.ObjectUtils', 'shaka.util.OperationManager', 'shaka.util.Timer'], {'lang': 'es6'});
107
107
  goog.addDependency('../../../../lib/net/networking_utils.js', ['shaka.net.NetworkingUtils'], ['goog.Uri', 'shaka.net.NetworkingEngine', 'shaka.util.Error'], {'lang': 'es8'});
108
- goog.addDependency('../../../../lib/offline/download_info.js', ['shaka.offline.DownloadInfo'], ['shaka.util.Networking'], {'lang': 'es6'});
108
+ goog.addDependency('../../../../lib/offline/download_info.js', ['shaka.offline.DownloadInfo'], ['shaka.util.Networking', 'shaka.util.Uint8ArrayUtils'], {'lang': 'es6'});
109
109
  goog.addDependency('../../../../lib/offline/download_manager.js', ['shaka.offline.DownloadManager'], ['shaka.net.NetworkingEngine', 'shaka.offline.DownloadProgressEstimator', 'shaka.util.ArrayUtils', 'shaka.util.BufferUtils', 'shaka.util.Destroyer', 'shaka.util.Error', 'shaka.util.IDestroyable', 'shaka.util.Pssh'], {'lang': 'es8'});
110
110
  goog.addDependency('../../../../lib/offline/download_progress_estimator.js', ['shaka.offline.DownloadProgressEstimator'], [], {'lang': 'es6'});
111
111
  goog.addDependency('../../../../lib/offline/indexeddb/base_storage_cell.js', ['shaka.offline.indexeddb.BaseStorageCell'], ['shaka.offline.indexeddb.DBConnection', 'shaka.util.Error'], {'lang': 'es8'});
@@ -156,7 +156,7 @@ goog.addDependency('../../../../lib/text/stub_text_displayer.js', ['shaka.text.S
156
156
  goog.addDependency('../../../../lib/text/text_engine.js', ['shaka.text.TextEngine'], ['goog.asserts', 'shaka.Deprecate', 'shaka.media.ClosedCaptionParser', 'shaka.text.Cue', 'shaka.util.BufferUtils', 'shaka.util.IDestroyable', 'shaka.util.MimeUtils'], {'lang': 'es8'});
157
157
  goog.addDependency('../../../../lib/text/text_utils.js', ['shaka.text.Utils'], ['shaka.log', 'shaka.text.Cue', 'shaka.text.CueRegion'], {'lang': 'es6'});
158
158
  goog.addDependency('../../../../lib/text/ttml_text_parser.js', ['shaka.text.TtmlTextParser'], ['goog.Uri', 'goog.asserts', 'shaka.log', 'shaka.text.Cue', 'shaka.text.CueRegion', 'shaka.text.TextEngine', 'shaka.util.ArrayUtils', 'shaka.util.Error', 'shaka.util.StringUtils', 'shaka.util.TXml'], {'lang': 'es6'});
159
- goog.addDependency('../../../../lib/text/ui_text_displayer.js', ['shaka.text.UITextDisplayer'], ['goog.asserts', 'shaka.Deprecate', 'shaka.log', 'shaka.text.Cue', 'shaka.text.CueRegion', 'shaka.text.Utils', 'shaka.util.Dom', 'shaka.util.EventManager', 'shaka.util.Timer'], {'lang': 'es6'});
159
+ goog.addDependency('../../../../lib/text/ui_text_displayer.js', ['shaka.text.UITextDisplayer'], ['goog.asserts', 'shaka.log', 'shaka.text.Cue', 'shaka.text.CueRegion', 'shaka.text.Utils', 'shaka.util.Dom', 'shaka.util.EventManager', 'shaka.util.Timer'], {'lang': 'es6'});
160
160
  goog.addDependency('../../../../lib/text/vtt_text_parser.js', ['shaka.text.VttTextParser'], ['goog.asserts', 'shaka.log', 'shaka.media.ManifestParser', 'shaka.text.Cue', 'shaka.text.CueRegion', 'shaka.text.TextEngine', 'shaka.util.Error', 'shaka.util.StringUtils', 'shaka.util.TextParser'], {'lang': 'es6'});
161
161
  goog.addDependency('../../../../lib/text/web_vtt_generator.js', ['shaka.text.WebVttGenerator'], ['shaka.text.Cue', 'shaka.text.Utils'], {'lang': 'es6'});
162
162
  goog.addDependency('../../../../lib/transmuxer/aac_transmuxer.js', ['shaka.transmuxer.AacTransmuxer'], ['shaka.media.Capabilities', 'shaka.transmuxer.ADTS', 'shaka.transmuxer.TransmuxerEngine', 'shaka.util.BufferUtils', 'shaka.util.Error', 'shaka.util.Id3Utils', 'shaka.util.ManifestParserUtils', 'shaka.util.MimeUtils', 'shaka.util.Mp4Generator', 'shaka.util.Uint8ArrayUtils'], {'lang': 'es6'});
package/dist/locales.js CHANGED
@@ -912,51 +912,51 @@ shaka.ui.Locales.addTo = function(localization) {
912
912
  * @const
913
913
  */
914
914
  shaka.ui.Locales.Ids = {
915
+ AUTO_QUALITY: 'AUTO_QUALITY',
915
916
  FAST_FORWARD: 'FAST_FORWARD',
916
- STATISTICS: 'STATISTICS',
917
- PAUSE: 'PAUSE',
918
- RESOLUTION: 'RESOLUTION',
919
917
  AD_TIME: 'AD_TIME',
918
+ UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
919
+ NOT_APPLICABLE: 'NOT_APPLICABLE',
920
+ PLAY: 'PLAY',
921
+ BACK: 'BACK',
922
+ LOOP: 'LOOP',
920
923
  MORE_SETTINGS: 'MORE_SETTINGS',
924
+ PLAYBACK_RATE: 'PLAYBACK_RATE',
925
+ AD_STATISTICS: 'AD_STATISTICS',
926
+ OFF: 'OFF',
927
+ REWIND: 'REWIND',
928
+ QUALITY: 'QUALITY',
921
929
  AD_PROGRESS: 'AD_PROGRESS',
922
- CAST: 'CAST',
923
- SUBTITLE_FORCED: 'SUBTITLE_FORCED',
924
- LOOP: 'LOOP',
925
- SKIP_TO_LIVE: 'SKIP_TO_LIVE',
930
+ RESOLUTION: 'RESOLUTION',
931
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
932
+ FULL_SCREEN: 'FULL_SCREEN',
933
+ AD_DURATION: 'AD_DURATION',
934
+ CHAPTERS: 'CHAPTERS',
926
935
  UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
927
- BACK: 'BACK',
928
- EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
929
- PLAY: 'PLAY',
930
- UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
931
- LIVE: 'LIVE',
932
- SEEK: 'SEEK',
933
936
  REPLAY: 'REPLAY',
934
- SKIP_AD: 'SKIP_AD',
935
- AIRPLAY: 'AIRPLAY',
937
+ CAST: 'CAST',
938
+ PAUSE: 'PAUSE',
936
939
  PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
937
- QUALITY: 'QUALITY',
938
- AUTO_QUALITY: 'AUTO_QUALITY',
939
- CHAPTERS: 'CHAPTERS',
940
- ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
941
- EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
942
- AD_STATISTICS: 'AD_STATISTICS',
943
- AD_DURATION: 'AD_DURATION',
940
+ SURROUND: 'SURROUND',
944
941
  CAPTIONS: 'CAPTIONS',
945
- EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
946
- OFF: 'OFF',
947
- DOWNLOAD_VIDEO_FRAME: 'DOWNLOAD_VIDEO_FRAME',
948
- TOGGLE_STEREOSCOPIC: 'TOGGLE_STEREOSCOPIC',
949
- VOLUME: 'VOLUME',
950
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
951
942
  LANGUAGE: 'LANGUAGE',
952
943
  UNMUTE: 'UNMUTE',
953
- SURROUND: 'SURROUND',
954
- MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
944
+ ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
955
945
  ON: 'ON',
956
- FULL_SCREEN: 'FULL_SCREEN',
946
+ DOWNLOAD_VIDEO_FRAME: 'DOWNLOAD_VIDEO_FRAME',
947
+ AIRPLAY: 'AIRPLAY',
948
+ EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
949
+ SEEK: 'SEEK',
950
+ SKIP_AD: 'SKIP_AD',
951
+ STATISTICS: 'STATISTICS',
952
+ EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
957
953
  RECENTER_VR: 'RECENTER_VR',
958
- PLAYBACK_RATE: 'PLAYBACK_RATE',
959
954
  MUTE: 'MUTE',
960
- REWIND: 'REWIND',
961
- NOT_APPLICABLE: 'NOT_APPLICABLE',
955
+ MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
956
+ VOLUME: 'VOLUME',
957
+ SKIP_TO_LIVE: 'SKIP_TO_LIVE',
958
+ SUBTITLE_FORCED: 'SUBTITLE_FORCED',
959
+ TOGGLE_STEREOSCOPIC: 'TOGGLE_STEREOSCOPIC',
960
+ LIVE: 'LIVE',
961
+ EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
962
962
  };
@@ -289,6 +289,10 @@ declare namespace shaka {
289
289
  * return <code>false</code>.
290
290
  */
291
291
  isBuffering ( ) : boolean ;
292
+ /**
293
+ * Indicate if the video has ended.
294
+ */
295
+ isEnded ( ) : boolean ;
292
296
  /**
293
297
  * Indicates if the player has fully loaded the stream.
294
298
  */
@@ -2875,7 +2879,7 @@ declare namespace shaka.text {
2875
2879
  * The text displayer plugin for the Shaka Player UI. Can also be used directly
2876
2880
  * by providing an appropriate container element.
2877
2881
  */
2878
- constructor (video : HTMLMediaElement | null , videoContainer : HTMLElement | null , config : shaka.extern.TextDisplayerConfiguration ) ;
2882
+ constructor (video : HTMLMediaElement | null , videoContainer : HTMLElement | null ) ;
2879
2883
  append (cues : any ) : any ;
2880
2884
  configure (config : any ) : any ;
2881
2885
  destroy ( ) : any ;
@@ -3994,7 +3998,7 @@ declare namespace shaka.util {
3994
3998
  * The code is based on hls.js
3995
3999
  * Credit to https://github.com/video-dev/hls.js/blob/master/src/demux/tsdemuxer.ts
3996
4000
  */
3997
- parseNalus (pes : shaka.extern.MPEG_PES , lastNalu ? : shaka.extern.VideoNalu | null , lastState ? : number | null ) : shaka.extern.VideoNalu [] ;
4001
+ parseNalus (pes : shaka.extern.MPEG_PES , lastInfo : { nalu : shaka.extern.VideoNalu | null , state : number | null } ) : shaka.extern.VideoNalu [] ;
3998
4002
  static Timescale : number ;
3999
4003
  /**
4000
4004
  * Check if the passed data corresponds to an MPEG2-TS
@@ -4367,6 +4371,10 @@ declare namespace shaka.extern {
4367
4371
  declare namespace shaka.extern {
4368
4372
  type VideoNalu = { data : Uint8Array , fullData : Uint8Array , time : number | null , type : number } ;
4369
4373
  }
4374
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/codecs.js
4375
+ declare namespace shaka.extern {
4376
+ type VideoSample = { data : Uint8Array , dts : number | null , frame : boolean , isKeyframe : boolean , nalus : shaka.extern.VideoNalu [] , pts : number | null } ;
4377
+ }
4370
4378
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/drm_info.js
4371
4379
  declare namespace shaka.extern {
4372
4380
  type DrmInfo = { audioRobustness : string , distinctiveIdentifierRequired : boolean , encryptionScheme : string , initData : shaka.extern.InitDataOverride [] | null , keyIds : Set < string > | null , keySystem : string , keySystemUris ? : Set < string > | null , licenseServerUri : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
@@ -4782,7 +4790,7 @@ declare namespace shaka.extern {
4782
4790
  }
4783
4791
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline.js
4784
4792
  declare namespace shaka.extern {
4785
- type StreamDB = { audioSamplingRate : number | null , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , colorGamut ? : string , encrypted : boolean , external : boolean , fastSwitching : boolean , forced : boolean , frameRate ? : number , groupId : string | null , hdr ? : string , height : number | null , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , originalId : string | null , originalLanguage ? : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segments : shaka.extern.SegmentDB [] , spatialAudio : boolean , tilesLayout ? : string , type : string , variantIds : number [] , videoLayout ? : string , width : number | null } ;
4793
+ type StreamDB = { audioSamplingRate : number | null , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , colorGamut ? : string , encrypted : boolean , external : boolean , fastSwitching : boolean , forced : boolean , frameRate ? : number , groupId : string | null , hdr ? : string , height : number | null , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , mssPrivateData ? : shaka.extern.MssPrivateData , originalId : string | null , originalLanguage ? : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segments : shaka.extern.SegmentDB [] , spatialAudio : boolean , tilesLayout ? : string , type : string , variantIds : number [] , videoLayout ? : string , width : number | null } ;
4786
4794
  }
4787
4795
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline_compat_v1.js
4788
4796
  declare namespace shaka.extern {
@@ -289,6 +289,10 @@ declare namespace shaka {
289
289
  * return <code>false</code>.
290
290
  */
291
291
  isBuffering ( ) : boolean ;
292
+ /**
293
+ * Indicate if the video has ended.
294
+ */
295
+ isEnded ( ) : boolean ;
292
296
  /**
293
297
  * Indicates if the player has fully loaded the stream.
294
298
  */
@@ -2875,7 +2879,7 @@ declare namespace shaka.text {
2875
2879
  * The text displayer plugin for the Shaka Player UI. Can also be used directly
2876
2880
  * by providing an appropriate container element.
2877
2881
  */
2878
- constructor (video : HTMLMediaElement | null , videoContainer : HTMLElement | null , config : shaka.extern.TextDisplayerConfiguration ) ;
2882
+ constructor (video : HTMLMediaElement | null , videoContainer : HTMLElement | null ) ;
2879
2883
  append (cues : any ) : any ;
2880
2884
  configure (config : any ) : any ;
2881
2885
  destroy ( ) : any ;
@@ -3994,7 +3998,7 @@ declare namespace shaka.util {
3994
3998
  * The code is based on hls.js
3995
3999
  * Credit to https://github.com/video-dev/hls.js/blob/master/src/demux/tsdemuxer.ts
3996
4000
  */
3997
- parseNalus (pes : shaka.extern.MPEG_PES , lastNalu ? : shaka.extern.VideoNalu | null , lastState ? : number | null ) : shaka.extern.VideoNalu [] ;
4001
+ parseNalus (pes : shaka.extern.MPEG_PES , lastInfo : { nalu : shaka.extern.VideoNalu | null , state : number | null } ) : shaka.extern.VideoNalu [] ;
3998
4002
  static Timescale : number ;
3999
4003
  /**
4000
4004
  * Check if the passed data corresponds to an MPEG2-TS
@@ -4367,6 +4371,10 @@ declare namespace shaka.extern {
4367
4371
  declare namespace shaka.extern {
4368
4372
  type VideoNalu = { data : Uint8Array , fullData : Uint8Array , time : number | null , type : number } ;
4369
4373
  }
4374
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/codecs.js
4375
+ declare namespace shaka.extern {
4376
+ type VideoSample = { data : Uint8Array , dts : number | null , frame : boolean , isKeyframe : boolean , nalus : shaka.extern.VideoNalu [] , pts : number | null } ;
4377
+ }
4370
4378
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/drm_info.js
4371
4379
  declare namespace shaka.extern {
4372
4380
  type DrmInfo = { audioRobustness : string , distinctiveIdentifierRequired : boolean , encryptionScheme : string , initData : shaka.extern.InitDataOverride [] | null , keyIds : Set < string > | null , keySystem : string , keySystemUris ? : Set < string > | null , licenseServerUri : string , persistentStateRequired : boolean , serverCertificate : Uint8Array | null , serverCertificateUri : string , sessionType : string , videoRobustness : string } ;
@@ -4782,7 +4790,7 @@ declare namespace shaka.extern {
4782
4790
  }
4783
4791
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline.js
4784
4792
  declare namespace shaka.extern {
4785
- type StreamDB = { audioSamplingRate : number | null , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , colorGamut ? : string , encrypted : boolean , external : boolean , fastSwitching : boolean , forced : boolean , frameRate ? : number , groupId : string | null , hdr ? : string , height : number | null , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , originalId : string | null , originalLanguage ? : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segments : shaka.extern.SegmentDB [] , spatialAudio : boolean , tilesLayout ? : string , type : string , variantIds : number [] , videoLayout ? : string , width : number | null } ;
4793
+ type StreamDB = { audioSamplingRate : number | null , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , colorGamut ? : string , encrypted : boolean , external : boolean , fastSwitching : boolean , forced : boolean , frameRate ? : number , groupId : string | null , hdr ? : string , height : number | null , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , mssPrivateData ? : shaka.extern.MssPrivateData , originalId : string | null , originalLanguage ? : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segments : shaka.extern.SegmentDB [] , spatialAudio : boolean , tilesLayout ? : string , type : string , variantIds : number [] , videoLayout ? : string , width : number | null } ;
4786
4794
  }
4787
4795
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline_compat_v1.js
4788
4796
  declare namespace shaka.extern {
@@ -2317,11 +2317,10 @@ shaka.util.TsParser = class {
2317
2317
  * The code is based on hls.js
2318
2318
  * Credit to https://github.com/video-dev/hls.js/blob/master/src/demux/tsdemuxer.ts
2319
2319
  * @param {shaka.extern.MPEG_PES} pes
2320
- * @param {?shaka.extern.VideoNalu=} lastNalu
2321
- * @param {?number=} lastState
2320
+ * @param {{nalu: ?shaka.extern.VideoNalu, state: ?number}} lastInfo
2322
2321
  * @return {!Array.<shaka.extern.VideoNalu>}
2323
2322
  */
2324
- parseNalus(pes, lastNalu, lastState) {}
2323
+ parseNalus(pes, lastInfo) {}
2325
2324
  /**
2326
2325
  * Return the ID3 metadata
2327
2326
  * @return {!Array.<shaka.extern.ID3Metadata>}
@@ -3105,9 +3104,8 @@ shaka.text.UITextDisplayer = class {
3105
3104
  * Constructor.
3106
3105
  * @param {HTMLMediaElement} video
3107
3106
  * @param {HTMLElement} videoContainer
3108
- * @param {shaka.extern.TextDisplayerConfiguration} config
3109
3107
  */
3110
- constructor(video, videoContainer, config) {}
3108
+ constructor(video, videoContainer) {}
3111
3109
  /**
3112
3110
  * @override
3113
3111
  */
@@ -3811,6 +3809,11 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3811
3809
  * @return {boolean}
3812
3810
  */
3813
3811
  isRemotePlayback() {}
3812
+ /**
3813
+ * Indicate if the video has ended.
3814
+ * @return {boolean}
3815
+ */
3816
+ isEnded() {}
3814
3817
  };
3815
3818
  /**
3816
3819
  * In order to know what method of loading the player used for some content, we