/* AUTHOR Trek Hopton LICENSE This file is Copyright (C) 2020 the Australian Ocean Lab (AusOcean) It is free software: you can redistribute it and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License in gpl.txt. If not, see http://www.gnu.org/licenses. For hls.js Copyright notice and license, see LICENSE file. */ // from http://mp4ra.org/codecs.html const sampleEntryCodesISO = { audio: { 'a3ds': true, 'ac-3': true, 'ac-4': true, 'alac': true, 'alaw': true, 'dra1': true, 'dts+': true, 'dts-': true, 'dtsc': true, 'dtse': true, 'dtsh': true, 'ec-3': true, 'enca': true, 'g719': true, 'g726': true, 'm4ae': true, 'mha1': true, 'mha2': true, 'mhm1': true, 'mhm2': true, 'mlpa': true, 'mp4a': true, 'raw ': true, 'Opus': true, 'samr': true, 'sawb': true, 'sawp': true, 'sevc': true, 'sqcp': true, 'ssmv': true, 'twos': true, 'ulaw': true }, video: { 'avc1': true, 'avc2': true, 'avc3': true, 'avc4': true, 'avcp': true, 'drac': true, 'dvav': true, 'dvhe': true, 'encv': true, 'hev1': true, 'hvc1': true, 'mjp2': true, 'mp4v': true, 'mvc1': true, 'mvc2': true, 'mvc3': true, 'mvc4': true, 'resv': true, 'rv60': true, 's263': true, 'svc1': true, 'svc2': true, 'vc-1': true, 'vp08': true, 'vp09': true } }; function isCodecType(codec, type) { const typeCodes = sampleEntryCodesISO[type]; return !!typeCodes && typeCodes[codec.slice(0, 4)] === true; } function isCodecSupportedInMp4(codec, type) { return MediaSource.isTypeSupported(`${type || 'video'}/mp4;codecs="${codec}"`); } export { isCodecType, isCodecSupportedInMp4 };