kodi
Public Attributes | List of all members
ATTRIBUTE_PACKED Struct Reference

Common. More...

#include <ifo_types.h>

Collaboration diagram for ATTRIBUTE_PACKED:
Collaboration graph
[legend]

Public Attributes

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 char zero1: 7
 reserved
 
unsigned char ach0_gme: 1
 
unsigned char zero2: 7
 reserved
 
unsigned char ach1_gme: 1
 
unsigned char zero3: 4
 reserved
 
unsigned char ach2_gv1e: 1
 
unsigned char ach2_gv2e: 1
 
unsigned char ach2_gm1e: 1
 
unsigned char ach2_gm2e: 1
 
unsigned char zero4: 4
 reserved
 
unsigned char ach3_gv1e: 1
 
unsigned char ach3_gv2e: 1
 
unsigned char ach3_gmAe: 1
 
unsigned char ach3_se2e: 1
 
unsigned char zero5: 4
 
unsigned char ach4_gv1e: 1
 
unsigned char ach4_gv2e: 1
 
unsigned char ach4_gmBe: 1
 
unsigned char ach4_seBe: 1
 
uint8_t zero6 [19]
 
unsigned char code_mode: 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 last_byte
 
vm_cmd_t * pre_cmds
 
vm_cmd_t * post_cmds
 
vm_cmd_t * cell_cmds
 
unsigned char block_mode: 2
 
unsigned char block_type: 2
 
unsigned char seamless_play: 1
 
unsigned char interleaved: 1
 
unsigned char stc_discontinuity: 1
 
unsigned char seamless_angle: 1
 
unsigned char zero_1: 1
 
unsigned char playback_mode: 1
 When set, enter StillMode after each VOBU.
 
unsigned char restricted: 1
 ?? drop out of fastforward?
 
unsigned char cell_type: 5
 
uint8_t still_time
 for karaoke, reserved otherwise
 
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 char zero: 7
 
unsigned char video_pres_mode_change: 1
 
unsigned char karaoke_audio_pres_mode_change: 1
 
unsigned char angle_change: 1
 
unsigned char subpic_stream_change: 1
 
unsigned char audio_stream_change: 1
 
unsigned char pause_on: 1
 
unsigned char still_off: 1
 
unsigned char button_select_or_activate: 1
 
unsigned char resume: 1
 
unsigned char chapter_menu_call: 1
 
unsigned char angle_menu_call: 1
 
unsigned char audio_menu_call: 1
 
unsigned char subpic_menu_call: 1
 
unsigned char root_menu_call: 1
 
unsigned char title_menu_call: 1
 
unsigned char backward_scan: 1
 
unsigned char forward_scan: 1
 
unsigned char next_pg_search: 1
 
unsigned char prev_or_top_pg_search: 1
 
unsigned char time_or_chapter_search: 1
 
unsigned char go_up: 1
 
unsigned char stop: 1
 
unsigned char title_play: 1
 
unsigned char chapter_search_or_play: 1
 
unsigned char title_or_time_play: 1
 
uint16_t zero_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
 
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 char multi_or_random_pgc_title: 1
 
unsigned char jlc_exists_in_cell_cmd: 1
 
unsigned char jlc_exists_in_prepost_cmd: 1
 
unsigned char jlc_exists_in_button_cmd: 1
 
unsigned char 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]
 
uint8_t char_set
 
uint32_t txtdt_start_byte
 
txtdt_t * txtdt
 
char disc_name [12]
 
uint16_t unknown1
 
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
 sector address of this nav pack
 
uint16_t vobu_cat
 'category' of vobu
 
uint16_t zero1
 reserved
 
user_ops_t vobu_uop_ctl
 UOP of vobu.
 
uint32_t vobu_s_ptm
 start presentation time of vobu
 
uint32_t vobu_e_ptm
 end presentation time of vobu
 
uint32_t vobu_se_e_ptm
 end ptm of sequence end in vobu
 
dvd_time_t e_eltm
 Cell elapsed time.
 
char vobu_isrc [32]
 
uint32_t nsml_agl_dsta [9]
 address of destination vobu in AGL_C::n
 
uint16_t hli_ss
 status, only low 2 bits 0: no buttons, 1: different 2: equal 3: equal except for button cmds
 
uint32_t hli_s_ptm
 start ptm of hli
 
uint32_t hli_e_ptm
 end ptm of hli
 
uint32_t btn_se_e_ptm
 end ptm of button select
 
unsigned int zero1: 2
 reserved
 
unsigned int btngr_ns: 2
 number of button groups 1, 2 or 3 with 36/18/12 buttons
 
unsigned int zero2: 1
 reserved
 
unsigned int btngr1_dsp_ty: 3
 display type of subpic stream for button group 1
 
