Repository navigation
fix(audio): keep the Atmos confirmation pass off one-request origins - #841
Merged
Merged
Conversation
Each E-AC-3 track's confirmation pass opens a second handle on the source (head, Matroska Cues at the tail, paced cluster reads). With maxConcurrentSourceRequests = 1 every one of those reads takes the video pump's only slot, the pump overcommits past the pacer, and an origin that enforces one connection (Xtream, HTTP 509) punishes it: stalls every ~10 s on a 4K remux with 17 E-AC-3 tracks, and the pass never reached its summary line. Decline the pass on a serial origin, sequentialOrigin and heldSourceConnection (the set the I-frame rendition declines), re-check the budget before every track so a limit learned from refusals stops it mid-pass, and log the summary on every exit with how far it got. Reported by the StreamX integrator. 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.
LoadOptions.confirmAtmosopens one side demuxer per E-AC-3 track. On an origin limited to one request each of its reads (head, Matroska Cues at the tail, paced clusters) takes the pump's only slot. StreamX measured it on iPad behind an Xtream origin that refuses a second connection with 509: stalls every ~10 s on a 4K DV remux with 17 E-AC-3 tracks,AVPlayer -12889then-15628, and the pass never logged its summary. Titles without E-AC-3 played clean in the same session.sequentialOrigin/heldSourceConnection(same set as the I-frame rendition, AE#682). One[AtmosConfirmation] skipped: ...line names the reason.stopped (<reason>) after k of n E-AC-3 track(s), confirmed JOC on ....Not done: routing the pass through
SideReaderLinkArbiter. With one slot the pump almost never parks long enough for a pass that needs a tail Cues read plus cluster reads, so yielding would just defer it forever, and declining is the honest version of that.Tests:
AtmosConfirmationOriginGateTests(gate + both summary shapes), existing Atmos suites green.🤖 Generated with Claude Code
https://claude.ai/code/session_01WJcXkGQrMiBPixVEFTSBJS