Data Fields
ATTRIBUTE_PACKED Struct Reference

Data Fields

uint8_t hour
 
uint8_t minute
 
uint8_t second
 
uint8_t frame_u
 
uint8_t bytes [8]
 
unsigned char mpeg_version: 2
 
unsigned char video_format: 2
 
unsigned char display_aspect_ratio: 2
 
unsigned char permitted_df: 2
 
unsigned char line21_cc_1: 1
 
unsigned char line21_cc_2: 1
 
unsigned char unknown1: 1
 
unsigned char bit_rate: 1
 
unsigned char picture_size: 2
 
unsigned char letterboxed: 1
 
unsigned char film_mode: 1
 
unsigned char audio_format: 3
 
unsigned char multichannel_extension: 1
 
unsigned char lang_type: 2
 
unsigned char application_mode: 2
 
unsigned char quantization: 2
 
unsigned char sample_frequency: 2
 
unsigned char channels: 3
 
uint16_t lang_code
 
uint8_t lang_extension
 
uint8_t code_extension
 
uint8_t unknown3
 
union {
   struct ATTRIBUTE_PACKED {
      unsigned char   unknown4: 1
 
      unsigned char   channel_assignment: 3
 
      unsigned char   version: 2
 
      unsigned char   mc_intro: 1
 
      unsigned char   mode: 1
 
      unsigned char   unknown5: 4
 
      unsigned char   dolby_encoded: 1
 
      unsigned char   unknown6: 3
 
   }   karaoke
 
   struct ATTRIBUTE_PACKED {
      unsigned char   unknown4: 1
 
      unsigned char   channel_assignment: 3
 
      unsigned char   version: 2
 
      unsigned char   mc_intro: 1
 
      unsigned char   mode: 1
 
      unsigned char   unknown5: 4
 
      unsigned char   dolby_encoded: 1
 
