Skip to content

Releases

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 17:15

Full Changelog: v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 23:08

Full Changelog: v0.4.1...v0.5.0

Full Changelog: v0.4.1...v0.5.0

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 30 Oct 21:53

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 20:58

Full Changelog: v0.3.0...v0.4.0

DVD Forge v0.3.0

Choose a tag to compare

@Nicolasalucin Nicolasalucin released this 30 Oct 17:43

DVD Forge v0.3.0

This release adds a structural safety net before burning, deterministic render
caching, hardware H.264 support, richer MKV/MP4 metadata import and a
reference-grade MPEG-2 path.

Highlights

Pre-burn structural verifier

  • New independent, read-only dvdforge-verify crate.
  • UDF 1.02/2.50: AVDP, VRS, PVD, partition map, FSD, root ICB, Tag 266 Extended
    File Entries, extent bounds, metadata mirror and optional SHA-256 digest.
  • BDMV: index.bdmv, 12-byte MovieObject commands, MPLS/CLPI references,
    IN/OUT times, M2TS sync, PAT/PMT, video/audio/IG/PGS PIDs.
  • DVD-Video: byte-identical .IFO/.BUP for VMG and every VTS, PGC/cell
    bounds, non-overlapping cells, DVD-9 SPLIP, region mask and VOB presence.
  • CLI: dvdforge-cli verify disc.iso [--deep] [--json] [--strict].
  • Automatic verification after render and before burn; Fail blocks burning.

Smart Render Cache v2

  • ArtifactKey v2 with ArtifactKind for episodes, menu videos, menu overlays
    and intros.
  • fp2: full streaming SHA-256 source identity; no size/mtime/edge sampling.
  • Canonical inputs_hash covers trim, fps, scale mode, encoder args, audio,
    subtitle contents and menu composition.
  • SQLite artifact_cache_v2 with kind, inputs_hash, encoder_rev,
    toolchain_hash, size_bytes and last_used_at.
  • CacheLookup distinguishes Hit, Miss, Stale and Error; cache failures are
    diagnostics, not render failures.
  • LRU pruning and cache statistics APIs.

Hardware H.264 encoding

  • Detects and smoke-tests NVENC, QSV, VAAPI, AMF and VideoToolbox with a
    one-frame lavfi encode.
  • Hardware H.264 for AVCHD/Blu-ray; DVD-Video remains on tuned CPU MPEG-2.
  • Output checked with ffprobe for H.264, High profile and yuv420p.
  • Automatic CPU/libx264 fallback with W_HW_ENCODER_FALLBACK.
  • UI: hardware/CPU selector in production, encoder status in Toolchain Doctor.

MKV/MP4 metadata import

  • FFprobe chapters, stream titles, audio default/commentary and subtitle
    default/forced metadata.
  • Chapters imported into the active trim range as disc-rate frames,
    deduplicated and anchored at 00:00.
  • Bitmap subtitles (PGS/VobSub/DVB/XSUB) detected and rejected from the
    SRT/Spumux pipeline with W_BITMAP_SUBTITLE_UNSUPPORTED.

Reference-grade MPEG-2

  • Lanczos scaling and DVD-compliant output.
  • -mbd rd, -cmp rd, -subcmp rd, -trellis 1 pass 1 / -trellis 2 pass 2.
  • -intra_dc_precision 0/1/2 for 8/9/10-bit DC precision.
  • Closed GOP (+cgop) with strict PAL 15 / NTSC 18 GOPs and
    -sc_threshold 1000000000 because FFmpeg rejects closed GOP with scene-cut
    detection.
  • Job-scoped passlog and NUL//dev/null pass-1 sink.

DVD-9 layer break

  • Planner computes a 16-sector ECC-aligned layer-break sector.
  • Authoring applies the SPLIP/seamless bit to the containing VTS PGC cell.
  • VTS_01_0.IFO and VTS_01_0.BUP remain byte-identical.
  • Verifier checks layer-break placement on DVD-9 images.

Verification

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • cargo check --workspace --exclude dvdforge-desktop --target i686-unknown-linux-gnu
  • npm run check
  • npm run build
  • Full vendor/libmkiso test suite.
  • Render smoke tests: DVD, DVD-9, AVCHD, BD-25, nested HDMV menus, subtitles
    and animated menus.
  • CLI structural verification passes on generated DVD and BD-25 images.

Notes

  • Hardware encoder paths are implemented and guarded by driver smoke tests plus
    output compliance checks, but physical GPU validation depends on the host.
  • DVD-9 SPLIP and layer-break placement are structurally validated; physical
    dual-layer burning still requires appropriate media and a burner.
  • -sc_threshold -30000 is intentionally not used with +cgop because FFmpeg
    rejects that combination for MPEG-2.

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 20:00

DVD Forge 0.2.0

This release applies all 75 findings from the DVD Forge audit and moves every application, crate and package version to 0.2.0.

Highlights

  • Authoring correctness: DVD chapter mapping, first-only entry ptt, Play All ordering, button-less menus, AVCHD chapters, and 16:9 subtitle handling.
  • HDMV / IG: line-safe RLE encoding, 1-based stream IDs, palette cube fixes, self-referencing IG neighbours, no PG-only WDS in IG display sets, single-pass IG compilation, and in-place IG injection.
  • ISO / UDF: in-process DVD ISO validation with a UDF AVDP check, no-clobber publication, 32-sector ECC end alignment, larger BD limits, and i686-safe device sizing.
  • Rendering performance: embedded subtitles extracted in one FFmpeg demux pass, elementary streams/pass logs removed after mux, concurrent probes, preview/proxy caches, thumbnail concurrency limits, and deferred editor redraws.
  • Burning: cancellation during verification, throttled progress IPC, concurrent ISO/disc hashing, hdiutil -noeject -noverifyburn -forceclose, and safer tray handling.
  • Desktop / CLI: atomic project saves, project-switch guards, async file/SQLite commands, parallel toolchain doctor, and Ctrl-C cleanup.

The vendored libmkiso remains at upstream 0.1.5; the local hardening patches are documented in vendor/libmkiso/DVDFORGE-PATCH.md.

Full Changelog: v0.15.0...v0.2.0

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 00:40

Full Changelog: v0.1.0...v0.15.0

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 03:04