• v0.2.4 770bba7e60

    Media Server v0.2.4
    Lint & Test / test (push) Has been skipped
    Release / create-release (push) Successful in 3s
    Release / build-linux (push) Successful in 23s
    Release / build-windows (push) Successful in 50s
    Stable

    alexei.dolgolyov released this 2026-05-15 14:50:28 +03:00 | 20 commits to master since this release

    v0.2.4 (2026-05-15)

    Features

    • Displays — DDC/CI picture controls: Monitor cards now expose contrast (slider, same editorial copper treatment as brightness) plus a new "PICTURE TUNING" section with input source, color preset, and picture mode pickers built on the IconSelect widget — HDMI/DisplayPort/DVI/VGA/USB-C glyphs for inputs, thermometer for color temperatures, per-mode icons (movie reel, gamepad, ball, etc.) for picture modes. Backend probes DDC/CI capabilities per monitor at enumeration time and exposes *_supported flags so the UI hides rows the hardware doesn't advertise. New endpoints: POST /api/display/{contrast,input_source,color_preset,picture_mode}/{id}. Picture mode uses raw VCP 0xDC with MCCS-spec labels and vendor-friendly fallbacks. 14 new i18n keys per locale (en/ru). (57fdeb7)

    Bug Fixes

    • Displays — verify DDC/CI writes before reporting success: DDC/CI writes are fire-and-forget at the protocol level — a successful send does not mean the monitor honored the value. A new _verify_after_set helper polls readback after every write and reports {success: false} when the monitor silently dropped it (common on LG ultrawides for VCP codes whose registers exist but whose feature isn't really implemented in firmware). Wired into set_contrast, set_input_source, set_color_preset, set_picture_mode; input source uses a longer settle window since switching can briefly disrupt the DDC/CI link. Picture mode (VCP 0xDC) additionally requires the capability string to declare supported codes under cmds[0xDC] — without that declaration we treat the feature as unsupported even when reads succeed (the LG case where reads return a stuck value and every write is silently ignored). (d1f621f)

    Development / Internal

    Chores

    • restart-server.ps1 — installer vs dev launches: Previously only killed processes named media-server, silently missing the installer-bundled process (which runs as plain python.exe via media-server.bat). The script now kills whatever currently owns the listen port regardless of process name, adds -Mode auto|dev|installer with auto-detection based on whether the installer launcher exists in %LOCALAPPDATA%\Media Server, verifies the port is listening after start, and merges registry PATH so newly-installed dev tools are visible. (6120625)

    All Commits
    Hash Message Author
    57fdeb7 feat(displays): expose DDC/CI contrast, input source, color preset, picture mode alexei.dolgolyov
    6120625 chore(scripts): harden restart-server.ps1 against installer vs dev launches alexei.dolgolyov
    d1f621f fix(displays): verify DDC/CI writes and trust capability string for picture mode alexei.dolgolyov

    Downloads

    Platform File
    Windows (installer) MediaServer-v0.2.4-setup.exe
    Windows (portable) MediaServer-v0.2.4-win-x64.zip
    Linux MediaServer-v0.2.4-linux-x64.tar.gz
    Downloads