@zenvor/hls.js 1.0.0
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.
- package/LICENSE +28 -0
- package/README.md +472 -0
- package/dist/hls-demo.js +26995 -0
- package/dist/hls-demo.js.map +1 -0
- package/dist/hls.d.mts +4204 -0
- package/dist/hls.d.ts +4204 -0
- package/dist/hls.js +40050 -0
- package/dist/hls.js.d.ts +4204 -0
- package/dist/hls.js.map +1 -0
- package/dist/hls.light.js +27145 -0
- package/dist/hls.light.js.map +1 -0
- package/dist/hls.light.min.js +2 -0
- package/dist/hls.light.min.js.map +1 -0
- package/dist/hls.light.mjs +26392 -0
- package/dist/hls.light.mjs.map +1 -0
- package/dist/hls.min.js +2 -0
- package/dist/hls.min.js.map +1 -0
- package/dist/hls.mjs +38956 -0
- package/dist/hls.mjs.map +1 -0
- package/dist/hls.worker.js +2 -0
- package/dist/hls.worker.js.map +1 -0
- package/package.json +143 -0
- package/src/config.ts +794 -0
- package/src/controller/abr-controller.ts +1019 -0
- package/src/controller/algo-data-controller.ts +794 -0
- package/src/controller/audio-stream-controller.ts +1099 -0
- package/src/controller/audio-track-controller.ts +454 -0
- package/src/controller/base-playlist-controller.ts +438 -0
- package/src/controller/base-stream-controller.ts +2526 -0
- package/src/controller/buffer-controller.ts +2015 -0
- package/src/controller/buffer-operation-queue.ts +159 -0
- package/src/controller/cap-level-controller.ts +367 -0
- package/src/controller/cmcd-controller.ts +422 -0
- package/src/controller/content-steering-controller.ts +622 -0
- package/src/controller/eme-controller.ts +1617 -0
- package/src/controller/error-controller.ts +627 -0
- package/src/controller/fps-controller.ts +146 -0
- package/src/controller/fragment-finders.ts +256 -0
- package/src/controller/fragment-tracker.ts +567 -0
- package/src/controller/gap-controller.ts +719 -0
- package/src/controller/id3-track-controller.ts +488 -0
- package/src/controller/interstitial-player.ts +302 -0
- package/src/controller/interstitials-controller.ts +2895 -0
- package/src/controller/interstitials-schedule.ts +698 -0
- package/src/controller/latency-controller.ts +294 -0
- package/src/controller/level-controller.ts +776 -0
- package/src/controller/stream-controller.ts +1597 -0
- package/src/controller/subtitle-stream-controller.ts +508 -0
- package/src/controller/subtitle-track-controller.ts +617 -0
- package/src/controller/timeline-controller.ts +677 -0
- package/src/crypt/aes-crypto.ts +36 -0
- package/src/crypt/aes-decryptor.ts +339 -0
- package/src/crypt/decrypter-aes-mode.ts +4 -0
- package/src/crypt/decrypter.ts +225 -0
- package/src/crypt/fast-aes-key.ts +39 -0
- package/src/define-plugin.d.ts +17 -0
- package/src/demux/audio/aacdemuxer.ts +126 -0
- package/src/demux/audio/ac3-demuxer.ts +170 -0
- package/src/demux/audio/adts.ts +249 -0
- package/src/demux/audio/base-audio-demuxer.ts +205 -0
- package/src/demux/audio/dolby.ts +21 -0
- package/src/demux/audio/mp3demuxer.ts +85 -0
- package/src/demux/audio/mpegaudio.ts +177 -0
- package/src/demux/chunk-cache.ts +42 -0
- package/src/demux/dummy-demuxed-track.ts +13 -0
- package/src/demux/inject-worker.ts +75 -0
- package/src/demux/mp4demuxer.ts +234 -0
- package/src/demux/sample-aes.ts +198 -0
- package/src/demux/transmuxer-interface.ts +449 -0
- package/src/demux/transmuxer-worker.ts +221 -0
- package/src/demux/transmuxer.ts +560 -0
- package/src/demux/tsdemuxer.ts +1256 -0
- package/src/demux/video/avc-video-parser.ts +401 -0
- package/src/demux/video/base-video-parser.ts +198 -0
- package/src/demux/video/exp-golomb.ts +153 -0
- package/src/demux/video/hevc-video-parser.ts +736 -0
- package/src/empty-es.js +5 -0
- package/src/empty.js +3 -0
- package/src/errors.ts +107 -0
- package/src/events.ts +548 -0
- package/src/exports-default.ts +3 -0
- package/src/exports-named.ts +81 -0
- package/src/hls.ts +1613 -0
- package/src/is-supported.ts +54 -0
- package/src/loader/date-range.ts +207 -0
- package/src/loader/fragment-loader.ts +403 -0
- package/src/loader/fragment.ts +487 -0
- package/src/loader/interstitial-asset-list.ts +162 -0
- package/src/loader/interstitial-event.ts +337 -0
- package/src/loader/key-loader.ts +439 -0
- package/src/loader/level-details.ts +203 -0
- package/src/loader/level-key.ts +259 -0
- package/src/loader/load-stats.ts +17 -0
- package/src/loader/m3u8-parser.ts +1072 -0
- package/src/loader/playlist-loader.ts +839 -0
- package/src/polyfills/number.ts +15 -0
- package/src/remux/aac-helper.ts +81 -0
- package/src/remux/mp4-generator.ts +1380 -0
- package/src/remux/mp4-remuxer.ts +1261 -0
- package/src/remux/passthrough-remuxer.ts +434 -0
- package/src/task-loop.ts +130 -0
- package/src/types/algo.ts +44 -0
- package/src/types/buffer.ts +105 -0
- package/src/types/component-api.ts +20 -0
- package/src/types/demuxer.ts +208 -0
- package/src/types/events.ts +574 -0
- package/src/types/fragment-tracker.ts +23 -0
- package/src/types/level.ts +268 -0
- package/src/types/loader.ts +198 -0
- package/src/types/media-playlist.ts +92 -0
- package/src/types/network-details.ts +3 -0
- package/src/types/remuxer.ts +104 -0
- package/src/types/track.ts +12 -0
- package/src/types/transmuxer.ts +46 -0
- package/src/types/tuples.ts +6 -0
- package/src/types/vtt.ts +11 -0
- package/src/utils/arrays.ts +22 -0
- package/src/utils/attr-list.ts +192 -0
- package/src/utils/binary-search.ts +46 -0
- package/src/utils/buffer-helper.ts +173 -0
- package/src/utils/cea-608-parser.ts +1413 -0
- package/src/utils/chunker.ts +41 -0
- package/src/utils/codecs.ts +314 -0
- package/src/utils/cues.ts +96 -0
- package/src/utils/discontinuities.ts +174 -0
- package/src/utils/encryption-methods-util.ts +21 -0
- package/src/utils/error-helper.ts +95 -0
- package/src/utils/event-listener-helper.ts +16 -0
- package/src/utils/ewma-bandwidth-estimator.ts +97 -0
- package/src/utils/ewma.ts +43 -0
- package/src/utils/fetch-loader.ts +331 -0
- package/src/utils/global.ts +2 -0
- package/src/utils/hash.ts +10 -0
- package/src/utils/hdr.ts +67 -0
- package/src/utils/hex.ts +32 -0
- package/src/utils/imsc1-ttml-parser.ts +261 -0
- package/src/utils/keysystem-util.ts +45 -0
- package/src/utils/level-helper.ts +629 -0
- package/src/utils/logger.ts +120 -0
- package/src/utils/media-option-attributes.ts +49 -0
- package/src/utils/mediacapabilities-helper.ts +301 -0
- package/src/utils/mediakeys-helper.ts +210 -0
- package/src/utils/mediasource-helper.ts +37 -0
- package/src/utils/mp4-tools.ts +1473 -0
- package/src/utils/number.ts +3 -0
- package/src/utils/numeric-encoding-utils.ts +26 -0
- package/src/utils/output-filter.ts +46 -0
- package/src/utils/rendition-helper.ts +505 -0
- package/src/utils/safe-json-stringify.ts +22 -0
- package/src/utils/texttrack-utils.ts +164 -0
- package/src/utils/time-ranges.ts +17 -0
- package/src/utils/timescale-conversion.ts +46 -0
- package/src/utils/utf8-utils.ts +18 -0
- package/src/utils/variable-substitution.ts +105 -0
- package/src/utils/vttcue.ts +384 -0
- package/src/utils/vttparser.ts +497 -0
- package/src/utils/webvtt-parser.ts +166 -0
- package/src/utils/xhr-loader.ts +337 -0
- package/src/version.ts +1 -0
package/src/empty-es.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// This file is inserted as a shim for modules which we do not want to include into the distro.
|
|
2
|
+
// This replacement is done in the "alias" plugin of the rollup config.
|
|
3
|
+
// Use a ES dedicated file as Rollup assigns an object in the output
|
|
4
|
+
// For example: "var KeySystemFormats = emptyEs.KeySystemFormats;"
|
|
5
|
+
module.exports = {};
|
package/src/empty.js
ADDED
package/src/errors.ts
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export enum ErrorTypes {
|
|
2
|
+
// Identifier for a network error (loading error / timeout ...)
|
|
3
|
+
NETWORK_ERROR = 'networkError',
|
|
4
|
+
// Identifier for a media Error (video/parsing/mediasource error)
|
|
5
|
+
MEDIA_ERROR = 'mediaError',
|
|
6
|
+
// EME (encrypted media extensions) errors
|
|
7
|
+
KEY_SYSTEM_ERROR = 'keySystemError',
|
|
8
|
+
// Identifier for a mux Error (demuxing/remuxing)
|
|
9
|
+
MUX_ERROR = 'muxError',
|
|
10
|
+
// Identifier for all other errors
|
|
11
|
+
OTHER_ERROR = 'otherError',
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export enum ErrorDetails {
|
|
15
|
+
KEY_SYSTEM_NO_KEYS = 'keySystemNoKeys',
|
|
16
|
+
KEY_SYSTEM_NO_ACCESS = 'keySystemNoAccess',
|
|
17
|
+
KEY_SYSTEM_NO_SESSION = 'keySystemNoSession',
|
|
18
|
+
KEY_SYSTEM_NO_CONFIGURED_LICENSE = 'keySystemNoConfiguredLicense',
|
|
19
|
+
KEY_SYSTEM_LICENSE_REQUEST_FAILED = 'keySystemLicenseRequestFailed',
|
|
20
|
+
KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED = 'keySystemServerCertificateRequestFailed',
|
|
21
|
+
KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED = 'keySystemServerCertificateUpdateFailed',
|
|
22
|
+
KEY_SYSTEM_SESSION_UPDATE_FAILED = 'keySystemSessionUpdateFailed',
|
|
23
|
+
KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED = 'keySystemStatusOutputRestricted',
|
|
24
|
+
KEY_SYSTEM_STATUS_INTERNAL_ERROR = 'keySystemStatusInternalError',
|
|
25
|
+
KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR = 'keySystemDestroyMediaKeysError',
|
|
26
|
+
KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR = 'keySystemDestroyCloseSessionError',
|
|
27
|
+
KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR = 'keySystemDestroyRemoveSessionError',
|
|
28
|
+
// Identifier for a manifest load error - data: { url : faulty URL, response : { code: error code, text: error text }}
|
|
29
|
+
MANIFEST_LOAD_ERROR = 'manifestLoadError',
|
|
30
|
+
// Identifier for a manifest load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}
|
|
31
|
+
MANIFEST_LOAD_TIMEOUT = 'manifestLoadTimeOut',
|
|
32
|
+
// Identifier for a manifest parsing error - data: { url : faulty URL, reason : error reason}
|
|
33
|
+
MANIFEST_PARSING_ERROR = 'manifestParsingError',
|
|
34
|
+
// Identifier for a manifest with only incompatible codecs error - data: { url : faulty URL, reason : error reason}
|
|
35
|
+
MANIFEST_INCOMPATIBLE_CODECS_ERROR = 'manifestIncompatibleCodecsError',
|
|
36
|
+
// Identifier for a level which contains no fragments - data: { url: faulty URL, reason: "no fragments found in level", level: index of the bad level }
|
|
37
|
+
LEVEL_EMPTY_ERROR = 'levelEmptyError',
|
|
38
|
+
// Identifier for a live level which hits N (configured value) unchanged refreshes - data: { url : faulty URL, response : { code: error code, text: error text }}
|
|
39
|
+
PLAYLIST_UNCHANGED_ERROR = 'playlistUnchangedError',
|
|
40
|
+
// Identifier for a level load error - data: { url : faulty URL, response : { code: error code, text: error text }}
|
|
41
|
+
LEVEL_LOAD_ERROR = 'levelLoadError',
|
|
42
|
+
// Identifier for a level load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}
|
|
43
|
+
LEVEL_LOAD_TIMEOUT = 'levelLoadTimeOut',
|
|
44
|
+
// Identifier for a level parse error - data: { url : faulty URL, error: Error, reason: error message }
|
|
45
|
+
LEVEL_PARSING_ERROR = 'levelParsingError',
|
|
46
|
+
// Identifier for a level switch error - data: { level : faulty level Id, event : error description}
|
|
47
|
+
LEVEL_SWITCH_ERROR = 'levelSwitchError',
|
|
48
|
+
// Identifier for an audio track load error - data: { url : faulty URL, response : { code: error code, text: error text }}
|
|
49
|
+
AUDIO_TRACK_LOAD_ERROR = 'audioTrackLoadError',
|
|
50
|
+
// Identifier for an audio track load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}
|
|
51
|
+
AUDIO_TRACK_LOAD_TIMEOUT = 'audioTrackLoadTimeOut',
|
|
52
|
+
// Identifier for a subtitle track load error - data: { url : faulty URL, response : { code: error code, text: error text }}
|
|
53
|
+
SUBTITLE_LOAD_ERROR = 'subtitleTrackLoadError',
|
|
54
|
+
// Identifier for a subtitle track load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}
|
|
55
|
+
SUBTITLE_TRACK_LOAD_TIMEOUT = 'subtitleTrackLoadTimeOut',
|
|
56
|
+
// Identifier for fragment load error - data: { frag : fragment object, response : { code: error code, text: error text }}
|
|
57
|
+
FRAG_LOAD_ERROR = 'fragLoadError',
|
|
58
|
+
// Identifier for fragment load timeout error - data: { frag : fragment object}
|
|
59
|
+
FRAG_LOAD_TIMEOUT = 'fragLoadTimeOut',
|
|
60
|
+
// Identifier for a fragment decryption error event - data: {id : demuxer Id,frag: fragment object, reason : parsing error description }
|
|
61
|
+
FRAG_DECRYPT_ERROR = 'fragDecryptError',
|
|
62
|
+
// Identifier for a fragment parsing error event - data: { id : demuxer Id, reason : parsing error description }
|
|
63
|
+
// will be renamed DEMUX_PARSING_ERROR and switched to MUX_ERROR in the next major release
|
|
64
|
+
FRAG_PARSING_ERROR = 'fragParsingError',
|
|
65
|
+
// Identifier for a fragment or part load skipped because of a GAP tag or attribute
|
|
66
|
+
FRAG_GAP = 'fragGap',
|
|
67
|
+
// Identifier for a remux alloc error event - data: { id : demuxer Id, frag : fragment object, bytes : nb of bytes on which allocation failed , reason : error text }
|
|
68
|
+
REMUX_ALLOC_ERROR = 'remuxAllocError',
|
|
69
|
+
// Identifier for decrypt key load error - data: { frag : fragment object, response : { code: error code, text: error text }}
|
|
70
|
+
KEY_LOAD_ERROR = 'keyLoadError',
|
|
71
|
+
// Identifier for decrypt key load timeout error - data: { frag : fragment object}
|
|
72
|
+
KEY_LOAD_TIMEOUT = 'keyLoadTimeOut',
|
|
73
|
+
// Triggered when an exception occurs while adding a sourceBuffer to MediaSource - data : { error : exception , mimeType : mimeType }
|
|
74
|
+
BUFFER_ADD_CODEC_ERROR = 'bufferAddCodecError',
|
|
75
|
+
// Triggered when source buffer(s) could not be created using level (manifest CODECS attribute), parsed media, or best guess codec(s) - data: { reason : error reason }
|
|
76
|
+
BUFFER_INCOMPATIBLE_CODECS_ERROR = 'bufferIncompatibleCodecsError',
|
|
77
|
+
// Identifier for a buffer append error - data: append error description
|
|
78
|
+
BUFFER_APPEND_ERROR = 'bufferAppendError',
|
|
79
|
+
// Identifier for a buffer appending error event - data: appending error description
|
|
80
|
+
BUFFER_APPENDING_ERROR = 'bufferAppendingError',
|
|
81
|
+
// Identifier for a buffer stalled error event
|
|
82
|
+
BUFFER_STALLED_ERROR = 'bufferStalledError',
|
|
83
|
+
// Identifier for a buffer full event
|
|
84
|
+
BUFFER_FULL_ERROR = 'bufferFullError',
|
|
85
|
+
// Identifier for a buffer seek over hole event
|
|
86
|
+
BUFFER_SEEK_OVER_HOLE = 'bufferSeekOverHole',
|
|
87
|
+
// Identifier for a buffer nudge on stall (playback is stuck although currentTime is in a buffered area)
|
|
88
|
+
BUFFER_NUDGE_ON_STALL = 'bufferNudgeOnStall',
|
|
89
|
+
// Identifier for a Interstitial Asset List load error - data: { url: faulty URL, response: { code: error code, text: error text } }
|
|
90
|
+
ASSET_LIST_LOAD_ERROR = 'assetListLoadError',
|
|
91
|
+
// Identifier for a Interstitial Asset List load timeout - data: { url: faulty URL, response: { code: error code, text: error text } }
|
|
92
|
+
ASSET_LIST_LOAD_TIMEOUT = 'assetListLoadTimeout',
|
|
93
|
+
// Identifier for a Interstitial Asset List parsing error - data: { url : faulty URL, reason : error reason, response : { code: error code, text: error text }}
|
|
94
|
+
ASSET_LIST_PARSING_ERROR = 'assetListParsingError',
|
|
95
|
+
// Identifier for a Interstitial Asset List parsing error - data: { url : faulty URL, reason : error reason, response : { code: error code, text: error text }}
|
|
96
|
+
INTERSTITIAL_ASSET_ITEM_ERROR = 'interstitialAssetItemError',
|
|
97
|
+
// Identifier for an internal exception happening inside hls.js while handling an event
|
|
98
|
+
INTERNAL_EXCEPTION = 'internalException',
|
|
99
|
+
// Identifier for an internal call to abort a loader
|
|
100
|
+
INTERNAL_ABORTED = 'aborted',
|
|
101
|
+
// Triggered when attachMedia fails
|
|
102
|
+
ATTACH_MEDIA_ERROR = 'attachMediaError',
|
|
103
|
+
// Triggered when MediaSource enters an invalid state that requires a reset
|
|
104
|
+
MEDIA_SOURCE_REQUIRES_RESET = 'mediaSourceRequiresReset',
|
|
105
|
+
// Uncategorized error
|
|
106
|
+
UNKNOWN = 'unknown',
|
|
107
|
+
}
|
package/src/events.ts
ADDED
|
@@ -0,0 +1,548 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AlgoDataErrorData,
|
|
3
|
+
AlgoDataLoadedData,
|
|
4
|
+
AlgoDataLoadingData,
|
|
5
|
+
AssetListLoadedData,
|
|
6
|
+
AssetListLoadingData,
|
|
7
|
+
AudioTrackLoadedData,
|
|
8
|
+
AudioTracksUpdatedData,
|
|
9
|
+
AudioTrackSwitchedData,
|
|
10
|
+
AudioTrackSwitchingData,
|
|
11
|
+
AudioTrackUpdatedData,
|
|
12
|
+
BackBufferData,
|
|
13
|
+
BufferAppendedData,
|
|
14
|
+
BufferAppendingData,
|
|
15
|
+
BufferCodecsData,
|
|
16
|
+
BufferCreatedData,
|
|
17
|
+
BufferEOSData,
|
|
18
|
+
BufferFlushedData,
|
|
19
|
+
BufferFlushingData,
|
|
20
|
+
CuesParsedData,
|
|
21
|
+
ErrorData,
|
|
22
|
+
FPSDropData,
|
|
23
|
+
FPSDropLevelCappingData,
|
|
24
|
+
FragBufferedData,
|
|
25
|
+
FragChangedData,
|
|
26
|
+
FragDecryptedData,
|
|
27
|
+
FragLoadedData,
|
|
28
|
+
FragLoadEmergencyAbortedData,
|
|
29
|
+
FragLoadingData,
|
|
30
|
+
FragParsedData,
|
|
31
|
+
FragParsingInitSegmentData,
|
|
32
|
+
FragParsingMetadataData,
|
|
33
|
+
FragParsingUserdataData,
|
|
34
|
+
InitPTSFoundData,
|
|
35
|
+
InterstitialAssetEndedData,
|
|
36
|
+
InterstitialAssetErrorData,
|
|
37
|
+
InterstitialAssetPlayerCreatedData,
|
|
38
|
+
InterstitialAssetStartedData,
|
|
39
|
+
InterstitialEndedData,
|
|
40
|
+
InterstitialsBufferedToBoundaryData,
|
|
41
|
+
InterstitialsPrimaryResumed,
|
|
42
|
+
InterstitialStartedData,
|
|
43
|
+
InterstitialsUpdatedData,
|
|
44
|
+
KeyLoadedData,
|
|
45
|
+
KeyLoadingData,
|
|
46
|
+
LevelLoadedData,
|
|
47
|
+
LevelLoadingData,
|
|
48
|
+
LevelPTSUpdatedData,
|
|
49
|
+
LevelsUpdatedData,
|
|
50
|
+
LevelSwitchedData,
|
|
51
|
+
LevelSwitchingData,
|
|
52
|
+
LevelUpdatedData,
|
|
53
|
+
LiveBackBufferData,
|
|
54
|
+
ManifestLoadedData,
|
|
55
|
+
ManifestLoadingData,
|
|
56
|
+
ManifestParsedData,
|
|
57
|
+
MaxAutoLevelUpdatedData,
|
|
58
|
+
MediaAttachedData,
|
|
59
|
+
MediaAttachingData,
|
|
60
|
+
MediaDetachedData,
|
|
61
|
+
MediaDetachingData,
|
|
62
|
+
MediaEndedData,
|
|
63
|
+
NonNativeTextTracksData,
|
|
64
|
+
SteeringManifestLoadedData,
|
|
65
|
+
SubtitleFragProcessedData,
|
|
66
|
+
SubtitleTrackLoadedData,
|
|
67
|
+
SubtitleTracksUpdatedData,
|
|
68
|
+
SubtitleTrackSwitchData,
|
|
69
|
+
SubtitleTrackUpdatedData,
|
|
70
|
+
TrackLoadingData,
|
|
71
|
+
} from './types/events';
|
|
72
|
+
|
|
73
|
+
export enum Events {
|
|
74
|
+
// Fired before MediaSource is attaching to media element
|
|
75
|
+
MEDIA_ATTACHING = 'hlsMediaAttaching',
|
|
76
|
+
// Fired when MediaSource has been successfully attached to media element
|
|
77
|
+
MEDIA_ATTACHED = 'hlsMediaAttached',
|
|
78
|
+
// Fired before detaching MediaSource from media element
|
|
79
|
+
MEDIA_DETACHING = 'hlsMediaDetaching',
|
|
80
|
+
// Fired when MediaSource has been detached from media element
|
|
81
|
+
MEDIA_DETACHED = 'hlsMediaDetached',
|
|
82
|
+
// Fired when HTMLMediaElement dispatches "ended" event, or stalls at end of VOD program
|
|
83
|
+
MEDIA_ENDED = 'hlsMediaEnded',
|
|
84
|
+
// Fired after playback stall is resolved with playing, seeked, or ended event following BUFFER_STALLED_ERROR
|
|
85
|
+
STALL_RESOLVED = 'hlsStallResolved',
|
|
86
|
+
// Fired when the buffer is going to be reset
|
|
87
|
+
BUFFER_RESET = 'hlsBufferReset',
|
|
88
|
+
// Fired when we know about the codecs that we need buffers for to push into - data: {tracks : { container, codec, levelCodec, initSegment, metadata }}
|
|
89
|
+
BUFFER_CODECS = 'hlsBufferCodecs',
|
|
90
|
+
// fired when sourcebuffers have been created - data: { tracks : tracks }
|
|
91
|
+
BUFFER_CREATED = 'hlsBufferCreated',
|
|
92
|
+
// fired when we append a segment to the buffer - data: { segment: segment object }
|
|
93
|
+
BUFFER_APPENDING = 'hlsBufferAppending',
|
|
94
|
+
// 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}
|
|
95
|
+
BUFFER_APPENDED = 'hlsBufferAppended',
|
|
96
|
+
// fired when the stream is finished and we want to notify the media buffer that there will be no more data - data: { }
|
|
97
|
+
BUFFER_EOS = 'hlsBufferEos',
|
|
98
|
+
// fired when all buffers are full to the end of the program, after calling MediaSource.endOfStream() (unless restricted)
|
|
99
|
+
BUFFERED_TO_END = 'hlsBufferedToEnd',
|
|
100
|
+
// fired when the media buffer should be flushed - data { startOffset, endOffset }
|
|
101
|
+
BUFFER_FLUSHING = 'hlsBufferFlushing',
|
|
102
|
+
// fired when the media buffer has been flushed - data: { }
|
|
103
|
+
BUFFER_FLUSHED = 'hlsBufferFlushed',
|
|
104
|
+
// fired to signal that a manifest loading starts - data: { url : manifestURL}
|
|
105
|
+
MANIFEST_LOADING = 'hlsManifestLoading',
|
|
106
|
+
// fired after manifest has been loaded - data: { levels : [available quality levels], audioTracks : [ available audio tracks ], url : manifestURL, stats : LoaderStats }
|
|
107
|
+
MANIFEST_LOADED = 'hlsManifestLoaded',
|
|
108
|
+
// fired after manifest has been parsed - data: { levels : [available quality levels], firstLevel : index of first quality level appearing in Manifest}
|
|
109
|
+
MANIFEST_PARSED = 'hlsManifestParsed',
|
|
110
|
+
// fired when a level switch is requested - data: { level : id of new level }
|
|
111
|
+
LEVEL_SWITCHING = 'hlsLevelSwitching',
|
|
112
|
+
// fired when a level switch is effective - data: { level : id of new level }
|
|
113
|
+
LEVEL_SWITCHED = 'hlsLevelSwitched',
|
|
114
|
+
// fired when a level playlist loading starts - data: { url : level URL, level : id of level being loaded}
|
|
115
|
+
LEVEL_LOADING = 'hlsLevelLoading',
|
|
116
|
+
// fired when a level playlist loading finishes - data: { details : levelDetails object, level : id of loaded level, stats : LoaderStats }
|
|
117
|
+
LEVEL_LOADED = 'hlsLevelLoaded',
|
|
118
|
+
// 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 }
|
|
119
|
+
LEVEL_UPDATED = 'hlsLevelUpdated',
|
|
120
|
+
// 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 }
|
|
121
|
+
LEVEL_PTS_UPDATED = 'hlsLevelPtsUpdated',
|
|
122
|
+
// fired to notify that levels have changed after removing a level - data: { levels : [available quality levels] }
|
|
123
|
+
LEVELS_UPDATED = 'hlsLevelsUpdated',
|
|
124
|
+
// fired to notify that audio track lists has been updated - data: { audioTracks : audioTracks }
|
|
125
|
+
AUDIO_TRACKS_UPDATED = 'hlsAudioTracksUpdated',
|
|
126
|
+
// fired when an audio track switching is requested - data: { id : audio track id }
|
|
127
|
+
AUDIO_TRACK_SWITCHING = 'hlsAudioTrackSwitching',
|
|
128
|
+
// fired when an audio track switch actually occurs - data: { id : audio track id }
|
|
129
|
+
AUDIO_TRACK_SWITCHED = 'hlsAudioTrackSwitched',
|
|
130
|
+
// fired when an audio track loading starts - data: { url : audio track URL, id : audio track id }
|
|
131
|
+
AUDIO_TRACK_LOADING = 'hlsAudioTrackLoading',
|
|
132
|
+
// fired when an audio track loading finishes - data: { details : levelDetails object, id : audio track id, stats : LoaderStats }
|
|
133
|
+
AUDIO_TRACK_LOADED = 'hlsAudioTrackLoaded',
|
|
134
|
+
// fired when an audio tracks's details have been updated based on previous details, after it has been loaded - data: { details : levelDetails object, id : track id }
|
|
135
|
+
AUDIO_TRACK_UPDATED = 'hlsAudioTrackUpdated',
|
|
136
|
+
// fired to notify that subtitle track lists has been updated - data: { subtitleTracks : subtitleTracks }
|
|
137
|
+
SUBTITLE_TRACKS_UPDATED = 'hlsSubtitleTracksUpdated',
|
|
138
|
+
// fired to notify that subtitle tracks were cleared as a result of stopping the media
|
|
139
|
+
SUBTITLE_TRACKS_CLEARED = 'hlsSubtitleTracksCleared',
|
|
140
|
+
// fired when an subtitle track switch occurs - data: { id : subtitle track id }
|
|
141
|
+
SUBTITLE_TRACK_SWITCH = 'hlsSubtitleTrackSwitch',
|
|
142
|
+
// fired when a subtitle track loading starts - data: { url : subtitle track URL, id : subtitle track id }
|
|
143
|
+
SUBTITLE_TRACK_LOADING = 'hlsSubtitleTrackLoading',
|
|
144
|
+
// fired when a subtitle track loading finishes - data: { details : levelDetails object, id : subtitle track id, stats : LoaderStats }
|
|
145
|
+
SUBTITLE_TRACK_LOADED = 'hlsSubtitleTrackLoaded',
|
|
146
|
+
// fired when a subtitle racks's details have been updated based on previous details, after it has been loaded - data: { details : levelDetails object, id : track id }
|
|
147
|
+
SUBTITLE_TRACK_UPDATED = 'hlsSubtitleTrackUpdated',
|
|
148
|
+
// fired when a subtitle fragment has been processed - data: { success : boolean, frag : the processed frag }
|
|
149
|
+
SUBTITLE_FRAG_PROCESSED = 'hlsSubtitleFragProcessed',
|
|
150
|
+
// fired when a set of VTTCues to be managed externally has been parsed - data: { type: string, track: string, cues: [ VTTCue ] }
|
|
151
|
+
CUES_PARSED = 'hlsCuesParsed',
|
|
152
|
+
// fired when a text track to be managed externally is found - data: { tracks: [ { label: string, kind: string, default: boolean } ] }
|
|
153
|
+
NON_NATIVE_TEXT_TRACKS_FOUND = 'hlsNonNativeTextTracksFound',
|
|
154
|
+
// fired when the first timestamp is found - data: { id : demuxer id, initPTS: initPTS, timescale: timescale, frag : fragment object }
|
|
155
|
+
INIT_PTS_FOUND = 'hlsInitPtsFound',
|
|
156
|
+
// fired when a fragment loading starts - data: { frag : fragment object }
|
|
157
|
+
FRAG_LOADING = 'hlsFragLoading',
|
|
158
|
+
// fired when a fragment loading is progressing - data: { frag : fragment object, { trequest, tfirst, loaded } }
|
|
159
|
+
// FRAG_LOAD_PROGRESS = 'hlsFragLoadProgress',
|
|
160
|
+
// Identifier for fragment load aborting for emergency switch down - data: { frag : fragment object }
|
|
161
|
+
FRAG_LOAD_EMERGENCY_ABORTED = 'hlsFragLoadEmergencyAborted',
|
|
162
|
+
// fired when a fragment loading is completed - data: { frag : fragment object, payload : fragment payload, stats : LoaderStats }
|
|
163
|
+
FRAG_LOADED = 'hlsFragLoaded',
|
|
164
|
+
// fired when a fragment has finished decrypting - data: { id : demuxer id, frag: fragment object, payload : fragment payload, stats : { tstart, tdecrypt } }
|
|
165
|
+
FRAG_DECRYPTED = 'hlsFragDecrypted',
|
|
166
|
+
// 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 }
|
|
167
|
+
FRAG_PARSING_INIT_SEGMENT = 'hlsFragParsingInitSegment',
|
|
168
|
+
// fired when parsing sei text is completed - data: { id : demuxer id, frag: fragment object, samples : [ sei samples pes ] }
|
|
169
|
+
FRAG_PARSING_USERDATA = 'hlsFragParsingUserdata',
|
|
170
|
+
// fired when parsing id3 is completed - data: { id : demuxer id, frag: fragment object, samples : [ id3 samples pes ] }
|
|
171
|
+
FRAG_PARSING_METADATA = 'hlsFragParsingMetadata',
|
|
172
|
+
// 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}
|
|
173
|
+
// FRAG_PARSING_DATA = 'hlsFragParsingData',
|
|
174
|
+
// fired when fragment parsing is completed - data: { id : demuxer id, frag: fragment object }
|
|
175
|
+
FRAG_PARSED = 'hlsFragParsed',
|
|
176
|
+
// fired when fragment remuxed MP4 boxes have all been appended into SourceBuffer - data: { id : demuxer id, frag : fragment object, stats : LoaderStats }
|
|
177
|
+
FRAG_BUFFERED = 'hlsFragBuffered',
|
|
178
|
+
// fired when fragment matching with current media position is changing - data : { id : demuxer id, frag : fragment object }
|
|
179
|
+
FRAG_CHANGED = 'hlsFragChanged',
|
|
180
|
+
// fired when an algo data segment loading starts - data: { frag: fragment object, url: string }
|
|
181
|
+
ALGO_DATA_LOADING = 'hlsAlgoDataLoading',
|
|
182
|
+
// fired when an algo data segment loading finishes - data: { frag: fragment object, url: string, chunk: AlgoChunk }
|
|
183
|
+
ALGO_DATA_LOADED = 'hlsAlgoDataLoaded',
|
|
184
|
+
// fired when an algo data segment loading fails - data: { frag: fragment object, url: string, error: Error }
|
|
185
|
+
ALGO_DATA_ERROR = 'hlsAlgoDataError',
|
|
186
|
+
// Identifier for a FPS drop event - data: { currentDropped, currentDecoded, totalDroppedFrames }
|
|
187
|
+
FPS_DROP = 'hlsFpsDrop',
|
|
188
|
+
// triggered when FPS drop triggers auto level capping - data: { level, droppedLevel }
|
|
189
|
+
FPS_DROP_LEVEL_CAPPING = 'hlsFpsDropLevelCapping',
|
|
190
|
+
// triggered when maxAutoLevel changes - data { autoLevelCapping, levels, maxAutoLevel, minAutoLevel, maxHdcpLevel }
|
|
191
|
+
MAX_AUTO_LEVEL_UPDATED = 'hlsMaxAutoLevelUpdated',
|
|
192
|
+
// 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 }
|
|
193
|
+
ERROR = 'hlsError',
|
|
194
|
+
// 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: { }
|
|
195
|
+
DESTROYING = 'hlsDestroying',
|
|
196
|
+
// fired when a decrypt key loading starts - data: { frag : fragment object }
|
|
197
|
+
KEY_LOADING = 'hlsKeyLoading',
|
|
198
|
+
// fired when a decrypt key loading is completed - data: { frag : fragment object, keyInfo : KeyLoaderInfo }
|
|
199
|
+
KEY_LOADED = 'hlsKeyLoaded',
|
|
200
|
+
// deprecated; please use BACK_BUFFER_REACHED - data : { bufferEnd: number }
|
|
201
|
+
LIVE_BACK_BUFFER_REACHED = 'hlsLiveBackBufferReached',
|
|
202
|
+
// fired when the back buffer is reached as defined by the backBufferLength config option - data : { bufferEnd: number }
|
|
203
|
+
BACK_BUFFER_REACHED = 'hlsBackBufferReached',
|
|
204
|
+
// fired after steering manifest has been loaded - data: { steeringManifest: SteeringManifest object, url: steering manifest URL }
|
|
205
|
+
STEERING_MANIFEST_LOADED = 'hlsSteeringManifestLoaded',
|
|
206
|
+
// fired when asset list has begun loading
|
|
207
|
+
ASSET_LIST_LOADING = 'hlsAssetListLoading',
|
|
208
|
+
// fired when a valid asset list is loaded
|
|
209
|
+
ASSET_LIST_LOADED = 'hlsAssetListLoaded',
|
|
210
|
+
// fired when the list of Interstitial Events and Interstitial Schedule is updated
|
|
211
|
+
INTERSTITIALS_UPDATED = 'hlsInterstitialsUpdated',
|
|
212
|
+
// fired when the buffer reaches an Interstitial Schedule boundary (both Primary segments and Interstitial Assets)
|
|
213
|
+
INTERSTITIALS_BUFFERED_TO_BOUNDARY = 'hlsInterstitialsBufferedToBoundary',
|
|
214
|
+
// fired when a player instance for an Interstitial Asset has been created
|
|
215
|
+
INTERSTITIAL_ASSET_PLAYER_CREATED = 'hlsInterstitialAssetPlayerCreated',
|
|
216
|
+
// Interstitial playback started
|
|
217
|
+
INTERSTITIAL_STARTED = 'hlsInterstitialStarted',
|
|
218
|
+
// InterstitialAsset playback started
|
|
219
|
+
INTERSTITIAL_ASSET_STARTED = 'hlsInterstitialAssetStarted',
|
|
220
|
+
// InterstitialAsset playback ended
|
|
221
|
+
INTERSTITIAL_ASSET_ENDED = 'hlsInterstitialAssetEnded',
|
|
222
|
+
// InterstitialAsset playback errored
|
|
223
|
+
INTERSTITIAL_ASSET_ERROR = 'hlsInterstitialAssetError',
|
|
224
|
+
// Interstitial playback ended
|
|
225
|
+
INTERSTITIAL_ENDED = 'hlsInterstitialEnded',
|
|
226
|
+
// Interstitial schedule resumed primary playback
|
|
227
|
+
INTERSTITIALS_PRIMARY_RESUMED = 'hlsInterstitialsPrimaryResumed',
|
|
228
|
+
// Interstitial players dispatch this event when playout limit is reached
|
|
229
|
+
PLAYOUT_LIMIT_REACHED = 'hlsPlayoutLimitReached',
|
|
230
|
+
// Event DateRange cue "enter" event dispatched
|
|
231
|
+
EVENT_CUE_ENTER = 'hlsEventCueEnter',
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Defines each Event type and payload by Event name. Used in {@link hls.js#HlsEventEmitter} to strongly type the event listener API.
|
|
236
|
+
*/
|
|
237
|
+
export interface HlsListeners {
|
|
238
|
+
[Events.MEDIA_ATTACHING]: (
|
|
239
|
+
event: Events.MEDIA_ATTACHING,
|
|
240
|
+
data: MediaAttachingData,
|
|
241
|
+
) => void;
|
|
242
|
+
[Events.MEDIA_ATTACHED]: (
|
|
243
|
+
event: Events.MEDIA_ATTACHED,
|
|
244
|
+
data: MediaAttachedData,
|
|
245
|
+
) => void;
|
|
246
|
+
[Events.MEDIA_DETACHING]: (
|
|
247
|
+
event: Events.MEDIA_DETACHING,
|
|
248
|
+
data: MediaDetachingData,
|
|
249
|
+
) => void;
|
|
250
|
+
[Events.MEDIA_DETACHED]: (
|
|
251
|
+
event: Events.MEDIA_DETACHED,
|
|
252
|
+
data: MediaDetachedData,
|
|
253
|
+
) => void;
|
|
254
|
+
[Events.MEDIA_ENDED]: (
|
|
255
|
+
event: Events.MEDIA_ENDED,
|
|
256
|
+
data: MediaEndedData,
|
|
257
|
+
) => void;
|
|
258
|
+
[Events.STALL_RESOLVED]: (event: Events.STALL_RESOLVED, data: {}) => void;
|
|
259
|
+
[Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;
|
|
260
|
+
[Events.BUFFER_CODECS]: (
|
|
261
|
+
event: Events.BUFFER_CODECS,
|
|
262
|
+
data: BufferCodecsData,
|
|
263
|
+
) => void;
|
|
264
|
+
[Events.BUFFER_CREATED]: (
|
|
265
|
+
event: Events.BUFFER_CREATED,
|
|
266
|
+
data: BufferCreatedData,
|
|
267
|
+
) => void;
|
|
268
|
+
[Events.BUFFER_APPENDING]: (
|
|
269
|
+
event: Events.BUFFER_APPENDING,
|
|
270
|
+
data: BufferAppendingData,
|
|
271
|
+
) => void;
|
|
272
|
+
[Events.BUFFER_APPENDED]: (
|
|
273
|
+
event: Events.BUFFER_APPENDED,
|
|
274
|
+
data: BufferAppendedData,
|
|
275
|
+
) => void;
|
|
276
|
+
[Events.BUFFER_EOS]: (event: Events.BUFFER_EOS, data: BufferEOSData) => void;
|
|
277
|
+
[Events.BUFFERED_TO_END]: (event: Events.BUFFERED_TO_END) => void;
|
|
278
|
+
[Events.BUFFER_FLUSHING]: (
|
|
279
|
+
event: Events.BUFFER_FLUSHING,
|
|
280
|
+
data: BufferFlushingData,
|
|
281
|
+
) => void;
|
|
282
|
+
[Events.BUFFER_FLUSHED]: (
|
|
283
|
+
event: Events.BUFFER_FLUSHED,
|
|
284
|
+
data: BufferFlushedData,
|
|
285
|
+
) => void;
|
|
286
|
+
[Events.MANIFEST_LOADING]: (
|
|
287
|
+
event: Events.MANIFEST_LOADING,
|
|
288
|
+
data: ManifestLoadingData,
|
|
289
|
+
) => void;
|
|
290
|
+
[Events.MANIFEST_LOADED]: (
|
|
291
|
+
event: Events.MANIFEST_LOADED,
|
|
292
|
+
data: ManifestLoadedData,
|
|
293
|
+
) => void;
|
|
294
|
+
[Events.MANIFEST_PARSED]: (
|
|
295
|
+
event: Events.MANIFEST_PARSED,
|
|
296
|
+
data: ManifestParsedData,
|
|
297
|
+
) => void;
|
|
298
|
+
[Events.LEVEL_SWITCHING]: (
|
|
299
|
+
event: Events.LEVEL_SWITCHING,
|
|
300
|
+
data: LevelSwitchingData,
|
|
301
|
+
) => void;
|
|
302
|
+
[Events.LEVEL_SWITCHED]: (
|
|
303
|
+
event: Events.LEVEL_SWITCHED,
|
|
304
|
+
data: LevelSwitchedData,
|
|
305
|
+
) => void;
|
|
306
|
+
[Events.LEVEL_LOADING]: (
|
|
307
|
+
event: Events.LEVEL_LOADING,
|
|
308
|
+
data: LevelLoadingData,
|
|
309
|
+
) => void;
|
|
310
|
+
[Events.LEVEL_LOADED]: (
|
|
311
|
+
event: Events.LEVEL_LOADED,
|
|
312
|
+
data: LevelLoadedData,
|
|
313
|
+
) => void;
|
|
314
|
+
[Events.LEVEL_UPDATED]: (
|
|
315
|
+
event: Events.LEVEL_UPDATED,
|
|
316
|
+
data: LevelUpdatedData,
|
|
317
|
+
) => void;
|
|
318
|
+
[Events.LEVEL_PTS_UPDATED]: (
|
|
319
|
+
event: Events.LEVEL_PTS_UPDATED,
|
|
320
|
+
data: LevelPTSUpdatedData,
|
|
321
|
+
) => void;
|
|
322
|
+
[Events.LEVELS_UPDATED]: (
|
|
323
|
+
event: Events.LEVELS_UPDATED,
|
|
324
|
+
data: LevelsUpdatedData,
|
|
325
|
+
) => void;
|
|
326
|
+
[Events.AUDIO_TRACKS_UPDATED]: (
|
|
327
|
+
event: Events.AUDIO_TRACKS_UPDATED,
|
|
328
|
+
data: AudioTracksUpdatedData,
|
|
329
|
+
) => void;
|
|
330
|
+
[Events.AUDIO_TRACK_SWITCHING]: (
|
|
331
|
+
event: Events.AUDIO_TRACK_SWITCHING,
|
|
332
|
+
data: AudioTrackSwitchingData,
|
|
333
|
+
) => void;
|
|
334
|
+
[Events.AUDIO_TRACK_SWITCHED]: (
|
|
335
|
+
event: Events.AUDIO_TRACK_SWITCHED,
|
|
336
|
+
data: AudioTrackSwitchedData,
|
|
337
|
+
) => void;
|
|
338
|
+
[Events.AUDIO_TRACK_LOADING]: (
|
|
339
|
+
event: Events.AUDIO_TRACK_LOADING,
|
|
340
|
+
data: TrackLoadingData,
|
|
341
|
+
) => void;
|
|
342
|
+
[Events.AUDIO_TRACK_LOADED]: (
|
|
343
|
+
event: Events.AUDIO_TRACK_LOADED,
|
|
344
|
+
data: AudioTrackLoadedData,
|
|
345
|
+
) => void;
|
|
346
|
+
[Events.AUDIO_TRACK_UPDATED]: (
|
|
347
|
+
event: Events.AUDIO_TRACK_UPDATED,
|
|
348
|
+
data: AudioTrackUpdatedData,
|
|
349
|
+
) => void;
|
|
350
|
+
[Events.SUBTITLE_TRACKS_UPDATED]: (
|
|
351
|
+
event: Events.SUBTITLE_TRACKS_UPDATED,
|
|
352
|
+
data: SubtitleTracksUpdatedData,
|
|
353
|
+
) => void;
|
|
354
|
+
[Events.SUBTITLE_TRACKS_CLEARED]: (
|
|
355
|
+
event: Events.SUBTITLE_TRACKS_CLEARED,
|
|
356
|
+
) => void;
|
|
357
|
+
[Events.SUBTITLE_TRACK_SWITCH]: (
|
|
358
|
+
event: Events.SUBTITLE_TRACK_SWITCH,
|
|
359
|
+
data: SubtitleTrackSwitchData,
|
|
360
|
+
) => void;
|
|
361
|
+
[Events.SUBTITLE_TRACK_LOADING]: (
|
|
362
|
+
event: Events.SUBTITLE_TRACK_LOADING,
|
|
363
|
+
data: TrackLoadingData,
|
|
364
|
+
) => void;
|
|
365
|
+
[Events.SUBTITLE_TRACK_LOADED]: (
|
|
366
|
+
event: Events.SUBTITLE_TRACK_LOADED,
|
|
367
|
+
data: SubtitleTrackLoadedData,
|
|
368
|
+
) => void;
|
|
369
|
+
[Events.SUBTITLE_TRACK_UPDATED]: (
|
|
370
|
+
event: Events.SUBTITLE_TRACK_UPDATED,
|
|
371
|
+
data: SubtitleTrackUpdatedData,
|
|
372
|
+
) => void;
|
|
373
|
+
[Events.SUBTITLE_FRAG_PROCESSED]: (
|
|
374
|
+
event: Events.SUBTITLE_FRAG_PROCESSED,
|
|
375
|
+
data: SubtitleFragProcessedData,
|
|
376
|
+
) => void;
|
|
377
|
+
[Events.CUES_PARSED]: (
|
|
378
|
+
event: Events.CUES_PARSED,
|
|
379
|
+
data: CuesParsedData,
|
|
380
|
+
) => void;
|
|
381
|
+
[Events.NON_NATIVE_TEXT_TRACKS_FOUND]: (
|
|
382
|
+
event: Events.NON_NATIVE_TEXT_TRACKS_FOUND,
|
|
383
|
+
data: NonNativeTextTracksData,
|
|
384
|
+
) => void;
|
|
385
|
+
[Events.INIT_PTS_FOUND]: (
|
|
386
|
+
event: Events.INIT_PTS_FOUND,
|
|
387
|
+
data: InitPTSFoundData,
|
|
388
|
+
) => void;
|
|
389
|
+
[Events.FRAG_LOADING]: (
|
|
390
|
+
event: Events.FRAG_LOADING,
|
|
391
|
+
data: FragLoadingData,
|
|
392
|
+
) => void;
|
|
393
|
+
// [Events.FRAG_LOAD_PROGRESS]: TodoEventType
|
|
394
|
+
[Events.FRAG_LOAD_EMERGENCY_ABORTED]: (
|
|
395
|
+
event: Events.FRAG_LOAD_EMERGENCY_ABORTED,
|
|
396
|
+
data: FragLoadEmergencyAbortedData,
|
|
397
|
+
) => void;
|
|
398
|
+
[Events.FRAG_LOADED]: (
|
|
399
|
+
event: Events.FRAG_LOADED,
|
|
400
|
+
data: FragLoadedData,
|
|
401
|
+
) => void;
|
|
402
|
+
[Events.FRAG_DECRYPTED]: (
|
|
403
|
+
event: Events.FRAG_DECRYPTED,
|
|
404
|
+
data: FragDecryptedData,
|
|
405
|
+
) => void;
|
|
406
|
+
[Events.FRAG_PARSING_INIT_SEGMENT]: (
|
|
407
|
+
event: Events.FRAG_PARSING_INIT_SEGMENT,
|
|
408
|
+
data: FragParsingInitSegmentData,
|
|
409
|
+
) => void;
|
|
410
|
+
[Events.FRAG_PARSING_USERDATA]: (
|
|
411
|
+
event: Events.FRAG_PARSING_USERDATA,
|
|
412
|
+
data: FragParsingUserdataData,
|
|
413
|
+
) => void;
|
|
414
|
+
[Events.FRAG_PARSING_METADATA]: (
|
|
415
|
+
event: Events.FRAG_PARSING_METADATA,
|
|
416
|
+
data: FragParsingMetadataData,
|
|
417
|
+
) => void;
|
|
418
|
+
// [Events.FRAG_PARSING_DATA]: TodoEventType
|
|
419
|
+
[Events.FRAG_PARSED]: (
|
|
420
|
+
event: Events.FRAG_PARSED,
|
|
421
|
+
data: FragParsedData,
|
|
422
|
+
) => void;
|
|
423
|
+
[Events.FRAG_BUFFERED]: (
|
|
424
|
+
event: Events.FRAG_BUFFERED,
|
|
425
|
+
data: FragBufferedData,
|
|
426
|
+
) => void;
|
|
427
|
+
[Events.FRAG_CHANGED]: (
|
|
428
|
+
event: Events.FRAG_CHANGED,
|
|
429
|
+
data: FragChangedData,
|
|
430
|
+
) => void;
|
|
431
|
+
[Events.ALGO_DATA_LOADING]: (
|
|
432
|
+
event: Events.ALGO_DATA_LOADING,
|
|
433
|
+
data: AlgoDataLoadingData,
|
|
434
|
+
) => void;
|
|
435
|
+
[Events.ALGO_DATA_LOADED]: (
|
|
436
|
+
event: Events.ALGO_DATA_LOADED,
|
|
437
|
+
data: AlgoDataLoadedData,
|
|
438
|
+
) => void;
|
|
439
|
+
[Events.ALGO_DATA_ERROR]: (
|
|
440
|
+
event: Events.ALGO_DATA_ERROR,
|
|
441
|
+
data: AlgoDataErrorData,
|
|
442
|
+
) => void;
|
|
443
|
+
[Events.FPS_DROP]: (event: Events.FPS_DROP, data: FPSDropData) => void;
|
|
444
|
+
[Events.FPS_DROP_LEVEL_CAPPING]: (
|
|
445
|
+
event: Events.FPS_DROP_LEVEL_CAPPING,
|
|
446
|
+
data: FPSDropLevelCappingData,
|
|
447
|
+
) => void;
|
|
448
|
+
[Events.MAX_AUTO_LEVEL_UPDATED]: (
|
|
449
|
+
event: Events.MAX_AUTO_LEVEL_UPDATED,
|
|
450
|
+
data: MaxAutoLevelUpdatedData,
|
|
451
|
+
) => void;
|
|
452
|
+
[Events.ERROR]: (event: Events.ERROR, data: ErrorData) => void;
|
|
453
|
+
[Events.DESTROYING]: (event: Events.DESTROYING) => void;
|
|
454
|
+
[Events.KEY_LOADING]: (
|
|
455
|
+
event: Events.KEY_LOADING,
|
|
456
|
+
data: KeyLoadingData,
|
|
457
|
+
) => void;
|
|
458
|
+
[Events.KEY_LOADED]: (event: Events.KEY_LOADED, data: KeyLoadedData) => void;
|
|
459
|
+
[Events.LIVE_BACK_BUFFER_REACHED]: (
|
|
460
|
+
event: Events.LIVE_BACK_BUFFER_REACHED,
|
|
461
|
+
data: LiveBackBufferData,
|
|
462
|
+
) => void;
|
|
463
|
+
[Events.BACK_BUFFER_REACHED]: (
|
|
464
|
+
event: Events.BACK_BUFFER_REACHED,
|
|
465
|
+
data: BackBufferData,
|
|
466
|
+
) => void;
|
|
467
|
+
[Events.STEERING_MANIFEST_LOADED]: (
|
|
468
|
+
event: Events.STEERING_MANIFEST_LOADED,
|
|
469
|
+
data: SteeringManifestLoadedData,
|
|
470
|
+
) => void;
|
|
471
|
+
[Events.ASSET_LIST_LOADING]: (
|
|
472
|
+
event: Events.ASSET_LIST_LOADING,
|
|
473
|
+
data: AssetListLoadingData,
|
|
474
|
+
) => void;
|
|
475
|
+
[Events.ASSET_LIST_LOADED]: (
|
|
476
|
+
event: Events.ASSET_LIST_LOADED,
|
|
477
|
+
data: AssetListLoadedData,
|
|
478
|
+
) => void;
|
|
479
|
+
[Events.INTERSTITIALS_UPDATED]: (
|
|
480
|
+
event: Events.INTERSTITIALS_UPDATED,
|
|
481
|
+
data: InterstitialsUpdatedData,
|
|
482
|
+
) => void;
|
|
483
|
+
[Events.INTERSTITIALS_BUFFERED_TO_BOUNDARY]: (
|
|
484
|
+
event: Events.INTERSTITIALS_BUFFERED_TO_BOUNDARY,
|
|
485
|
+
data: InterstitialsBufferedToBoundaryData,
|
|
486
|
+
) => void;
|
|
487
|
+
[Events.INTERSTITIAL_ASSET_PLAYER_CREATED]: (
|
|
488
|
+
event: Events.INTERSTITIAL_ASSET_PLAYER_CREATED,
|
|
489
|
+
data: InterstitialAssetPlayerCreatedData,
|
|
490
|
+
) => void;
|
|
491
|
+
[Events.INTERSTITIAL_STARTED]: (
|
|
492
|
+
event: Events.INTERSTITIAL_STARTED,
|
|
493
|
+
data: InterstitialStartedData,
|
|
494
|
+
) => void;
|
|
495
|
+
[Events.INTERSTITIAL_ASSET_STARTED]: (
|
|
496
|
+
event: Events.INTERSTITIAL_ASSET_STARTED,
|
|
497
|
+
data: InterstitialAssetStartedData,
|
|
498
|
+
) => void;
|
|
499
|
+
[Events.INTERSTITIAL_ASSET_ENDED]: (
|
|
500
|
+
event: Events.INTERSTITIAL_ASSET_ENDED,
|
|
501
|
+
data: InterstitialAssetEndedData,
|
|
502
|
+
) => void;
|
|
503
|
+
[Events.INTERSTITIAL_ASSET_ERROR]: (
|
|
504
|
+
event: Events.INTERSTITIAL_ASSET_ERROR,
|
|
505
|
+
data: InterstitialAssetErrorData,
|
|
506
|
+
) => void;
|
|
507
|
+
[Events.INTERSTITIAL_ENDED]: (
|
|
508
|
+
event: Events.INTERSTITIAL_ENDED,
|
|
509
|
+
data: InterstitialEndedData,
|
|
510
|
+
) => void;
|
|
511
|
+
[Events.INTERSTITIALS_PRIMARY_RESUMED]: (
|
|
512
|
+
event: Events.INTERSTITIALS_PRIMARY_RESUMED,
|
|
513
|
+
data: InterstitialsPrimaryResumed,
|
|
514
|
+
) => void;
|
|
515
|
+
[Events.PLAYOUT_LIMIT_REACHED]: (
|
|
516
|
+
event: Events.PLAYOUT_LIMIT_REACHED,
|
|
517
|
+
data: {},
|
|
518
|
+
) => void;
|
|
519
|
+
[Events.EVENT_CUE_ENTER]: (event: Events.EVENT_CUE_ENTER, data: {}) => void;
|
|
520
|
+
}
|
|
521
|
+
export interface HlsEventEmitter {
|
|
522
|
+
on<E extends keyof HlsListeners, Context = undefined>(
|
|
523
|
+
event: E,
|
|
524
|
+
listener: HlsListeners[E],
|
|
525
|
+
context?: Context,
|
|
526
|
+
): void;
|
|
527
|
+
once<E extends keyof HlsListeners, Context = undefined>(
|
|
528
|
+
event: E,
|
|
529
|
+
listener: HlsListeners[E],
|
|
530
|
+
context?: Context,
|
|
531
|
+
): void;
|
|
532
|
+
|
|
533
|
+
removeAllListeners<E extends keyof HlsListeners>(event?: E): void;
|
|
534
|
+
off<E extends keyof HlsListeners, Context = undefined>(
|
|
535
|
+
event: E,
|
|
536
|
+
listener?: HlsListeners[E],
|
|
537
|
+
context?: Context,
|
|
538
|
+
once?: boolean,
|
|
539
|
+
): void;
|
|
540
|
+
|
|
541
|
+
listeners<E extends keyof HlsListeners>(event: E): HlsListeners[E][];
|
|
542
|
+
emit<E extends keyof HlsListeners>(
|
|
543
|
+
event: E,
|
|
544
|
+
name: E,
|
|
545
|
+
eventObject: Parameters<HlsListeners[E]>[1],
|
|
546
|
+
): boolean;
|
|
547
|
+
listenerCount<E extends keyof HlsListeners>(event: E): number;
|
|
548
|
+
}
|