      unsigned char   unknown6: 3
 
   }   surround
 
app_info
 
unsigned int zero1: 7
 
unsigned int ach0_gme: 1
 
unsigned int zero2: 7
 
unsigned int ach1_gme: 1
 
unsigned int zero3: 4
 
unsigned int ach2_gv1e: 1
 
unsigned int ach2_gv2e: 1
 
unsigned int ach2_gm1e: 1
 
unsigned int ach2_gm2e: 1
 
unsigned int zero4: 4
 
unsigned int ach3_gv1e: 1
 
unsigned int ach3_gv2e: 1
 
unsigned int ach3_gmAe: 1
 
unsigned int ach3_se2e: 1
 
unsigned int zero5: 4
 
unsigned int ach4_gv1e: 1
 
unsigned int ach4_gv2e: 1
 
unsigned int ach4_gmBe: 1
 
unsigned int ach4_seBe: 1
 
uint8_t zero6 [19]
 
unsigned char code_mode: 3
 
unsigned char zero1: 3
 
unsigned char type: 2
 
uint8_t zero2
 
uint16_t nr_of_pre
 
uint16_t nr_of_post
 
uint16_t nr_of_cell
 
uint16_t zero_1
 
vm_cmd_t * pre_cmds
 
vm_cmd_t * post_cmds
 
vm_cmd_t * cell_cmds
 
unsigned int block_mode: 2
 
unsigned int block_type: 2
 
unsigned int seamless_play: 1
 
unsigned int interleaved: 1
 
unsigned int stc_discontinuity: 1
 
unsigned int seamless_angle: 1
 
unsigned int playback_mode: 1
 
unsigned int restricted: 1
 
unsigned int unknown2: 6
 
uint8_t still_time
 
uint8_t cell_cmd_nr
 
dvd_time_t playback_time
 
uint32_t first_sector
 
uint32_t first_ilvu_end_sector
 
uint32_t last_vobu_start_sector
 
uint32_t last_sector
 
uint16_t vob_id_nr
 
uint8_t zero_1
 
uint8_t cell_nr
 
unsigned int zero: 7
 
unsigned int video_pres_mode_change: 1
 
unsigned int karaoke_audio_pres_mode_change: 1
 
unsigned int angle_change: 1
 
unsigned int subpic_stream_change: 1
 
unsigned int audio_stream_change: 1
 
unsigned int pause_on: 1
 
unsigned int still_off: 1
 
unsigned int button_select_or_activate: 1
 
unsigned int resume: 1
 
unsigned int chapter_menu_call: 1
 
unsigned int angle_menu_call: 1
 
unsigned int audio_menu_call: 1
 
unsigned int subpic_menu_call: 1
 
unsigned int root_menu_call: 1
 
unsigned int title_menu_call: 1
 
unsigned int backward_scan: 1
 
unsigned int forward_scan: 1
 
unsigned int next_pg_search: 1
 
unsigned int prev_or_top_pg_search: 1
 
unsigned int time_or_chapter_search: 1
 
unsigned int go_up: 1
 
unsigned int stop: 1
 
unsigned int title_play: 1
 
unsigned int chapter_search_or_play: 1
 
unsigned int title_or_time_play: 1
 
uint8_t nr_of_programs
 
uint8_t nr_of_cells
 
user_ops_t prohibited_ops
 
uint16_t audio_control [8]
 
uint32_t subp_control [32]
 
uint16_t next_pgc_nr
 
uint16_t prev_pgc_nr
 
uint16_t goup_pgc_nr
 
uint8_t pg_playback_mode
 
uint32_t palette [16]
 
uint16_t command_tbl_offset
 
uint16_t program_map_offset
 
uint16_t cell_playback_offset
 
uint16_t cell_position_offset
 
pgc_command_tbl_t * command_tbl
 
pgc_program_map_t * program_map
 
cell_playback_t * cell_playback
 
cell_position_t * cell_position
 
int ref_count
 
uint8_t entry_id
 
unsigned int unknown1: 4
 
uint16_t ptl_id_mask
 
uint32_t pgc_start_byte
 
pgc_t * pgc
 
uint16_t nr_of_pgci_srp
 
uint32_t last_byte
 
pgci_srp_t * pgci_srp
 
uint8_t exists
 
uint32_t lang_start_byte
 
pgcit_t * pgcit
 
uint16_t nr_of_lus
 
pgci_lu_t * lu
 
uint16_t vob_id
 
uint8_t cell_id
 
uint32_t start_sector
 
uint16_t nr_of_vobs
 
cell_adr_t * cell_adr_table
 
uint32_t * vobu_start_sectors
 
char vmg_identifier [12]
 
uint32_t vmg_last_sector
 
uint32_t vmgi_last_sector
 
uint8_t zero_2
 
uint8_t specification_version
 
uint32_t vmg_category
 
uint16_t vmg_nr_of_volumes
 
uint16_t vmg_this_volume_nr
 
uint8_t disc_side
 
uint8_t zero_3 [19]
 
uint16_t vmg_nr_of_title_sets
 
char provider_identifier [32]
 
uint64_t vmg_pos_code
 
uint8_t zero_4 [24]
 
uint32_t vmgi_last_byte
 
uint32_t first_play_pgc
 
uint8_t zero_5 [56]
 
uint32_t vmgm_vobs
 
uint32_t tt_srpt
 
uint32_t vmgm_pgci_ut
 
uint32_t ptl_mait
 
uint32_t vts_atrt
 
uint32_t txtdt_mgi
 
uint32_t vmgm_c_adt
 
uint32_t vmgm_vobu_admap
 
uint8_t zero_6 [32]
 
video_attr_t vmgm_video_attr
 
uint8_t zero_7
 
uint8_t nr_of_vmgm_audio_streams
 
audio_attr_t vmgm_audio_attr
 
audio_attr_t zero_8 [7]
 
uint8_t zero_9 [17]
 
uint8_t nr_of_vmgm_subp_streams
 
subp_attr_t vmgm_subp_attr
 
subp_attr_t zero_10 [27]
 
unsigned int zero_1: 1
 
unsigned int multi_or_random_pgc_title: 1
 
unsigned int jlc_exists_in_cell_cmd: 1
 
unsigned int jlc_exists_in_prepost_cmd: 1
 
unsigned int jlc_exists_in_button_cmd: 1
 
unsigned int jlc_exists_in_tt_dom: 1
 
playback_type_t pb_ty
 
uint8_t nr_of_angles
 
uint16_t nr_of_ptts
 
uint16_t parental_id
 
uint8_t title_set_nr
 
uint8_t vts_ttn
 
uint32_t title_set_sector
 
uint16_t nr_of_srpts
 
title_info_t * title
 
uint16_t country_code
 
uint16_t pf_ptl_mai_start_byte
 
uint16_t zero_2
 
pf_level_t * pf_ptl_mai
 
uint16_t nr_of_countries
 
uint16_t nr_of_vtss
 
ptl_mait_country_t * countries
 
uint32_t vts_cat
 
video_attr_t vtsm_vobs_attr
 
uint8_t nr_of_vtsm_audio_streams
 
audio_attr_t vtsm_audio_attr
 
audio_attr_t zero_2 [7]
 
uint8_t nr_of_vtsm_subp_streams
 
subp_attr_t vtsm_subp_attr
 
subp_attr_t zero_5 [27]
 
video_attr_t vtstt_vobs_video_attr
 
uint8_t nr_of_vtstt_audio_streams
 
audio_attr_t vtstt_audio_attr [8]
 
uint8_t zero_8 [16]
 
uint8_t nr_of_vtstt_subp_streams
 
subp_attr_t vtstt_subp_attr [32]
 
vts_attributes_t * vts
 
uint32_t * vts_atrt_offsets
 
uint16_t offsets [100]
 
uint16_t unknown
 
uint32_t txtdt_start_byte
 
txtdt_t * txtdt
 
char disc_name [14]
 
uint16_t nr_of_language_units
 
txtdt_lu_t * lu
 
char vts_identifier [12]
 
uint32_t vts_last_sector
 
uint32_t vtsi_last_sector
 
uint32_t vts_category
 
uint16_t zero_3
 
uint16_t zero_4
 
uint16_t zero_7
 
uint64_t zero_9
 
uint8_t zero_10 [24]
 
uint32_t vtsi_last_byte
 
uint32_t zero_11
 
uint8_t zero_12 [56]
 
uint32_t vtsm_vobs
 
uint32_t vtstt_vobs
 
uint32_t vts_ptt_srpt
 
uint32_t vts_pgcit
 
uint32_t vtsm_pgci_ut
 
uint32_t vts_tmapt
 
uint32_t vtsm_c_adt
 
uint32_t vtsm_vobu_admap
 
uint32_t vts_c_adt
 
uint32_t vts_vobu_admap
 
uint8_t zero_13 [24]
 
video_attr_t vtsm_video_attr
 
uint8_t zero_14
 
audio_attr_t zero_15 [7]
 
uint8_t zero_16 [17]
 
subp_attr_t zero_17 [27]
 
uint8_t zero_18 [2]
 
video_attr_t vts_video_attr
 
uint8_t zero_19
 
uint8_t nr_of_vts_audio_streams
 
audio_attr_t vts_audio_attr [8]
 
uint8_t zero_20 [17]
 
uint8_t nr_of_vts_subp_streams
 
subp_attr_t vts_subp_attr [32]
 
uint16_t zero_21
 
multichannel_ext_t vts_mu_audio_attr [8]
 
uint16_t pgcn
 
uint16_t pgn
 
ptt_info_t * ptt
 
ttu_t * title
 
uint32_t * ttu_offset
 
uint8_t tmu
 
uint16_t nr_of_entries
 
map_ent_t * map_ent
 
uint16_t nr_of_tmaps
 
vts_tmap_t * tmap
 
uint32_t * tmap_offset
 
uint32_t nv_pck_lbn
 
uint16_t vobu_cat
 
uint16_t zero1
 
user_ops_t vobu_uop_ctl
 
uint32_t vobu_s_ptm
 
uint32_t vobu_e_ptm
 
uint32_t vobu_se_e_ptm
 
dvd_time_t e_eltm
 
char vobu_isrc [32]
 
uint32_t nsml_agl_dsta [9]
 
uint16_t hli_ss
 
uint32_t hli_s_ptm
 
uint32_t hli_e_ptm
 
uint32_t btn_se_e_ptm
 
unsigned int btngr_ns: 2
 
unsigned int btngr1_dsp_ty: 3
 
unsigned int btngr2_dsp_ty: 3
 
unsigned int btngr3_dsp_ty: 3
 
uint8_t btn_ofn
 
uint8_t btn_ns
 
uint8_t nsl_btn_ns
 
uint8_t zero5
 
uint8_t fosl_btnn
 
uint8_t foac_btnn
 
uint32_t btn_coli [3][2]
 
unsigned int btn_coln: 2
 
unsigned int x_start: 10
 
unsigned int x_end: 10
 
unsigned int auto_action_mode: 2
 
unsigned int y_start: 10
 
unsigned int y_end: 10
 
unsigned int up: 6
 
unsigned int down: 6
 
unsigned int left: 6
 
unsigned int zero6: 2
 
unsigned int right: 6
 
vm_cmd_t cmd
 
hl_gi_t hl_gi
 
btn_colit_t btn_colit
 
btni_t btnit [36]
 
pci_gi_t pci_gi
 
nsml_agli_t nsml_agli
 
hli_t hli
 
uint8_t zero1 [189]
 
uint32_t nv_pck_scr
 
uint32_t vobu_ea
 
uint32_t vobu_1stref_ea
 
uint32_t vobu_2ndref_ea
 
uint32_t vobu_3rdref_ea
 
uint16_t vobu_vob_idn
 
uint8_t vobu_c_idn
 
dvd_time_t c_eltm
 
uint16_t category
 
uint32_t ilvu_ea
 
uint32_t ilvu_sa
 
uint16_t size
 
uint32_t vob_v_s_s_ptm
 
uint32_t vob_v_e_e_ptm
 
struct {
   uint32_t   stp_ptm1
 
