2025-04-10, 10:53 PM
I think I figured it out!
TLDR: I'll open a PR to add my fix in the next release.
Explanation: Every number in Roku is very fuzzy and inaccurate. It's especially bad at telling us the duration of a video! Additionally, when seeking to a new position, it'll kinda-sorta get you to the position you requested. In certain circumstances, the Skip Outro button will instruct the video player to seek to a position past the end of the video.
Normally, this isn't a big deal and the video player simply closes; however, when direct playing without server provided media segments, it will seek past the end and will get stuck in a "buffering" state until the buffer error timer hits.
The fix is to add code to check if the seek position is past what Roku's video player believes is the media duration (Not what Jellyfin says it is) and if so, only seek to the duration position.
It's weird, it's goofy, it's a fight with Roku's video component data to match what EVERY API CALL says it accurate. /shrug
TLDR: I'll open a PR to add my fix in the next release.
Explanation: Every number in Roku is very fuzzy and inaccurate. It's especially bad at telling us the duration of a video! Additionally, when seeking to a new position, it'll kinda-sorta get you to the position you requested. In certain circumstances, the Skip Outro button will instruct the video player to seek to a position past the end of the video.
Normally, this isn't a big deal and the video player simply closes; however, when direct playing without server provided media segments, it will seek past the end and will get stuck in a "buffering" state until the buffer error timer hits.
The fix is to add code to check if the seek position is past what Roku's video player believes is the media duration (Not what Jellyfin says it is) and if so, only seek to the duration position.
It's weird, it's goofy, it's a fight with Roku's video component data to match what EVERY API CALL says it accurate. /shrug
🤘 Enjoy