diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..8ef89b6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,36 @@ +# Changelog + +## 0.4.0 (2026-04-07) + +### Labels — complete rewrite + +- **Detect-then-parse architecture**: each BD-J authoring format has its own parser module with `detect()` and `parse()` functions. Drop in a new parser with one line in the registry. +- **5 format parsers**: Paramount (`playlists.xml`), Criterion (`streamproperties.xml`), Pixelogic (`bluray_project.bin`), Warner CTRM (`menu_base.prop` / `language_streams.txt`), shared label vocabulary (`vocab.rs`) +- **Raw disc data principle**: label data passes through as-is from disc. Only BD-standard codec identifiers (MLP, AC3, DTS) are mapped to display names. Unknown authoring tool codes (csp, eda, cf) pass through raw. +- **`variant` field**: replaces `region` — language dialect codes from authoring tools, not BD spec regions +- Removed: old `jar` module (superseded by labels) +- Removed: dead label apply functions from disc.rs + +### Drive + +- **`DriveSession::eject()`**: sends PREVENT ALLOW MEDIUM REMOVAL then START STOP UNIT. Works reliably after raw mode unlock. +- **`DiscRegion` enum**: Free, BluRay(A/B/C), Dvd(1-8). UHD always region-free. + +### Capture + +- **Fixed sector range collection**: captures ALL files on disc (only skips STREAM/ video files and >50MB). Previously skipped BACKUP/, DUPLICATE/, and files >10MB which missed JAR content. + +## 0.3.1 + +- Labels module: 4 disc file parsers for stream labels +- Simplified labels API + +## 0.3.0 + +- Initial public release +- SCSI transport (Linux SG_IO, macOS IOKit) +- UDF 2.50 filesystem reader +- MPLS/CLPI parsers with full STN support +- Drive identification + profile matching +- 206 bundled drive profiles +- AACS 1.0 decryption (VUK + unit keys) diff --git a/Cargo.toml b/Cargo.toml index 322a0ce..5ecbc52 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libfreemkv" -version = "0.3.1" +version = "0.4.0" edition = "2021" license = "AGPL-3.0-only" description = "Open source raw disc access library for optical drives"