libdvdread
- VMG - Video Manager Group
ifo_handle_t
ifofile
dvd_file_t
file-
vmg_identifier[12]
-DVDVIDEO-VMG
vmg_last_sector
- last sector of VMG set (last sector ofVIDEO_TS.BUP
)zero_1[12]
- reserved / unknownvmgi_last_sector
last sector ofVIDEO_TS.IFO
zero_2
- reserved / unknownspecification_version
- version numbervmg_category
- VMG category; byte1=prohibited region maskvmg_nr_of_volumes
- number of volumes, as in physical sets of discs (metadata)vmg_this_volume_nr
- volume number this disc belongs to (metadata)disc_side
- physical side of this disc (metadata)zero_3[19]
- reserved / unknownvmg_nr_of_title_sets
- number of title sets (VTS, or non-VMG IFOs)provider_identifier
- 32 character string of provider id (metadata), usually blankvmg_pos_code
- VMG POS (?)zero_4[24]
- reserved / unknownvmgi_last_byte
- end byte address ofVMGI_MAT
first_play_pgc
- start address ofFP_PGC
, the first, and only, and optional PGC for this (VMG) IFOzero_5[56]
- reserved / unknownvmgm_vobs
- starting sector of Menu VOBtt_srpt
- starting sector of table of titles,TT_SRPT
vmgm_pgci_ut
- starting sector of menu program chain table,VMGM_PGCI_UT
ptl_mait
- starting sector of parental management masks,VMG_PTL_MAIT
vts_atrt
- starting sector of audio, subtitle attributes,VMG_VTS_ATRT
txtdt_mgi
- starting sector of text data,VMG_TXTDT_MG
vmgm_c_adt
- starting sector of menu cell address table,VMGM_C_ADT
vmgm_vobu_admap
- starting sector of menu VOBU address map,VMGM_VOBU_ADMAP
zero_6[32]
- reserved / unknownvideo_attr_t
vmgm_video_attr
- VMG VOBs video attributesmpeg_version
- MPEG version- 0: MPEG-1
- 1: MPEG-2
video_format
- Video format- 0: NTSC
- 2: PAL
display_aspect_ratio
- aspect ratio- 0: 4:3
- 1: reserved
- 2: reserved
- 3: 16:9
permitted_df
- permitted display formats (?)line21_cc_1
- CC for line 21 field 1 in GOP (NTSC only)line21_cc_2
- CC for line 22 field 1 in GOP (NTSC only)unknown1
- reserved / unknownbit_rate
- ?picture_size
- video resolution- If format is NTSC:
- 0: 720×480
- 1: 704×480
- 2: 352×480
- 3: 352×240
- If format is PAL:
- 0: 720×576
- 1: 704×576
- 2: 352×576
- 3: 352×288
letterboxed
- 0: no
- 1: yes
film_mode
(if PAL)- 0: camera
- 1: film
zero_7
- reserved / unknownnr_of_vmgm_audio_streams
- number of audio streams in VMG VOBS, must be 0 or 1audio_attr_t
vmgm_audio_attr
- VMG VOBs audio attributesaudio_format
- audio codec- 0: AC3 (Dolby Digital)
- 1: unknown
- 2: MPEG-1
- 3: MPEG-2EXT
- 4: LPCM
- 5: unknown
- 6: DTS
- 7: unknown
multichannel_extension
- multichannel extension exists or not for karaoke modelang_type
- language type (?)- 0: unspecified
- 1: “per bytes 2&3” (DVD info spec)
application_mode
(?)- 0: unspecified
- 1: karaoke
- 2: surround
quantization
- quantization / dynamic range control (DRC)- If audio codec is MPEG-1 (2) or MPEG2-EXT (3), then
- 0: No DRC
- 1: DRC
- If audio codec is LPCM (4), then
- 0: 16 bps
- 1: 20 bps
- 2: 24 bps
sample_frequency
- sample rate- 0: 48 Kbps
unknown1
- reserved / unknownchannels
- number of audio channels, 6 (5.1 surround sound) is maximumlang_code
- language codelang_extension
- reserved for language code extensioncode_extension
- code extension- 0: unspecified
- 1: normal
- 2: for visually impaired
- 3: director's comments
- 4: alternate director's comments
unknown3
- reserved / unknown
audio_attr_t
zero_8[7]
- reserved for audio streams, max 8zero_9[17]
- reserved / unknownnr_of_vmgm_subp_streams
- number of sub-picture streams in VMG VOBS, must be 0 or 1subp_attr_t
vmgm_subp_attr
- VMG VOBs sub-picture attributescode_mode
- coding mode- 0: run length
- 1: extended
- 2: other
zero1
- reserved / unknown / ignoredtype
- language type- 0: unspecified
- 1: language
- 2: other
zero2
- reserved / unknown / ignoredlang_code
- language codelang_extension
- language code extensioncode_extension
- code extension
subp_attr_t
zero_10[27]
- reserved / unknown
tt_srpt_t
tt_srpt
- VMG IFO ONLY, pointers to all the tables on the disknr_of_srpts
- number of titleszero_1
- reservedlast_byte
- end address, last byte of last entrytitle_info_t
title
playback_type_t
pb_ty
zero_1
multi_or_random_pgc_title
jlc_exists_in_cell_cmd
jlc_exists_in_prepost_cmd
jlc_exists_in_button_cmd
jlc_exists_in_tt_dom
chapter_search_or_play
title_or_time_play
nr_of_angles
- number of anglesnr_of_ptts
- number of chapters (PTTs)parental_id
- parental management masktitle_set_nr
- VTS number (VTSN)vts_ttn
- title number within VTS, VTS_TTNtitle_set_sector
- starting sector for VTS
pgc_t
first_play_pgc
- VMG IFO ONLY, first (and only possible) PGC for VMG IFOzero_1
- reserved / unusednr_of_programs
- number of programsnr_of_cells
number of cellsdvd_time_t
playback_time
hour
minute
second
frame_u
- the two high bits are the framerate
user_ops_t
prohibited_ops
- (skipping display of
user_ops_t
here, see source code)
audio_control[8]
- audio stream controlsubp_control[32]
- sub-picture stream controlnext_pgc_nr
- next PGCNprev_pgc_nr
- previous PGCNgoup_pgc_nr
- group PGCNstill_time
- PGC still time, 255 = infinitepg_playback_mode
- PG playback mode, 0=sequential, otherwise bit7 indicates random (0) or shuffle (1), and the program count is in bits6-0palette[16]
- palette (0, Y, Cr, Cb)command_tbl_offset
- offset within PGC to commandsprogram_map_offset
- offset within PGC to program mapcell_playback_offset
- offset within PGC to cell playback information tablecell_position_offset
- offset within PGC to cell position information tablepgc_command_tbl_t
command_tbl
nr_of_pre
- number of pre commandsnr_of_post
- number of post commandsnr_of_cell
- number of cell commandszero_1
- end address relative to command tablevm_cmd_t
pre_cmds
bytes[8]
vm_cmd_t
post_cmds
bytes[8]
vm_cmd_t
cell_cmds
bytes[8]
pgc_program_map_t
program_map
- PGC program map (simple typedef of uint8_t)cell_playback_t
cell_playback
block_mode
block_type
seamless_play
interleaved
stc_discontinuity
seamless_angle
playback_mode
restricted
unknown2
still_time
cell_cmd_nr
dvd_time_t
playback_time
hour
minute
second
frame_u
first_sector
first_ilvu_end_sector
last_vobu_start_sector
last_sector
cell_position_t
cell_position
- cell position informationvob_id_nr
zero_1
cell_nr
ref_count
ptl_mait_t
ptl_mait
- VMG IFO ONLY, parental management information tablenr_of_countries
- number of countriesnr_of_vtss
- number of title setslast_byte
- end address, last byte of PTL_MAITptl_mait_country_t
countries
country_code
zero_1
pf_ptl_mai_start_byte
zero_2
pf_level_t
pf_ptl_mai
vts_atrt_t
vts_atrt
- VMG IFO ONLY, VTS Attribution Tablenr_of_vtss
- number of title setszero_1
last_byte
- end address (last byte of last VTS_ATRT)vts_attributes_t
vts
- VTS attributeslast_byte
- end addressvts_cat
video_attr_t
vtsm_vobs_attr
- video attributes (see above)nr_of_vtsm_audio_streams
- limited to maximum of 1 for VMG IFOaudio_attr_t
vtsm_audio_attr
- audio attributes (see above)audio_attr_t
zero_2[7]
zero_3[16]
zero_4
nr_of_vtsm_subp_streams
- number of sub-picture streamssubp_attr_t
vtsm_subp_attr
- sub-picture attributes (see above)subp_attr_t
zero_5[27]
zero_6[2]
video_attr_t
vtstt_vobs_video_attr
zero_7
nr_of_vtstt_audio_streams
audio_attr_t
vtstt_audio_attr[8]
zero_8[16]
zero_9
nr_of_vtstt_subp_streams
subp_attr_t
- vtstt_subp_attr[32]
vts_atrt_offsets
- offsets table for each vts_attributes
txtdt_mgi_t
txtdt_mgi
- VMG IFO ONLY, Text Data Manager Informationdisc_name[14]
- ?nr_of_language_units
- number of language unitslast_byte
txtdt_lu_t
lu
- language unitlang_code
unknown
txtdt_start_byte
- prt, rel start of vmg_txtdt_mgitxtdt_t
txtdt
last_byte
offsets[100]
pgci_ut_t
pgci_ut
- VMG AND VTS, Menu PGCI Unit Tablenr_of_lus
- number of language unitszero_1
last_byte
pgci_lu_t
lu
- Menu PGCI Language Unitlang_code
lang_extension
exists
lang_start_byte
pgcit_t
pgcit
- Program Chain Information Tablenr_of_pgci_srp
zero_1
last_byte
pgci_srp_t
pgci_srp
- Program Chain Information Search Pointerentry_id
block_mode
block_type
unknown1
ptl_id_mask
pgc_start_byte
pgc_t
pgc
(see above)
ref_count
c_adt_t
menu_c_adt
- VMG and VTS IFOs, Cell Address Tablenr_of_vobs
- number of VOBs (max 99)zero_1
last_byte
cell_adr_t
cell_adr_table
vob_id
cell_id
zero_1
start_sector
last_sector
vobu_admap_t
menu_vobu_admap
- VMG and VTS IFOs, VOBU Address Maplast_byte
vobu_start_sectors
vtsi_mat_t
vtsi_mat
- VTS IFOs only, Video Title Set Information Management Tablevts_identifier[12]
- VTS identifiervts_last_sector
- last sector of VTS (BUP)zero_1[12]
- reserved / unknownvtsi_last_sector
- last sector of VTS IFOzero_2
specification_version
vts_category
- VTS category- 0: unspecified
- 1: karaoke
zero_3
zero_4
zero_5
zero_6[19]
zero_7
zero_8[32]
zero_9
zero_10[24]
vtsi_last_byte
- last byte of VTS IFOzero_11
zero_12[56]
vtsm_vobs
- starting sector of VTS Menu VOBsvtstt_vobs
- starting sector of table of titles
vts_ptt_srpt_t
vts_ptt_srpt
- VTS IFOs only, Part of Title Search Pointer Tablenr_of_srpts
zero_1
last_byte
ttu_t
titlettu_offset
pgcit_t
vts_pgcit
- VTS IFOs only, Program Chain Information Table (see above)vts_tmapt_t
vts_tmapt
- VTS IFOs only, time maps for each PGCnr_of_tmaps
- number of program chainszero_1
last_byte
- end address (last byte of last VTS_TMAP)vts_tmap_t
tmap
tmu
- time unit, in secondszero_1
- reserved / unknown / safe to ignorenr_of_entries
- number of entries in map;0
for empty mapmap_ent_t
map_ent
- time map entry (typedef as uint32_t)
c_adt_t
vts_c_adt
VTS IFOs only, VTS cell address tablevobu_admap_t
vts_vobu_admap
-
VIDEO_TS.VOB