Release v0.4.0: labels rewrite, eject, capture fix
This commit is contained in:
@@ -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)
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libfreemkv"
|
name = "libfreemkv"
|
||||||
version = "0.3.1"
|
version = "0.4.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "AGPL-3.0-only"
|
license = "AGPL-3.0-only"
|
||||||
description = "Open source raw disc access library for optical drives"
|
description = "Open source raw disc access library for optical drives"
|
||||||
|
|||||||
Reference in New Issue
Block a user