pipeline: one run context, KeyRing, Source, Read stage, block and tree sinks

One run context (halt, events, loss counters) serves every stage; keys
come from KeyEvidence into a KeyRing. open_source opens every input,
disc:// included, replacing MuxSource; PesSource/PesSink replace
pes::Stream; one Read stage replaces DiscStream and the byte
prefetcher. iso://, null:// and dir:// are sinks. Dead error variants
(E9009, E9063, E9082) and scaffolding removed.
This commit is contained in:
Matthew Jackson
2026-10-01 08:34:14 -07:00
parent 81ecc8acce
commit 46ffac8690
103 changed files with 6935 additions and 14641 deletions
+7 -11
View File
@@ -384,7 +384,7 @@ fn no_thread_sleep_on_op_paths() {
];
const ALLOW: &[Allow] = &[
(
"src/disc/extract.rs",
"src/io/tree_sink.rs",
"probe_case_insensitive",
"20 ms filesystem remove retry; no drive wait, no token in reach",
),
@@ -536,17 +536,11 @@ fn no_is_finished_spins_outside_halt() {
// The `#[allow]` / `#[expect]` sites present when ST-X2 landed, per (file, attribute):
// each is a §5.8 violation awaiting a per-site fix. The list only shrinks.
const ALLOW_BASELINE: &[(&str, &str, usize)] = &[
("src/aacs/provider.rs", r#"allow(dead_code)"#, 1),
(
"src/disc/extract.rs",
r#"allow(clippy::too_many_arguments)"#,
1,
),
(
"src/disc/extract.rs",
r#"allow(clippy::unnecessary_cast,clippy::useless_conversion)"#,
1,
),
("src/drive/linux.rs", r#"allow(dead_code)"#, 1),
("src/drive/mod.rs", r#"allow(dead_code)"#, 1),
(
@@ -554,6 +548,11 @@ const ALLOW_BASELINE: &[(&str, &str, usize)] = &[
r#"cfg_attr(not(target_os="linux"),allow(unused_variables))"#,
1,
),
(
"src/io/tree_sink.rs",
r#"allow(clippy::unnecessary_cast,clippy::useless_conversion)"#,
1,
),
(
"src/keys/arrival.rs",
r#"allow(clippy::too_many_arguments)"#,
@@ -592,11 +591,8 @@ const ALLOW_BASELINE: &[(&str, &str, usize)] = &[
("src/mpls.rs", r#"allow(dead_code)"#, 2),
("src/mux/demux_sink.rs", r#"allow(dead_code)"#, 2),
("src/mux/demux_thread.rs", r#"allow(dead_code)"#, 1),
("src/mux/fmp4/mod.rs", r#"allow(dead_code)"#, 1),
("src/mux/hevc/mod.rs", r#"allow(dead_code)"#, 1),
("src/mux/m2ts_mux/mod.rs", r#"allow(dead_code)"#, 1),
("src/mux/mkv.rs", r#"allow(clippy::too_many_arguments)"#, 3),
("src/mux/mod.rs", r#"allow(dead_code)"#, 6),
("src/mux/mod.rs", r#"allow(dead_code)"#, 3),
("src/mux/pipelined_stream.rs", r#"allow(dead_code)"#, 1),
(
"src/mux/resolve.rs",