Home Reference Source

src/events.js

  1. /**
  2. * @readonly
  3. * @enum {string}
  4. */
  5. const HlsEvents = {
  6. // fired before MediaSource is attaching to media element - data: { media }
  7. MEDIA_ATTACHING: 'hlsMediaAttaching',
  8. // fired when MediaSource has been succesfully attached to media element - data: { }
  9. MEDIA_ATTACHED: 'hlsMediaAttached',
  10. // fired before detaching MediaSource from media element - data: { }
  11. MEDIA_DETACHING: 'hlsMediaDetaching',
  12. // fired when MediaSource has been detached from media element - data: { }
  13. MEDIA_DETACHED: 'hlsMediaDetached',
  14. // fired when we buffer is going to be reset - data: { }
  15. BUFFER_RESET: 'hlsBufferReset',
  16. // fired when we know about the codecs that we need buffers for to push into - data: {tracks : { container, codec, levelCodec, initSegment, metadata }}
  17. BUFFER_CODECS: 'hlsBufferCodecs',
  18. // fired when sourcebuffers have been created - data: { tracks : tracks }
  19. BUFFER_CREATED: 'hlsBufferCreated',
  20. // fired when we append a segment to the buffer - data: { segment: segment object }
  21. BUFFER_APPENDING: 'hlsBufferAppending',
  22. // fired when we are done with appending a media segment to the buffer - data : { parent : segment parent that triggered BUFFER_APPENDING, pending : nb of segments waiting for appending for this segment parent}
  23. BUFFER_APPENDED: 'hlsBufferAppended',
  24. // fired when the stream is finished and we want to notify the media buffer that there will be no more data - data: { }
  25. BUFFER_EOS: 'hlsBufferEos',
  26. // fired when the media buffer should be flushed - data { startOffset, endOffset }
  27. BUFFER_FLUSHING: 'hlsBufferFlushing',
  28. // fired when the media buffer has been flushed - data: { }
  29. BUFFER_FLUSHED: 'hlsBufferFlushed',
  30. // fired to signal that a manifest loading starts - data: { url : manifestURL}
  31. MANIFEST_LOADING: 'hlsManifestLoading',
  32. // fired after manifest has been loaded - data: { levels : [available quality levels], audioTracks : [ available audio tracks], url : manifestURL, stats : { trequest, tfirst, tload, mtime}}
  33. MANIFEST_LOADED: 'hlsManifestLoaded',
  34. // fired after manifest has been parsed - data: { levels : [available quality levels], firstLevel : index of first quality level appearing in Manifest}
  35. MANIFEST_PARSED: 'hlsManifestParsed',
  36. // fired when a level switch is requested - data: { level : id of new level }
  37. LEVEL_SWITCHING: 'hlsLevelSwitching',
  38. // fired when a level switch is effective - data: { level : id of new level }
  39. LEVEL_SWITCHED: 'hlsLevelSwitched',
  40. // fired when a level playlist loading starts - data: { url : level URL, level : id of level being loaded}
  41. LEVEL_LOADING: 'hlsLevelLoading',
  42. // fired when a level playlist loading finishes - data: { details : levelDetails object, level : id of loaded level, stats : { trequest, tfirst, tload, mtime} }
  43. LEVEL_LOADED: 'hlsLevelLoaded',
  44. // fired when a level's details have been updated based on previous details, after it has been loaded - data: { details : levelDetails object, level : id of updated level }
  45. LEVEL_UPDATED: 'hlsLevelUpdated',
  46. // fired when a level's PTS information has been updated after parsing a fragment - data: { details : levelDetails object, level : id of updated level, drift: PTS drift observed when parsing last fragment }
  47. LEVEL_PTS_UPDATED: 'hlsLevelPtsUpdated',
  48. // fired to notify that levels have changed after removing a level - data: { levels : [available quality levels] }
  49. LEVELS_UPDATED: 'hlsLevelsUpdated',
  50. // fired to notify that audio track lists has been updated - data: { audioTracks : audioTracks }
  51. AUDIO_TRACKS_UPDATED: 'hlsAudioTracksUpdated',
  52. // fired when an audio track switching is requested - data: { id : audio track id }
  53. AUDIO_TRACK_SWITCHING: 'hlsAudioTrackSwitching',
  54. // fired when an audio track switch actually occurs - data: { id : audio track id }
  55. AUDIO_TRACK_SWITCHED: 'hlsAudioTrackSwitched',
  56. // fired when an audio track loading starts - data: { url : audio track URL, id : audio track id }
  57. AUDIO_TRACK_LOADING: 'hlsAudioTrackLoading',
  58. // fired when an audio track loading finishes - data: { details : levelDetails object, id : audio track id, stats : { trequest, tfirst, tload, mtime } }
  59. AUDIO_TRACK_LOADED: 'hlsAudioTrackLoaded',
  60. // fired to notify that subtitle track lists has been updated - data: { subtitleTracks : subtitleTracks }
  61. SUBTITLE_TRACKS_UPDATED: 'hlsSubtitleTracksUpdated',
  62. // fired when an subtitle track switch occurs - data: { id : subtitle track id }
  63. SUBTITLE_TRACK_SWITCH: 'hlsSubtitleTrackSwitch',
  64. // fired when a subtitle track loading starts - data: { url : subtitle track URL, id : subtitle track id }
  65. SUBTITLE_TRACK_LOADING: 'hlsSubtitleTrackLoading',
  66. // fired when a subtitle track loading finishes - data: { details : levelDetails object, id : subtitle track id, stats : { trequest, tfirst, tload, mtime } }
  67. SUBTITLE_TRACK_LOADED: 'hlsSubtitleTrackLoaded',
  68. // fired when a subtitle fragment has been processed - data: { success : boolean, frag : the processed frag }
  69. SUBTITLE_FRAG_PROCESSED: 'hlsSubtitleFragProcessed',
  70. // fired when a set of VTTCues to be managed externally has been parsed - data: { type: string, track: string, cues: [ VTTCue ] }
  71. CUES_PARSED: 'hlsCuesParsed',
  72. // fired when a text track to be managed externally is found - data: { tracks: [ { label: string, kind: string, default: boolean } ] }
  73. NON_NATIVE_TEXT_TRACKS_FOUND: 'hlsNonNativeTextTracksFound',
  74. // fired when the first timestamp is found - data: { id : demuxer id, initPTS: initPTS, frag : fragment object }
  75. INIT_PTS_FOUND: 'hlsInitPtsFound',
  76. // fired when a fragment loading starts - data: { frag : fragment object }
  77. FRAG_LOADING: 'hlsFragLoading',
  78. // fired when a fragment loading is progressing - data: { frag : fragment object, { trequest, tfirst, loaded } }
  79. FRAG_LOAD_PROGRESS: 'hlsFragLoadProgress',
  80. // Identifier for fragment load aborting for emergency switch down - data: { frag : fragment object }
  81. FRAG_LOAD_EMERGENCY_ABORTED: 'hlsFragLoadEmergencyAborted',
  82. // fired when a fragment loading is completed - data: { frag : fragment object, payload : fragment payload, stats : { trequest, tfirst, tload, length } }
  83. FRAG_LOADED: 'hlsFragLoaded',
  84. // fired when a fragment has finished decrypting - data: { id : demuxer id, frag: fragment object, payload : fragment payload, stats : { tstart, tdecrypt } }
  85. FRAG_DECRYPTED: 'hlsFragDecrypted',
  86. // fired when Init Segment has been extracted from fragment - data: { id : demuxer id, frag: fragment object, moov : moov MP4 box, codecs : codecs found while parsing fragment }
  87. FRAG_PARSING_INIT_SEGMENT: 'hlsFragParsingInitSegment',
  88. // fired when parsing sei text is completed - data: { id : demuxer id, frag: fragment object, samples : [ sei samples pes ] }
  89. FRAG_PARSING_USERDATA: 'hlsFragParsingUserdata',
  90. // fired when parsing id3 is completed - data: { id : demuxer id, frag: fragment object, samples : [ id3 samples pes ] }
  91. FRAG_PARSING_METADATA: 'hlsFragParsingMetadata',
  92. // fired when data have been extracted from fragment - data: { id : demuxer id, frag: fragment object, data1 : moof MP4 box or TS fragments, data2 : mdat MP4 box or null}
  93. FRAG_PARSING_DATA: 'hlsFragParsingData',
  94. // fired when fragment parsing is completed - data: { id : demuxer id, frag: fragment object }
  95. FRAG_PARSED: 'hlsFragParsed',
  96. // fired when fragment remuxed MP4 boxes have all been appended into SourceBuffer - data: { id : demuxer id, frag : fragment object, stats : { trequest, tfirst, tload, tparsed, tbuffered, length, bwEstimate } }
  97. FRAG_BUFFERED: 'hlsFragBuffered',
  98. // fired when fragment matching with current media position is changing - data : { id : demuxer id, frag : fragment object }
  99. FRAG_CHANGED: 'hlsFragChanged',
  100. // Identifier for a FPS drop event - data: { curentDropped, currentDecoded, totalDroppedFrames }
  101. FPS_DROP: 'hlsFpsDrop',
  102. // triggered when FPS drop triggers auto level capping - data: { level, droppedlevel }
  103. FPS_DROP_LEVEL_CAPPING: 'hlsFpsDropLevelCapping',
  104. // Identifier for an error event - data: { type : error type, details : error details, fatal : if true, hls.js cannot/will not try to recover, if false, hls.js will try to recover,other error specific data }
  105. ERROR: 'hlsError',
  106. // fired when hls.js instance starts destroying. Different from MEDIA_DETACHED as one could want to detach and reattach a media to the instance of hls.js to handle mid-rolls for example - data: { }
  107. DESTROYING: 'hlsDestroying',
  108. // fired when a decrypt key loading starts - data: { frag : fragment object }
  109. KEY_LOADING: 'hlsKeyLoading',
  110. // fired when a decrypt key loading is completed - data: { frag : fragment object, payload : key payload, stats : { trequest, tfirst, tload, length } }
  111. KEY_LOADED: 'hlsKeyLoaded',
  112. // fired upon stream controller state transitions - data: { previousState, nextState }
  113. STREAM_STATE_TRANSITION: 'hlsStreamStateTransition',
  114. // fired when the live back buffer is reached defined by the liveBackBufferLength config option - data : { bufferEnd: number }
  115. LIVE_BACK_BUFFER_REACHED: 'hlsLiveBackBufferReached'
  116. };
  117.  
  118. export default HlsEvents;