Skip to content

Releases: Zcc09/SyncPlayer

SyncPlayer 1.6.13 - native Windows installer

Choose a tag to compare

@Zcc09 Zcc09 released this 19 Sep 12:06

Added

  • The Windows installer is built with NSIS, so it is a native installer instead of a
    packed application: the same components and the same wizard, about 96 MB instead of
    157 MB for an identical payload, because the archive is a single solid stream rather
    than per-file compression around a runtime.
  • NSIS switches alongside the existing ones: /S for a silent install and /D=path
    for the destination, which has to come last. Everything the Setup accepted before
    (--silent, --install-dir, --no-mpv, --no-ytdlp, --no-ffmpeg,
    --no-updater, --no-shortcuts, --no-desktop-shortcut,
    --no-startmenu-shortcut, --startmenu-folder, --no-launch, --launch, and the
    SYNCPLAYER_* environment variables) still works unchanged.

Removed

  • The bundled Python runtime that the installer used to carry in order to bootstrap
    itself. The installer no longer ships an interpreter.

SyncPlayer 1.6.12 - a crop window that shows a picture

Choose a tag to compare

@Zcc09 Zcc09 released this 16 Sep 08:01

Fixed

  • A captured frame that is technically not blank but visually black (brightest content
    below about 60 of 255) reached the crop window and looked like an empty box. Frames are
    now judged on their brightest content rather than their average, and such frames are
    lifted into a viewable range. A normal frame is left untouched.
  • The crop window no longer depends on a single configure event to draw its image: it also
    draws when the window is mapped and shortly after opening.
  • The crop window reports what it is showing - frame size, average and brightest
    luminance, items drawn, and the route that produced the frame - so an empty window can
    be told apart from a failed capture.

SyncPlayer 1.6.11 - offset indicator, self-sufficient crop window

Choose a tag to compare

@Zcc09 Zcc09 released this 16 Sep 07:46

Added

  • The alignment offset is shown in the status readout, so it can be read at a glance and
    typed back in next session.
  • Capture frame and Grab screen buttons inside the visual crop window, so a frame can be
    fetched from within it. Grab screen shows the video fullscreen, reads the frame off the
    screen and restores the window afterwards.
  • The crop window opens with a placeholder instead of refusing when the first capture
    fails, which keeps those two buttons reachable, and it reports which route produced the
    frame on screen.
  • HDR and Dolby Vision handling: the transfer is detected and the capture is tone-mapped
    for it, with the software route first; a frame that still comes back essentially black
    is lifted so the picture can be seen.

Fixed

  • The crop window could not display a frame fetched by its own buttons: the reload scaled
    an attribute that does not exist.

SyncPlayer 1.6.10 - offset field fix, tidier status line

Choose a tag to compare

@Zcc09 Zcc09 released this 16 Sep 07:31

Added

  • Settings option to hide the live Movie / Reaction / delta readout. Messages still
    appear while it is hidden.

Removed

  • The Align button: the Offset field sets an alignment directly, and typing 0 clears it.
  • The shortcut hint row at the bottom of the window; the same hints are in Help.

Fixed

  • Typing an offset and pressing Set did nothing. The field is synced from the live offset
    many times a second, and it only paused that while the field itself had focus - clicking
    the button moves focus to the button, so the typed value was replaced by the current one
    just before it was read.
  • A captured frame is normalised to 8-bit RGB before the crop window opens, because a
    16-bit PNG (what a 10-bit source produces) can render as an empty canvas in some Tk
    builds.

SyncPlayer 1.6.9 - type an alignment offset

Choose a tag to compare

@Zcc09 Zcc09 released this 16 Sep 07:19

Added

  • Offset field in the Master row: type a known delay between the two videos and press
    Enter to apply it. Accepts seconds (12.5), a timecode (1:05), a comma decimal (0.5) and
    negatives (-3.25); positive means the reaction is ahead of the movie. It moves the
    reaction immediately and is remembered for that movie/reaction pair.

