Updates / Piston Server

Safari Plays Straight

· Build 926

Analyse

  • Safari no longer loses the plot after scrubbing. Fast arrow-key jumps or a long held arrow used to leave the picture frozen on old frames while the playhead, the clock and the other angles carried on from the wrong time; the seek now always lands.
  • The multi-angle grid is smooth in Safari. The other angles used to stutter and re-seek every second; they now hold within half a second of the main angle without touching playback speed, and a four-angle live grid plays at full frame rate.
  • Pausing a live session holds the frame. The paused picture used to creep towards live and a rewind after a pause landed ahead of where you stopped; pause now reviews from where you paused, and play resumes there. Jump to Live still takes you back to the edge.
  • Held arrow keys keep the playhead on screen when the timeline is zoomed in, in both directions, just as dragging the playhead always did.
  • Scrubbing a long session no longer stalls the player on Safari. Buffered islands left by fast scrubbing are cleared on every landing.
  • The playhead can be dragged with a finger in both timelines, the pane dividers have wider grab zones and a grip mark, and the layout divider stays on screen on smaller displays.
  • Switching schema returns the full schema the page renders.

Session Player

  • Scrubbing the session page player shows frames instead of freezing, and drags inside the buffer seek at once.

Touch Player

  • iPad fullscreen is CSS-based and leaves no gap on exit; a note prompt no longer drops fullscreen.

Sessions

  • A stream that ends with an ENDLIST tag counts as a natural finish on any session, so a stopped encoder no longer leaves the session marked live.

Cameras

  • Settings shows each camera's fallback slate as a thumbnail.

Angles Sync

  • Copy Angles HLS gives each angle its ffcat chunk list, and the server serves it like the playlist (no caching, cross-origin allowed).

Server tools

  • MediaMTX is pinned to v1.21.1.
  • Bare halt(404) and halt(403) responses return their status instead of a 500.