Skip to content

Fix Emby AV1 cold-start deadline teardown cycle - #307

Merged
jlipworth merged 5 commits into
mainfrom
codex/emby-305-av1-startup
Sep 14, 2026
Merged

Fix Emby AV1 cold-start deadline teardown cycle#307
jlipworth merged 5 commits into
mainfrom
codex/emby-305-av1-startup

Conversation

@jlipworth

@jlipworth jlipworth commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Mitigate Emby AV1: startup media-response timeouts and repeated encode attempts #305's reproduced cold AV1 encode / CoreMedia deadline / server teardown cycle by prewarming the same Emby session before AVPlayer attaches.
  • Scope the 20-second soft warm-up to AV1 transcodes at absent/zero resume. Direct/copy, other codecs, positive-offset handling, Jellyfin, and existing retry limits are unchanged.
  • Add fail-closed expected item/source identity assertions to the Emby probe and pure regression tests.

Evidence and validation

  • Exact item/source baseline failed before video; warm control ready in ~6.6s.
  • Shipping-path candidate and clean-build repeat passed bounded seek-to-zero/hold checks with four initial and four post-hold visible frames; no remaining server encoder after stop.
  • Forced early preparation timeout stopped during warm-up; no late item attachment or remaining encoder.
  • 1,700 hermetic PMSKit tests; hygiene, strict MkDocs, links/anchors, Mermaid checks passed.
  • Fresh iOS, visionOS, tvOS and isolated macOS builds; iPhone browse, visionOS fixture, tvOS/macOS signed-out smoke inspected. Other-platform smokes are not AV1 live-playback acceptance.

Review notes

Jonathan Lipworth added 3 commits September 13, 2026 17:44
Document release-frame evidence, normal UI authentication, CI review gates, and remaining headset/seek acceptance. Keep live auth opt-in and inventory gitignored; preserve AGENTS.md as the pointer to canonical CLAUDE.md.
@jlipworth
jlipworth merged commit 00a00b6 into main Sep 14, 2026
5 checks passed
@jlipworth
jlipworth deleted the codex/emby-305-av1-startup branch September 14, 2026 01:19
jlipworth added a commit that referenced this pull request Sep 14, 2026
## Summary
- Fix #304's reproduced HEVC 10-bit SDR quality-reopen corruption with
full-timeline native resume/seek, preserving negotiated
session/audio/container and bitrate ceilings.
- Rebased onto the landed #306/#307 changes; dropped duplicate
tooling/identity commits and preserved AV1 warm-up before the disjoint
HEVC lane.
- Condense corpus, AV1 and HEVC Markdown; retain current policy in
playback architecture and unresolved evidence/gates in research notes.

## Validation
- 1,704 hermetic PMSKit tests; hygiene, strict MkDocs, links/anchors and
Mermaid checks.
- Four fresh native builds and owned serial platform smokes; installed
simulator binaries match products.
- Post-rebase exact-source Original → 8 Mbps preserved progress with 4+4
inspected clean HEVC frames; native seek back to 10 minutes also passed
with 4+4 clean frames.
- HEVC 8-bit and H.264 transition controls passed without selecting the
HEVC lane. H.264 post-transition frames include a dark title fade, not a
broad scene-quality claim.
- AV1 integration regression warmed in 6.539s and passed zero-seek/hold
with 4+4 inspected visible frames. No remaining server encoder after
stop.

## Limits
The reproduced boundary is legacy offset priming/proxy startup, not a
proven fragment/init/decoder mechanism or a shared cause with #291.
Physical-device, broader server-version and full lifecycle/seek
acceptance remain open. HDR is excluded. Known nonfatal simulator
audio-session/GroupActivities warnings remain outside this fix.

Private source identifiers, names, addresses, paths, credentials and
frames are not attached. No automatic issue closure or merge.

---------

Co-authored-by: Jonathan Lipworth <[email protected]>
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