• v0.1.1-dev50 ff97fec19b

    Build v0.1.1-dev50
    All checks were successful
    Forgejo Publish Release / linux-package (push) Successful in 4m28s
    Forgejo Publish Release / windows-package (push) Successful in 9m33s
    Forgejo Publish Release / publish-release (push) Successful in 14s
    Pre-release

    stu released this 2026-05-23 06:07:47 +00:00 | 56 commits to master since this release

    Nightly build from 87545725c14041d563e1157ea740d2cb4eb0ad8e (Forgejo dev pipeline). Assets replaced on each successful push.

    Downloads
  • v0.1.1-dev49 3c4af553a0

    Build v0.1.1-dev49
    All checks were successful
    Forgejo Publish Release / linux-package (push) Successful in 3m59s
    Forgejo Publish Release / windows-package (push) Successful in 10m21s
    Forgejo Publish Release / publish-release (push) Successful in 14s
    Pre-release

    stu released this 2026-05-18 08:51:21 +00:00 | 121 commits to master since this release

    Nightly build from 3b5c7eca69614c64890f32acd232975aca6ab811 (Forgejo dev pipeline). Assets replaced on each successful push.

    Downloads
  • v0.1.1-dev48 fefc391157

    Build v0.1.1-dev48
    All checks were successful
    Forgejo Publish Release / linux-package (push) Successful in 3m52s
    Forgejo Publish Release / windows-package (push) Successful in 9m34s
    Forgejo Publish Release / publish-release (push) Successful in 11s
    Pre-release

    stu released this 2026-05-15 04:11:09 +00:00 | 213 commits to master since this release

    Nightly build from 6ca3cf8141fa564ad56cb07b3b38786d728ac19b (Forgejo dev pipeline). Assets replaced on each successful push.

    Downloads
  • v0.1.1-dev47 bf560cfe52

    Build v0.1.1-dev47
    All checks were successful
    Forgejo Publish Release / linux-package (push) Successful in 3m43s
    Forgejo Publish Release / windows-package (push) Successful in 8m52s
    Forgejo Publish Release / publish-release (push) Successful in 10s
    Pre-release

    stu released this 2026-05-12 09:40:29 +00:00 | 235 commits to master since this release

    Nightly build from 35c1425455cc3daae5aeaf1fef0afe4ed4cf1731 (Forgejo dev pipeline). Assets replaced on each successful push.

    Downloads
  • v0.1.1-dev46 c51af6a938

    Build v0.1.1-dev46
    All checks were successful
    Forgejo Publish Release / windows-package (push) Successful in 47s
    Forgejo Publish Release / linux-package (push) Successful in 9m50s
    Forgejo Publish Release / publish-release (push) Successful in 9s
    Pre-release

    stu released this 2026-05-07 02:02:18 +00:00 | 289 commits to master since this release

    Nightly build from 0d37eb092873c0a8123279d7da0782d5da606d0f (Forgejo dev pipeline). Assets replaced on each successful push.

    Downloads
  • v0.1.1-dev45 b622a03a67

    Build v0.1.1-dev45
    All checks were successful
    Forgejo Publish Release / linux-package (push) Successful in 3m51s
    Forgejo Publish Release / windows-package (push) Successful in 10m56s
    Forgejo Publish Release / publish-release (push) Successful in 10s
    Pre-release

    stu released this 2026-05-04 07:06:40 +00:00 | 292 commits to master since this release

    Nightly build from b622a03a67 (Forgejo dev pipeline). Assets are replaced each run.

    Highlights (v0.1.1-dev45)

    • Audio Sample Rate dropdown** — audioSampleRateSelect wired in buildConvertView
    • Normalize Audio checkbox** — normalizeAudioCheck + LUFS/TruePeak sliders wired
    • Deinterlace Mode dropdown** — deinterlaceModeSelect + deinterlaceMethodSelect wired
    • H.264 Profile/Level controls** — h264ProfileSelect / h264LevelSelect wired; shown when H.264 codec is active
    • ~42 hardcoded strings** i18n'd: checkboxes, buttons, dialog messages, back button
    • New keys added** to internal/i18n/strings.go, en_ca.go, fr_ca.go, iu.go, iu_latin.go
    • One-click presets** — Hobbyist SD→HD, Semi-Pro 1080p→4K, Anime, Restoration, Social Media workflows
    • UI clarity** — Preset dropdown with description labels, clear AI+RIFE workflow

    Full details: docs/CHANGELOG.md

    Downloads
  • v0.1.1-dev44 21f2af4cb4

    Build v0.1.1-dev44
    All checks were successful
    Forgejo Publish Release / windows-package (push) Successful in 8m15s
    Forgejo Publish Release / linux-package (push) Successful in 9m33s
    Forgejo Publish Release / publish-release (push) Successful in 10s
    Pre-release

    stu released this 2026-04-22 21:54:34 +00:00 | 391 commits to master since this release

    Nightly build from 96f2ee58bd (Forgejo dev pipeline). Assets are replaced each run.

    Highlights (v0.1.1-dev44)

    • Start/Resume state fix** — Start() was setting e.paused=false before starting the decode goroutine, but Resume() checked !e.paused and returned early. Decode loop never started on Play. Fixed: Start() now sets e.paused=false after launching goroutines.
    • Audio/video sync on load** — Audio clock drifted during Load() because audioDecodeLoop ran during GrabFrame, causing ~5 second offset before playback. Fixed by resetting clock to 0 in ResetAfterGrab.
    • Test pattern font** — Test pattern always renders with VCR OSD Mono font regardless of user preference.
    • FFmpeg bootstrap simplification** — Always downloads BtbN pre-built package to guarantee complete DLL set (avoids local installs with missing dependencies like liblzma).
    • Player font preference** — Users can choose between IBM Plex Mono and VCR OSD Mono for the OSD. VCR OSD Mono has no Bold/Italic variants; UI gracefully falls back to Regular weight.
    • See docs/PLAYER_DEBUG.md for full list of known player issues including: predecodeFrom sharing formatCtx with demuxerLoop, audio queue not flushed before seek, speed changes not affecting audio tempo, D3D11VA crashes when enabled.

    Full details: docs/CHANGELOG.md

    Downloads
  • v0.1.1-dev43 4a82e5cbd5

    Build v0.1.1-dev43 Pre-release

    stu released this 2026-04-16 14:27:03 +00:00 | 497 commits to master since this release

    Nightly build from 7a35515bb6 (Forgejo dev pipeline). Assets are replaced each run.

    Highlights (v0.1.1-dev43)

    • Pixel format crash fix** — GrabFrame and NextFrame now derive the sws pixel format from frame.format (the actual decoded format) rather than videoCodecCtx.pix_fmt, which is AV_PIX_FMT_NONE until the codec parses its first SPS. A nil swsCtx produced by sws_getContext caused an unrecoverable C SIGSEGV inside sws_scale. NextFrame's SW decode path was also missing the ensureSwsCtx call entirely.
    • Close/demuxer race** — Added sync.WaitGroup demuxerWg to Engine. demuxerLoop signals Done on exit. Engine.Close() now waits for the demuxer to fully exit before freeing formatCtx, videoCodecCtx, or any other FFmpeg resource, eliminating the use-after-free crash window.
    • NextFrame/Close codec race** — Close() acquires videoCodecMu before freeing videoCodecCtx, ensuring any in-flight NextFrame decode cycle has completed first.
    • seekLoop goroutine leak** — InlineVideoPlayer.seekCh was never closed, leaking the seekLoop goroutine on every Close(). Ownership moved to Load(): channel is closed and reallocated per file. Close() closes the channel to drain the goroutine. The OnSeek widget callback guards against a nil channel under the player mutex.

    Full details: docs/CHANGELOG.md

    Downloads
  • v0.1.1-dev42 a3d2cc9c59

    Build v0.1.1-dev42
    All checks were successful
    Forgejo Publish Release / windows-package (push) Successful in 1m21s
    Forgejo Publish Release / linux-package (push) Successful in 3m46s
    Forgejo Publish Release / publish-release (push) Successful in 11s
    Pre-release

    stu released this 2026-04-10 19:48:17 +00:00 | 598 commits to master since this release

    Nightly build from 5c218da6c8 (Forgejo dev pipeline). Assets are replaced each run.

    Highlights (v0.1.1-dev42)

    • GStreamer fully removed** — All internal/player/gstreamer* deleted; native_media build tag is the only player path. No more GStreamer dependency at runtime or build time.
    • Player lifecycle fix** — closeNativePlayer() prevents audio hanging on module switch; Widget().Refresh() deferred after canvas swap.
    • D3D11VA get_format callback** — Accepts AV_PIX_FMT_D3D11VA_VLD so D3D11VA decode starts on first packet.
    • H.264 + D3D11VA crash fix** — Pre-warm D3D11VA before first decode call.
    • Dedicated HW frame buffers** — Separate hwFramesCtx prevents races between HW download and SW display paths.
    • Lazy swsCtx creation** — Created on first toRGBA() call; avoids crash from invalid pixel format before first HW decode.
    • HW frame transfer mutex** — videoCodecMu held during HW→SW transfer; eliminates concurrent AVCodecContext access.
    • HW decode codec filtering** — Only codecs that work without get_format callback get HW decode enabled.

    Full details: docs/CHANGELOG.md

    Downloads
  • v0.1.1-dev41 1a9a30b98e

    Build v0.1.1-dev41
    All checks were successful
    Forgejo Publish Release / windows-package (push) Successful in 1m21s
    Forgejo Publish Release / linux-package (push) Successful in 3m45s
    Forgejo Publish Release / publish-release (push) Successful in 10s
    Pre-release

    stu released this 2026-04-07 11:52:34 +00:00 | 650 commits to master since this release

    Nightly build from 8b82c6288f (Forgejo dev pipeline). Assets are replaced each run.

    Highlights (v0.1.1-dev41)

    • Burn logic** — IMAPI2 (Windows) / SG_IO (Linux) implementation; see docs/BURN_MODULE_DESIGN.md.
    • Module Pipeline (&&)** — Two-module chain execution with intermediate file cleanup.
    • Recent files tracking** — Persist recent files list for Quick Access dropdown.
    • Module callbacks** — Wire OnOpenMore/OnOpenFolder per module in Quick Access dropdown.
    • UDF PartitionLength fix** — Calculated from actual file sizes instead of hardcoded 1000 sectors. VLC can now resolve UDF paths for full-size DVDs.
    • Menu PTS timestamps** — Menu VOB PTS was 300x too large (27MHz instead of 90kHz ticks), causing continuous VLC timestamp errors. Fixed.
    • Menu font embedding** — IBM Plex Mono TTF embedded in binary via go:embed; no more fallback to generic monospace on installed builds.
    • Chapter navigation** — Chapter cell boundaries now use binary search on actual NAV_PCK PTMs instead of linear interpolation, fixing chapter skip errors on VBR content.

    Full details: docs/CHANGELOG.md

    Downloads