diff --git a/codecs/codecs.js b/codecs/codecs.js index d34f20d..66d9107 100644 --- a/codecs/codecs.js +++ b/codecs/codecs.js @@ -122,6 +122,8 @@ export function getFullMIMEString(info) { case 'aac': codecFrags.add(getMP4ACodecString(stream)); break; case 'vorbis': codecFrags.add('vorbis'); break; case 'opus': codecFrags.add('opus'); break; + // I'm going off of what Chromium calls this one, with the dash. + case 'ac3': codecFrags.add('ac-3'); break; default: throw `Could not handle codec_name ${stream.codec_name}, ` + `codec_tag_string ${stream.codec_tag_string} for file ${info.format.filename} yet. ` + diff --git a/package.json b/package.json index 6bbb4c8..2b8483b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@codedread/bitjs", - "version": "1.0.7", + "version": "1.0.8", "description": "Binary Tools for JavaScript", "homepage": "https://github.com/codedread/bitjs", "author": "Jeff Schiller", diff --git a/tests/codecs.spec.js b/tests/codecs.spec.js index 056e3c4..8082556 100644 --- a/tests/codecs.spec.js +++ b/tests/codecs.spec.js @@ -276,6 +276,27 @@ describe('codecs test suite', () => { }); }); + describe('MPEG2', () => { + /** @type {ProbeInfo} */ + let info; + + beforeEach(() => { + info = { + format: { format_name: 'matroska,webm' }, + streams: [{ + codec_type: 'video', + codec_name: 'mpeg2video', + }], + }; + }); + + it('detects mpeg2video', () => { + expect(getFullMIMEString(info)) + .to.be.a('string') + .and.equals('video/webm; codecs="mpeg2video"'); + }); + }); + describe('MP4A / AAC', () => { /** @type {ProbeInfo} */ let info; @@ -355,7 +376,7 @@ describe('codecs test suite', () => { }); }); - describe('MPEG2', () => { + describe('AC-3', () => { /** @type {ProbeInfo} */ let info; @@ -363,16 +384,16 @@ describe('codecs test suite', () => { info = { format: { format_name: 'matroska,webm' }, streams: [{ - codec_type: 'video', - codec_name: 'mpeg2video', + codec_type: 'audio', + codec_name: 'ac3', }], }; }); - it('detects mpeg2video', () => { + it('detects AC-3', () => { expect(getFullMIMEString(info)) .to.be.a('string') - .and.equals('video/webm; codecs="mpeg2video"'); + .and.equals('audio/webm; codecs="ac-3"'); }); }); });