docs: 1.2.0 CHANGELOG — document the breaking public-API changes
Per the release decision: ship the AACS-version-stride API changes under the 1.2.0 minor bump, with an explicit Breaking section (DiscInputs new field, DiscInputsCtx::new arity, read_aacs_inputs* 3-tuple return).
This commit is contained in:
@@ -2,6 +2,28 @@
|
|||||||
|
|
||||||
## [1.2.0] — 2026-06-28
|
## [1.2.0] — 2026-06-28
|
||||||
|
|
||||||
|
### Breaking
|
||||||
|
|
||||||
|
The disc's AACS version is now carried through the key-resolution path as the
|
||||||
|
single source of truth for the `Unit_Key_RO` stride (AACS-1.0 = 48-byte,
|
||||||
|
AACS-2.x = 64-byte), so keys are always read at the disc's own layout. That
|
||||||
|
threaded one new value through three public signatures. In-tree consumers
|
||||||
|
(`freemkv`, `autorip`, `freemkv-keysources`) are updated; external callers must
|
||||||
|
adjust:
|
||||||
|
|
||||||
|
- **`DiscInputs` gains a `version: u8` field** (between `volume_id` and `mkb`).
|
||||||
|
Code constructing it with a struct literal must add the field. It is normally
|
||||||
|
obtained from `Disc::inputs()`, not constructed by hand.
|
||||||
|
- **`keysource::DiscInputsCtx::new` takes one argument, not two** — the version
|
||||||
|
is now read from `inputs.version` (`new(inputs)` instead of
|
||||||
|
`new(inputs, version)`).
|
||||||
|
- **`disc::read_aacs_inputs` / `read_aacs_inputs_from_drive` return a 3-tuple**
|
||||||
|
`(inf, mkb, version)` instead of `(inf, mkb)`.
|
||||||
|
|
||||||
|
These are source-breaking for external crates.io consumers. Shipped under a
|
||||||
|
minor bump (1.2.0): libfreemkv's surface is not yet frozen and the only known
|
||||||
|
consumers are the in-tree toolchain crates.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- **Mux loss concealment — a logged gap still produces a decode-clean file.**
|
- **Mux loss concealment — a logged gap still produces a decode-clean file.**
|
||||||
|
|||||||
Reference in New Issue
Block a user