Stamp the last frames that were still leaving without provenance

A real rip caught these. The warning added for a track placed from
timestamps under a seam plan fired once, on one subtitle track of a
23-clip title, eighteen minutes in — a display set that arrives as a lone
non-PCS segment is emitted straight through rather than accumulated, and
that path still built its frame with source: None.

Auditing the rest the same way found four more: flac, lpcm, mpegaudio and
the passthrough parser. All are one-PES-one-frame, so the packet's own
facts are the unit's facts.

Every Frame construction in every codec parser now carries a source,
checked by walking balanced braces rather than by eye — the earlier
count was taken with a regex that cannot see a block containing nested
braces, which is how these survived the first pass.
This commit is contained in:
Matthew Jackson
2026-08-07 10:01:39 -07:00
parent 991977f297
commit 8ec71834dd
5 changed files with 31 additions and 5 deletions
+1 -1
View File
@@ -116,7 +116,7 @@ impl CodecParser for MpegAudioParser {
vec![Frame {
discontinuity: pes.discontinuity,
coding: None,
source: None,
source: super::pesbuf::PesFacts::of(pes).source,
pts_ns,
keyframe: true,
data: pes.data.clone(),