Repository navigation
Releases: RareSpecies233/wiina
Release list
Wiina v1.3.9
Wiina 1.3.9
Windows-native, IINA-inspired mpv front end (WinUI 3 + libmpv).
What's new in 1.3.9
Small windows park the chrome blur
While the mini player or picture-in-picture owns the video the main window is
minimized, but the blur worker used to keep pulling a frame out of mpv every
125 ms and the hidden titlebar kept the last texture. ChromeBlur.Suspend() /
Resume() (src/Wiina.App/Interop/ChromeBlur.cs:143, :160) now force the
Solid strategy while a small window owns the video; the transitions use a
counter (MainWindow.Modes.cs:635, :651) so mini -> PiP does not resume in
between, and a mode chosen while parked is applied on resume. Evidence:
artifacts/v139-pip-titlebar-before/after.png,
artifacts/v139-mini-titlebar-before/after.png.
Thumbnail plan A/B/C landed
- Slow mode really runs as instant preview: no whole-file pass, disk cache
kept, hover delay applies, and the stored mode is never overwritten
(ThumbnailPolicy.EffectiveMode,src/Wiina.Core/State/ThumbnailPolicy.cs:56-58). - New
video.thumbnail-keyframe-seek(Video -> Thumbnails, default off):
the background pass and slow mode seek withabsolute+keyframes, skipping
the rest of the GOP; hover previews stay exact. The verification trace shows
208 ms per extracted frame. - Settings rows can be disabled per current settings
(SettingsRowDefinition.AvailableWhen,
SettingsWindow.xaml.cs:463-499); "preview while generating" greys out in
slow/instant mode. - Hover outcomes are
Frame/Pending/NotAllowed: Pending keeps the
previous frame without a spinner, NotAllowed shows an empty card instead of
a stale frame, and opening a new file clears the frame. Evidence
artifacts/v139-thumb-traces.txt(NotAllowed 0-1 ms, Pending ~124 ms,
Frame 244-483 ms, disk hit 26-29 ms).
Every same-episode subtitle is offered
SmartSubtitleFinder.Find returns all sidecars of the episode; the assfonts
variant is selected first and the plain one stays selectable behind it.
MatchTrack maps mpv's external-filename and its short language title back
to a candidate so an already loaded sidecar is reused, and another selected
external track is never overridden.
Not in this build
Alwaysblur mode still captures at the original ~8 Hz while the main
window is visible; only small-window suspension changed.- The optional 20 ms -> 5 ms seek polling and
vf=scalepre-scaling from the
1.3.8 plan are still not implemented. - Mixed-DPI hover placement and small-window geometry were not re-measured.
Settings: 11 pages / 133 rows / 581 keys; tests: 943.
Wiina 1.0.2
Wiina v1.0.2 — release notes
Release date: 2026-10-19
Windows-native, IINA-inspired mpv front end built with WinUI 3, Windows App
SDK 2.5, and libmpv.
What's new in 1.0.2
- Floating OSC drag restored. The real-video blur path no longer clears
the drag area's background, so the whole floating OSC panel is draggable
again (transparent hit-test brush instead ofnull). - Stable time/chapter previews. The preview card resets its
Margin
before measuring, uses the cleanDesiredSize, and is anchored to the
pointer's actual X. This removes the horizontal drift left in 1.0.1, for
both the video thumbnail and chapter cards. - 4 px OSD rail. At 100% display scaling, the horizontal OSD progress rail
is 4 px tall with a 2 px corner radius. - Packaging correctness.
scripts/package.ps1now builds and copies the
samePlatform=x64output tree, rebuilds from source, and fails unless the
packagedWiina.dllreports the requested version. The 1.0.2 archive is
verified as1.0.2.0, not a stale 1.0.1 payload.
Highlights since 1.0.0
- Real blur over video. Titlebar, docked/top/floating OSC, sidebar, and
OSD use a real Win2D Gaussian blur of the current libmpv frame (8 fps,
320 px resample, translucent tint for legibility), not a flat tint. - Playback: libmpv render API with a composition swapchain in a XAML
SwapChainPanel; WinUI title bar, auto-hiding OSC, hover thumbnails,
playlist/chapters/history, subtitles and track selection, playback speed,
A-B loop, screenshots. - Windows shell: Mica/Acrylic panels, 11-page settings with search,
key-binding editor, menu, welcome window, about, log viewer, diagnostics
inspector, open-URL dialog. - Modes: fullscreen with chrome restore, PiP with main-window
auto-minimize and one restore action, mini player, multiple windows,
per-window state persistence. - Audio/video: 10-band equalizer, audio/video filters, advanced A/V
options, basic HDR metadata handling with SDR tone-mapping. - Polish: runtime zh-Hans/English localization, accessibility and
high-contrast support, reduced-motion support, six OSD positions, all-edge
aspect-ratio lock, reproducible self-contained packaging, GPL/NOTICE
compliance.
Intentionally not included
- Stage 9 (plugins) was skipped. No plugin host, plugin API,
Info.json
parser, WebView2 dependency, or plugin settings that work. See
docs/plugins/README.md. - Stage 10 (online subtitles / yt-dlp) was skipped. No OpenSubtitles
client, no yt-dlp integration, no bundled yt-dlp, no related permissions or
network consent flows. Menu/settings entries remain disabled and say so.
Install
Portable zip, no installer or separate runtime required:
- Extract
wiina-1.0.2-win-x64.zip. - Run
Wiina.exe. - Data is stored in
%LOCALAPPDATA%\Wiina.
An optional Inno Setup script lives at installer/wiina.iss; it is not built
or shipped in this repository.
Package contents
Wiina.exe
Wiina.dll
libmpv-2.dll
Microsoft.Graphics.Canvas.dll
Microsoft.Graphics.Canvas.Interop.dll
LICENSE
NOTICE
README.md
SOURCE.txt
Additional .NET/WinUI publish output is included by the packager; SOURCE.txt
records the version, build date, commit, and source URL.
Requirements
- Windows 11 22H2 or later (Windows 10 2004+ best effort)
- x64 CPU
- A GPU/driver with Direct3D 11 support
The build is self-contained; .NET 10 and Windows App Runtime do not need to be
installed separately.
Upgrade / settings
Settings are stored in %LOCALAPPDATA%\Wiina\settings.json. Existing keys are
preserved; no destructive migration is performed. The Language field accepts
system, zh-Hans, and en.
Known issues
See known-issues.md. Accessibility/localization details are
in ../accessibility.md; performance numbers in
../performance.md. The blur trails the video by up to one
125 ms frame and is a 320 px resample; at 4K it costs more CPU than at 720p.