mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-11 04:52:13 +00:00
Raw ADTS and TrackDecoder: - Channel configuration 0 (a PCE in the stream, as ffmpeg's -aac_pce and AudioToolbox's 7.x write) decodes; it was refused. - Frames with several raw data blocks are refused; only their first block was decoded, silently losing the rest. - A frame that changes the sample rate, profile or channel configuration is concealed; it played at the wrong speed. - A source that fails during the frame scan is AudioError::Io; it looked like the end of the file. - A stream after an ID3 tag longer than the file head is found. - conceal counts all the ADTS frames of a packet, and a packet of more than 1024 frames is refused before it is decoded into memory. AAC decoder: - Indexed channel configurations place elements by arrival order, not tag, as ffmpeg does; tagged differently, channels were swapped. - A PCE in an access unit that fails no longer changes the layout, which left every later packet failing. - Non-finite samples are zeroed before the output and the overlap. MP4: probe and decode agree: the samples' durations end the track when no single edit does, and an edit cannot outlast the media. The routing oracle fails on a fixture ffmpeg cannot write when oracles are required. The README's Limits names HE-AAC v2 as mono, multi-block ADTS, iTunSMPB, Matroska's tick precision and AAC in CAF. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>