Program Chain structure

This is the usual order of tables within one PGC.
PGC
 PGC header 
 command table 
 program map 
 cell playback information 
 cell position (VOBidn & CELLidn) 

PGC header

OffsetLabelsizeContents
0000 2 
0002 1number of programs
0003 1number of cells
0004 4playback time, BCD, hh:mm:ss:ff with bits 7&6 of frame (last) byte indicating frame rate
11 = 30 fps, 10 = illegal, 01 = 25 fps, 00 = illegal
0008 4prohibited user ops
000CPGC_AST_CTL8*2
Audio Stream Control, each entry:
byte76543210
01 = stream available
reserved
Stream number (MPEG audio) or Substream number (all others)
1
reserved
001CPGC_SPST_CTL32*4
Subpicture Stream Control, each entry:
byte76543210
01 = stream available
reserved
Stream number for 4:3
1
reserved
Stream number for wide
2
reserved
Stream number for letterbox
3
reserved
Stream number for pan&scan
009C 2next PGCN
009E 2previous PGCN
00A0 2goup PGCN
00A2 1PGC still time, 255=infinite
00A3 1PG playback mode, 0=sequential, otherwise bit7 indicates random (0) or shuffle (1), and the program count is in bits6-0
00A4 16*4palette (0, Y, Cr, Cb)
00E4 2offset within PGC to commands
00E6 2offset within PGC to program map
00E8 2offset within PGC to cell playback information table
00EA 2offset within PGC to cell position information table

command table

OffsetLabelsizeContents
0000 2number of pre commands
0002 2number of post commands
0004 2number of cell commands
0006 2end address relative to command table
0008 pre*8pre commands
0008+pre*8 post*8post commands
0008+(pre+post)*8 cell*8cell commands
* The total number of pre+post+cell commands must be 128 or less

program map entry (one per program, pad to word boundary with zero)

OffsetLabelsizeContents
0000 1entry cell number
* Program and Cell numbers begin at 1.

cell playback information table entry (one per cell)

OffsetLabelsizeContents
0000 4
cell category
byte76543210
0cell type 00=normal, 01=first of angle block, 10=middle of angle block, 11=last of angle block Block Type 00 = normal, 01 = angle block 1 = seamless playback linked in PCI 1 = interleaved 1 = STC discontinuity 1 = seamless angle linked in DSI
1 1 = restricted (stops trick play) 
2
cell still time
3
cell command #
0004 4cell playback time, BCD, hh:mm:ss:ff with bits 7&6 of frame (last) byte indicating frame rate
11 = 30 fps, 10 = illegal, 01 = 25 fps, 00 = illegal
0008 4first VOBU start sector
000C 4first ILVU end sector
0010 4last VOBU start sector
0014 4last VOBU end sector

cell position information table entry (one per cell)

OffsetLabelsizeContents
0000 2VOB id
0002 1reserved
0003 1Cell id

DVD-Video home