Repository navigation
Update AAXClean.Codecs to 3.1.0 — fixes xHE-AAC seeking in Apple players - #1901
Merged
rmcrackan merged 1 commit intoAug 1, 2026
Merged
Conversation
Fixes xHE-AAC (USAC) seeking in Apple players: AAXClean now writes the sync sample table (stss) required by ISO/IEC 23003-3 for USAC output, and chapter-split files are sample-accurate via edit lists (Mbucari/AAXClean#18, Mbucari/AAXClean#19). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
rmcrackan
approved these changes
Aug 1, 2026
Owner
|
I've been casually following your conversation with @Mbucari . Thanks for helping out his project and mine. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this fixes for Libation users
Audiobooks downloaded with Request xHE-AAC codec enabled currently can't be seeked in Apple
Books or any iPhone/iPad/Mac app built on Apple's audio stack: resume, chapter jumps, and
scrubbing either fail outright or play audio from the wrong position, and chapter-split files
often won't even start playback without rewind-and-retry fiddling. (Sequential play works, which
is why the files seem fine at first.) ffmpeg-based players tolerate the files, which hid this
for a long time.
Root cause — confirmed by Apple engineering in response to a Feedback report — is on the
container side: USAC (xHE-AAC) requires a sync sample table (
stss) enumerating its seekableframes (ISO/IEC 23003-3 §H.1), and the remuxed files didn't have one, so Apple's demuxer seeks
to frames that aren't valid decode entry points. Mbucari/AAXClean#18 makes AAXClean write a
correct
stss(derived from the USAC bitstream itself), and Mbucari/AAXClean#19 makeschapter-split output sample-accurate via edit lists, with each split part starting on a
decodable frame. Both are merged and released in AAXClean.Codecs 3.1.0 (AAXClean 3.1.0
transitively).
Validation
start plus known-bad offsets): 23 failures → 0, with the audio payload MD5-identical
(the remux stays lossless).
files, every one verified correct (spot-checked bit-exact against the bitstream on titles
from 8 minutes to 72 hours); 403/403 Apple seek probes passed.
21 environment-dependent skips). The end-to-end runs above — including the complete macOS
bundle build and a live liberation on macOS (arm64) — were done on pre-release builds of the
same changes.
Users' existing xHE-AAC files can be repaired without re-downloading — any lossless
re-conversion through the updated AAXClean adds the missing table in place.
Details, measurements, and Apple's response are in Mbucari/AAXClean#18 and #19.
🤖 Generated with Claude Code