Fixed

  • A leading minus was dropped when parsing the offset, so negative offsets behaved like
    positive ones.

SyncPlayer 1.6.8 - visual crop captures a real frame

Choose a tag to compare

@Zcc09 Zcc09 released this 16 Sep 07:10

Fixed

  • Visual crop accepted a blank frame as a success. A screenshot of a surface that has not
    painted yet is a valid black PNG, so the crop window opened on nothing. Every capture
    route is now verified for actual picture content, and an empty result is escalated past:
    mpv's own screenshots (video, software, window), then ffmpeg reading the file directly,
    then a window render that works while the player is covered, then hardware decoding
    disabled for one attempt, and finally showing the window (fullscreen if needed) and
    reading the frame off the screen. Anything the last route changes is restored.
  • A minimised or hidden player had no way back: the window lookup only matched visible
    windows, so the last-resort route reported no window exactly when it was needed.
  • Two capture fallbacks called a helper that does not exist and silently did nothing.
  • The wait for a first decodable frame is adaptive, so a stream that is still buffering
    gets a chance, and the failure message names the routes that were tried.

SyncPlayer 1.6.7 - scrubbing that walks the timeline

Choose a tag to compare

@Zcc09 Zcc09 released this 15 Sep 22:37

Added

  • Precise seek-bar dragging: the pointer's sideways movement is converted to time at a
    fixed gain instead of jumping to the pointer. 0.5 s per pixel while on the bar, 0.02 s
    per pixel once the pointer is lifted 24 px above it, which is finer than a single frame
    at 30 fps. Playback holds while dragging and resumes on release, and the release lands
    frame-exactly. A click without movement still seeks to the clicked position.
  • A setting to choose between Precise (default) and Direct (the pointer-following
    behaviour).
  • The Download window keeps the connection count used.

Fixed

  • The scrub drag never finished: its release handler was replaced by another binding on
    the same event, which left the drag flag set, stopped playback from resuming and made
    Direct mode appear inert.

SyncPlayer 1.6.6 - quality default, threaded downloads, finer seeking

Choose a tag to compare

@Zcc09 Zcc09 released this 15 Sep 17:00

Added

  • YouTube playback quality setting: Best available, 2160p, 1440p, 1080p (default), 720p,
    480p or 360p. A change applies to the next video loaded, without a restart.
  • Download connections: 1-16 (default 8) parallel fetches, using yt-dlp's concurrent
    fragments plus chunked downloads, the way a download manager works. Adjustable per
    download and remembered.
  • Settings dialog in the header for playback quality, download connections and the seek
    distance.
  • The seek buttons step by the Jump distance instead of a fixed 10 seconds, and show the
    distance on the button.

Removed

  • The URL buttons beside the source fields: a link can be pasted or dropped straight into
    the field.

SyncPlayer 1.6.5 - ffmpeg included, full-quality downloads

Choose a tag to compare

@Zcc09 Zcc09 released this 15 Sep 15:55

Added

  • ffmpeg is bundled with the Windows installer, so downloads reach full quality: yt-dlp
    needs it to merge the separate video and audio streams that anything above roughly
    720p is published as. Unchecking it (or --no-ffmpeg) omits it, which caps downloads
    at single-file quality.
  • The updater installs ffmpeg for installations that do not have it.

SyncPlayer 1.6.4 - update from inside the app

Choose a tag to compare

@Zcc09 Zcc09 released this 15 Sep 15:34

Added

  • In-app updater: the header shows the version and doubles as a manual check, an Update
    button appears when a newer release exists, and the dialog shows the release notes,
    what will be installed, download progress and a restart button. Checks run in the
    background at most once every six hours and stay silent when offline.

Fixed

  • A failure in a secondary component no longer fails the whole update after the app
    itself has been installed; each component is isolated and the results are reported.
  • A running executable that cannot be replaced is staged and installed on the next
    start instead of aborting the update.
  • Short version tags (for example v2.0) are compared correctly, so such a release is
    offered.