22#ifndef LIBDVDREAD_IFO_TYPES_H
23#define LIBDVDREAD_IFO_TYPES_H
27#include <dvdread/dvd_reader.h>
29#undef ATTRIBUTE_PACKED
32# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
33# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) && !defined(__clang__)
34# define ATTRIBUTE_PACKED __attribute__ ((packed,gcc_struct))
36# define ATTRIBUTE_PACKED __attribute__ ((packed))
42#if !defined(ATTRIBUTE_PACKED)
43#define ATTRIBUTE_PACKED
67} ATTRIBUTE_PACKED dvd_time_t;
68#define DVD_TIME_SIZE 4U
75} ATTRIBUTE_PACKED vm_cmd_t;
76#define COMMAND_DATA_SIZE 8U
83 unsigned char mpeg_version : 2;
84 unsigned char video_format : 2;
85 unsigned char display_aspect_ratio : 2;
86 unsigned char permitted_df : 2;
88 unsigned char line21_cc_1 : 1;
89 unsigned char line21_cc_2 : 1;
90 unsigned char unknown1 : 1;
91 unsigned char bit_rate : 1;
93 unsigned char picture_size : 2;
94 unsigned char letterboxed : 1;
95 unsigned char film_mode : 1;
96} ATTRIBUTE_PACKED video_attr_t;
97#define VIDEO_ATTR_SIZE 2U
103 DVD_AUDIO_CODE_EXT_UNSPECIFIED = 0,
104 DVD_AUDIO_CODE_EXT_NORMAL = 1,
105 DVD_AUDIO_CODE_EXT_VISUALLY_IMPAIRED = 2,
106 DVD_AUDIO_CODE_EXT_DIRECTOR = 3,
107 DVD_AUDIO_CODE_EXT_ALT_DIRECTOR = 4,
108} dvd_audio_code_ext_t;
114 unsigned char audio_format : 3;
115 unsigned char multichannel_extension : 1;
116 unsigned char lang_type : 2;
117 unsigned char application_mode : 2;
119 unsigned char quantization : 2;
120 unsigned char sample_frequency : 2;
121 unsigned char unknown1 : 1;
122 unsigned char channels : 3;
124 uint8_t lang_extension;
129 unsigned char unknown4 : 1;
130 unsigned char channel_assignment : 3;
131 unsigned char version : 2;
132 unsigned char mc_intro : 1;
133 unsigned char mode : 1;
136 unsigned char unknown5 : 4;
137 unsigned char dolby_encoded : 1;
138 unsigned char unknown6 : 3;
140 } ATTRIBUTE_PACKED app_info;
141} ATTRIBUTE_PACKED audio_attr_t;
142#define AUDIO_ATTR_SIZE 8U
150 unsigned char ach0_gme : 1;
153 unsigned char ach1_gme : 1;
156 unsigned char ach2_gv1e : 1;
157 unsigned char ach2_gv2e : 1;
158 unsigned char ach2_gm1e : 1;
159 unsigned char ach2_gm2e : 1;
162 unsigned char ach3_gv1e : 1;
163 unsigned char ach3_gv2e : 1;
164 unsigned char ach3_gmAe : 1;
165 unsigned char ach3_se2e : 1;
167 unsigned char zero5 : 4;
168 unsigned char ach4_gv1e : 1;
169 unsigned char ach4_gv2e : 1;
170 unsigned char ach4_gmBe : 1;
171 unsigned char ach4_seBe : 1;
173} ATTRIBUTE_PACKED multichannel_ext_t;
174#define MULTICHANNEL_EXT_SIZE 24U
181 DVD_SUBP_CODE_EXT_UNSPECIFIED = 0,
182 DVD_SUBP_CODE_EXT_NORMAL = 1,
183 DVD_SUBP_CODE_EXT_LARGE = 2,
184 DVD_SUBP_CODE_EXT_CHILDREN = 3,
185 DVD_SUBP_CODE_EXT_NORMAL_CAPTIONS = 5,
186 DVD_SUBP_CODE_EXT_LARGE_CAPTIONS = 6,
187 DVD_SUBP_CODE_EXT_CHILDREN_CAPTIONS = 7,
188 DVD_SUBP_CODE_EXT_FORCED = 9,
189 DVD_SUBP_CODE_EXT_DIRECTOR = 13,
190 DVD_SUBP_CODE_EXT_LARGE_DIRECTOR = 14,
191 DVD_SUBP_CODE_EXT_CHILDREN_DIRECTOR = 15,
192} dvd_subp_code_ext_t;
208 unsigned char code_mode : 3;
209 unsigned char zero1 : 3;
210 unsigned char type : 2;
213 uint8_t lang_extension;
214 uint8_t code_extension;
215} ATTRIBUTE_PACKED subp_attr_t;
216#define SUBP_ATTR_SIZE 6U
231} ATTRIBUTE_PACKED pgc_command_tbl_t;
232#define PGC_COMMAND_TBL_SIZE 8U
237typedef uint8_t pgc_program_map_t;
243 unsigned char block_mode : 2;
244 unsigned char block_type : 2;
245 unsigned char seamless_play : 1;
246 unsigned char interleaved : 1;
247 unsigned char stc_discontinuity: 1;
248 unsigned char seamless_angle : 1;
249 unsigned char zero_1 : 1;
252 unsigned char cell_type : 5;
255 dvd_time_t playback_time;
256 uint32_t first_sector;
257 uint32_t first_ilvu_end_sector;
258 uint32_t last_vobu_start_sector;
259 uint32_t last_sector;
260} ATTRIBUTE_PACKED cell_playback_t;
261#define CELL_PLAYBACK_SIZE 24U
263#define BLOCK_TYPE_NONE 0x0
264#define BLOCK_TYPE_ANGLE_BLOCK 0x1
266#define BLOCK_MODE_NOT_IN_BLOCK 0x0
267#define BLOCK_MODE_FIRST_CELL 0x1
268#define BLOCK_MODE_IN_BLOCK 0x2
269#define BLOCK_MODE_LAST_CELL 0x3
278} ATTRIBUTE_PACKED cell_position_t;
279#define CELL_POSITION_SIZE 4U
285 unsigned char zero : 7;
286 unsigned char video_pres_mode_change : 1;
288 unsigned char karaoke_audio_pres_mode_change : 1;
289 unsigned char angle_change : 1;
290 unsigned char subpic_stream_change : 1;
291 unsigned char audio_stream_change : 1;
292 unsigned char pause_on : 1;
293 unsigned char still_off : 1;
294 unsigned char button_select_or_activate : 1;
295 unsigned char resume : 1;
297 unsigned char chapter_menu_call : 1;
298 unsigned char angle_menu_call : 1;
299 unsigned char audio_menu_call : 1;
300 unsigned char subpic_menu_call : 1;
301 unsigned char root_menu_call : 1;
302 unsigned char title_menu_call : 1;
303 unsigned char backward_scan : 1;
304 unsigned char forward_scan : 1;
306 unsigned char next_pg_search : 1;
307 unsigned char prev_or_top_pg_search : 1;
308 unsigned char time_or_chapter_search : 1;
309 unsigned char go_up : 1;
310 unsigned char stop : 1;
311 unsigned char title_play : 1;
312 unsigned char chapter_search_or_play : 1;
313 unsigned char title_or_time_play : 1;
314} ATTRIBUTE_PACKED user_ops_t;
315#define USER_OPS_SIZE 4U
322 uint8_t nr_of_programs;
324 dvd_time_t playback_time;
325 user_ops_t prohibited_ops;
326 uint16_t audio_control[8];
327 uint32_t subp_control[32];
328 uint16_t next_pgc_nr;
329 uint16_t prev_pgc_nr;
330 uint16_t goup_pgc_nr;
331 uint8_t pg_playback_mode;
333 uint32_t palette[16];
334 uint16_t command_tbl_offset;
335 uint16_t program_map_offset;
336 uint16_t cell_playback_offset;
337 uint16_t cell_position_offset;
338 pgc_command_tbl_t *command_tbl;
339 pgc_program_map_t *program_map;
340 cell_playback_t *cell_playback;
341 cell_position_t *cell_position;
343} ATTRIBUTE_PACKED pgc_t;
351 unsigned char block_mode : 2;
352 unsigned char block_type : 2;
353 unsigned char zero_1 : 4;
354 uint16_t ptl_id_mask;
355 uint32_t pgc_start_byte;
357} ATTRIBUTE_PACKED pgci_srp_t;
358#define PGCI_SRP_SIZE 8U
364 uint16_t nr_of_pgci_srp;
367 pgci_srp_t *pgci_srp;
369} ATTRIBUTE_PACKED pgcit_t;
377 uint8_t lang_extension;
379 uint32_t lang_start_byte;
381} ATTRIBUTE_PACKED pgci_lu_t;
382#define PGCI_LU_SIZE 8U
392} ATTRIBUTE_PACKED pgci_ut_t;
393#define PGCI_UT_SIZE 8U
402 uint32_t start_sector;
403 uint32_t last_sector;
404} ATTRIBUTE_PACKED cell_adr_t;
405#define CELL_ADDR_SIZE 12U
414 cell_adr_t *cell_adr_table;
415} ATTRIBUTE_PACKED c_adt_t;
423 uint32_t *vobu_start_sectors;
424} ATTRIBUTE_PACKED vobu_admap_t;
425#define VOBU_ADMAP_SIZE 4U
440 char vmg_identifier[12];
441 uint32_t vmg_last_sector;
443 uint32_t vmgi_last_sector;
445 uint8_t specification_version;
446 uint32_t vmg_category;
447 uint16_t vmg_nr_of_volumes;
448 uint16_t vmg_this_volume_nr;
451 uint16_t vmg_nr_of_title_sets;
452 char provider_identifier[32];
453 uint64_t vmg_pos_code;
455 uint32_t vmgi_last_byte;
456 uint32_t first_play_pgc;
460 uint32_t vmgm_pgci_ut;
465 uint32_t vmgm_vobu_admap;
468 video_attr_t vmgm_video_attr;
470 uint8_t nr_of_vmgm_audio_streams;
471 audio_attr_t vmgm_audio_attr;
472 audio_attr_t zero_8[7];
474 uint8_t nr_of_vmgm_subp_streams;
475 subp_attr_t vmgm_subp_attr;
476 subp_attr_t zero_10[27];
477} ATTRIBUTE_PACKED vmgi_mat_t;
478#define VMGI_MAT_SIZE 510U
520} ATTRIBUTE_PACKED downmix_coeff_t;
521#define DOWNMIX_COEFF_SIZE 16U
538 uint32_t timestamp_pts;
539 uint32_t chapter_len;
543 uint8_t sampling_rate;
548 uint32_t start_sector_1;
549 uint32_t start_sector_2;
551} ATTRIBUTE_PACKED samg_chapter_t;
552#define SAMG_CHAPTER_SIZE 52U
555 char samg_identifier[12];
556 uint16_t nr_chapters;
557 uint16_t specification_version;
558 samg_chapter_t *samg_chapters;
559} ATTRIBUTE_PACKED samg_mat_t;
560#define SAMG_MAT_SIZE 16U
572 char amg_identifier[12];
573 uint32_t amg_start_sector;
575 uint32_t amgi_last_sector;
576 uint16_t specification_version;
578 uint16_t amg_nr_of_volumes;
579 uint16_t amg_this_volume_nr;
583 uint32_t audio_sv_ifo_relative_p;
586 uint8_t vmg_nr_of_title_sets;
587 uint8_t amg_nr_of_title_sets;
588 uint8_t unknown_2[32];
589 uint8_t unknown_3[8];
591 uint32_t amg_end_byte_address;
592 uint8_t unknown_4[4];
594 uint16_t menu_prescence_1;
595 uint8_t unknown_5[4];
598 uint16_t amg_nr_of_zones;
600 uint16_t menu_prescence_2;
602 uint8_t last_sector_audio_sys_space;
604 uint8_t menu_prescence_3;
606} ATTRIBUTE_PACKED amgi_mat_t;
607#define AMGI_MAT_SIZE 337U
613 uint8_t type_and_rank;
614 uint8_t nr_chapters_in_title;
615 uint8_t nr_visible_chapters_in_vts_title;
617 uint32_t len_audio_zone_pts;
619 uint8_t group_property;
620 uint8_t title_property;
621 uint32_t ts_pointer_relative_sector;
622} ATTRIBUTE_PACKED track_info_t;
623#define TRACK_INFO_SIZE 14U
626 uint16_t nr_of_titles;
627 uint16_t last_byte_in_table;
628 track_info_t *tracks_info;
629} ATTRIBUTE_PACKED tracks_info_table_t;
630#define TRACKS_INFO_TABLE_SIZE 4U
634 unsigned char zero_1 : 1;
635 unsigned char multi_or_random_pgc_title : 1;
636 unsigned char jlc_exists_in_cell_cmd : 1;
637 unsigned char jlc_exists_in_prepost_cmd : 1;
638 unsigned char jlc_exists_in_button_cmd : 1;
639 unsigned char jlc_exists_in_tt_dom : 1;
640 unsigned char chapter_search_or_play : 1;
641 unsigned char title_or_time_play : 1;
642} ATTRIBUTE_PACKED playback_type_t;
643#define PLAYBACK_TYPE_SIZE 1U
649 playback_type_t pb_ty;
650 uint8_t nr_of_angles;
652 uint16_t parental_id;
653 uint8_t title_set_nr;
655 uint32_t title_set_sector;
656} ATTRIBUTE_PACKED title_info_t;
657#define TITLE_INFO_SIZE 12U
663 uint16_t nr_of_srpts;
667} ATTRIBUTE_PACKED tt_srpt_t;
668#define TT_SRPT_SIZE 8U
675#define PTL_MAIT_NUM_LEVEL 8
676typedef uint16_t pf_level_t[PTL_MAIT_NUM_LEVEL];
682 uint16_t country_code;
684 uint16_t pf_ptl_mai_start_byte;
686 pf_level_t *pf_ptl_mai;
687} ATTRIBUTE_PACKED ptl_mait_country_t;
688#define PTL_MAIT_COUNTRY_SIZE 8U
694 uint16_t nr_of_countries;
697 ptl_mait_country_t *countries;
698} ATTRIBUTE_PACKED ptl_mait_t;
699#define PTL_MAIT_SIZE 8U
708 video_attr_t vtsm_vobs_attr;
710 uint8_t nr_of_vtsm_audio_streams;
711 audio_attr_t vtsm_audio_attr;
712 audio_attr_t zero_2[7];
715 uint8_t nr_of_vtsm_subp_streams;
716 subp_attr_t vtsm_subp_attr;
717 subp_attr_t zero_5[27];
721 video_attr_t vtstt_vobs_video_attr;
723 uint8_t nr_of_vtstt_audio_streams;
724 audio_attr_t vtstt_audio_attr[8];
727 uint8_t nr_of_vtstt_subp_streams;
728 subp_attr_t vtstt_subp_attr[32];
729} ATTRIBUTE_PACKED vts_attributes_t;
730#define VTS_ATTRIBUTES_SIZE 542U
731#define VTS_ATTRIBUTES_MIN_SIZE 356U
740 vts_attributes_t *vts;
741 uint32_t *vts_atrt_offsets;
742} ATTRIBUTE_PACKED vts_atrt_t;
743#define VTS_ATRT_SIZE 8U
750 uint16_t offsets[100];
755 uint8_t type_of_info;
765} ATTRIBUTE_PACKED txtdt_t;
766#define TXTDT_SIZE 204U
775 uint32_t txtdt_start_byte;
777} ATTRIBUTE_PACKED txtdt_lu_t;
778#define TXTDT_LU_SIZE 8U
786 uint16_t nr_of_language_units;
789} ATTRIBUTE_PACKED txtdt_mgi_t;
790#define TXTDT_MGI_SIZE 20U
803 char vts_identifier[12];
804 uint32_t vts_last_sector;
806 uint32_t vtsi_last_sector;
808 uint8_t specification_version;
809 uint32_t vts_category;
818 uint32_t vtsi_last_byte;
823 uint32_t vts_ptt_srpt;
825 uint32_t vtsm_pgci_ut;
828 uint32_t vtsm_vobu_admap;
830 uint32_t vts_vobu_admap;
833 video_attr_t vtsm_video_attr;
835 uint8_t nr_of_vtsm_audio_streams;
836 audio_attr_t vtsm_audio_attr;
837 audio_attr_t zero_15[7];
839 uint8_t nr_of_vtsm_subp_streams;
840 subp_attr_t vtsm_subp_attr;
841 subp_attr_t zero_17[27];
844 video_attr_t vts_video_attr;
846 uint8_t nr_of_vts_audio_streams;
847 audio_attr_t vts_audio_attr[8];
849 uint8_t nr_of_vts_subp_streams;
850 subp_attr_t vts_subp_attr[32];
852 multichannel_ext_t vts_mu_audio_attr[8];
854} ATTRIBUTE_PACKED vtsi_mat_t;
855#define VTSI_MAT_SIZE 984U
868 uint8_t sampling_frequency;
873} ATTRIBUTE_PACKED atsi_record_t;
874#define ATSI_RECORD_SIZE 16U
885#define ATSI_RECORD_MAX_SIZE 8
886#define DOWNMIX_COEFF_MAX_SIZE 16
889 char ats_identifier[12];
890 uint32_t ats_last_sector;
892 uint32_t atsi_last_sector;
893 uint16_t specification_version;
896 uint32_t atsi_last_byte;
900 uint32_t vts_ptt_srpt;
901 uint32_t ats_pgci_ut;
902 uint32_t vtsm_pgci_ut;
905 uint32_t vtsm_vobu_admap;
907 uint32_t vts_vobu_admap;
910 atsi_record_t atsi_record[ATSI_RECORD_MAX_SIZE];
911 downmix_coeff_t downmix_coefficients[DOWNMIX_COEFF_MAX_SIZE];
912} ATTRIBUTE_PACKED atsi_mat_t;
913#define ATSI_MAT_SIZE 640U
918 uint8_t audio_encode_mode;
920 uint32_t offset_record_table;
921} ATTRIBUTE_PACKED atsi_title_index_t;
922#define ATSI_TITLE_INDEX_SIZE 8U
926 uint8_t prog_alloc_flags;
927 uint8_t prog_time_attr_flags;
929 uint8_t track_number_in_title;
931 uint32_t first_pts_of_track;
932 uint32_t length_pts_of_track;
934} ATTRIBUTE_PACKED atsi_track_timestamp_t;
935#define ATSI_TRACK_TIMESTAMP_SIZE 20U
942 uint32_t start_sector;
944} ATTRIBUTE_PACKED atsi_track_pointer_t;
945#define ATSI_TRACK_POINTER_SIZE 12U
960 uint16_t start_value;
962} ATTRIBUTE_PACKED ats_pg_asv_pbi_srp_t;
963#define ATS_PG_ASV_PBI_SRP_SIZE 6U
976 uint32_t display_timing;
977 uint8_t start_transition_mode;
978 uint8_t termination_transition_mode;
979} ATTRIBUTE_PACKED asv_dlist_t;
980#define ASV_DLIST_SIZE 10U
985 uint16_t header_flags;
987 uint8_t nr_pointer_records;
990 uint16_t ats_pgit_sa;
991 uint16_t start_sector_pointers_table;
992 uint16_t ats_asv_pbit_sa;
993 atsi_track_timestamp_t *atsi_track_timestamp_rows;
994 atsi_track_pointer_t *atsi_track_pointer_rows;
997 ats_pg_asv_pbi_srp_t *ats_pg_asv_pbi_srp;
999} ATTRIBUTE_PACKED atsi_title_record_t;
1000#define ATSI_TITLE_ROW_TABLE_SIZE 16U
1005 uint32_t last_byte_address;
1006 atsi_title_index_t *atsi_index_rows;
1007 atsi_title_record_t *atsi_title_row_tables;
1008} ATTRIBUTE_PACKED atsi_title_table_t;
1009#define ATSI_TITLE_TABLE_SIZE 8U
1032 uint16_t start_p_vob_number;
1034 uint16_t ref_start_sector;
1035} ATTRIBUTE_PACKED asvu_gi_t;
1036#define ASVU_GI_SIZE 8U
1037#define ASVU_GI_MAX_SIZE 99U
1040typedef uint16_t asv_srpt_t;
1041#define ASV_SRPT_SIZE 2U
1047 char asvs_identifier[12];
1048 uint16_t asvs_nr_of_asvus;
1049 uint16_t specification_version;
1054 uint32_t p_vobs_sp_plt[16];
1055 uint8_t unknown_2[8];
1056 asvu_gi_t asvu_gi[ASVU_GI_MAX_SIZE];
1057 asv_srpt_t *asv_srpt;
1058} ATTRIBUTE_PACKED asvs_mat_t;
1059#define ASVS_MAT_SIZE 888U
1067} ATTRIBUTE_PACKED ptt_info_t;
1068#define PTT_INFO_SIZE 4U
1074 uint16_t nr_of_ptts;
1076} ATTRIBUTE_PACKED ttu_t;
1083 uint16_t nr_of_srpts;
1087 uint32_t *ttu_offset;
1088} ATTRIBUTE_PACKED vts_ptt_srpt_t;
1089#define VTS_PTT_SRPT_SIZE 8U
1096typedef uint32_t map_ent_t;
1104 uint16_t nr_of_entries;
1106} ATTRIBUTE_PACKED vts_tmap_t;
1107#define VTS_TMAP_SIZE 4U
1113 uint16_t nr_of_tmaps;
1117 uint32_t *tmap_offset;
1118} ATTRIBUTE_PACKED vts_tmapt_t;
1119#define VTS_TMAPT_SIZE 8U
1130 uint8_t title_key[8];
1131} ATTRIBUTE_PACKED cprm_info_t;
1132#define CPRM_INFO_SIZE 9U
1139 uint8_t zero_16[12];
1143 uint8_t zero_34[30];
1146 uint8_t txt_encoding;
1147 uint8_t data_68[30];
1149 char disc_info1[64];
1150 char disc_info2[64];
1151 uint8_t zero_226[30];
1153 uint32_t org_pgci_sa;
1154 uint32_t org_pgci_ea;
1155 uint8_t unknown_264[7];
1156 cprm_info_t cprm_info;
1157 uint8_t zero_280[24];
1159 uint32_t ud_pgcit_sa;
1160 uint32_t info_308_sa;
1161 uint32_t info_312_sa;
1162 uint32_t info_316_sa;
1163 uint8_t zero_320[32];
1164 uint32_t txtdt_mg_sa;
1166 uint8_t zero_360[152];
1167} ATTRIBUTE_PACKED rtav_vmgi_t;
1168#define RTAV_VMGI_SIZE 512U
1171 uint8_t audio_attr[3];
1172} ATTRIBUTE_PACKED audio_attr_vr_t;
1176} ATTRIBUTE_PACKED pgtm_t;
1182} ATTRIBUTE_PACKED ptm_t;
1186} ATTRIBUTE_PACKED adj_vob_t;
1187#define ADJ_VOB_SIZE 12U
1193} ATTRIBUTE_PACKED time_info_t;
1194#define TIME_INFO_SIZE 7U
1201} ATTRIBUTE_PACKED vobu_info_t;
1202#define VOBU_INFO_SIZE 3U
1206 pgtm_t vob_timestamp;
1208 uint8_t vob_format_id;
1211} ATTRIBUTE_PACKED vvob_t;
1212#define VVOB_SIZE 21U
1215 uint16_t nr_of_time_info;
1216 uint16_t nr_of_vobu_info;
1217 uint16_t time_offset;
1218 uint32_t vob_offset;
1220 time_info_t* time_infos;
1221 vobu_info_t* vobu_infos;
1222} ATTRIBUTE_PACKED vobu_map_t;
1223#define VOBU_MAP_SIZE 10U
1238 uint16_t video_attr;
1239 uint8_t nr_of_audio_streams;
1241 audio_attr_vr_t audio_attr0;
1242 audio_attr_vr_t audio_attr1;
1244} ATTRIBUTE_PACKED vob_format_t;
1245#define VOB_FORMAT_SIZE 60U
1251 uint8_t nr_of_vob_formats;
1252 uint32_t len_org_pgci;
1254 vob_format_t* vob_formats;
1255} ATTRIBUTE_PACKED pgci_t;
1260 uint16_t nr_of_programs;
1261 uint32_t* program_offsets;
1263} ATTRIBUTE_PACKED pgc_gi_t;
1264#define PGC_GI_SIZE 2U
1269 uint16_t nr_of_programs;
1272 uint16_t prog_set_id;
1273 uint16_t first_prog_id;
1275} ATTRIBUTE_PACKED ud_pgci_t;
1276#define UD_PGCI_SIZE 142U
1281} ATTRIBUTE_PACKED m_c_epi_t;
1282#define M_C_EPI_SIZE 7U
1290 uint8_t start_image;
1292 uint16_t m_vobi_srpn;
1299} ATTRIBUTE_PACKED m_c_gi_t;
1300#define M_C_GI_SIZE 18U
1302#define MOVIE_CELL_TYPE 0
1303#define STILL_CELL_TYPE 2
1309 uint16_t total_nr_of_programs;
1310 ud_pgci_t* ud_pgci_items;
1311 uint32_t* ci_offsets;
1313} ATTRIBUTE_PACKED ud_pgcit_t;
1314#define UD_PGCIT_SIZE 4U
1316#define CI_OFFSET_SIZE 4U
1346 vmgi_mat_t *vmgi_mat;
1348 pgc_t *first_play_pgc;
1349 ptl_mait_t *ptl_mait;
1350 vts_atrt_t *vts_atrt;
1351 txtdt_mgi_t *txtdt_mgi;
1355 c_adt_t *menu_c_adt;
1356 vobu_admap_t *menu_vobu_admap;
1359 vtsi_mat_t *vtsi_mat;
1360 vts_ptt_srpt_t *vts_ptt_srpt;
1362 vts_tmapt_t *vts_tmapt;
1364 vobu_admap_t *vts_vobu_admap;
1369 samg_mat_t *samg_mat;
1372 amgi_mat_t *amgi_mat;
1373 tracks_info_table_t *info_table_first_sector;
1374 tracks_info_table_t *info_table_second_sector;
1377 atsi_mat_t *atsi_mat;
1378 atsi_title_table_t *atsi_title_table;
1381 asvs_mat_t *asvs_mat;
1386 rtav_vmgi_t *rtav_vmgi;
1393 ud_pgcit_t *ud_pgcit;
1399 ifo_format_t ifo_format;
Definition ifo_types.h:955
unsigned char zero1
Definition ifo_types.h:149
uint8_t fosl_btnn
Definition ifo_types.h:973
uint8_t still_time
Definition ifo_types.h:253
uint8_t code_extension
Definition ifo_types.h:125
unsigned char zero3
Definition ifo_types.h:155
unsigned char zero4
Definition ifo_types.h:161
unsigned char zero2
Definition ifo_types.h:152
unsigned char restricted
Definition ifo_types.h:251
unsigned char playback_mode
Definition ifo_types.h:250
Definition ifo_types.h:1340
Definition ifo_types.h:1226