123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import {isVideoCodec, isAudioCodec} from '../src/codecs.js';
- const codecAliasMap = {
- mp3: ['mp3', 'mp4a.40.34', 'mp4a.6b'],
- aac: ['aac', 'mp4a.40.2', 'mp4a.40.5', 'mp4a.40.29']
- };
- Object.keys(codecAliasMap).forEach((alias) => {
- // map aliases as keys so that everything is linked to each other
- codecAliasMap[alias].forEach((subalias) => {
- codecAliasMap[subalias] = codecAliasMap[alias];
- });
- });
- export const doesCodecMatch = function(a, b) {
- if (!a) {
- return false;
- }
- if (codecAliasMap[b]) {
- return codecAliasMap[a].indexOf(b) !== -1;
- }
- return a === b;
- };
- export const codecsFromFile = function(file) {
- const codecs = {};
- const extension = file.split('.').pop();
- const codecStr = file.replace(`.${extension}`, '');
- codecStr.split(',').forEach((codec) => {
- if (isVideoCodec(codec)) {
- codecs.video = codec;
- } else if (isAudioCodec(codec)) {
- codecs.audio = codec;
- } else {
- throw new Error(`${codec} is not detected as audio or video`);
- }
- });
- return codecs;
- };
|