unsigned int zero3: 1
 reserved
 
unsigned int btngr2_dsp_ty: 3
 display type of subpic stream for button group 2
 
unsigned int zero4: 1
 reserved
 
unsigned int btngr3_dsp_ty: 3
 display type of subpic stream for button group 3
 
uint8_t btn_ofn
 button offset number range 0-255
 
uint8_t btn_ns
 number of valid buttons <= 36/18/12 (low 6 bits)
 
uint8_t nsl_btn_ns
 number of buttons selectable by U_BTNNi (low 6 bits) nsl_btn_ns <= btn_ns
 
uint8_t zero5
 reserved
 
uint8_t fosl_btnn
 forcedly selected button (low 6 bits)
 
uint8_t foac_btnn
 forcedly activated button (low 6 bits)
 
uint32_t btn_coli [3][2]
 [button color number-1][select:0/action:1]
 
unsigned int btn_coln: 2
 button color number
 
unsigned int x_start: 10
 x start offset within the overlay
 
unsigned int x_end: 10
 x end offset within the overlay
 
unsigned int auto_action_mode: 2
 0: no, 1: activated if selected
 
unsigned int y_start: 10
 y start offset within the overlay
 
unsigned int y_end: 10
 y end offset within the overlay
 
unsigned int up: 6
 button index when pressing up
 
unsigned int down: 6
 button index when pressing down
 
unsigned int zero5: 2
 reserved
 
unsigned int left: 6
 button index when pressing left
 
unsigned int zero6: 2
 reserved
 
unsigned int right: 6
 button index when pressing right
 
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]
 reserved
 
uint32_t nv_pck_scr
 
uint32_t vobu_ea
 end address of this VOBU
 
uint32_t vobu_1stref_ea
 end address of the 1st reference image
 
uint32_t vobu_2ndref_ea
 end address of the 2nd reference image
 
uint32_t vobu_3rdref_ea
 end address of the 3rd reference image
 
uint16_t vobu_vob_idn
 VOB Id number that this VOBU is part of.
 
uint8_t vobu_c_idn
 Cell Id number that this VOBU is part of.
 
dvd_time_t c_eltm
 Cell elapsed time.
 
uint16_t category
 'category' of seamless VOBU
 
uint32_t ilvu_ea
 end address of interleaved Unit
 
uint32_t ilvu_sa
 start address of next interleaved unit
 
uint16_t size
 size of next interleaved unit More...
 
uint32_t vob_v_s_s_ptm
 video start ptm in vob
 
uint32_t vob_v_e_e_ptm
 video end ptm in vob
 
struct {
   uint32_t   stp_ptm1
 
   uint32_t   stp_ptm2
 
   uint32_t   gap_len1
 
   uint32_t   gap_len2
 
vob_a [8]
 
uint32_t address
 offset to next ILVU, high bit is before/after
 
sml_agl_data_t data [9]
 
uint32_t next_video
 Next vobu that contains video.
 
uint32_t fwda [19]
 Forwards, time.
 
uint32_t next_vobu
 
uint32_t prev_vobu
 
uint32_t bwda [19]
 Backwards, time.
 
uint32_t prev_video
 
uint16_t a_synca [8]
 offset to first audio packet for this VOBU
 
uint32_t sp_synca [32]
 offset to first subpicture packet
 
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.

DSI packet.

Synchronous Information.

VOBU Search Information.

Seamless Angle Information.

Seamless Angle Information for one angle.

Seamless Playback Information.

DSI General Information.

PCI packet.

Highlight Information.

Button Information.

Button Color Information Table Each entry being a 32bit word that contains the color indexes and alpha values to use.

Highlight General Information.

Non Seamless Angle Information.

PCI General Information.

Time Map Table.

Time Map.

PartOfTitle Information.

PartOfTitle Unit Information.

VTS.

Text Data Manager Information.

Text Data Language Unit.

Text Data.

Video Title Set Attribute Table.

Video Title Set Attributes.

Parental Management Information Table.

Parental Management Information Unit Table.

PartOfTitle Search Pointer Table.

Title Information.

VMGI.

VOBU Address Map.

Cell Address Table.

Cell Address Information.

Menu PGCI Unit Table.

Menu PGCI Language Unit.

Program Chain Information Table.

Program Chain Information Search Pointer.

Program Chain Information.

User Operations.

Cell Position Information.

Cell Playback Information.

PGC Command Table.

Subpicture Attributes.

MultiChannel Extension.

Audio Attributes.

Video Attributes.

Type to store per-command data.

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

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

(Incomplete)

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

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

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

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

Member Data Documentation

◆ size

uint16_t ATTRIBUTE_PACKED::size

size of next interleaved unit

byte size of the ILVU pointed to by address


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