import { SHAKA_ERROR_CODE } from './shaka-error-contract'; export const SHAKA_PUBLIC_CODES = new Set( Object.values(SHAKA_ERROR_CODE) ); export const SHAKA_NETWORK_CODES = new Set([ SHAKA_ERROR_CODE.UNSUPPORTED_SCHEME, SHAKA_ERROR_CODE.BAD_HTTP_STATUS, SHAKA_ERROR_CODE.HTTP_ERROR, SHAKA_ERROR_CODE.TIMEOUT, SHAKA_ERROR_CODE.MALFORMED_DATA_URI, SHAKA_ERROR_CODE.REQUEST_FILTER_ERROR, SHAKA_ERROR_CODE.RESPONSE_FILTER_ERROR, SHAKA_ERROR_CODE.SEGMENT_MISSING, ]); export const SHAKA_MEDIA_CODES = new Set([ SHAKA_ERROR_CODE.BUFFER_READ_OUT_OF_BOUNDS, SHAKA_ERROR_CODE.JS_INTEGER_OVERFLOW, SHAKA_ERROR_CODE.EBML_OVERFLOW, SHAKA_ERROR_CODE.EBML_BAD_FLOATING_POINT_SIZE, SHAKA_ERROR_CODE.MP4_SIDX_WRONG_BOX_TYPE, SHAKA_ERROR_CODE.MP4_SIDX_INVALID_TIMESCALE, SHAKA_ERROR_CODE.MP4_SIDX_TYPE_NOT_SUPPORTED, SHAKA_ERROR_CODE.WEBM_CUES_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_EBML_HEADER_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_SEGMENT_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_INFO_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_DURATION_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_CUE_TRACK_POSITIONS_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_CUE_TIME_ELEMENT_MISSING, SHAKA_ERROR_CODE.MEDIA_SOURCE_OPERATION_FAILED, SHAKA_ERROR_CODE.MEDIA_SOURCE_OPERATION_THREW, SHAKA_ERROR_CODE.VIDEO_ERROR, SHAKA_ERROR_CODE.QUOTA_EXCEEDED_ERROR, SHAKA_ERROR_CODE.TRANSMUXING_FAILED, SHAKA_ERROR_CODE.CONTENT_TRANSFORMATION_FAILED, SHAKA_ERROR_CODE.TRANSMUXING_NO_VIDEO_DATA, SHAKA_ERROR_CODE.STREAMING_NOT_ALLOWED, SHAKA_ERROR_CODE.BUFFER_WRITE_OUT_OF_BOUNDS, ]); export const SHAKA_MANIFEST_DRM_CODES = new Set([ SHAKA_ERROR_CODE.DASH_PSSH_BAD_ENCODING, SHAKA_ERROR_CODE.DASH_NO_COMMON_KEY_SYSTEM, SHAKA_ERROR_CODE.DASH_MULTIPLE_KEY_IDS_NOT_SUPPORTED, SHAKA_ERROR_CODE.DASH_CONFLICTING_KEY_IDS, SHAKA_ERROR_CODE.INCONSISTENT_DRM_ACROSS_PERIODS, SHAKA_ERROR_CODE.NO_WEB_CRYPTO_API, SHAKA_ERROR_CODE.AES_128_INVALID_IV_LENGTH, SHAKA_ERROR_CODE.AES_128_INVALID_KEY_LENGTH, SHAKA_ERROR_CODE.DASH_CONFLICTING_AES_128, SHAKA_ERROR_CODE.DASH_UNSUPPORTED_AES_128, SHAKA_ERROR_CODE.DASH_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED, ]); export const SHAKA_MANIFEST_MEDIA_CODES = new Set([ SHAKA_ERROR_CODE.DASH_UNSUPPORTED_CONTAINER, SHAKA_ERROR_CODE.CONTENT_UNSUPPORTED_BY_BROWSER, ]); export const SHAKA_AMBIGUOUS_MANIFEST_CODES = new Set([ SHAKA_ERROR_CODE.RESTRICTIONS_CANNOT_BE_MET, ]); export const SHAKA_MANIFEST_CODES = new Set( Object.values(SHAKA_ERROR_CODE).filter( (code) => code >= 4000 && code < 5000 ) ); export const SHAKA_DRM_CODES = new Set( Object.values(SHAKA_ERROR_CODE).filter( (code) => code >= 6000 && code < 7000 ) ); export const SHAKA_SEGMENT_STAGE_CODES = new Set([ SHAKA_ERROR_CODE.SEGMENT_MISSING, SHAKA_ERROR_CODE.BUFFER_READ_OUT_OF_BOUNDS, SHAKA_ERROR_CODE.JS_INTEGER_OVERFLOW, SHAKA_ERROR_CODE.EBML_OVERFLOW, SHAKA_ERROR_CODE.EBML_BAD_FLOATING_POINT_SIZE, SHAKA_ERROR_CODE.MP4_SIDX_WRONG_BOX_TYPE, SHAKA_ERROR_CODE.MP4_SIDX_INVALID_TIMESCALE, SHAKA_ERROR_CODE.MP4_SIDX_TYPE_NOT_SUPPORTED, SHAKA_ERROR_CODE.WEBM_CUES_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_EBML_HEADER_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_SEGMENT_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_INFO_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_DURATION_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_CUE_TRACK_POSITIONS_ELEMENT_MISSING, SHAKA_ERROR_CODE.WEBM_CUE_TIME_ELEMENT_MISSING, ]); export const SHAKA_MEDIA_STAGE_CODES = new Set([ SHAKA_ERROR_CODE.MEDIA_SOURCE_OPERATION_FAILED, SHAKA_ERROR_CODE.MEDIA_SOURCE_OPERATION_THREW, SHAKA_ERROR_CODE.VIDEO_ERROR, SHAKA_ERROR_CODE.QUOTA_EXCEEDED_ERROR, SHAKA_ERROR_CODE.TRANSMUXING_FAILED, SHAKA_ERROR_CODE.CONTENT_TRANSFORMATION_FAILED, SHAKA_ERROR_CODE.TRANSMUXING_NO_VIDEO_DATA, SHAKA_ERROR_CODE.STREAMING_NOT_ALLOWED, SHAKA_ERROR_CODE.BUFFER_WRITE_OUT_OF_BOUNDS, ]); export const SHAKA_LICENSE_STAGE_CODES = new Set([ SHAKA_ERROR_CODE.FAILED_TO_GENERATE_LICENSE_REQUEST, SHAKA_ERROR_CODE.LICENSE_REQUEST_FAILED, SHAKA_ERROR_CODE.LICENSE_RESPONSE_REJECTED, SHAKA_ERROR_CODE.NO_LICENSE_SERVER_GIVEN, SHAKA_ERROR_CODE.EXPIRED, SHAKA_ERROR_CODE.SERVER_CERTIFICATE_REQUEST_FAILED, ]); export const SHAKA_NESTED_HTTP_CODES = new Set([ SHAKA_ERROR_CODE.LICENSE_REQUEST_FAILED, SHAKA_ERROR_CODE.SERVER_CERTIFICATE_REQUEST_FAILED, ]);