code wiki / (root) / nx_av1_obu_gate.nx

nx_av1_obu_gate.nx

buildroot/runtime/nx_av1_obu_gate.nx

8565 B198 linesdepth 5pulls 5 transitivereach 0 importersview sourcekind gate/prooftopic av1
docsdependenciesstructsconstsfunctions

about

nx_av1_obu_gate.nx -- proves the AV1/AV2 OBU layer by ROUND-TRIP. T2 pins LEB128 to its canonical encodings absolutely (128 -> 0x80 0x01), because a writer that emits a longer-than-necessary form still round-trips against its own reader while producing streams other decoders reject. T6/T7 are the security-shaped ones: obu_forbidden_bit and obu_reserved_1bit must both be REFUSED. A parser that ignores them consumes arbitrary bytes as headers and resynchronises onto garbage -- the standard way a malformed file becomes a long walk through memory. T8 also bounds LEB128 at 8 bytes, so a continuation run cannot march off the buffer. T4 separates UVLC from LEB128. They are both 'variable length' and they are not the same code; confusing them misreads every frame-header field after the first, silently. license_tier: ORIGINAL

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_bitstream.nx nx_av1_obu.nx nx_av1_obu_gate.nx

imports: nx_syscalls.nxnx_bitstream.nxnx_av1_obu.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main sys_mmap nx_obu_leb128_write nx_obu_leb128_read nx_bitstream_alloc sys_mmap ↻ nx_obu_uvlc nx_bitstream_read_msb nx_bitstream_bits_remainin _bs_peek_byte nx_obu_write nx_obu_leb128_write ↻ nx_obu_count sys_mmap ↻ nx_obu_parse sys_mmap ↻ nx_obu_leb128_read ↻ nx_obu_parse ↻ g_puts sys_write sys_exit g_putn sys_mmap ↻ g_puts ↻ sys_write ↻

structs

none

consts

none

functions

22func g_puts(s: *u8) -> i64
called by 2: g_putnmain calls 1: sys_write
29func g_putn(v: i64) -> i64
called by 1: main calls 3: sys_mmapg_putssys_write
43func main() -> i64