MattJackson
8820f7a460
Fix cargo fmt formatting
2026-04-16 17:51:45 +00:00
MattJackson
8e907393a3
Route DVD PS demuxer through codec parsers, fix CSS test expectations
...
- DVD PS path now calls parser.parse() like BD-TS path does
- MPEG-2 sequence headers extracted for codec_private
- Keyframe detection from parser instead of always-true
- Fix CSS roundtrip tests: descramble uses TAB1 permutation, not pure XOR
2026-04-16 04:49:46 +00:00
MattJackson
ff6004a567
Unified Stream trait: read() and write() on one type
...
Stream trait: read() returns PesFrame, write() accepts PesFrame.
A stream is a stream — you read from it or write to it.
No separate Input/Output traits.
API: libfreemkv::input(url) and libfreemkv::output(url, title, codecs)
Returns Box<dyn Stream>.
2026-04-15 03:33:29 +00:00
MattJackson
113d6b9e9e
CSS + AACS cross-validation test vectors
...
AACS: encrypt with aes crate independently, decrypt with our code, verify match
- 3 tests: unit decrypt, alternate key, bus decrypt
- Uses independent AACS IV constant (not imported from library)
CSS: roundtrip snapshots + Stevenson attack validation
- 4 tests: snapshot regression, multi-key roundtrip, attack validation
- Documents limitation: synthetic sectors may not converge on attack
320+ tests total.
2026-04-11 20:31:12 +00:00
MattJackson
75dfd06a02
Fix all v4 audit findings (22 items)
...
HIGH: ISO writer multi-extent for >4GB, end-to-end MKV mux test
MEDIUM: AACS cvalue bounds, UV offset, macOS discovery, VC-1 resolution
from sequence header, HEVC profile flags from SPS, ISO CRC + reserve AVDP
LOW: PS AC3 sub-header, CSS crack first-match break, TrackUID unique,
AC3 no-sync empty return, --all for iso://, --min warning, dead code removed
320 tests, all passing.
2026-04-11 20:29:00 +00:00
MattJackson
f48b4925c1
Zero clippy warnings: fix all 32 remaining
...
- Iterator::find() replaces manual loops (6 sites)
- Index-only loops → iterators (4 sites)
- Identical if-blocks merged
- Box large MkvStream WriteState enum variant
- Vec macro initializers, late init fixes
- Unused fields prefixed with underscore (format spec fields)
- Dead code removed or documented
0 clippy warnings. 319 tests passing.
2026-04-11 19:33:13 +00:00
MattJackson
ffa0eaba4d
cargo fmt + clippy --fix: 104 format violations fixed, 8 clippy auto-fixes
2026-04-11 19:10:20 +00:00
MattJackson
fe723a7759
Add crypto roundtrip tests: CSS + AACS validation
...
- CSS: decrypt_key determinism, descramble XOR roundtrip, TAB1 permutation,
TAB4 bit-reversal involution, Stevenson attack on scrambled sector
- AACS: decrypt_unit roundtrip, disc hash deterministic, VUK derivation,
unit key parsing, EC point-on-curve and ECDSA already covered
- 239 tests total
2026-04-11 17:17:29 +00:00