Repository navigation
fix(audio): read TrueHD Atmos from the major sync when the probe never reached the track (7.40.1) - #838
Merged
Conversation
…r reached the track A TrueHD track that starts after the probe window (John Wick: Chapter 2, TrueHD from 22 s, 45.8 MB in) leaves find_stream_info without a decoded frame, so the stream keeps AV_PROFILE_UNKNOWN and objectAudioRendering played it through the channel bridge. When object rendering is wanted and the profile is unknown, the engine now peeks the track's packets where the first producer starts and reads the major sync the way mlpdec does (four substreams, top bit of substream_info). Measured with the tvOS probe budget (16 MiB / 10 s): from the start 2599 packets, 44.7 MB, 679 ms; on a resume 10 packets, 30 ms; APAC 7.1.4 in both, where the same build without the check served E-AC-3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJcXkGQrMiBPixVEFTSBJS
…hen the probe misses the track Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJcXkGQrMiBPixVEFTSBJS
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.
A TrueHD track whose first packet lies beyond the probe window kept
AV_PROFILE_UNKNOWN, soobjectAudioRenderingplayed it through the channel bridge. Found on John Wick: Chapter 2 (TrueHD from 22 s, 45.8 MB into the file) on an Apple TV with the tvOS probe budget (16 MiB / 10 s).With rendering requested and the profile unknown, the engine now peeks the track's packets where the first producer starts and reads the major sync the way mlpdec does (four substreams, top bit of
substream_info), then marks the stream Atmos. Peeked packets are not consumed; budget 8192 packets / 64 MiB, otherwise the channel bridge as before.Measured with
aetherctl serve --atmos-bed 7.1.4at the tvOS probe budget:profile=-99, E-AC-3apac.31.03, CHANNELS="12"profile=-99, E-AC-3TrueHDMajorSyncTestscover a real Atmos and a real non-Atmos major sync, a sync in a later access unit, a packet without one, and malformed headers. Full suite green (XCTest 779, swift-testing 4689).Includes the 7.40.1 prep commit.
🤖 Generated with Claude Code
https://claude.ai/code/session_01WJcXkGQrMiBPixVEFTSBJS