Fix continuous directory lives, short join buffers, and stable playlist scrolling - #212
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Directory lives could replay old buffered footage on join, report file one throughout the show, and restart from file one after a server restart. Mixed input codecs could also stop decoding after the first file. Live playlist rows were rebuilt on playback updates, resetting mouse scrolling.
This change normalizes local playlist entries into one persistent output stream, tracks and saves the current entry and elapsed time, distinguishes decoder failures from a clean finish, and bounds the video join buffer by six seconds of media timestamps. File and live playlists share their title/path builder and retain live-row identity; mouse scrolling reaches both ends without wrapping on desktop. Parties refresh quietly every five seconds, with stable title spinners.
Validation: full suite (830 passed, 5 skipped), additional real FFmpeg tests for mixed codecs/sizes, nested paths, resume, failure recovery, FLAC/MP3 transitions, and low-bitrate joins; desktop/mobile browser checks for row identity, alignment, endpoint scrolling, current-file highlight, focus/scroll preservation, and party polling. Type checks and CLI/web builds pass. Release tarball starts with Node.