v0.10.10: fix dual-layer disc rips, propagate read errors

Bump version, update CHANGELOG and FEATURES for 0.10.8-0.10.10.
This commit is contained in:
Matt Jackson
2026-04-18 02:10:20 +00:00
parent 23990de768
commit 3101138883
3 changed files with 21 additions and 2 deletions
+19
View File
@@ -1,5 +1,24 @@
# Changelog
## 0.10.10 (2026-04-18)
### Dual-layer disc fix
- **UDF extent allocation** — use actual UDF allocation descriptors (`file_extents()`) instead of assuming m2ts files are contiguous from `file_start_lba`. Dual-layer UHD discs split large files across many extents (~1 GB each). The old single-extent assumption truncated rips at ~37% on affected discs.
- **Read error propagation** — `fill_extents()` returns `io::Result<bool>` so SCSI read errors propagate to the caller instead of being silently treated as EOF.
## 0.10.9 (2026-04-17)
### Fast disc identification
- **Disc::identify()** — reads UDF filesystem only (name, format, layers, encrypted). ~3s on USB vs 18s for full scan. No AACS handshake or playlist parsing.
- **KEYDB path fix** — added `~/.config/freemkv/keydb.cfg` to search paths. Fixes silent rip hang when KEYDB exists but isn't found by `resolve_keydb()`.
## 0.10.8 (2026-04-17)
### Buffered UDF reads
- **BufferedSectorReader** — prefetches batch sectors on single-sector reads. USB drives have ~500ms per SCSI command; this eliminates scan hangs.
- **Metadata partition pre-read** — loads entire UDF metadata partition into memory after initial parse.
- Scan time reduced from 10+ minutes to ~18 seconds on USB.
## 0.10.7 (2026-04-17)
### DiscStream::new()
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "libfreemkv"
version = "0.10.9"
version = "0.10.10"
edition = "2021"
rust-version = "1.86"
license = "AGPL-3.0-only"
+1 -1
View File
@@ -1,6 +1,6 @@
# libfreemkv — Feature List
## v0.10.4 (current)
## v0.10.10 (current)
### Done
- [x] Drive access: open, identify, unlock, firmware upload, speed calibration, eject