Skip to content

fix(player): create animated AVIF scenes from MediaCodec output - #85

Closed
bee-san wants to merge 4 commits into
sohilsayed:mainfrom
bee-san:fix/animated-avif-mediacodec-upstream
Closed

fix(player): create animated AVIF scenes from MediaCodec output#85
bee-san wants to merge 4 commits into
sohilsayed:mainfrom
bee-san:fix/animated-avif-mediacodec-upstream

Conversation

@bee-san

@bee-san bee-san commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Problem

Jellyfin scene mining fell back to a still because the bundled FFmpeg MediaCodec encoder wrapper prepended MediaCodec’s AV1CodecConfigurationRecord to the next AV1 packet. FFmpeg’s downstream parser then correctly rejected the non-OBU record header.

Fix: remove av1C (among fixing other bugs)

Summary

  • allow 10-bit SDR scene input while continuing to reject HDR
  • normalize MediaCodec AV1 packets before remuxing them into animated AVIF
  • keep encode/remux cancellable and defer resource cleanup until native FFmpeg returns

Testing

  • ./gradlew assemblePreview --no-daemon
  • 38 focused scene unit tests, including cancellation and deferred-cleanup coverage
  • Spotless single-file checks for all changed files
  • manually verified animated AVIF creation on a Galaxy S24 Ultra with Pokemon Concierge through Jellyfin

The hosted spotlessCheck failure reproduces on clean upstream/main in unchanged presentation-core and domain files. The full unit-test task is also blocked on clean upstream/main because ReaderOcrSourceTest omits its required mokuroAvailable argument. Neither baseline issue is included here, keeping this PR focused.

Prepared with assistance from OpenAI Codex.

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