From 0f9dc1f91bcc24109ef1ed81bf5d790ba26e98cd Mon Sep 17 00:00:00 2001 From: jepcd <36898190+jepcd@users.noreply.github.com> Date: Mon, 24 Aug 2026 08:12:04 -0400 Subject: [PATCH 1/5] Fix tenc fallback for encrypted ISOBMFF files (#470) * fix tenc fallback * Add test case --------- Co-authored-by: Vanilagy <1696106+Vanilagy@users.noreply.github.com> --- src/isobmff/isobmff-demuxer.ts | 44 +++++++++++++----- test/browser/read-mp4.test.ts | 27 +++++++++++ ...5-b752f7ad-7ce8-43c2-8ae9-88e74c6ae696.mp4 | Bin 0 -> 202607 bytes 3 files changed, 60 insertions(+), 11 deletions(-) create mode 100644 test/browser/read-mp4.test.ts create mode 100755 test/public/639955605-b752f7ad-7ce8-43c2-8ae9-88e74c6ae696.mp4 diff --git a/src/isobmff/isobmff-demuxer.ts b/src/isobmff/isobmff-demuxer.ts index 814dc8e..ddaaafa 100644 --- a/src/isobmff/isobmff-demuxer.ts +++ b/src/isobmff/isobmff-demuxer.ts @@ -3151,17 +3151,24 @@ abstract class IsobmffTrackBacking implements InputTrackBacking { data = readBytes(slice, sampleInfo.sampleSize); - if (this.internalTrack.encryptionAuxInfo) { - assert(this.internalTrack.encryptionInfo); + if (this.internalTrack.encryptionInfo) { + let sampleEncryption: SampleEncryptionInfo | null = null; - const entries = await resolveEncryptionAuxInfo( - this.internalTrack.demuxer.reader, - this.internalTrack.encryptionInfo, - this.internalTrack.encryptionAuxInfo, - ); + if (this.internalTrack.encryptionAuxInfo) { + const entries = await resolveEncryptionAuxInfo( + this.internalTrack.demuxer.reader, + this.internalTrack.encryptionInfo, + this.internalTrack.encryptionAuxInfo, + ); - if (sampleIndex < entries.length) { - data = await decryptSample(this.internalTrack, entries[sampleIndex]!, data, null); + if (sampleIndex < entries.length) { + sampleEncryption = entries[sampleIndex]!; + } + } + + sampleEncryption ??= getDefaultSampleEncryption(this.internalTrack.encryptionInfo); + if (sampleEncryption) { + data = await decryptSample(this.internalTrack, sampleEncryption, data, null); } } } @@ -3207,8 +3214,12 @@ abstract class IsobmffTrackBacking implements InputTrackBacking { data = readBytes(slice, fragmentSample.byteSize); - if (fragmentSample.encryption) { - data = await decryptSample(this.internalTrack, fragmentSample.encryption, data, fragment); + if (this.internalTrack.encryptionInfo) { + const sampleEncryption = fragmentSample.encryption + ?? getDefaultSampleEncryption(this.internalTrack.encryptionInfo); + if (sampleEncryption) { + data = await decryptSample(this.internalTrack, sampleEncryption, data, fragment); + } } } @@ -3779,6 +3790,17 @@ const resolveEncryptionAuxInfo = async ( return entries; }; +const getDefaultSampleEncryption = (encryptionInfo: TrackEncryptionInfo): SampleEncryptionInfo | null => { + if (!encryptionInfo.defaultConstantIv) { + return null; + } + + return { + iv: encryptionInfo.defaultConstantIv, + subsamples: null, + }; +}; + const decryptSample = async ( track: InternalTrack, sampleEncryption: SampleEncryptionInfo, diff --git a/test/browser/read-mp4.test.ts b/test/browser/read-mp4.test.ts new file mode 100644 index 0000000..de0aa4a --- /dev/null +++ b/test/browser/read-mp4.test.ts @@ -0,0 +1,27 @@ +import { expect, test } from 'vitest'; +import { Input } from '../../src/input.js'; +import { UrlSource } from '../../src/source.js'; +import { ALL_FORMATS } from '../../src/input-format.js'; +import { AudioSampleSink } from '../../src/media-sink.js'; +import { assert } from '../../src/misc.js'; + +test('Encrypted MP4 without senc', async () => { + using input = new Input({ + source: new UrlSource('/639955605-b752f7ad-7ce8-43c2-8ae9-88e74c6ae696.mp4'), + formats: ALL_FORMATS, + formatOptions: { + isobmff: { + resolveKeyId: () => 'aabbccddeeff00112233445566778899', + }, + }, + }); + + const audioTrack = await input.getPrimaryAudioTrack(); + assert(audioTrack); + + // Test that it can decode + const sink = new AudioSampleSink(audioTrack); + using firstSample = await sink.getSample(0); + assert(firstSample); + expect(firstSample.timestamp).toBe(0); +}); diff --git a/test/public/639955605-b752f7ad-7ce8-43c2-8ae9-88e74c6ae696.mp4 b/test/public/639955605-b752f7ad-7ce8-43c2-8ae9-88e74c6ae696.mp4 new file mode 100755 index 0000000000000000000000000000000000000000..d5c3b2ae850a071a875dd071360df79f3d9f49b6 GIT binary patch literal 202607 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≤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%0D(iL^AmW;9?Ru?bX!a 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 JM0fz${tJz3ySV@W literal 0 HcmV?d00001 From 14fb7d01190fdce8895cd02cf60385233c055a82 Mon Sep 17 00:00:00 2001 From: Vanilagy <1696106+Vanilagy@users.noreply.github.com> Date: Wed, 26 Aug 2026 11:24:24 +0200 Subject: [PATCH 2/5] Add ducktyped Promise checks (fixes #472) --- src/adts/adts-demuxer.ts | 11 +++++----- src/aes.ts | 4 ++-- src/flac/flac-demuxer.ts | 15 +++++++------- src/input-format.ts | 32 ++++++++++++++--------------- src/input-track.ts | 18 ++++++++-------- src/isobmff/isobmff-demuxer.ts | 23 +++++++++++---------- src/matroska/ebml.ts | 6 +++--- src/matroska/matroska-demuxer.ts | 27 ++++++++++++------------ src/media-source.ts | 5 +++-- src/misc.ts | 14 +++++++++++++ src/mp3/mp3-demuxer.ts | 15 +++++++------- src/mp3/mp3-reader.ts | 3 ++- src/mpeg-ts/mpeg-ts-demuxer.ts | 35 ++++++++++++++++---------------- src/ogg/ogg-demuxer.ts | 17 ++++++++-------- src/output.ts | 17 ++++++++++++---- src/reader.ts | 8 ++++---- src/sample.ts | 7 ++++--- src/source.ts | 15 +++++++------- src/wave/wave-demuxer.ts | 18 ++++++++-------- 19 files changed, 162 insertions(+), 128 deletions(-) diff --git a/src/adts/adts-demuxer.ts b/src/adts/adts-demuxer.ts index d39427f..96423e2 100644 --- a/src/adts/adts-demuxer.ts +++ b/src/adts/adts-demuxer.ts @@ -23,6 +23,7 @@ import { AsyncMutex, binarySearchExact, binarySearchLessOrEqual, + isThenable, UNDETERMINED_LANGUAGE, } from '../misc'; import { EncodedPacket, PLACEHOLDER_DATA } from '../packet'; @@ -84,7 +85,7 @@ export class AdtsDemuxer extends Demuxer { // Skip all ID3v2 tags at the start of the file while (true) { let slice = this.reader.requestSlice(this.lastLoadedPos, ID3_V2_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { this.lastSampleLoaded = true; @@ -105,7 +106,7 @@ export class AdtsDemuxer extends Demuxer { MIN_ADTS_FRAME_HEADER_SIZE, MAX_ADTS_FRAME_HEADER_SIZE, ); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { this.lastSampleLoaded = true; return; @@ -167,7 +168,7 @@ export class AdtsDemuxer extends Demuxer { while (true) { let headerSlice = this.reader.requestSlice(currentPos, ID3_V2_HEADER_SIZE); - if (headerSlice instanceof Promise) headerSlice = await headerSlice; + if (isThenable(headerSlice)) headerSlice = await headerSlice; if (!headerSlice) break; const id3V2Header = readId3V2Header(headerSlice); @@ -176,7 +177,7 @@ export class AdtsDemuxer extends Demuxer { } let contentSlice = this.reader.requestSlice(headerSlice.filePos, id3V2Header.size); - if (contentSlice instanceof Promise) contentSlice = await contentSlice; + if (isThenable(contentSlice)) contentSlice = await contentSlice; if (!contentSlice) break; parseId3V2Tag(contentSlice, id3V2Header, this.metadataTags); @@ -306,7 +307,7 @@ class AdtsAudioTrackBacking implements InputAudioTrackBacking { data = PLACEHOLDER_DATA; } else { let slice = this.demuxer.reader.requestSlice(rawSample.dataStart, rawSample.dataSize); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { return null; // Data didn't fit into the rest of the file diff --git a/src/aes.ts b/src/aes.ts index 4a54618..50bf2b2 100644 --- a/src/aes.ts +++ b/src/aes.ts @@ -6,7 +6,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { assert, MaybePromise } from './misc'; +import { assert, isThenable, MaybePromise } from './misc'; import { readBytes, Reader } from './reader'; // Inspired in part by https://github.com/halloweeks/AES-128-CBC/blob/main/AES_128_CBC.h @@ -258,7 +258,7 @@ export const createAes128CbcDecryptStream = ( const requestedLength = CHUNK_SIZE + BLOCK_SIZE; let nextSlice = reader.requestSliceRange(pos, 0, requestedLength); - if (nextSlice instanceof Promise) nextSlice = await nextSlice; + if (isThenable(nextSlice)) nextSlice = await nextSlice; if (!nextSlice || nextSlice.length === 0) { // Due to padding, this should never happen throw new Error('Invalid ciphertext.'); diff --git a/src/flac/flac-demuxer.ts b/src/flac/flac-demuxer.ts index 2334ce5..7a581d0 100644 --- a/src/flac/flac-demuxer.ts +++ b/src/flac/flac-demuxer.ts @@ -15,6 +15,7 @@ import { assert, AsyncMutex, binarySearchLessOrEqual, + isThenable, textDecoder, UNDETERMINED_LANGUAGE, } from '../misc'; @@ -108,7 +109,7 @@ export class FlacDemuxer extends Demuxer { let currentPos = 0; while (true) { let headerSlice = this.reader.requestSlice(currentPos, ID3_V2_HEADER_SIZE); - if (headerSlice instanceof Promise) headerSlice = await headerSlice; + if (isThenable(headerSlice)) headerSlice = await headerSlice; if (!headerSlice) { this.lastSampleLoaded = true; @@ -121,7 +122,7 @@ export class FlacDemuxer extends Demuxer { } let contentSlice = this.reader.requestSlice(headerSlice.filePos, id3V2Header.size); - if (contentSlice instanceof Promise) contentSlice = await contentSlice; + if (isThenable(contentSlice)) contentSlice = await contentSlice; assert(contentSlice); parseId3V2Tag(contentSlice, id3V2Header, this.metadataTags); @@ -136,7 +137,7 @@ export class FlacDemuxer extends Demuxer { || currentPos < this.reader.fileSize ) { let sizeSlice = this.reader.requestSlice(currentPos, 4); - if (sizeSlice instanceof Promise) sizeSlice = await sizeSlice; + if (isThenable(sizeSlice)) sizeSlice = await sizeSlice; currentPos += 4; if (sizeSlice === null) { @@ -160,7 +161,7 @@ export class FlacDemuxer extends Demuxer { currentPos, size, ); - if (streamInfoBlock instanceof Promise) streamInfoBlock = await streamInfoBlock; + if (isThenable(streamInfoBlock)) streamInfoBlock = await streamInfoBlock; assert(streamInfoBlock); if (streamInfoBlock === null) { @@ -219,7 +220,7 @@ export class FlacDemuxer extends Demuxer { currentPos, size, ); - if (vorbisCommentBlock instanceof Promise) vorbisCommentBlock = await vorbisCommentBlock; + if (isThenable(vorbisCommentBlock)) vorbisCommentBlock = await vorbisCommentBlock; assert(vorbisCommentBlock); @@ -237,7 +238,7 @@ export class FlacDemuxer extends Demuxer { currentPos, size, ); - if (pictureBlock instanceof Promise) pictureBlock = await pictureBlock; + if (isThenable(pictureBlock)) pictureBlock = await pictureBlock; assert(pictureBlock); const pictureType = readU32Be(pictureBlock); @@ -775,7 +776,7 @@ class FlacAudioTrackBacking implements InputAudioTrackBacking { rawSample.byteOffset, rawSample.byteSize, ); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { return null; // Data didn't fit into the rest of the file diff --git a/src/input-format.ts b/src/input-format.ts index b61adeb..5ce740e 100644 --- a/src/input-format.ts +++ b/src/input-format.ts @@ -36,7 +36,7 @@ import { TS_PACKET_SIZE } from './mpeg-ts/mpeg-ts-misc'; import { HlsDemuxer } from './hls/hls-demuxer'; import { HLS_MIME_TYPE } from './hls/hls-misc'; import { PathedSource } from './source'; -import { MaybePromise } from './misc'; +import { isThenable, MaybePromise } from './misc'; /** * Base class representing an input media file format. @@ -75,7 +75,7 @@ export abstract class IsobmffInputFormat extends InputFormat { /** @internal */ protected async _getMajorBrand(input: Input) { let slice = input._reader.requestSlice(0, 12); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return null; slice.skip(4); @@ -117,7 +117,7 @@ export class Mp4InputFormat extends IsobmffInputFormat { } let slice = input._reader.requestSlice(4, 4); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return false; const fourCc = readAscii(slice, 4); @@ -169,7 +169,7 @@ export class MatroskaInputFormat extends InputFormat { /** @internal */ protected async isSupportedEBMLOfDocType(input: Input, desiredDocType: string) { let headerSlice = input._reader.requestSlice(0, MAX_HEADER_SIZE); - if (headerSlice instanceof Promise) headerSlice = await headerSlice; + if (isThenable(headerSlice)) headerSlice = await headerSlice; if (!headerSlice) return false; const varIntSize = readVarIntSize(headerSlice); @@ -192,7 +192,7 @@ export class MatroskaInputFormat extends InputFormat { } let dataSlice = input._reader.requestSlice(headerSlice.filePos, dataSize); - if (dataSlice instanceof Promise) dataSlice = await dataSlice; + if (isThenable(dataSlice)) dataSlice = await dataSlice; if (!dataSlice) return false; const startPos = headerSlice.filePos; @@ -295,7 +295,7 @@ export class Mp3InputFormat extends InputFormat { while (true) { let slice = input._reader.requestSlice(currentPos, ID3_V2_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const id3V2Header = readId3V2Header(slice); @@ -315,7 +315,7 @@ export class Mp3InputFormat extends InputFormat { const xingOffset = getXingOffset(firstHeader.mpegVersionId, firstHeader.channel); let slice = input._reader.requestSlice(firstResult.startPos + xingOffset, 4); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return false; const word = readU32Be(slice); @@ -376,7 +376,7 @@ export class WaveInputFormat extends InputFormat { /** @internal */ async _canReadInput(input: Input) { let slice = input._reader.requestSlice(0, 12); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return false; const riffType = readAscii(slice, 4); @@ -416,7 +416,7 @@ export class OggInputFormat extends InputFormat { /** @internal */ async _canReadInput(input: Input) { let slice = input._reader.requestSlice(0, 4); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return false; return readAscii(slice, 4) === 'OggS'; @@ -451,7 +451,7 @@ export class FlacInputFormat extends InputFormat { // There might be ID3v2 headers at the start, skip 'em while (true) { let slice = input._reader.requestSlice(currentPos, ID3_V2_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const id3V2Header = readId3V2Header(slice); @@ -463,7 +463,7 @@ export class FlacInputFormat extends InputFormat { } let slice = input._reader.requestSlice(currentPos, 4); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return false; return readAscii(slice, 4) === 'fLaC'; @@ -498,7 +498,7 @@ export class AdtsInputFormat extends InputFormat { while (true) { let slice = input._reader.requestSlice(currentPos, ID3_V2_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const id3V2Header = readId3V2Header(slice); @@ -514,7 +514,7 @@ export class AdtsInputFormat extends InputFormat { MIN_ADTS_FRAME_HEADER_SIZE, MAX_ADTS_FRAME_HEADER_SIZE, ); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return false; const firstHeader = readAdtsFrameHeader(slice); @@ -529,7 +529,7 @@ export class AdtsInputFormat extends InputFormat { MIN_ADTS_FRAME_HEADER_SIZE, MAX_ADTS_FRAME_HEADER_SIZE, ); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return false; const secondHeader = readAdtsFrameHeader(slice); @@ -573,7 +573,7 @@ export class MpegTsInputFormat extends InputFormat { async _canReadInput(input: Input) { const lengthToCheck = TS_PACKET_SIZE + 16 + 1; let slice = input._reader.requestSlice(0, lengthToCheck); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return false; const bytes = readBytes(slice, lengthToCheck); @@ -618,7 +618,7 @@ export class HlsInputFormat extends InputFormat { /** @internal */ async _canReadInput(input: Input) { let slice = input._reader.requestSlice(0, 7); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return false; const isM3u8 = readAscii(slice, 7) === '#EXTM3U'; diff --git a/src/input-track.ts b/src/input-track.ts index 2a6400d..f1b6a16 100644 --- a/src/input-track.ts +++ b/src/input-track.ts @@ -12,7 +12,7 @@ import { customAudioDecoders, customVideoDecoders } from './custom-coder'; import { Input } from './input'; import { Logging } from './logging'; import { EncodedPacketSink, PacketRetrievalOptions } from './media-sink'; -import { assert, MaybePromise, Rational, Rotation, roundToDivisor, simplifyRational } from './misc'; +import { assert, isThenable, MaybePromise, Rational, Rotation, roundToDivisor, simplifyRational } from './misc'; import { TrackType } from './output'; import { EncodedPacket, PacketType } from './packet'; import { TrackDisposition } from './metadata'; @@ -528,7 +528,7 @@ export abstract class InputTrack { } const requireSync = (value: MaybePromise, getterName: string, asyncName: string): T => { - if (value instanceof Promise) { + if (isThenable(value)) { throw new Error( `'${getterName}' is deprecated and not available synchronously for this track. Use the preferred` + ` '${asyncName}()' instead.`, @@ -554,7 +554,7 @@ const toValidatedPredicate = ( }; const result = predicate(track); - if (result instanceof Promise) { + if (isThenable(result)) { return result.then(handle); } return handle(result); @@ -1225,7 +1225,7 @@ export const toValidatedInputTrackQuery = ( }; const result = query.filter!(track); - if (result instanceof Promise) { + if (isThenable(result)) { return result.then(handle); } else { return handle(result); @@ -1248,7 +1248,7 @@ export const toValidatedInputTrackQuery = ( }; const result = query.sortBy!(track); - if (result instanceof Promise) { + if (isThenable(result)) { return result.then(handle); } else { return handle(result); @@ -1274,7 +1274,7 @@ export const mergeInputTrackQueries = ( return queryB?.filter?.(track) ?? true; }; - if (resultA instanceof Promise) { + if (isThenable(resultA)) { return resultA.then(handleResultA); } else { return handleResultA(resultA); @@ -1294,7 +1294,7 @@ export const mergeInputTrackQueries = ( ]; }; - if (resultA instanceof Promise || resultB instanceof Promise) { + if (isThenable(resultA) || isThenable(resultB)) { return Promise.all([resultA, resultB]).then(([resultA, resultB]) => { return join(resultA, resultB); }); @@ -1313,7 +1313,7 @@ export const queryInputTracks = async ( let matched = tracks; if (query?.filter) { const filterMatches = tracks.map(t => query.filter!(t)); - const hasAsyncFilter = filterMatches.some(x => x instanceof Promise); + const hasAsyncFilter = filterMatches.some(x => isThenable(x)); if (hasAsyncFilter) { // eslint-disable-next-line @typescript-eslint/await-thenable const resolvedFilterMatches = await Promise.all(filterMatches); @@ -1328,7 +1328,7 @@ export const queryInputTracks = async ( } const sortValues = matched.map(t => query.sortBy!(t)); - const hasAsyncSort = sortValues.some(x => x instanceof Promise); + const hasAsyncSort = sortValues.some(x => isThenable(x)); const resolvedSortValues = hasAsyncSort // eslint-disable-next-line @typescript-eslint/await-thenable ? await Promise.all(sortValues) diff --git a/src/isobmff/isobmff-demuxer.ts b/src/isobmff/isobmff-demuxer.ts index ddaaafa..2f9ba57 100644 --- a/src/isobmff/isobmff-demuxer.ts +++ b/src/isobmff/isobmff-demuxer.ts @@ -58,6 +58,7 @@ import { COLOR_PRIMARIES_MAP_INVERSE, findLastIndex, isIso639Dash2LanguageCode, + isThenable, last, MATRIX_COEFFICIENTS_MAP_INVERSE, normalizeRotation, @@ -364,7 +365,7 @@ export class IsobmffDemuxer extends Demuxer { while (true) { let slice = this.reader.requestSliceRange(currentPos, MIN_BOX_HEADER_SIZE, MAX_BOX_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const startPos = currentPos; @@ -380,7 +381,7 @@ export class IsobmffDemuxer extends Demuxer { // Found moov, load it let moovSlice = this.reader.requestSlice(slice.filePos, boxInfo.contentSize); - if (moovSlice instanceof Promise) moovSlice = await moovSlice; + if (isThenable(moovSlice)) moovSlice = await moovSlice; if (!moovSlice) break; this.moovSlice = moovSlice; @@ -431,7 +432,7 @@ export class IsobmffDemuxer extends Demuxer { // The last 4 bytes may contain the size of the mfra box at the end of the file let lastWordSlice = this.reader.requestSlice(this.reader.fileSize - 4, 4); - if (lastWordSlice instanceof Promise) lastWordSlice = await lastWordSlice; + if (isThenable(lastWordSlice)) lastWordSlice = await lastWordSlice; assert(lastWordSlice); const lastWord = readU32Be(lastWordSlice); @@ -443,7 +444,7 @@ export class IsobmffDemuxer extends Demuxer { MIN_BOX_HEADER_SIZE, MAX_BOX_HEADER_SIZE, ); - if (mfraHeaderSlice instanceof Promise) mfraHeaderSlice = await mfraHeaderSlice; + if (isThenable(mfraHeaderSlice)) mfraHeaderSlice = await mfraHeaderSlice; if (mfraHeaderSlice) { const boxInfo = readBoxHeader(mfraHeaderSlice); @@ -451,7 +452,7 @@ export class IsobmffDemuxer extends Demuxer { if (boxInfo && boxInfo.name === 'mfra') { // We found the mfra box, allowing for much better random access. Let's parse it. let mfraSlice = this.reader.requestSlice(mfraHeaderSlice.filePos, boxInfo.contentSize); - if (mfraSlice instanceof Promise) mfraSlice = await mfraSlice; + if (isThenable(mfraSlice)) mfraSlice = await mfraSlice; if (mfraSlice) { this.readContiguousBoxes(mfraSlice); @@ -678,14 +679,14 @@ export class IsobmffDemuxer extends Demuxer { } let headerSlice = this.reader.requestSliceRange(startPos, MIN_BOX_HEADER_SIZE, MAX_BOX_HEADER_SIZE); - if (headerSlice instanceof Promise) headerSlice = await headerSlice; + if (isThenable(headerSlice)) headerSlice = await headerSlice; assert(headerSlice); const moofBoxInfo = readBoxHeader(headerSlice); assert(moofBoxInfo?.name === 'moof'); let entireSlice = this.reader.requestSlice(startPos, moofBoxInfo.totalSize); - if (entireSlice instanceof Promise) entireSlice = await entireSlice; + if (isThenable(entireSlice)) entireSlice = await entireSlice; assert(entireSlice); this.traverseBox(entireSlice); @@ -3144,7 +3145,7 @@ abstract class IsobmffTrackBacking implements InputTrackBacking { sampleInfo.sampleOffset, sampleInfo.sampleSize, ); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { return null; // Data is outside } @@ -3207,7 +3208,7 @@ abstract class IsobmffTrackBacking implements InputTrackBacking { fragmentSample.byteOffset, fragmentSample.byteSize, ); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { return null; // Data is outside } @@ -3321,7 +3322,7 @@ abstract class IsobmffTrackBacking implements InputTrackBacking { // Load the header let slice = demuxer.reader.requestSliceRange(currentPos, MIN_BOX_HEADER_SIZE, MAX_BOX_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const boxStartPos = currentPos; @@ -3748,7 +3749,7 @@ const resolveEncryptionAuxInfo = async ( } let slice = reader.requestSlice(aux.offset, totalSize); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { throw new Error('Failed to read auxiliary encryption info.'); } diff --git a/src/matroska/ebml.ts b/src/matroska/ebml.ts index 6cc5a88..6c93e16 100644 --- a/src/matroska/ebml.ts +++ b/src/matroska/ebml.ts @@ -7,7 +7,7 @@ */ import { MediaCodec } from '../codec'; -import { assert, assertNever, textDecoder, textEncoder } from '../misc'; +import { assert, assertNever, isThenable, textDecoder, textEncoder } from '../misc'; import { FileSlice, readBytes, Reader, readF32Be, readF64Be, readU8 } from '../reader'; import { Writer } from '../writer'; @@ -688,7 +688,7 @@ export const searchForNextElementId = async ( while (until === null || currentPos < until) { let slice = reader.requestSliceRange(currentPos, MIN_HEADER_SIZE, MAX_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const elementHeader = readElementHeader(slice); @@ -716,7 +716,7 @@ export const resync = async (reader: Reader, startPos: number, ids: EBMLId[], un while (currentPos < until) { let slice = reader.requestSliceRange(currentPos, 0, Math.min(CHUNK_SIZE, until - currentPos)); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; if (slice.length < MAX_VAR_INT_SIZE) break; diff --git a/src/matroska/matroska-demuxer.ts b/src/matroska/matroska-demuxer.ts index 9fbbc3f..8f397c1 100644 --- a/src/matroska/matroska-demuxer.ts +++ b/src/matroska/matroska-demuxer.ts @@ -42,6 +42,7 @@ import { COLOR_PRIMARIES_MAP_INVERSE, findLastIndex, isIso639Dash2LanguageCode, + isThenable, last, MATRIX_COEFFICIENTS_MAP_INVERSE, normalizeRotation, @@ -334,7 +335,7 @@ export class MatroskaDemuxer extends Demuxer { // Loop over all top-level elements in the file while (true) { let slice = this.reader.requestSliceRange(currentPos, MIN_HEADER_SIZE, MAX_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const header = readElementHeader(slice); @@ -350,7 +351,7 @@ export class MatroskaDemuxer extends Demuxer { assertDefinedSize(size); let slice = this.reader.requestSlice(dataStartPos, size); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; this.readContiguousElements(slice); @@ -433,7 +434,7 @@ export class MatroskaDemuxer extends Demuxer { while (this.currentSegment.elementEndPos === null || currentPos < this.currentSegment.elementEndPos) { let slice = this.reader.requestSliceRange(currentPos, MIN_HEADER_SIZE, MAX_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const elementStartPos = currentPos; @@ -468,7 +469,7 @@ export class MatroskaDemuxer extends Demuxer { assertDefinedSize(size); let slice = this.reader.requestSlice(dataStartPos, size); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (slice) { this.readContiguousElements(slice); @@ -484,7 +485,7 @@ export class MatroskaDemuxer extends Demuxer { assertDefinedSize(size); let slice = this.reader.requestSlice(dataStartPos, size); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (slice) { this.readContiguousElements(slice); @@ -519,7 +520,7 @@ export class MatroskaDemuxer extends Demuxer { MIN_HEADER_SIZE, MAX_HEADER_SIZE, ); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) continue; const header = readElementHeader(slice); @@ -533,7 +534,7 @@ export class MatroskaDemuxer extends Demuxer { this.currentSegment[target.flag] = true; let dataSlice = this.reader.requestSlice(slice.filePos, size); - if (dataSlice instanceof Promise) dataSlice = await dataSlice; + if (isThenable(dataSlice)) dataSlice = await dataSlice; if (!dataSlice) continue; this.readContiguousElements(dataSlice); @@ -608,7 +609,7 @@ export class MatroskaDemuxer extends Demuxer { } let headerSlice = this.reader.requestSliceRange(startPos, MIN_HEADER_SIZE, MAX_HEADER_SIZE); - if (headerSlice instanceof Promise) headerSlice = await headerSlice; + if (isThenable(headerSlice)) headerSlice = await headerSlice; assert(headerSlice); const elementStartPos = startPos; @@ -637,7 +638,7 @@ export class MatroskaDemuxer extends Demuxer { // Load the entire cluster let dataSlice = this.reader.requestSlice(dataStartPos, size); - if (dataSlice instanceof Promise) dataSlice = await dataSlice; + if (isThenable(dataSlice)) dataSlice = await dataSlice; const cluster: Cluster = { segment, @@ -894,7 +895,7 @@ export class MatroskaDemuxer extends Demuxer { MIN_HEADER_SIZE, MAX_HEADER_SIZE, ); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) continue; const header = readElementHeader(slice); @@ -907,7 +908,7 @@ export class MatroskaDemuxer extends Demuxer { this.currentSegment = segment; let dataSlice = this.reader.requestSlice(slice.filePos, size); - if (dataSlice instanceof Promise) dataSlice = await dataSlice; + if (isThenable(dataSlice)) dataSlice = await dataSlice; if (dataSlice) { this.readContiguousElements(dataSlice); } @@ -2347,7 +2348,7 @@ abstract class MatroskaTrackBacking implements InputTrackBacking { // Load the header let slice = demuxer.reader.requestSliceRange(currentPos, MIN_HEADER_SIZE, MAX_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const elementStartPos = currentPos; @@ -2418,7 +2419,7 @@ abstract class MatroskaTrackBacking implements InputTrackBacking { // the first segment. let slice = demuxer.reader.requestSliceRange(endPos, MIN_HEADER_SIZE, MAX_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const elementId = readElementId(slice); diff --git a/src/media-source.ts b/src/media-source.ts index c724b96..8d82533 100644 --- a/src/media-source.ts +++ b/src/media-source.ts @@ -28,6 +28,7 @@ import { clamp, clearIntervalUnthrottled, floorToDivisor, + isThenable, last, missingWebCodecsClassMessage, promiseWithResolvers, @@ -426,7 +427,7 @@ class VideoEncoderWrapper { // Apply the user-defined process function, if any if (config.transform?.process) { let processed = config.transform.process(videoSample); - if (processed instanceof Promise) { + if (isThenable(processed)) { processed = await processed; } @@ -1937,7 +1938,7 @@ class AudioEncoderWrapper { if (config.transform?.process) { try { let processed = config.transform.process(audioSample); - if (processed instanceof Promise) { + if (isThenable(processed)) { processed = await processed; } diff --git a/src/misc.ts b/src/misc.ts index 3b0d98a..3a247d3 100644 --- a/src/misc.ts +++ b/src/misc.ts @@ -738,6 +738,20 @@ export const missingWebCodecsClassMessage = (className: string) => { */ export type MaybePromise = T | Promise; +const NativePromiseConstructor = /* #__PURE__ */ (async () => {})().constructor as PromiseConstructor; + +/** + * Needed to properly deal with custom Promise implementations and because this is closer to how the JS spec does it. + */ +export const isThenable = (value: MaybePromise): value is Promise => { + if (value instanceof NativePromiseConstructor || value instanceof Promise) { + return true; + } + + // Fall back to a crude duck typing check + return typeof (value as PromiseLike | null | undefined)?.then === 'function'; +}; + /** Acts like `??` except the condition is -1 and not null/undefined. */ export const coalesceIndex = (a: number, b: number) => { return a !== -1 ? a : b; diff --git a/src/mp3/mp3-demuxer.ts b/src/mp3/mp3-demuxer.ts index 48b3dd0..a89d222 100644 --- a/src/mp3/mp3-demuxer.ts +++ b/src/mp3/mp3-demuxer.ts @@ -17,6 +17,7 @@ import { AsyncMutex, binarySearchExact, binarySearchLessOrEqual, + isThenable, toDataView, UNDETERMINED_LANGUAGE, } from '../misc'; @@ -102,7 +103,7 @@ export class Mp3Demuxer extends Demuxer { // Let's skip all ID3v2 tags at the start of the file while (true) { let slice = this.reader.requestSlice(this.lastLoadedPos, ID3_V2_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { this.lastSampleLoaded = true; @@ -136,7 +137,7 @@ export class Mp3Demuxer extends Demuxer { const xingOffset = getXingOffset(header.mpegVersionId, header.channel); let slice = this.reader.requestSlice(result.startPos + xingOffset, 4); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (slice) { const word = readU32Be(slice); const isXing = word === XING || word === INFO; @@ -151,7 +152,7 @@ export class Mp3Demuxer extends Demuxer { if (!this.xingData) { let xingDataSlice = this.reader.requestSlice(result.startPos + xingOffset + 4, 12); - if (xingDataSlice instanceof Promise) xingDataSlice = await xingDataSlice; + if (isThenable(xingDataSlice)) xingDataSlice = await xingDataSlice; if (xingDataSlice) { const xingData = readBytes(xingDataSlice, 12); const view = toDataView(xingData); @@ -216,7 +217,7 @@ export class Mp3Demuxer extends Demuxer { while (true) { let headerSlice = this.reader.requestSlice(currentPos, ID3_V2_HEADER_SIZE); - if (headerSlice instanceof Promise) headerSlice = await headerSlice; + if (isThenable(headerSlice)) headerSlice = await headerSlice; if (!headerSlice) break; const id3V2Header = readId3V2Header(headerSlice); @@ -227,7 +228,7 @@ export class Mp3Demuxer extends Demuxer { id3V2HeaderFound = true; let contentSlice = this.reader.requestSlice(headerSlice.filePos, id3V2Header.size); - if (contentSlice instanceof Promise) contentSlice = await contentSlice; + if (isThenable(contentSlice)) contentSlice = await contentSlice; if (!contentSlice) break; parseId3V2Tag(contentSlice, id3V2Header, this.metadataTags); @@ -238,7 +239,7 @@ export class Mp3Demuxer extends Demuxer { if (!id3V2HeaderFound && this.reader.fileSize !== null && this.reader.fileSize >= ID3_V1_TAG_SIZE) { // Try reading an ID3v1 tag at the end of the file let slice = this.reader.requestSlice(this.reader.fileSize - ID3_V1_TAG_SIZE, ID3_V1_TAG_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; assert(slice); const tag = readAscii(slice, 3); @@ -388,7 +389,7 @@ class Mp3AudioTrackBacking implements InputAudioTrackBacking { data = PLACEHOLDER_DATA; } else { let slice = this.demuxer.reader.requestSlice(rawSample.dataStart, rawSample.dataSize); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { return null; // Data didn't fit into the rest of the file diff --git a/src/mp3/mp3-reader.ts b/src/mp3/mp3-reader.ts index 4897dda..29c4689 100644 --- a/src/mp3/mp3-reader.ts +++ b/src/mp3/mp3-reader.ts @@ -7,6 +7,7 @@ */ import { MP3_FRAME_HEADER_SIZE, getMp3ChannelCount, Mp3FrameHeader, readMp3FrameHeader } from '../../shared/mp3-misc'; +import { isThenable } from '../misc'; import { Reader, readU32Be } from '../reader'; export const readNextMp3FrameHeader = async ( @@ -27,7 +28,7 @@ export const readNextMp3FrameHeader = async ( : CHUNK_SIZE; let slice = reader.requestSliceRange(currentPos, MP3_FRAME_HEADER_SIZE, maxLength); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice || slice.length < MP3_FRAME_HEADER_SIZE) break; while (slice.remainingLength >= MP3_FRAME_HEADER_SIZE) { diff --git a/src/mpeg-ts/mpeg-ts-demuxer.ts b/src/mpeg-ts/mpeg-ts-demuxer.ts index 54635cd..7474a59 100644 --- a/src/mpeg-ts/mpeg-ts-demuxer.ts +++ b/src/mpeg-ts/mpeg-ts-demuxer.ts @@ -63,6 +63,7 @@ import { COLOR_PRIMARIES_MAP_INVERSE, findLastIndex, floorToMultiple, + isThenable, last, MATRIX_COEFFICIENTS_MAP_INVERSE, readExpGolomb, @@ -190,7 +191,7 @@ export class MpegTsDemuxer extends Demuxer { return this.metadataPromise ??= (async () => { const lengthToCheck = TS_PACKET_SIZE + 16 + 1; let startingSlice = this.reader.requestSlice(0, lengthToCheck); - if (startingSlice instanceof Promise) startingSlice = await startingSlice; + if (isThenable(startingSlice)) startingSlice = await startingSlice; assert(startingSlice); const startingBytes = readBytes(startingSlice, lengthToCheck); @@ -951,7 +952,7 @@ export class MpegTsDemuxer extends Demuxer { async readPacketHeader(pos: number): Promise { let slice = this.reader.requestSlice(pos, 4); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { return null; @@ -987,7 +988,7 @@ export class MpegTsDemuxer extends Demuxer { async readPacket(pos: number): Promise { // Code in here is duplicated from readPacketHeader for performance reasons let slice = this.reader.requestSlice(pos, TS_PACKET_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { return null; @@ -2099,7 +2100,7 @@ class PacketReadingContext { while (true) { let remaining = this.ensureBuffered(CHUNK_SIZE); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; if (remaining === 0) { break; @@ -2253,7 +2254,7 @@ class PacketReadingContext { while (true) { let remaining = this.ensureBuffered(CHUNK_SIZE); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; const startPos = this.currentPos; @@ -2269,7 +2270,7 @@ class PacketReadingContext { const possibleHeaderStartPos = this.currentPos; let remaining = this.ensureBuffered(MAX_ADTS_FRAME_HEADER_SIZE); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; if (remaining < MAX_ADTS_FRAME_HEADER_SIZE) { return; @@ -2282,7 +2283,7 @@ class PacketReadingContext { this.seekTo(possibleHeaderStartPos); let remaining = this.ensureBuffered(header.frameLength); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; return this.supplyPacket( remaining, @@ -2300,7 +2301,7 @@ class PacketReadingContext { const possibleHeaderStartPos = this.currentPos; let remaining = this.ensureBuffered(MP3_FRAME_HEADER_SIZE); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; if (remaining < MP3_FRAME_HEADER_SIZE) { return; @@ -2314,7 +2315,7 @@ class PacketReadingContext { this.seekTo(possibleHeaderStartPos); let remaining = this.ensureBuffered(result.header.totalSize); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; const duration = result.header.audioSamplesInFrame * TIMESCALE / elementaryStream.info.sampleRate; @@ -2332,7 +2333,7 @@ class PacketReadingContext { // Need at least 5 bytes for sync word + CRC + fscod/frmsizecod let remaining = this.ensureBuffered(5); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; if (remaining < 5) { return; @@ -2361,7 +2362,7 @@ class PacketReadingContext { this.seekTo(possibleSyncPos); remaining = this.ensureBuffered(frameSize); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; const duration = Math.round( AC3_SAMPLES_PER_FRAME * TIMESCALE / elementaryStream.info.sampleRate, @@ -2377,7 +2378,7 @@ class PacketReadingContext { // Need at least 5 bytes for E-AC-3 header parsing (sync word + frmsiz + fscod/numblkscod) let remaining = this.ensureBuffered(5); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; if (remaining < 5) { return; @@ -2399,7 +2400,7 @@ class PacketReadingContext { this.seekTo(possibleSyncPos); remaining = this.ensureBuffered(frameSize); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; // Duration = numblks * 256 samples per block const samplesPerFrame = numblks * 256; @@ -2416,7 +2417,7 @@ class PacketReadingContext { const possibleSyncPos = this.currentPos; let remaining = this.ensureBuffered(DTS_CORE_FRAME_HEADER_SIZE); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; if (remaining < DTS_CORE_FRAME_HEADER_SIZE) { return; @@ -2438,7 +2439,7 @@ class PacketReadingContext { const headerBound = Math.min(leadingExss.frameSize, DTS_EXSS_MAX_HEADER_SIZE); let remaining = this.ensureBuffered(headerBound); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; leadingExss = parseDtsExssHeader(this.readBytes(remaining)) ?? leadingExss; } @@ -2456,7 +2457,7 @@ class PacketReadingContext { const neededBytes = nextSubstreamPos + DTS_EXSS_HEADER_PREFIX_SIZE; let remaining = this.ensureBuffered(neededBytes); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; if (remaining < neededBytes) { break; @@ -2484,7 +2485,7 @@ class PacketReadingContext { this.seekTo(possibleSyncPos); remaining = this.ensureBuffered(frameSize); - if (remaining instanceof Promise) remaining = await remaining; + if (isThenable(remaining)) remaining = await remaining; const duration = Math.round( sampleCount * TIMESCALE / elementaryStream.info.sampleRate, diff --git a/src/ogg/ogg-demuxer.ts b/src/ogg/ogg-demuxer.ts index b3fe01e..70ab3b8 100644 --- a/src/ogg/ogg-demuxer.ts +++ b/src/ogg/ogg-demuxer.ts @@ -18,6 +18,7 @@ import { AsyncMutex, binarySearchLessOrEqual, findLast, + isThenable, last, roundIfAlmostInteger, toDataView, @@ -72,7 +73,7 @@ export class OggDemuxer extends Demuxer { while (true) { let slice = this.reader.requestSliceRange(currentPos, MIN_PAGE_HEADER_SIZE, MAX_PAGE_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const page = readPageHeader(slice); @@ -274,7 +275,7 @@ export class OggDemuxer extends Demuxer { while (true) { // Load the entire page data let pageSlice = this.reader.requestSlice(currentPage.dataStartPos, currentPage.dataSize); - if (pageSlice instanceof Promise) pageSlice = await pageSlice; + if (isThenable(pageSlice)) pageSlice = await pageSlice; assert(pageSlice); const pageData = readBytes(pageSlice, currentPage.dataSize); @@ -299,7 +300,7 @@ export class OggDemuxer extends Demuxer { let currentPos = currentPage.headerStartPos + currentPage.totalSize; while (true) { let headerSlice = this.reader.requestSliceRange(currentPos, MIN_PAGE_HEADER_SIZE, MAX_PAGE_HEADER_SIZE); - if (headerSlice instanceof Promise) headerSlice = await headerSlice; + if (isThenable(headerSlice)) headerSlice = await headerSlice; if (!headerSlice) { return null; } @@ -358,7 +359,7 @@ export class OggDemuxer extends Demuxer { let currentPos = lastPacket.endPage.headerStartPos + lastPacket.endPage.totalSize; while (true) { let slice = this.reader.requestSliceRange(currentPos, MIN_PAGE_HEADER_SIZE, MAX_PAGE_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { return null; } @@ -658,7 +659,7 @@ class OggAudioTrackBacking implements InputAudioTrackBacking { ); let searchSlice = this.demuxer.reader.requestSlice(searchStartPos, until - searchStartPos); - if (searchSlice instanceof Promise) searchSlice = await searchSlice; + if (isThenable(searchSlice)) searchSlice = await searchSlice; assert(searchSlice); const found = findNextPageHeader(searchSlice, until); @@ -672,7 +673,7 @@ class OggAudioTrackBacking implements InputAudioTrackBacking { MIN_PAGE_HEADER_SIZE, MAX_PAGE_HEADER_SIZE, ); - if (headerSlice instanceof Promise) headerSlice = await headerSlice; + if (isThenable(headerSlice)) headerSlice = await headerSlice; assert(headerSlice); const page = readPageHeader(headerSlice); @@ -685,7 +686,7 @@ class OggAudioTrackBacking implements InputAudioTrackBacking { pageValid = true; } else { let pageSlice = this.demuxer.reader.requestSlice(page.headerStartPos, page.totalSize); - if (pageSlice instanceof Promise) pageSlice = await pageSlice; + if (isThenable(pageSlice)) pageSlice = await pageSlice; assert(pageSlice); // Validate the page by checking checksum @@ -759,7 +760,7 @@ class OggAudioTrackBacking implements InputAudioTrackBacking { const nextPos = currentPage.headerStartPos + currentPage.totalSize; let slice = this.demuxer.reader.requestSliceRange(nextPos, MIN_PAGE_HEADER_SIZE, MAX_PAGE_HEADER_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; assert(slice); const nextPage = readPageHeader(slice); diff --git a/src/output.ts b/src/output.ts index 2c8329b..5a22d36 100644 --- a/src/output.ts +++ b/src/output.ts @@ -6,7 +6,16 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { assert, AsyncMutex, EventEmitter, isIso639Dash2LanguageCode, MaybePromise, Rotation, toArray } from './misc'; +import { + assert, + AsyncMutex, + EventEmitter, + isIso639Dash2LanguageCode, + isThenable, + MaybePromise, + Rotation, + toArray, +} from './misc'; import { MetadataTags, TrackDisposition, validateMetadataTags, validateTrackDisposition } from './metadata'; import { Muxer } from './muxer'; import { OutputFormat } from './output-format'; @@ -451,7 +460,7 @@ export class Output< } const rootTargetResult = this._getRootTarget(); - if (rootTargetResult instanceof Promise) { + if (isThenable(rootTargetResult)) { throw new TypeError(errorMessage); } @@ -516,7 +525,7 @@ export class Output< return result; }; - if (result instanceof Promise) { + if (isThenable(result)) { return result.then(handleResult); } else { return handleResult(result); @@ -604,7 +613,7 @@ export class Output< return target; }; - if (result instanceof Promise) { + if (isThenable(result)) { return this._rootTargetPromise = result.then(handleResult); } else { return handleResult(result); diff --git a/src/reader.ts b/src/reader.ts index 3e909c9..5865295 100644 --- a/src/reader.ts +++ b/src/reader.ts @@ -7,7 +7,7 @@ */ import { InputDisposedError } from './input'; -import { assert, clamp, getUint24, MaybePromise, textDecoder, toDataView } from './misc'; +import { assert, clamp, getUint24, isThenable, MaybePromise, textDecoder, toDataView } from './misc'; import { DEFAULT_MAX_READ_POSITION, DEFAULT_MIN_READ_POSITION, Source } from './source'; export class Reader { @@ -47,7 +47,7 @@ export class Reader { const end = start + length; const result = this.source._read(start, end, DEFAULT_MIN_READ_POSITION, DEFAULT_MAX_READ_POSITION); - if (result instanceof Promise) { + if (isThenable(result)) { return result.then((x) => { if (!x) { return null; @@ -95,7 +95,7 @@ export class Reader { ); }; - if (promisedAttempt instanceof Promise) { + if (isThenable(promisedAttempt)) { return promisedAttempt.then(handleAttempt); } else { return handleAttempt(promisedAttempt); @@ -121,7 +121,7 @@ export class Reader { } let slice = this.requestSliceRange(currentSize, 0, CHUNK_SIZE); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice || slice.length === 0) { break; diff --git a/src/sample.ts b/src/sample.ts index 84bb869..7ecc9eb 100644 --- a/src/sample.ts +++ b/src/sample.ts @@ -11,6 +11,7 @@ import { clamp, COLOR_PRIMARIES_MAP, isAllowSharedBufferSource, + isThenable, MATRIX_COEFFICIENTS_MAP, Rotation, SECOND_TO_MICROSECOND_FACTOR, @@ -864,7 +865,7 @@ export class VideoSample implements Disposable { if (this._data instanceof VideoSampleResource) { let result = this._data.getDataPlanes(); - if (result instanceof Promise) result = await result; + if (isThenable(result)) result = await result; if ( !Array.isArray(result) @@ -1022,7 +1023,7 @@ export class VideoSample implements Disposable { } const planes = this._data.getDataPlanes(); - if (planes instanceof Promise) { + if (isThenable(planes)) { throw new Error( 'Cannot convert a VideoSampleResource-backed VideoSample to VideoFrame if getDataPlanes() returns' + ' a promise.', @@ -1586,7 +1587,7 @@ export class VideoSample implements Disposable { // Description's finalized; let's see if a registered transformer wants to handle it for (const transformer of registeredVideoSampleTransformers) { let result = transformer(this, description); - if (result instanceof Promise) result = await result; + if (isThenable(result)) result = await result; if (result !== null) { return result; diff --git a/src/source.ts b/src/source.ts index 1cd4a45..6bab482 100644 --- a/src/source.ts +++ b/src/source.ts @@ -14,6 +14,7 @@ import { closedIntervalsOverlap, FilePath, isNumber, + isThenable, isWebKit, MaybePromise, mergeRequestInit, @@ -328,7 +329,7 @@ export abstract class PathedSource extends Source { return ref; }; - if (result instanceof Promise) { + if (isThenable(result)) { return result.then(handle); } else { return handle(result); @@ -387,7 +388,7 @@ export class CustomPathedSource extends PathedSource { return ref; }; - if (result instanceof Promise) { + if (isThenable(result)) { this._rootRequest = result.then(handle); } else { handle(result); @@ -894,7 +895,7 @@ export class UrlSource extends PathedSource { return result; }; - if (result instanceof Promise) { + if (isThenable(result)) { return result.then(processResult); } else { return processResult(result); @@ -1198,7 +1199,7 @@ export class UrlSource extends PathedSource { for (const slice of uniqueSlices) { const result = backing._read(slice.start, slice.start + slice.bytes.length); - if (result instanceof Promise) { + if (isThenable(result)) { result.then((readResult) => { if (readResult) { // The backing's cache is empty at this point, so the read is guaranteed to produce @@ -1459,7 +1460,7 @@ export class CustomSource extends Source { const result = this._options.getSize(); - if (result instanceof Promise) { + if (isThenable(result)) { return result.then((size) => { if (!Number.isInteger(size) || size < 0) { throw new TypeError('options.getSize must return or resolve to a non-negative integer.'); @@ -1485,7 +1486,7 @@ export class CustomSource extends Source { const originalTargetPos = worker.targetPos; let data = this._options.read(worker.currentPos, originalTargetPos); - if (data instanceof Promise) data = await data; + if (isThenable(data)) data = await data; if (worker.aborted) { break; @@ -2706,7 +2707,7 @@ export class RangedSource extends Source { return result; }; - if (result instanceof Promise) { + if (isThenable(result)) { return result.then(processResult); } else { return processResult(result); diff --git a/src/wave/wave-demuxer.ts b/src/wave/wave-demuxer.ts index ddf750a..13e8892 100644 --- a/src/wave/wave-demuxer.ts +++ b/src/wave/wave-demuxer.ts @@ -12,7 +12,7 @@ import { Input } from '../input'; import { InputAudioTrackBacking } from '../input-track'; import { PacketRetrievalOptions } from '../media-sink'; import { DEFAULT_TRACK_DISPOSITION, MetadataTags } from '../metadata'; -import { assert, UNDETERMINED_LANGUAGE } from '../misc'; +import { assert, isThenable, UNDETERMINED_LANGUAGE } from '../misc'; import { EncodedPacket, PLACEHOLDER_DATA } from '../packet'; import { readAscii, readBytes, Reader, readU16, readU32, readU64 } from '../reader'; import { ID3_V2_HEADER_SIZE, parseId3V2Tag, readId3V2Header } from '../id3'; @@ -52,7 +52,7 @@ export class WaveDemuxer extends Demuxer { async readMetadata() { return this.metadataPromise ??= (async () => { let slice = this.reader.requestSlice(0, 12); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; assert(slice); const riffType = readAscii(slice, 4); @@ -77,7 +77,7 @@ export class WaveDemuxer extends Demuxer { while (totalFileSize === null || currentPos < totalFileSize) { let slice = this.reader.requestSlice(currentPos, 8); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) break; const chunkId = readAscii(slice, 4); @@ -103,7 +103,7 @@ export class WaveDemuxer extends Demuxer { // File and data chunk sizes are defined in here instead let ds64Slice = this.reader.requestSlice(startPos, chunkSize); - if (ds64Slice instanceof Promise) ds64Slice = await ds64Slice; + if (isThenable(ds64Slice)) ds64Slice = await ds64Slice; if (!ds64Slice) break; const riffChunkSize = readU64(ds64Slice, littleEndian); @@ -136,7 +136,7 @@ export class WaveDemuxer extends Demuxer { private async parseFmtChunk(startPos: number, size: number, littleEndian: boolean) { let slice = this.reader.requestSlice(startPos, size); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return; // File too short let formatTag = readU16(slice, littleEndian); @@ -206,7 +206,7 @@ export class WaveDemuxer extends Demuxer { private async parseListChunk(startPos: number, size: number, littleEndian: boolean) { let slice = this.reader.requestSlice(startPos, size); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return; // File too short const infoType = readAscii(slice, 4); @@ -303,7 +303,7 @@ export class WaveDemuxer extends Demuxer { private async parseId3Chunk(startPos: number, size: number) { // Parse ID3 tag embedded in WAV file (non-default, but used a lot in practice anyway) let slice = this.reader.requestSlice(startPos, size); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) return; // File too short const id3V2Header = readId3V2Header(slice); @@ -489,7 +489,7 @@ class WaveAudioTrackBacking implements InputAudioTrackBacking { // requested slice actually exists. let slice = this.demuxer.reader.requestSlice(this.demuxer.dataStart + startOffset, sizeInBytes); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; if (!slice) { return null; @@ -501,7 +501,7 @@ class WaveAudioTrackBacking implements InputAudioTrackBacking { data = PLACEHOLDER_DATA; } else { let slice = this.demuxer.reader.requestSlice(this.demuxer.dataStart + startOffset, sizeInBytes); - if (slice instanceof Promise) slice = await slice; + if (isThenable(slice)) slice = await slice; assert(slice); data = readBytes(slice, sizeInBytes); From c10f93ab8cf82dc9c28bc59dd93d7d006b2ddd13 Mon Sep 17 00:00:00 2001 From: Vanilagy <1696106+Vanilagy@users.noreply.github.com> Date: Wed, 26 Aug 2026 11:59:22 +0200 Subject: [PATCH 3/5] Recognize fMP4 segments starting with an emsg box (or similar) (fixes #473) --- src/input-format.ts | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/src/input-format.ts b/src/input-format.ts index 5ce740e..7a420a3 100644 --- a/src/input-format.ts +++ b/src/input-format.ts @@ -29,7 +29,7 @@ import { OggDemuxer } from './ogg/ogg-demuxer'; import { WaveDemuxer } from './wave/wave-demuxer'; import { MAX_ADTS_FRAME_HEADER_SIZE, MIN_ADTS_FRAME_HEADER_SIZE, readAdtsFrameHeader } from './adts/adts-reader'; import { AdtsDemuxer } from './adts/adts-demuxer'; -import { readAscii, readBytes, readU32Be } from './reader'; +import { readAscii, readBytes, readU32Be, readU64Be } from './reader'; import { FlacDemuxer } from './flac/flac-demuxer'; import { MpegTsDemuxer } from './mpeg-ts/mpeg-ts-demuxer'; import { TS_PACKET_SIZE } from './mpeg-ts/mpeg-ts-misc'; @@ -116,12 +116,41 @@ export class Mp4InputFormat extends IsobmffInputFormat { return majorBrand !== 'qt '; } - let slice = input._reader.requestSlice(4, 4); - if (isThenable(slice)) slice = await slice; - if (!slice) return false; + let pos = 0; + for (let iter = 0; iter < 10; iter++) { // Bounded loop + let slice = input._reader.requestSlice(pos, 8); + if (isThenable(slice)) slice = await slice; + if (!slice) return false; - const fourCc = readAscii(slice, 4); - return fourCc === 'moof' || fourCc === 'sidx'; // Seen in HLS for example + let size = readU32Be(slice); + let headerSize = 8; + if (size === 1) { + let sizeExtensionSlice = input._reader.requestSlice(pos + 8, 8); + if (isThenable(sizeExtensionSlice)) sizeExtensionSlice = await sizeExtensionSlice; + if (!sizeExtensionSlice) return false; + + size = readU64Be(sizeExtensionSlice); + headerSize = 16; + } + + if (size < headerSize) { + return false; // Hardly a box is it + } + + const fourCc = readAscii(slice, 4); + if (fourCc === 'moof' || fourCc === 'sidx') { // Seen in HLS for example + return true; + } else if (fourCc === 'emsg' || fourCc === 'prft' || fourCc === 'free') { + // These are boxes that can appear before the first moof in DASH Media Segments. They're a strong signal + // that this is indeed an fMP4 segment, but just to be sure, let's walk the box structure to make sure + // it stays sane. + pos += size; + } else { + return false; + } + } + + return false; } get name() { From d44253c7d3b6984839e37e994b1edf72035f1c11 Mon Sep 17 00:00:00 2001 From: Vanilagy <1696106+Vanilagy@users.noreply.github.com> Date: Wed, 26 Aug 2026 13:40:14 +0200 Subject: [PATCH 4/5] Fix incomplete parsing and generation of AacAudioSpecificConfig (fixes #471) --- dev/demux.html | 9 +- shared/aac-misc.ts | 165 +++++++++++++++++++++++++-------- src/isobmff/isobmff-demuxer.ts | 8 +- src/isobmff/isobmff-muxer.ts | 4 +- src/matroska/matroska-muxer.ts | 4 +- src/media-source.ts | 4 +- test/node/read-mp4.test.ts | 21 +++++ test/public/he-aac-v2.mp4 | Bin 0 -> 100000 bytes 8 files changed, 162 insertions(+), 53 deletions(-) create mode 100644 test/public/he-aac-v2.mp4 diff --git a/dev/demux.html b/dev/demux.html index 5354400..6d93d39 100644 --- a/dev/demux.html +++ b/dev/demux.html @@ -17,8 +17,13 @@ source: new Mediabunny.BlobSource(file), }); - const track = await input.getPrimaryVideoTrack(); - console.log(await track.getDecoderConfig()); + const track = await input.getPrimaryAudioTrack(); + const sink = new Mediabunny.AudioSampleSink(track); + + for await (const sample of sink.samples()) { + console.log(sample); + sample.close() + } /* diff --git a/shared/aac-misc.ts b/shared/aac-misc.ts index 5c0fc71..e1ecaf7 100644 --- a/shared/aac-misc.ts +++ b/shared/aac-misc.ts @@ -10,10 +10,11 @@ import { Bitstream } from './bitstream'; export type AacAudioSpecificConfig = { objectType: number; + coreObjectType: number; frequencyIndex: number; - sampleRate: number | null; channelConfiguration: number; - numberOfChannels: number | null; + outputSampleRate: number | null; + outputNumberOfChannels: number | null; }; export const aacFrequencyTable = [ @@ -30,20 +31,8 @@ export const parseAacAudioSpecificConfig = (bytes: Uint8Array | null): AacAudioS const bitstream = new Bitstream(bytes); - let objectType = bitstream.readBits(5); - if (objectType === 31) { - objectType = 32 + bitstream.readBits(6); - } - - const frequencyIndex = bitstream.readBits(4); - let sampleRate: number | null = null; - if (frequencyIndex === 15) { - sampleRate = bitstream.readBits(24); - } else { - if (frequencyIndex < aacFrequencyTable.length) { - sampleRate = aacFrequencyTable[frequencyIndex]!; - } - } + const objectType = readAacObjectType(bitstream); + const { frequencyIndex, sampleRate } = readAacSamplingFrequency(bitstream); const channelConfiguration = bitstream.readBits(4); let numberOfChannels: number | null = null; @@ -51,61 +40,155 @@ export const parseAacAudioSpecificConfig = (bytes: Uint8Array | null): AacAudioS numberOfChannels = aacChannelMap[channelConfiguration]!; } + let coreObjectType = objectType; + let psPresent = false; + let outputSampleRate = sampleRate; + + if (objectType === 5 || objectType === 29) { + // Explicit hierarchical signaling: everything read so far describes the core coder, and the rate the + // decoder actually outputs follows right here + psPresent = objectType === 29; + + outputSampleRate = readAacSamplingFrequency(bitstream).sampleRate; + coreObjectType = readAacObjectType(bitstream); + + if (coreObjectType === 22) { + bitstream.skipBits(4); // extensionChannelConfiguration + } + } else { + // There may be SBR/PS flags sitting behind a sync word after the config of the core coder. We find them by + // scanning for the sync word, just like FFmpeg does. + while (bitstream.getBitsLeft() > 15) { + const searchStart = bitstream.pos; + + if (bitstream.readBits(11) !== 0x2b7) { + bitstream.pos = searchStart + 1; + continue; + } + + if (readAacObjectType(bitstream) === 5 && bitstream.readBits(1)) { + outputSampleRate = readAacSamplingFrequency(bitstream).sampleRate; + + if (bitstream.getBitsLeft() > 11 && bitstream.readBits(11) === 0x548) { + psPresent = !!bitstream.readBits(1); + } + } + + break; + } + } + + if (numberOfChannels !== null && numberOfChannels > 1) { + // PS only ever upmixes a mono core. A stereo signal means whatever we read was bogus + psPresent = false; + } + return { objectType, + coreObjectType, frequencyIndex, - sampleRate, channelConfiguration, - numberOfChannels, + outputSampleRate, + outputNumberOfChannels: psPresent && numberOfChannels === 1 + ? 2 + : numberOfChannels, + }; +}; + +const readAacObjectType = (bitstream: Bitstream) => { + const objectType = bitstream.readBits(5); + return objectType === 31 ? 32 + bitstream.readBits(6) : objectType; +}; + +const readAacSamplingFrequency = (bitstream: Bitstream) => { + const frequencyIndex = bitstream.readBits(4); + + if (frequencyIndex === 15) { + return { + frequencyIndex, + sampleRate: bitstream.readBits(24), + }; + } + + return { + frequencyIndex, + sampleRate: frequencyIndex < aacFrequencyTable.length + ? aacFrequencyTable[frequencyIndex]! + : null, }; }; export const buildAacAudioSpecificConfig = (config: { objectType: number; - sampleRate: number; - numberOfChannels: number; + outputSampleRate: number; + outputNumberOfChannels: number; }) => { - let frequencyIndex = aacFrequencyTable.indexOf(config.sampleRate); - let customSampleRate: number | null = null; + const usesSbr = config.objectType === 5 || config.objectType === 29; + const usesPs = config.objectType === 29; - if (frequencyIndex === -1) { - frequencyIndex = 15; - customSampleRate = config.sampleRate; - } + // SBR runs the core coder at half the output rate, and PS upmixes a mono core to stereo + const coreSampleRate = usesSbr ? config.outputSampleRate / 2 : config.outputSampleRate; + const coreNumberOfChannels = usesPs ? 1 : config.outputNumberOfChannels; - const channelConfiguration = aacChannelMap.indexOf(config.numberOfChannels); + const channelConfiguration = aacChannelMap.indexOf(coreNumberOfChannels); if (channelConfiguration === -1) { - throw new TypeError(`Unsupported number of channels: ${config.numberOfChannels}`); + throw new TypeError(`Unsupported number of channels: ${config.outputNumberOfChannels}`); } - let bitCount = 5 + 4 + 4; + // Object type, sampling frequency, channel configuration, then a bare GASpecificConfig + let bitCount = 5 + 4 + 4 + 3; if (config.objectType >= 32) { bitCount += 6; } - if (frequencyIndex === 15) { + if (findAacFrequencyIndex(coreSampleRate) === 15) { bitCount += 24; } + if (usesSbr) { + bitCount += 4 + 5; // Extension sampling frequency and the object type of the core coder + if (findAacFrequencyIndex(config.outputSampleRate) === 15) { + bitCount += 24; + } + } const byteCount = Math.ceil(bitCount / 8); const bytes = new Uint8Array(byteCount); const bitstream = new Bitstream(bytes); - if (config.objectType < 32) { - bitstream.writeBits(5, config.objectType); - } else { - bitstream.writeBits(5, 31); - bitstream.writeBits(6, config.objectType - 32); + writeAacObjectType(bitstream, config.objectType); + writeAacSamplingFrequency(bitstream, coreSampleRate); + bitstream.writeBits(4, channelConfiguration); + + if (usesSbr) { + writeAacSamplingFrequency(bitstream, config.outputSampleRate); + writeAacObjectType(bitstream, 2); // AAC-LC underneath } + bitstream.writeBits(3, 0); // frameLengthFlag, dependsOnCoreCoder, extensionFlag + + return bytes; +}; + +const writeAacObjectType = (bitstream: Bitstream, objectType: number) => { + if (objectType < 32) { + bitstream.writeBits(5, objectType); + } else { + bitstream.writeBits(5, 31); + bitstream.writeBits(6, objectType - 32); + } +}; + +const writeAacSamplingFrequency = (bitstream: Bitstream, sampleRate: number) => { + const frequencyIndex = findAacFrequencyIndex(sampleRate); bitstream.writeBits(4, frequencyIndex); if (frequencyIndex === 15) { - bitstream.writeBits(24, customSampleRate!); + bitstream.writeBits(24, sampleRate); } +}; - bitstream.writeBits(4, channelConfiguration); - - return bytes; +const findAacFrequencyIndex = (sampleRate: number) => { + const index = aacFrequencyTable.indexOf(sampleRate); + return index === -1 ? 15 : index; }; export type AdtsHeaderTemplate = { @@ -117,8 +200,8 @@ export const buildAdtsHeaderTemplate = (config: AacAudioSpecificConfig): AdtsHea const header = new Uint8Array(7); const bitstream = new Bitstream(header); - const { objectType, frequencyIndex, channelConfiguration } = config; - const profile = objectType - 1; + const { coreObjectType, frequencyIndex, channelConfiguration } = config; + const profile = coreObjectType - 1; bitstream.writeBits(12, 0b1111_11111111); // Syncword bitstream.writeBits(1, 0); // MPEG Version diff --git a/src/isobmff/isobmff-demuxer.ts b/src/isobmff/isobmff-demuxer.ts index 2f9ba57..0e0fe60 100644 --- a/src/isobmff/isobmff-demuxer.ts +++ b/src/isobmff/isobmff-demuxer.ts @@ -1609,11 +1609,11 @@ export class IsobmffDemuxer extends Demuxer { if (track.info.codec === 'aac') { // Let's try to deduce more accurate values directly from the AudioSpecificConfig: const audioSpecificConfig = parseAacAudioSpecificConfig(track.info.codecDescription); - if (audioSpecificConfig.numberOfChannels !== null) { - track.info.numberOfChannels = audioSpecificConfig.numberOfChannels; + if (audioSpecificConfig.outputNumberOfChannels !== null) { + track.info.numberOfChannels = audioSpecificConfig.outputNumberOfChannels; } - if (audioSpecificConfig.sampleRate !== null) { - track.info.sampleRate = audioSpecificConfig.sampleRate; + if (audioSpecificConfig.outputSampleRate !== null) { + track.info.sampleRate = audioSpecificConfig.outputSampleRate; } } } diff --git a/src/isobmff/isobmff-muxer.ts b/src/isobmff/isobmff-muxer.ts index 4d6c8c5..1e3006c 100644 --- a/src/isobmff/isobmff-muxer.ts +++ b/src/isobmff/isobmff-muxer.ts @@ -525,8 +525,8 @@ export class IsobmffMuxer extends Muxer { decoderConfig.description = buildAacAudioSpecificConfig({ objectType: adtsFrame.objectType, - sampleRate, - numberOfChannels, + outputSampleRate: sampleRate, + outputNumberOfChannels: numberOfChannels, }); requiresAdtsStripping = true; } diff --git a/src/matroska/matroska-muxer.ts b/src/matroska/matroska-muxer.ts index 7763df3..dc213a8 100644 --- a/src/matroska/matroska-muxer.ts +++ b/src/matroska/matroska-muxer.ts @@ -858,8 +858,8 @@ export class MatroskaMuxer extends Muxer { decoderConfig.description = buildAacAudioSpecificConfig({ objectType: adtsFrame.objectType, - sampleRate, - numberOfChannels, + outputSampleRate: sampleRate, + outputNumberOfChannels: numberOfChannels, }); requiresAdtsStripping = true; } diff --git a/src/media-source.ts b/src/media-source.ts index 8d82533..5260e12 100644 --- a/src/media-source.ts +++ b/src/media-source.ts @@ -2257,8 +2257,8 @@ class AudioEncoderWrapper { meta.decoderConfig.description = buildAacAudioSpecificConfig({ objectType, - numberOfChannels: meta.decoderConfig.numberOfChannels, - sampleRate: meta.decoderConfig.sampleRate, + outputNumberOfChannels: meta.decoderConfig.numberOfChannels, + outputSampleRate: meta.decoderConfig.sampleRate, }); } } diff --git a/test/node/read-mp4.test.ts b/test/node/read-mp4.test.ts index 6b09ed5..12a2677 100644 --- a/test/node/read-mp4.test.ts +++ b/test/node/read-mp4.test.ts @@ -14,6 +14,7 @@ import { Mp4OutputFormat, Output, } from '../../src/index.js'; +import { assert, toUint8Array } from '../../src/misc.js'; const __dirname = new URL('.', import.meta.url).pathname; @@ -160,3 +161,23 @@ test('Annex B', async () => { const firstPacket = (await sink.getFirstPacket())!; expect([...firstPacket.data.slice(0, 4)]).toEqual([0, 0, 0, 1]); }); + +test('HE-AAC v2 audio config is parsed correctly', async () => { + const filePath = path.join(__dirname, '..', 'public/he-aac-v2.mp4'); + using input = new Input({ + source: new FilePathSource(filePath), + formats: ALL_FORMATS, + }); + + const track = await input.getPrimaryAudioTrack(); + assert(track); + + expect(await track.getSampleRate()).toBe(44100); + expect(await track.getNumberOfChannels()).toBe(2); + + const decoderConfig = (await track.getDecoderConfig())!; + expect(decoderConfig.codec).toBe('mp4a.40.29'); + expect(decoderConfig.sampleRate).toBe(44100); + expect(decoderConfig.numberOfChannels).toBe(2); + expect([...toUint8Array(decoderConfig.description!)]).toEqual([0xeb, 0x8a, 0x08, 0x00]); +}); diff --git a/test/public/he-aac-v2.mp4 b/test/public/he-aac-v2.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..58110267abd9cc9ea3d6711ce586f48e6e324069 GIT binary patch literal 100000 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 Date: Wed, 26 Aug 2026 13:44:21 +0200 Subject: [PATCH 5/5] Bump patch --- package-lock.json | 20 ++++++++++---------- package.json | 2 +- packages/aac-encoder/package.json | 2 +- packages/ac3/package.json | 2 +- packages/dts/package.json | 2 +- packages/flac-encoder/package.json | 2 +- packages/mp3-encoder/package.json | 2 +- packages/prores/package.json | 2 +- packages/server/package.json | 4 ++-- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index e0c691e..7cfc67e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mediabunny", - "version": "1.55.2", + "version": "1.55.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mediabunny", - "version": "1.55.2", + "version": "1.55.3", "license": "MPL-2.0", "workspaces": [ ".", @@ -12958,7 +12958,7 @@ }, "packages/aac-encoder": { "name": "@mediabunny/aac-encoder", - "version": "1.55.2", + "version": "1.55.3", "license": "MPL-2.0", "devDependencies": { "@types/emscripten": "^1.40.1" @@ -12973,7 +12973,7 @@ }, "packages/ac3": { "name": "@mediabunny/ac3", - "version": "1.55.2", + "version": "1.55.3", "license": "MPL-2.0", "devDependencies": { "@types/emscripten": "^1.40.1" @@ -12988,7 +12988,7 @@ }, "packages/dts": { "name": "@mediabunny/dts", - "version": "1.55.2", + "version": "1.55.3", "license": "MPL-2.0", "devDependencies": { "@types/emscripten": "^1.40.1" @@ -13003,7 +13003,7 @@ }, "packages/flac-encoder": { "name": "@mediabunny/flac-encoder", - "version": "1.55.2", + "version": "1.55.3", "license": "MPL-2.0", "devDependencies": { "@types/emscripten": "^1.40.1" @@ -13018,7 +13018,7 @@ }, "packages/mp3-encoder": { "name": "@mediabunny/mp3-encoder", - "version": "1.55.2", + "version": "1.55.3", "license": "MPL-2.0", "devDependencies": { "@types/emscripten": "^1.40.1" @@ -13033,7 +13033,7 @@ }, "packages/prores": { "name": "@mediabunny/prores", - "version": "1.55.2", + "version": "1.55.3", "license": "MPL-2.0", "dependencies": { "turbores": "^1.2.2" @@ -13048,10 +13048,10 @@ }, "packages/server": { "name": "@mediabunny/server", - "version": "1.55.2", + "version": "1.55.3", "license": "MPL-2.0", "dependencies": { - "@mediabunny/prores": "^1.55.2", + "@mediabunny/prores": "^1.55.3", "node-av": "^6.0.0" }, "funding": { diff --git a/package.json b/package.json index bcec159..526d6a3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "mediabunny", "author": "Vanilagy", - "version": "1.55.2", + "version": "1.55.3", "description": "Pure TypeScript media toolkit for reading, writing, and converting media files, directly in the browser.", "type": "module", "workspaces": [ diff --git a/packages/aac-encoder/package.json b/packages/aac-encoder/package.json index cc781a5..9b6b8de 100644 --- a/packages/aac-encoder/package.json +++ b/packages/aac-encoder/package.json @@ -1,7 +1,7 @@ { "name": "@mediabunny/aac-encoder", "author": "Vanilagy", - "version": "1.55.2", + "version": "1.55.3", "description": "AAC encoder extension for Mediabunny, based on libavcodec.", "main": "./dist/bundles/mediabunny-aac-encoder.mjs", "module": "./dist/bundles/mediabunny-aac-encoder.mjs", diff --git a/packages/ac3/package.json b/packages/ac3/package.json index a4980c8..d4ef024 100644 --- a/packages/ac3/package.json +++ b/packages/ac3/package.json @@ -1,7 +1,7 @@ { "name": "@mediabunny/ac3", "author": "Vanilagy", - "version": "1.55.2", + "version": "1.55.3", "description": "AC-3 and E-AC-3 (Dolby Digital) decoder and encoder extension for Mediabunny, based on libavcodec.", "main": "./dist/bundles/mediabunny-ac3.mjs", "module": "./dist/bundles/mediabunny-ac3.mjs", diff --git a/packages/dts/package.json b/packages/dts/package.json index 6e38903..ed17be8 100644 --- a/packages/dts/package.json +++ b/packages/dts/package.json @@ -1,7 +1,7 @@ { "name": "@mediabunny/dts", "author": "Vanilagy", - "version": "1.55.2", + "version": "1.55.3", "description": "DTS decoder and encoder extension for Mediabunny, based on libavcodec.", "main": "./dist/bundles/mediabunny-dts.mjs", "module": "./dist/bundles/mediabunny-dts.mjs", diff --git a/packages/flac-encoder/package.json b/packages/flac-encoder/package.json index cec00fa..7b037e2 100644 --- a/packages/flac-encoder/package.json +++ b/packages/flac-encoder/package.json @@ -1,7 +1,7 @@ { "name": "@mediabunny/flac-encoder", "author": "Vanilagy", - "version": "1.55.2", + "version": "1.55.3", "description": "FLAC encoder extension for Mediabunny, based on libFLAC.", "main": "./dist/bundles/mediabunny-flac-encoder.mjs", "module": "./dist/bundles/mediabunny-flac-encoder.mjs", diff --git a/packages/mp3-encoder/package.json b/packages/mp3-encoder/package.json index 5b29a83..27fe74b 100644 --- a/packages/mp3-encoder/package.json +++ b/packages/mp3-encoder/package.json @@ -1,7 +1,7 @@ { "name": "@mediabunny/mp3-encoder", "author": "Vanilagy", - "version": "1.55.2", + "version": "1.55.3", "description": "MP3 encoder extension for Mediabunny, based on LAME.", "main": "./dist/bundles/mediabunny-mp3-encoder.mjs", "module": "./dist/bundles/mediabunny-mp3-encoder.mjs", diff --git a/packages/prores/package.json b/packages/prores/package.json index 40e789b..ba84e35 100644 --- a/packages/prores/package.json +++ b/packages/prores/package.json @@ -1,7 +1,7 @@ { "name": "@mediabunny/prores", "author": "Vanilagy", - "version": "1.55.2", + "version": "1.55.3", "description": "Apple ProRes decoder extension for Mediabunny, based on TurboRes.", "main": "./dist/bundles/mediabunny-prores.mjs", "module": "./dist/bundles/mediabunny-prores.mjs", diff --git a/packages/server/package.json b/packages/server/package.json index 2cb58f1..772a3df 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@mediabunny/server", "author": "Vanilagy", - "version": "1.55.2", + "version": "1.55.3", "description": "Adds full video and audio decoder and encoder support to Mediabunny for use in server-side environments (Node, Bun, Deno). Based on NodeAV.", "main": "./dist/bundles/mediabunny-server.cjs", "module": "./dist/bundles/mediabunny-server.mjs", @@ -35,7 +35,7 @@ }, "dependencies": { "node-av": "^6.0.0", - "@mediabunny/prores": "^1.55.2" + "@mediabunny/prores": "^1.55.3" }, "peerDependencies": { "mediabunny": "^1.45.0"