dvd: the unit chain's end is 0xFFFFFFFF by the book; the seamless bit is not a clock statement

This commit is contained in:
Matthew Jackson
2026-10-04 11:01:03 -07:00
parent 2b8133ed5d
commit 3992cee538
2 changed files with 4 additions and 4 deletions
+3 -3
View File
@@ -21,12 +21,12 @@ fn load_vmg(
const DSI_DATA: usize = 0x407;
const DSI_ILVU_EA: usize = DSI_DATA + 32 + 2;
const DSI_NEXT_ILVU_SA: usize = DSI_DATA + 32 + 6;
// SML_PBI's "no next unit": 0x7FFFFFFF by the book, and discs also write 0xFFFFFFFF.
// SML_PBI's "no next unit": 0xFFFFFFFF by the book, and discs also write 0x7FFFFFFF.
const NO_NEXT_ILVU: u32 = 0x7FFF_FFFF;
// The sector ranges an interleaved cell plays: its own interleaved units, found by following
// each unit's navigation pack (its end, then the next unit's start). `None` when a pack does not
// read or parse, which leaves the cell's whole range to the caller.
// each unit's navigation pack. The chain runs per VOB, past the cell, so it is clipped to the
// cell. `None` when a pack does not read or parse, which leaves the cell's range to the caller.
fn interleaved_units(
reader: &mut dyn SectorSource,
vob_start: u32,
+1 -1
View File
@@ -101,7 +101,7 @@ pub struct CellCategory {
pub block_mode: u8,
/// bits 5-4: 0=not part of a block, 1=angle block.
pub block_type: u8,
/// bit 3: seamless playback (STC continuous).
/// bit 3: seamless playback linked in PCI (not a statement that the STC continues).
pub seamless_play: bool,
/// bit 2: interleaved (multi-angle / seamless-branch interleave).
pub interleaved: bool,