   uint32_t   stp_ptm2
 
   uint32_t   gap_len1
 
   uint32_t   gap_len2
 
vob_a [8]
 
uint32_t address
 
sml_agl_data_t data [9]
 
uint32_t next_video
 
uint32_t fwda [19]
 
uint32_t next_vobu
 
uint32_t prev_vobu
 
uint32_t bwda [19]
 
uint32_t prev_video
 
uint16_t a_synca [8]
 
uint32_t sp_synca [32]
 
dsi_gi_t dsi_gi
 
sml_pbi_t sml_pbi
 
sml_agli_t sml_agli
 
vobu_sri_t vobu_sri
 
synci_t synci
 

Detailed Description

Common

The following structures are used in both the VMGI and VTSI. DVD Time Information.

Type to store per-command data.

Video Attributes.

Audio Attributes.

MultiChannel Extension

Subpicture Attributes.

PGC Command Table.

Cell Playback Information.

Cell Position Information.

User Operations.

Program Chain Information.

Program Chain Information Search Pointer.

Program Chain Information Table.

Menu PGCI Language Unit.

Menu PGCI Unit Table.

Cell Address Information.

Cell Address Table.

VOBU Address Map.

VMGI

The following structures relate to the Video Manager. Video Manager Information Management Table.

Title Information.

PartOfTitle Search Pointer Table.

Parental Management Information Unit Table.

Parental Management Information Table.

Video Title Set Attributes.

Video Title Set Attribute Table.

Text Data. (Incomplete)

Text Data Language Unit. (Incomplete)

Text Data Manager Information. (Incomplete)

VTS

Structures relating to the Video Title Set (VTS). Video Title Set Information Management Table.

PartOfTitle Unit Information.

PartOfTitle Information.

Time Map.

Time Map Table.

PCI General Information

Non Seamless Angle Information

Highlight General Information

For btngrX_dsp_ty the bits have the following meaning: 000b: normal 4/3 only buttons XX1b: wide (16/9) buttons X1Xb: letterbox buttons 1XXb: pan&scan buttons

Button Color Information Table Each entry beeing a 32bit word that contains the color indexs and alpha values to use. They are all represented by 4 bit number and stored like this [Ci3, Ci2, Ci1, Ci0, A3, A2, A1, A0]. The actual palette that the indexes reference is in the PGC. split the uint32_t into a struct

Button Information

NOTE: I've had to change the structure from the disk layout to get the packing to work with Sun's Forte C compiler. The 4 and 7 bytes are 'rotated' was: ABC DEF GHIJ is: ABCG DEFH IJ

Highlight Information

PCI packet

DSI General Information

Seamless Playback Information

Seamless Angle Information for one angle

Seamless Angle Information

VOBU Search Information

Synchronous Information

DSI packet

Field Documentation

uint16_t ATTRIBUTE_PACKED::a_synca[8]

offset to first audio packet for this VOBU

uint32_t ATTRIBUTE_PACKED::address

offset to next ILVU, high bit is before/after

unsigned int ATTRIBUTE_PACKED::auto_action_mode

0: no, 1: activated if selected

uint32_t ATTRIBUTE_PACKED::btn_coli[3][2]

[button color number-1][select:0/action:1]

unsigned int ATTRIBUTE_PACKED::btn_coln

button color number

uint8_t ATTRIBUTE_PACKED::btn_ns

number of valid buttons <= 36/18/12 (low 6 bits)

uint8_t ATTRIBUTE_PACKED::btn_ofn

button offset number range 0-255

uint32_t ATTRIBUTE_PACKED::btn_se_e_ptm

end ptm of button select

unsigned int ATTRIBUTE_PACKED::btngr1_dsp_ty

display type of subpic stream for button group 1

unsigned int ATTRIBUTE_PACKED::btngr2_dsp_ty

display type of subpic stream for button group 2

unsigned int ATTRIBUTE_PACKED::btngr3_dsp_ty

display type of subpic stream for button group 3

unsigned int ATTRIBUTE_PACKED::btngr_ns

number of button groups 1, 2 or 3 with 36/18/12 buttons

uint32_t ATTRIBUTE_PACKED::bwda[19]

Backwards, time

dvd_time_t ATTRIBUTE_PACKED::c_eltm

Cell elapsed time

uint16_t ATTRIBUTE_PACKED::category

'category' of seamless VOBU

unsigned int ATTRIBUTE_PACKED::down

button index when pressing down

dvd_time_t ATTRIBUTE_PACKED::e_eltm

Cell elapsed time

uint8_t ATTRIBUTE_PACKED::foac_btnn

forcedly activated button (low 6 bits)

uint8_t ATTRIBUTE_PACKED::fosl_btnn

forcedly selected button (low 6 bits)

uint32_t ATTRIBUTE_PACKED::fwda[19]

Forwards, time

uint32_t ATTRIBUTE_PACKED::hli_e_ptm

end ptm of hli

uint32_t ATTRIBUTE_PACKED::hli_s_ptm

start ptm of hli

uint16_t ATTRIBUTE_PACKED::hli_ss

status, only low 2 bits 0: no buttons, 1: different 2: equal 3: eual except for button cmds

uint32_t ATTRIBUTE_PACKED::ilvu_ea

end address of interleaved Unit

uint32_t ATTRIBUTE_PACKED::ilvu_sa

start address of next interleaved unit

unsigned int ATTRIBUTE_PACKED::left

button index when pressing left

uint32_t ATTRIBUTE_PACKED::next_video

Next vobu that contains video

uint8_t ATTRIBUTE_PACKED::nsl_btn_ns

number of buttons selectable by U_BTNNi (low 6 bits) nsl_btn_ns <= btn_ns

uint32_t ATTRIBUTE_PACKED::nsml_agl_dsta[9]

address of destination vobu in AGL_C::n

uint32_t ATTRIBUTE_PACKED::nv_pck_lbn

sector address of this nav pack

unsigned int ATTRIBUTE_PACKED::playback_mode

When set, enter StillMode after each VOBU

unsigned int ATTRIBUTE_PACKED::restricted

?? drop out of fastforward?

unsigned int ATTRIBUTE_PACKED::right

button index when pressing right

uint16_t ATTRIBUTE_PACKED::size

size of next interleaved unit

byte size of the ILVU pointed to by address

uint32_t ATTRIBUTE_PACKED::sp_synca[32]

offset to first subpicture packet

unsigned int ATTRIBUTE_PACKED::up

button index when pressing up

uint32_t ATTRIBUTE_PACKED::vob_v_e_e_ptm

video end ptm in vob

uint32_t ATTRIBUTE_PACKED::vob_v_s_s_ptm

video start ptm in vob

uint32_t ATTRIBUTE_PACKED::vobu_1stref_ea

end address of the 1st reference image

uint32_t ATTRIBUTE_PACKED::vobu_2ndref_ea

end address of the 2nd reference image

uint32_t ATTRIBUTE_PACKED::vobu_3rdref_ea

end address of the 3rd reference image

uint8_t ATTRIBUTE_PACKED::vobu_c_idn

Cell Id number that this VOBU is part of

uint16_t ATTRIBUTE_PACKED::vobu_cat

'category' of vobu

uint32_t ATTRIBUTE_PACKED::vobu_e_ptm

end presentation time of vobu

uint32_t ATTRIBUTE_PACKED::vobu_ea

end address of this VOBU

uint32_t ATTRIBUTE_PACKED::vobu_s_ptm

start presentation time of vobu

uint32_t ATTRIBUTE_PACKED::vobu_se_e_ptm

end ptm of sequence end in vobu

user_ops_t ATTRIBUTE_PACKED::vobu_uop_ctl

UOP of vobu

uint16_t ATTRIBUTE_PACKED::vobu_vob_idn

VOB Id number that this VOBU is part of

unsigned int ATTRIBUTE_PACKED::x_end

x end offset within the overlay

unsigned int ATTRIBUTE_PACKED::x_start

x start offset within the overlay

unsigned int ATTRIBUTE_PACKED::y_end

y end offset within the overlay

unsigned int ATTRIBUTE_PACKED::y_start

y start offset within the overlay

uint16_t ATTRIBUTE_PACKED::zero1

reserved

uint8_t ATTRIBUTE_PACKED::zero1

reserved

uint8_t ATTRIBUTE_PACKED::zero1[471]

reserved

unsigned int ATTRIBUTE_PACKED::zero2

reserved

unsigned int ATTRIBUTE_PACKED::zero3

reserved

unsigned int ATTRIBUTE_PACKED::zero4

reserved

uint8_t ATTRIBUTE_PACKED::zero5

reserved

unsigned int ATTRIBUTE_PACKED::zero5

reserved

unsigned int ATTRIBUTE_PACKED::zero6

reserved


The documentation for this struct was generated from the following files: