An ADTS header names its object type, sampling index and channel
configuration, and the decoder reopens FFmpeg with an AudioSpecificConfig
built from them. A layout FFmpeg refuses, such as the reserved sampling
index 13, threw out of sceAudiodecDecode into guest code. PPSA08427 ended
on such a throw after a few minutes on the title screen, on a build from
before the current layout handling.
- A reopen that FFmpeg refuses leaves the decoder without a context and
the access unit is a decode error (M4AAC_RESULT_DECODE_ERROR,
ERROR_API_FAIL); the raw layout search skips a refused layout.
- A decoder without a context decodes nothing until a header names a
layout that opens; sceAudiodecClearContext leaves it as it is.
- The open failure names the codec, the AudioSpecificConfig and FFmpeg's
error, and is logged on stderr.
Co-Authored-By: Claude Opus 5.5 <[email protected]>