"""Validation Constants.""" """For any changes that are made to audio metadata requirements, please update: https://github.com/theorchard/frontend-distribution/blob/b0f7ea92b0a2df8df145777abdb1b04b2c59c547/src/selectors/track-audio-validation-errors.js """ # noqa: E501 # audio metadata fields FILE_SIZE_BYTES = 'file_size_bytes' MIME_TYPE = 'mime_type' CONTAINER = 'container' CODEC = 'codec' DURATION_MS = 'duration_ms' BIT_RATE = 'bit_rate' CHANNELS = 'channels' SAMPLE_RATE = 'sample_rate' BITS_PER_SAMPLE = 'bits_per_sample' # computed fields LOSSLESS = 'lossless' # mime types MIME_TYPE_FILE_WAV = 'audio/wav' MIME_TYPE_FILE_XWAV = 'audio/x-wav' MIME_TYPE_FILE_VNDWAV = 'audio/vnd.wave' MIME_TYPE_FILE_FLAC = 'audio/flac' MIME_TYPE_FILE_XFLAC = 'audio/x-flac' MIME_TYPE_FILE_MP4 = 'audio/mp4' MIME_TYPE_FILE_XM4A = 'audio/x-m4a' WAV_MIME_TYPES = { MIME_TYPE_FILE_WAV, MIME_TYPE_FILE_XWAV, MIME_TYPE_FILE_VNDWAV, } FLAC_MIME_TYPES = { MIME_TYPE_FILE_FLAC, MIME_TYPE_FILE_XFLAC, } MP4_MIME_TYPES = { MIME_TYPE_FILE_MP4, MIME_TYPE_FILE_XM4A, } # containers WAVE_CONTAINER_NAME = 'wave' FLAC_CONTAINER_NAME = 'flac' MPEG4_CONTAINER_NAME = 'mpeg-4' CONTAINER_TO_MIME_TYPE = { WAVE_CONTAINER_NAME: MIME_TYPE_FILE_WAV, FLAC_CONTAINER_NAME: MIME_TYPE_FILE_FLAC, MPEG4_CONTAINER_NAME: MIME_TYPE_FILE_MP4, } ALLOWED_CONTAINERS = set(CONTAINER_TO_MIME_TYPE.keys()) # codecs PCM_CODEC_NAME = 'pcm' FLAC_CODEC_NAME = 'flac' ALAC_CODEC_NAME = 'alac' MIME_TYPE_TO_LOSSLESS_CODEC = { **{mime_type: PCM_CODEC_NAME for mime_type in WAV_MIME_TYPES}, **{mime_type: FLAC_CODEC_NAME for mime_type in FLAC_MIME_TYPES}, **{mime_type: ALAC_CODEC_NAME for mime_type in MP4_MIME_TYPES}, } ALLOWED_MIME_TYPES = set(MIME_TYPE_TO_LOSSLESS_CODEC.keys()) ALLOWED_CODECS = set(MIME_TYPE_TO_LOSSLESS_CODEC.values()) # bits per sample and sample rates BITS_PER_SAMPLE_TO_ALLOWED_SAMPLE_RATES = { 16: {44100, 48000}, 24: {44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000} } ALLOWED_BITS_PER_SAMPLE = set(BITS_PER_SAMPLE_TO_ALLOWED_SAMPLE_RATES.keys()) # file size MIN_FILE_SIZE_BYTES_INCREASE_PER_SECOND = 78500