VTS_PTT_SRPT
VTS_PTT_SRPT |
| VTS_PTT | |
| : | |
| VTS_PTT | |
|
|
VTS_PTT_SRPT
offset | 0 | 1 | 2 | 3 |
0 | number of titles | reserved |
4 | end address (last byte of last VTS_PTT) |
8 | offset to PTT for title 1 |
C ... | possible additional entries |
|
The VTS_PTT_SRPT contains pointers to the tables for each title, and is indexed by
VTS_TTN (title number within VTS) |
VTS_PTT
offset | 0 | 1 | 2 | 3 |
0 | Program Chain (PGCN) | Program (PGN) |
4 ... | possible additional entries |
|
The VTS_PTT contains pointers to the Program Chain (PGCN) and Program (PGN) for each
Part-of-Title (PTT or Chapter), and is indexed by TT_PTTN (PTT number within title) |
|
VTS_PGCI
VTS_PGCI |
| VTS_PGC | |
| : | |
| VTS_PGC | |
The VTS_PGCI contains a list of Program Chains (PGCs), and the PGCs themselves.
offset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | number of Program Chains | reserved | end address (last byte of last PGC) relative to VTS_PGCI |
8 | PGC category, see below | offset to VTS_PGC, relative to VTS_PGCI |
10 ... | possible additional entries |
breakdown of the PGC category
byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 1=entry PGC | title number |
1 | |
2 | parental management mask |
3 | parental management mask |
On to PGC description
|
VTSM_PGCI_UT
The VTSM_PGCI_UT contains a number of tables forming a heirarchy. Most entries are 8 bytes long.
VTSM_PGCI_UT |
| VTSM_LU | |
| | VTSM_PGC | | |
| : | |
| | VTSM_PGC | | |
: |
| VTSM_LU | |
| | VTSM_PGC | | |
| : | |
| | VTSM_PGC | | |
At the top is the VTSM_PGCI_UT which lists all the Language Units.
offset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | number of Language Units | reserved | end address (last byte of last PGC in last LU) relative to VTSM_PGCI_UT |
8 | ISO639 language code | reserved for language code extension | Menu existence flags 80 = root,
40 = sub-picture, 20 = audio, 10 = angle, 08 = PTT | offset to VTSM_LU, relative to VTSM_PGCI_UT |
10 ... | possible additional entries |
Next, the VTSM_LU which lists all the Program Chains.
offset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | number of Program Chains | reserved | end address (last byte of last PGC in this LU) relative to VTSM_LU |
8 | PGC category, see below | offset to VTSM_PGC, relative to VTSM_LU |
10 ... | possible additional entries |
breakdown of the PGC category
byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 1=entry PGC | reserved | menu type (entry only) 3 = root,
4 = sub-picture, 5 = audio, 6 = angle, 7 = PTT (chapter) |
1 | |
2 | parental management mask |
3 | parental management mask |
On to PGC description
|
VTS_TMAPTI
This table contains time maps for each PGC.
VTS_TMAPTI |
| VTS_TMAP | |
| : | |
| VTS_TMAP | |
VTS_TMAPTI
offset | 0 | 1 | 2 | 3 |
0 | number of program chains | |
4 | end address (last byte of last VTS_TMAP) |
8 | offset to VTS_TMAP 1
Note: each PGC MUST have a time map, even if it is empty |
C ... | possible additional entries |
VTS_TMAP
offset | 0 | 1 | 2 | 3 |
0 | time unit (seconds) | | number of entries in map 0 for empty map |
4 | sector offset within VOBS of nearest VOBU
bit 31 set if VOBU time codes are discontinuous with previous |
8 ... | additional entries |
|