re: resolve_movie_voice_region starts INSIDE the first stream, 8 of 10 multichannel regions
Found because the port refused to apply my stream assignment and did the arithmetic instead: the running decoder's three ADV contexts sum to 3 584 000 B against a resolved region of 3 114 352 -- 15 % too small to hold them. Two spans, one wrong, and it was the disc side. The gap is 238 packets exactly (487 424 B), which is what a start offset looks like; ctx0 declares 632 packets and the resolver's leading chunk has 394. Verified against the decoder's own byte_sizes, which cannot be fitted to: at -238 packets to_xma_riffs yields [1294336, 1118208, 1171456], all three exactly. It is a real boundary and not the end of a sweep -- at -300 the previous asset's chunks appear while the three ADV sizes stay stable. Disc-wide: 24 of 24 single-chunk regions start at a boundary; 8 of 10 three-chunk regions start mid-stream. The defect is specific to the multichannel case. The audit's per-movie number is an UPPER BOUND, not the clip -- its stopping rule is the chunk count changing, and to_xma_riffs absorbs a few packets of the previous asset first (243 reported for ADV against a true 238). Only ADV has external ground truth. Consequence: in those 8 movies the leading chunk is a truncated first stream, not a spurious artefact, and anything measured on it was measured on a fragment -- including this corpus's own chunk-0 level, though the assignment survives because its ratio test was chosen to be immune to the clipping. The resolver is NOT patched. Why the predecessor cue's trailer lands 238 packets into the next asset is unanswered, and a fix guessed from one movie would be worse than a documented defect. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
63
docs/re/data/voice-region-start-audit.txt
Normal file
63
docs/re/data/voice-region-start-audit.txt
Normal file
@@ -0,0 +1,63 @@
|
||||
movie chunks first chunk clip pkts verdict
|
||||
ADV 3 806912 243 STARTS MID-STREAM
|
||||
S00A 3 1323008 243 STARTS MID-STREAM
|
||||
S01A 3 1153024 243 STARTS MID-STREAM
|
||||
RT01A 1 284672 0 starts at a boundary
|
||||
RT01B 1 350208 0 starts at a boundary
|
||||
RT01C_1 1 352256 0 starts at a boundary
|
||||
RT01C_2 1 354304 0 starts at a boundary
|
||||
S02A 3 665600 0 starts at a boundary
|
||||
S02B 3 430080 243 STARTS MID-STREAM
|
||||
S02C 3 1867776 243 STARTS MID-STREAM
|
||||
RT02A 1 321536 0 starts at a boundary
|
||||
RT02B 1 387072 0 starts at a boundary
|
||||
RT02C 1 436224 0 starts at a boundary
|
||||
RT02D_1 1 190464 0 starts at a boundary
|
||||
RT02D_2 1 243712 0 starts at a boundary
|
||||
hokyu_LS_s02A 1 51200 0 starts at a boundary
|
||||
hokyu_LS_s02H 1 38912 0 starts at a boundary
|
||||
S03A 3 251904 243 STARTS MID-STREAM
|
||||
RT03A 1 319488 0 starts at a boundary
|
||||
RT03B 1 266240 0 starts at a boundary
|
||||
RT03C 1 397312 0 starts at a boundary
|
||||
RT03D 1 612352 0 starts at a boundary
|
||||
hokyu_LS_s03A 1 51200 0 starts at a boundary
|
||||
hokyu_LS_s03H 1 38912 0 starts at a boundary
|
||||
S04B 3 555008 243 STARTS MID-STREAM
|
||||
RT04A 1 229376 0 starts at a boundary
|
||||
RT04B 1 219136 0 starts at a boundary
|
||||
hokyu_DS_s02A 1 53248 0 starts at a boundary
|
||||
S05A 3 161792 0 starts at a boundary
|
||||
RT05A 1 307200 0 starts at a boundary
|
||||
RT05B 1 344064 0 starts at a boundary
|
||||
RT05C 1 188416 0 starts at a boundary
|
||||
hokyu_LS_s02A 1 51200 0 starts at a boundary
|
||||
S06A 3 350208 243 STARTS MID-STREAM
|
||||
S06B 3 606208 243 STARTS MID-STREAM
|
||||
RT06A 1 301056 0 starts at a boundary
|
||||
RT06B 1 325632 0 starts at a boundary
|
||||
RT06C 1 227328 0 starts at a boundary
|
||||
RT06D 1 120832 0 starts at a boundary
|
||||
hokyu_LS_s06A 1 51200 0 starts at a boundary
|
||||
hokyu_LS_s06H 1 38912 0 starts at a boundary
|
||||
S07A 3 503808 243 STARTS MID-STREAM
|
||||
S07B 3 53248 0 starts at a boundary
|
||||
RT07A 1 505856 0 starts at a boundary
|
||||
RT07B 1 258048 0 starts at a boundary
|
||||
RT07C 1 133120 0 starts at a boundary
|
||||
hokyu_DS_s07A 1 53248 0 starts at a boundary
|
||||
hokyu_DS_s07H 1 57344 0 starts at a boundary
|
||||
RT08A 1 180224 0 starts at a boundary
|
||||
RT08B 1 174080 0 starts at a boundary
|
||||
RT08C 1 143360 0 starts at a boundary
|
||||
hokyu_DS_s08A 1 53248 0 starts at a boundary
|
||||
S09B 3 176128 243 STARTS MID-STREAM
|
||||
RT09A 1 307200 0 starts at a boundary
|
||||
RT09B 1 468992 0 starts at a boundary
|
||||
RT09C 1 245760 0 starts at a boundary
|
||||
RT09D 1 385024 0 starts at a boundary
|
||||
hokyu_LS_s09A 1 53248 0 starts at a boundary
|
||||
hokyu_LS_s09H 1 38912 0 starts at a boundary
|
||||
RT10A 1 106496 0 starts at a boundary
|
||||
RT10B 1 67584 0 starts at a boundary
|
||||
S11A 3 81920 0 starts at a boundary
|
||||
47
docs/re/data/voice-region-start-clip.txt
Normal file
47
docs/re/data/voice-region-start-clip.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
# resolve_movie_voice_region starts 238 packets LATE for ADV.
|
||||
#
|
||||
# 2026-08-30. Raised by the port agent, whose arithmetic is the whole reason
|
||||
# this was found: the running decoder's three ADV contexts sum to 3 584 000
|
||||
# payload bytes, but the resolved region is 3 114 352 -- 15 % too small to
|
||||
# hold them. One of the two spans was wrong, and it was the disc side.
|
||||
#
|
||||
# The gap is a WHOLE NUMBER OF PACKETS, which is what a start offset looks
|
||||
# like and corruption does not:
|
||||
# ctx0 declares 632 packets = 1 294 336 B
|
||||
# the resolver's leading chunk has 394 packets = 806 912 B
|
||||
# difference 238 packets = 487 424 B
|
||||
#
|
||||
# GROUND TRUTH is the running decoder's own byte_sizes. This is not free to
|
||||
# fit: the span either lands on all three or it does not.
|
||||
#
|
||||
resolver says 433930240..437044592 (3114352 B)
|
||||
decoder wants [1294336, 1118208, 1171456] = 3584000 B payload
|
||||
|
||||
- 0 packets (start 433930240): 3 chunk(s) [806912, 1118208, 1171456]
|
||||
- 100 packets (start 433725440): 3 chunk(s) [1011712, 1118208, 1171456]
|
||||
- 200 packets (start 433520640): 3 chunk(s) [1216512, 1118208, 1171456]
|
||||
- 237 packets (start 433444864): 3 chunk(s) [1292288, 1118208, 1171456]
|
||||
- 238 packets (start 433442816): 3 chunk(s) [1294336, 1118208, 1171456] <== MATCHES THE DECODER
|
||||
- 239 packets (start 433440768): 3 chunk(s) [1296384, 1118208, 1171456]
|
||||
- 300 packets (start 433315840): 5 chunk(s) [57344, 45056, 1294336, 1118208, 1171456]
|
||||
- 400 packets (start 433111040): 8 chunk(s) [59392, 59392, 47104, 47104, 45056, 1294336, 1118208, 1171456]
|
||||
|
||||
# -238 is a real boundary, not the end of a sweep: at -300 and -400 the
|
||||
# PREVIOUS asset's chunks appear (57344, 45056, ...) while the three ADV
|
||||
# sizes stay exactly stable. The stream starts at -238 and something else
|
||||
# ends just before it.
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# DISC-WIDE (examples/voice_region_start_audit.rs, full table in
|
||||
# voice-region-start-audit.txt)
|
||||
#
|
||||
# 1-chunk regions: 24 of 24 start at a chunk boundary
|
||||
# 3-chunk regions: 8 of 10 START MID-STREAM
|
||||
#
|
||||
# So the defect is specific to the three-stream (multichannel) voice regions.
|
||||
#
|
||||
# ⚠️ The audit's "243" column is an UPPER BOUND on the clip, not the clip. Its
|
||||
# stopping rule is "step back until the chunk COUNT changes", and to_xma_riffs
|
||||
# will happily absorb a few packets of the PREVIOUS asset into the first chunk
|
||||
# before that happens -- for ADV it reports 243 where the decoder-verified
|
||||
# answer is 238. Only ADV has external ground truth.
|
||||
Reference in New Issue
Block a user