• 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 | 85 commits to master since this release

    Nightly build from c5ecdd3e013973bf58f4fbb08394c377f985d10e (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 | 107 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 | 161 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 | 164 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 | 263 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 | 369 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 | 470 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 | 522 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
  • v0.1.1-dev40 e73e3e02a6

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

    stu released this 2026-04-04 08:46:45 +00:00 | 581 commits to master since this release

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

    Highlights (v0.1.1-dev40)

    • Burn module** — Implement burn logic via IMAPI2 (Windows) / SG_IO (Linux); see docs/BURN_MODULE_DESIGN.md.
    • Update-install guard** — Block applyUpdate while a queue or conversion job is active; see AGENTS.md.
    • Issue #5** — Convert UI layout consistency and label clarity pass.

    Full details: docs/CHANGELOG.md

    Downloads
  • v0.1.1-dev39 66a07ffdfc

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

    stu released this 2026-03-25 08:01:03 +00:00 | 761 commits to master since this release

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

    Highlights (v0.1.1-dev39)

    • Panic recovery** — Added defer/recover in player module to catch CGO crashes and show user-friendly error instead of hard crash.
    • FFmpeg DLL consistency** — Now checks for local FFmpeg at C:\ffmpeg\bin first (matches compilation), falls back to download only if not found.
    • Local build fix** — Build script now copies FFmpeg DLLs to output directory (matching CI behavior).
    • Interactive Preview tab** — New Preview tab shows full interactive DVD menu preview with working video playback.
    • Module extraction** — Extracted author module to internal/app/modules/author/.
    • Tab visibility** — Preview tab only appears when Enable Menus is checked.
    • IFO audio track table** — VTS_MAT audio attributes now correctly reflect actual track codec, channel count, and language. Added AudioCodingModeFromCodec, LanguageCodeBytes, and NumChannelsField helpers to internal/dvd/ifo with unit tests.
    • Drag crash fix (revised)** — Dragging a video file into the Author module no longer hard-crashes back to the login screen. Root cause was handleDrop triggering a full 7-tab showAuthorView() rebuild on the main thread during DnD completion, which rendered a 720×480 GPU texture concurrent with the XWayland/GLFW DnD handshake. Fixed by adding an authorClipsRefresh callback (same pattern as authorChaptersRefresh) so drops only update the clip list widget — no view rebuild, no GPU upload during DnD. addAuthorFiles also runs off the main thread.

    Full details: docs/CHANGELOG.md

    Downloads