Skip to content

Fix non-square trickplay thumbnail rendering and seek buffering overlay.#859

Open
VX-101 wants to merge 1 commit intojellyfin:masterfrom
VX-101:fix-seek-buffering-overlay
Open

Fix non-square trickplay thumbnail rendering and seek buffering overlay.#859
VX-101 wants to merge 1 commit intojellyfin:masterfrom
VX-101:fix-seek-buffering-overlay

Conversation

@VX-101
Copy link
Copy Markdown

@VX-101 VX-101 commented Apr 30, 2026

Summary

Fixes trickplay thumbnail rendering for non-square tile images and improves the seek buffering transition.

  • Calculate the thumbnail row from TileWidth
  • Avoid preloading a tile image past the last valid trickplay tile
  • Recreate trickplay Poster nodes without dropping the current preview update
  • Show the buffering overlay when a seek is committed and while playback is buffering

Details

Jellyfin reports TileWidth as the number of thumbnails per row and TileHeight as the number of thumbnails per column. The Roku client was using TileHeight when calculating the thumbnail row inside a trickplay tile image. That works for square layouts like 10x10, but is wrong for non-square layouts.

The preload calculation could also request one tile image beyond the valid range when the thumbnail count exactly filled a tile image.

The preview node update now continues after creating or recreating a Poster node, so the current preview update still applies URI, size, clipping, translation, and visibility.

The seek path now starts the existing buffering overlay before applying the seek. The buffering state handler also starts the overlay so the player does not show a blank screen while playback resumes.

Testing

  • Ran npm run build successfully.
  • Sideloaded the generated Roku package
  • Tested manual seek and trickplay previews on Roku
  • Tested playback transitions that enter buffering
  • Created a local 5x10 trickplay test clip with visible thumbnail markers
  • Verified the old client showed incorrect thumbnail rows with 5x10 trickplay images
  • Verified the fixed client uses the correct thumbnail row for non-square trickplay tile images

@VX-101 VX-101 requested a review from a team as a code owner April 30, 2026 23:53
@VX-101 VX-101 changed the title Show buffering overlay after seek commit Show the buffering overlay after trickplay seek and other navigation actions. May 1, 2026
@VX-101 VX-101 changed the title Show the buffering overlay after trickplay seek and other navigation actions. Fix non-square trickplay thumbnail rendering and seek buffering overlay. May 2, 2026
@VX-101
Copy link
Copy Markdown
Author

VX-101 commented May 2, 2026

Extra testing was performed with a local 5x10 trickplay test clip containing visible thumbnail markers. The old client displayed incorrect thumbnail rows for non-square trickplay tile images, while the updated client selected the correct thumbnails. This confirms the fix handles non-square trickplay layouts correctly.

Test file https://drive.google.com/drive/folders/1pFmQgKSTjza6vTE6vyEZYNWXZRBQROe7?usp=drive_link

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