diff --git a/testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini b/testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini index 958d5b8d6da74..88e76a5ba6b90 100644 --- a/testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini +++ b/testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini @@ -126,6 +126,46 @@ if os == "android": NOTRUN +[audioDecoder-codec-specific.https.any.worker.html?mp4_raw_aac_no_desc] + expected: + if os == "android": ERROR + [Test isConfigSupported()] + expected: + if os == "android": NOTRUN + + [Test that AudioDecoder.isConfigSupported() returns a parsed configuration] + expected: + if os == "android": NOTRUN + + [Test configure()] + expected: + if os == "android": NOTRUN + + [Verify closed AudioDecoder operations] + expected: + if os == "android": NOTRUN + + [Test decoding] + expected: + if os == "android": NOTRUN + + [Test decoding a with negative timestamp] + expected: + if os == "android": NOTRUN + + [Test decoding after flush] + expected: + if os == "android": NOTRUN + + [Test reset during flush] + expected: + if os == "android": NOTRUN + + [AudioDecoder decodeQueueSize test] + expected: + if os == "android": NOTRUN + + [audioDecoder-codec-specific.https.any.html?opus] expected: if (os == "android") and not debug: [OK, ERROR] diff --git a/testing/web-platform/tests/webcodecs/audioDecoder-codec-specific.https.any.js b/testing/web-platform/tests/webcodecs/audioDecoder-codec-specific.https.any.js index 6a4793c62c908..fbef67b918d05 100644 --- a/testing/web-platform/tests/webcodecs/audioDecoder-codec-specific.https.any.js +++ b/testing/web-platform/tests/webcodecs/audioDecoder-codec-specific.https.any.js @@ -2,6 +2,7 @@ // META: script=/webcodecs/utils.js // META: variant=?adts_aac // META: variant=?mp4_aac +// META: variant=?mp4_raw_aac_no_desc // META: variant=?mp3 // META: variant=?opus // META: variant=?pcm_alaw @@ -70,6 +71,30 @@ const MP4_AAC_DATA = { duration: 21333 }; +// By spec, if the description is absent, the bitstream defaults to ADTS format. +// However, this is added to ensure compatibility and handle potential misuse cases. +const MP4_AAC_DATA_NO_DESCRIPTION = { + src: 'sfx-aac.mp4', + config: { + codec: 'mp4a.40.2', + sampleRate: 48000, + numberOfChannels: 1, + }, + chunks: [ + {offset: 44, size: 241}, + {offset: 285, size: 273}, + {offset: 558, size: 251}, + {offset: 809, size: 118}, + {offset: 927, size: 223}, + {offset: 1150, size: 141}, + {offset: 1291, size: 217}, + {offset: 1508, size: 159}, + {offset: 1667, size: 209}, + {offset: 1876, size: 176}, + ], + duration: 21333 +}; + const OPUS_DATA = { src: 'sfx-opus.ogg', config: { @@ -162,6 +187,7 @@ promise_setup(async () => { '?adts_aac': ADTS_AAC_DATA, '?mp3': MP3_DATA, '?mp4_aac': MP4_AAC_DATA, + '?mp4_raw_aac_no_desc': MP4_AAC_DATA_NO_DESCRIPTION, '?opus': OPUS_DATA, '?pcm_alaw': PCM_ALAW_DATA, '?pcm_ulaw': PCM_ULAW_DATA,