Skip to content

Preserve the Aether renderer across episode autoplay - #8

Open
blurbery wants to merge 2 commits into
mainfrom
fix/apple-autoplay-render-handoff
Open

Preserve the Aether renderer across episode autoplay#8
blurbery wants to merge 2 commits into
mainfrom
fix/apple-autoplay-render-handoff

Conversation

@blurbery

@blurbery blurbery commented Aug 27, 2026

Copy link
Copy Markdown
Owner

What I changed

I traced the Episode 3 to Episode 4 autoplay failure live on my server. Episode 4 stayed on the direct-play DV7 route, its playback clock and audio continued, and every media range returned successfully, but the picture remained black.

The Apple player was treating every replacement load as a final Aether teardown. On tvOS that discarded the native player and video layer, reset the display criteria, and released the shared audio session immediately before the next episode started. It bypassed Aether’s supported back-to-back load handoff.

I added a separate replacement path that:

  • invalidates the outgoing Silo load and its transport state
  • pauses and retains the outgoing Aether host until the successor load takes ownership
  • lets Aether reuse the native player and video layer across consecutive episodes
  • preserves the tvOS display criteria and shared audio session across the handoff
  • leaves the existing full teardown unchanged when the viewer exits the player or a replacement fails

This keeps Episode 4 on the same quality and direct-play route as Episode 3. It does not force a remux or transcode to hide the renderer problem.

Validation

  • Reproduced live on Reacher S2E3 to S2E4 with direct-play media requests succeeding while audio continued over a black picture
  • Added a boundary regression test proving the outgoing load is invalidated and a distinct successor epoch can begin
  • Focused Silo test build succeeds against the exact pinned AetherEngine revision
  • Device validation is still required because the failure is in the tvOS display handoff

Related fix

This is the Apple renderer half of the playback fix. The server authentication half is blurbery/silo-server#52, which prevents long-running Apple media requests from failing when the bearer token snapshot expires.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant