Files
libfreemkv/docs
MattJackson 0f18906ede v0.10.1: Streams are PES, Disc::copy() for sector dumps, zero English
Architecture:
- One stream per format, bidirectional PES (read/write on same type)
- IsoStream merged into DiscStream (one type, any SectorReader)
- Disc::copy() for disc→ISO raw sector dump
- IOStream trait deleted, all byte-level Read/Write removed
- ContentReader/OpenDisc/open_title/open_input/open_output deleted
- CountingStream wrapper for progress tracking

Error codes:
- All io::Error English strings replaced with Error enum variants
- From<Error> for io::Error conversion
- Unused variants removed, new stream/mux variants added

Deleted: mkvout.rs, pesout.rs, isowriter.rs, mkv-muxer-plan.md
Updated: all docs, README stream table, CHANGELOG

238 tests, 0 clippy warnings.
2026-04-15 19:46:01 +00:00
..

libfreemkv Documentation

Technical documentation for libfreemkv, the open source optical drive library.

Start Here

Disc to Rip: End-to-End Flow — How the library goes from a disc in the drive to decrypted content. Read this first.

Reference

Document What it covers
Architecture Module map, design principles, error codes, platform support
Drive Access Drive, SCSI transport, profiles, unlock, why raw mode is needed
AACS Encryption Key resolution (4 paths), content decryption, bus encryption, SCSI handshake
UDF Filesystem UDF 2.50 with metadata partitions, pointer chain, how files are read from disc
MPLS Playlists Playlist format, play items, STN stream table, coding types
CLPI Clip Info EP map (coarse + fine entries), timestamp-to-sector mapping, extent calculation
API Design Stream API design, PES pipeline, input/output resolution

Reading Order

If you want to understand the whole library:

  1. Disc to Rip — the big picture
  2. Architecture — how modules fit together
  3. Drive Access — how we talk to hardware
  4. UDFMPLSCLPI — how disc content is structured
  5. AACS — how encryption works and how we break it

API Documentation

Generated API docs are on docs.rs/libfreemkv.