mux: document that the Url arm selects via InputOptions.selection
CI / lint (push) Failing after 1m19s
CI / test (push) Failing after 1m20s
leak-guard / leak-guard (push) Successful in 10s
CI / check-macos (push) Has been cancelled
CI / check-windows (push) Has been cancelled

The Url mux path prunes streams inside input() via InputOptions.selection;
MuxOptions.selection only applies on the File/Session arms. A Url-source caller
must set InputOptions.selection — noting it so a future caller does not put the
selection on MuxOptions and silently keep every track (the bug the GUI hit).
This commit is contained in:
Matthew Jackson
2026-07-28 18:40:47 -07:00
parent bbb5a953f1
commit 767d205fd4
+4
View File
@@ -282,6 +282,10 @@ pub fn mux_stream(
// live `DiscStream`'s read loop — forward `BytesRead`/`SectorSkipped`/
// `BatchSizeChanged`/`ReadError` back to the consumer's handle.
let (stream, playlist_name): (Box<dyn Stream>, Option<String>) = match input_src {
// The Url path builds its demux INSIDE `input()`, which prunes to the
// selected streams via `InputOptions.selection` (which the caller sets).
// Note: `MuxOptions.selection` does NOT apply here — that's the File/
// Session arms' field; a Url-source caller must set `InputOptions.selection`.
MuxInput::Url { url, opts: in_opts } => (input(url, &in_opts)?, None),
MuxInput::Iso {
path,