Home Reference Source

src/errors.ts

  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. /**
  15. * @enum {ErrorDetails}
  16. * @typedef {string} ErrorDetail
  17. */
  18. export enum ErrorDetails {
  19. KEY_SYSTEM_NO_KEYS = 'keySystemNoKeys',
  20. KEY_SYSTEM_NO_ACCESS = 'keySystemNoAccess',
  21. KEY_SYSTEM_NO_SESSION = 'keySystemNoSession',
  22. KEY_SYSTEM_LICENSE_REQUEST_FAILED = 'keySystemLicenseRequestFailed',
  23. KEY_SYSTEM_NO_INIT_DATA = 'keySystemNoInitData',
  24. // Identifier for a manifest load error - data: { url : faulty URL, response : { code: error code, text: error text }}
  25. MANIFEST_LOAD_ERROR = 'manifestLoadError',
  26. // Identifier for a manifest load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}
  27. MANIFEST_LOAD_TIMEOUT = 'manifestLoadTimeOut',
  28. // Identifier for a manifest parsing error - data: { url : faulty URL, reason : error reason}
  29. MANIFEST_PARSING_ERROR = 'manifestParsingError',
  30. // Identifier for a manifest with only incompatible codecs error - data: { url : faulty URL, reason : error reason}
  31. MANIFEST_INCOMPATIBLE_CODECS_ERROR = 'manifestIncompatibleCodecsError',
  32. // Identifier for a level which contains no fragments - data: { url: faulty URL, reason: "no fragments found in level", level: index of the bad level }
  33. LEVEL_EMPTY_ERROR = 'levelEmptyError',
  34. // Identifier for a level load error - data: { url : faulty URL, response : { code: error code, text: error text }}
  35. LEVEL_LOAD_ERROR = 'levelLoadError',
  36. // Identifier for a level load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}
  37. LEVEL_LOAD_TIMEOUT = 'levelLoadTimeOut',
  38. // Identifier for a level switch error - data: { level : faulty level Id, event : error description}
  39. LEVEL_SWITCH_ERROR = 'levelSwitchError',
  40. // Identifier for an audio track load error - data: { url : faulty URL, response : { code: error code, text: error text }}
  41. AUDIO_TRACK_LOAD_ERROR = 'audioTrackLoadError',
  42. // Identifier for an audio track load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}
  43. AUDIO_TRACK_LOAD_TIMEOUT = 'audioTrackLoadTimeOut',
  44. // Identifier for a subtitle track load error - data: { url : faulty URL, response : { code: error code, text: error text }}
  45. SUBTITLE_LOAD_ERROR = 'subtitleTrackLoadError',
  46. // Identifier for a subtitle track load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}
  47. SUBTITLE_TRACK_LOAD_TIMEOUT = 'subtitleTrackLoadTimeOut',
  48. // Identifier for fragment load error - data: { frag : fragment object, response : { code: error code, text: error text }}
  49. FRAG_LOAD_ERROR = 'fragLoadError',
  50. // Identifier for fragment load timeout error - data: { frag : fragment object}
  51. FRAG_LOAD_TIMEOUT = 'fragLoadTimeOut',
  52. // Identifier for a fragment decryption error event - data: {id : demuxer Id,frag: fragment object, reason : parsing error description }
  53. FRAG_DECRYPT_ERROR = 'fragDecryptError',
  54. // Identifier for a fragment parsing error event - data: { id : demuxer Id, reason : parsing error description }
  55. // will be renamed DEMUX_PARSING_ERROR and switched to MUX_ERROR in the next major release
  56. FRAG_PARSING_ERROR = 'fragParsingError',
  57. // 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 }
  58. REMUX_ALLOC_ERROR = 'remuxAllocError',
  59. // Identifier for decrypt key load error - data: { frag : fragment object, response : { code: error code, text: error text }}
  60. KEY_LOAD_ERROR = 'keyLoadError',
  61. // Identifier for decrypt key load timeout error - data: { frag : fragment object}
  62. KEY_LOAD_TIMEOUT = 'keyLoadTimeOut',
  63. // Triggered when an exception occurs while adding a sourceBuffer to MediaSource - data : { error : exception , mimeType : mimeType }
  64. BUFFER_ADD_CODEC_ERROR = 'bufferAddCodecError',
  65. // 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 }
  66. BUFFER_INCOMPATIBLE_CODECS_ERROR = 'bufferIncompatibleCodecsError',
  67. // Identifier for a buffer append error - data: append error description
  68. BUFFER_APPEND_ERROR = 'bufferAppendError',
  69. // Identifier for a buffer appending error event - data: appending error description
  70. BUFFER_APPENDING_ERROR = 'bufferAppendingError',
  71. // Identifier for a buffer stalled error event
  72. BUFFER_STALLED_ERROR = 'bufferStalledError',
  73. // Identifier for a buffer full event
  74. BUFFER_FULL_ERROR = 'bufferFullError',
  75. // Identifier for a buffer seek over hole event
  76. BUFFER_SEEK_OVER_HOLE = 'bufferSeekOverHole',
  77. // Identifier for a buffer nudge on stall (playback is stuck although currentTime is in a buffered area)
  78. BUFFER_NUDGE_ON_STALL = 'bufferNudgeOnStall',
  79. // Identifier for an internal exception happening inside hls.js while handling an event
  80. INTERNAL_EXCEPTION = 'internalException',
  81. // Identifier for an internal call to abort a loader
  82. INTERNAL_ABORTED = 'aborted',
  83. // Uncategorized error
  84. UNKNOWN = 'unknown',
  85. }