mirror of https://bitbucket.org/ausocean/av.git
76 lines
1.4 KiB
JavaScript
76 lines
1.4 KiB
JavaScript
// 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 };
|