Fix rc5 audit findings: keydb doc, pipeline ordering, hot-loop Arc, tests

- keydb.rs: separate default_path()/no_home_dir() doc blocks; correct the
  false XDG lock-step claim (Linux write path uses $HOME, ignores
  XDG_CONFIG_HOME; read-side search also checks XDG_CONFIG_HOME).
- io/pipeline.rs: use Release/Acquire on the abandoned flag so a leaked
  consumer reliably skips close() on weak memory models (ARM64/POWER),
  not just x86 TSO.
- mux/disc.rs: cache the decrypt-loss Arc at construction; lost_bytes()
  no longer clones an Arc per frame on the mux hot path.
- disc/dvd.rs: assert display_aspect mapping for both 16:9 (PAL test) and
  4:3 (NTSC test).
- mux/resolve.rs: extract css_error_aborts() helper and unit-test the
  scrambled-but-uncracked CSS guard (Fix 6) incl. the --raw exemption.
- aacs/keys.rs: add unit tests for mkb_type_raw/mkb_type/mkb_is_uhd and
  MkbType (Category C 2.0 UHD, prerecorded 1.0, no-0x10-record None).
- release.yml: publish job needs [verify, test] so a failing test suite
  blocks crates.io publication.
This commit is contained in:
Matthew Jackson
2026-06-23 19:11:09 -07:00
parent 3c3e0b4341
commit b82075b41a
7 changed files with 123 additions and 29 deletions
+11 -1
View File
@@ -542,7 +542,7 @@ mod tests {
let vmg = build_vmg(&[(1, 1, 1)]);
let vts = build_vts(
0,
crate::ifo::v_atr_byte(crate::ifo::VIDEO_FORMAT_PAL, crate::ifo::ASPECT_4X3),
crate::ifo::v_atr_byte(crate::ifo::VIDEO_FORMAT_PAL, crate::ifo::ASPECT_16X9),
&[],
&[],
&[(0, 9)],
@@ -582,6 +582,11 @@ mod tests {
ColorSpace::Bt470bg,
"PAL DVD is SD BT.470BG, not BT.709"
);
assert_eq!(
v.display_aspect,
Some((16, 9)),
"ASPECT_16X9 IFO byte must map to a 16:9 display aspect"
);
}
/// NTSC DVD video is SD SMPTE-170M colorimetry (not BT.709). Mirror of the
@@ -631,6 +636,11 @@ mod tests {
ColorSpace::Smpte170m,
"NTSC DVD is SD SMPTE-170M, not BT.709"
);
assert_eq!(
v.display_aspect,
Some((4, 3)),
"ASPECT_4X3 IFO byte must map to a 4:3 display aspect"
);
}
/// AC-3 audio gets sub_stream_id 0x80 → PID routed via dvd_audio_pid