Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
libdvdread [2015/01/16 11:47] beandog |
libdvdread [2015/01/16 16:21] (current) beandog |
||
---|---|---|---|
Line 151: | Line 151: | ||
* ''vts_ttn'' - title number within VTS, VTS_TTN | * ''vts_ttn'' - title number within VTS, VTS_TTN | ||
* ''title_set_sector'' - starting sector for VTS | * ''title_set_sector'' - starting sector for VTS | ||
- | * **''pgc_t''** ''first_play_pgc'' - first (and only possible) PGC for VMG IFO | + | * **''pgc_t''** ''first_play_pgc'' - **VMG IFO ONLY**, first (and only possible) PGC for VMG IFO |
* ''zero_1'' - reserved / unused | * ''zero_1'' - reserved / unused | ||
* ''nr_of_programs'' - number of programs | * ''nr_of_programs'' - number of programs | ||
Line 185: | Line 185: | ||
* **''vm_cmd_t''** ''cell_cmds'' | * **''vm_cmd_t''** ''cell_cmds'' | ||
* ''bytes[8]'' | * ''bytes[8]'' | ||
- | * **''ptl_mait_t''** ''ptl_mait'' - parental management information table | + | * **''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 information | ||
+ | * ''vob_id_nr'' | ||
+ | * ''zero_1'' | ||
+ | * ''cell_nr'' | ||
+ | * ''ref_count'' | ||
+ | * **''ptl_mait_t''** ''ptl_mait'' - **VMG IFO ONLY**, parental management information table | ||
* ''nr_of_countries'' - number of countries | * ''nr_of_countries'' - number of countries | ||
* ''nr_of_vtss'' - number of title sets | * ''nr_of_vtss'' - number of title sets | ||
Line 195: | Line 222: | ||
* ''zero_2'' | * ''zero_2'' | ||
* **''pf_level_t''** ''pf_ptl_mai'' | * **''pf_level_t''** ''pf_ptl_mai'' | ||
- | * **''vts_atrt_t''** ''vts_atrt'' - VTS Attribution Table | + | * **''vts_atrt_t''** ''vts_atrt'' - **VMG IFO ONLY**, VTS Attribution Table |
* ''nr_of_vtss'' - number of title sets | * ''nr_of_vtss'' - number of title sets | ||
* ''zero_1'' | * ''zero_1'' | ||
Line 221: | Line 248: | ||
* **''subp_attr_t''** - vtstt_subp_attr[32] | * **''subp_attr_t''** - vtstt_subp_attr[32] | ||
* ''vts_atrt_offsets'' - offsets table for each vts_attributes | * ''vts_atrt_offsets'' - offsets table for each vts_attributes | ||
- | * **''txtdt_mgi_t''** ''txtdt_mgi'' - Text Data Manager Information | + | * **''txtdt_mgi_t''** ''txtdt_mgi'' - **VMG IFO ONLY**, Text Data Manager Information |
* ''disc_name[14]'' - ? | * ''disc_name[14]'' - ? | ||
* ''nr_of_language_units'' - number of language units | * ''nr_of_language_units'' - number of language units | ||
* ''last_byte'' | * ''last_byte'' | ||
- | * **''txtdt_lu_t''** ''lu'' | + | * **''txtdt_lu_t''** ''lu'' - language unit |
* ''lang_code'' | * ''lang_code'' | ||
* ''unknown'' | * ''unknown'' | ||
Line 232: | Line 259: | ||
* ''last_byte'' | * ''last_byte'' | ||
* ''offsets[100]'' | * ''offsets[100]'' | ||
+ | * **''pgci_ut_t''** ''pgci_ut'' - **VMG AND VTS**, Menu PGCI Unit Table | ||
+ | * ''nr_of_lus'' - number of language units | ||
+ | * ''zero_1'' | ||
+ | * ''last_byte'' | ||
+ | * **''pgci_lu_t''** ''lu'' - Menu PGCI Language Unit | ||
+ | * ''lang_code'' | ||
+ | * ''lang_extension'' | ||
+ | * ''exists'' | ||
+ | * ''lang_start_byte'' | ||
+ | * **''pgcit_t''** ''pgcit'' - Program Chain Information Table | ||
+ | * ''nr_of_pgci_srp'' | ||
+ | * ''zero_1'' | ||
+ | * ''last_byte'' | ||
+ | * **''pgci_srp_t''** ''pgci_srp'' - Program Chain Information Search Pointer | ||
+ | * ''entry_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 Table | ||
+ | * ''nr_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 Map | ||
+ | * ''last_byte'' | ||
+ | * ''vobu_start_sectors'' | ||
+ | * **''vtsi_mat_t''** ''vtsi_mat'' - **VTS IFOs only**, Video Title Set Information Management Table | ||
+ | * ''vts_identifier[12]'' - VTS identifier | ||
+ | * ''vts_last_sector'' - last sector of VTS (BUP) | ||
+ | * ''zero_1[12]'' - reserved / unknown | ||
+ | * ''vtsi_last_sector'' - last sector of VTS IFO | ||
+ | * ''zero_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 IFO | ||
+ | * ''zero_11'' | ||
+ | * ''zero_12[56]'' | ||
+ | * ''vtsm_vobs'' - starting sector of VTS Menu VOBs | ||
+ | * ''vtstt_vobs'' - starting sector of table of titles | ||
+ | * **''vts_ptt_srpt_t''** ''vts_ptt_srpt'' - **VTS IFOs only**, Part of Title Search Pointer Table | ||
+ | * ''nr_of_srpts'' | ||
+ | * ''zero_1'' | ||
+ | * ''last_byte'' | ||
+ | * **''ttu_t''** title | ||
+ | * ''ttu_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 PGC | ||
+ | * ''nr_of_tmaps'' - number of program chains | ||
+ | * ''zero_1'' | ||
+ | * ''last_byte'' - end address (last byte of last VTS_TMAP) | ||
+ | * **''vts_tmap_t''** ''tmap'' | ||
+ | * ''tmu'' - time unit, in seconds | ||
+ | * ''zero_1'' - reserved / unknown / safe to ignore | ||
+ | * ''nr_of_entries'' - number of entries in map; ''0'' for empty map | ||
+ | * **''map_ent_t''** ''map_ent'' - time map entry (typedef as uint32_t) | ||
+ | * **''c_adt_t''** ''vts_c_adt'' **VTS IFOs only**, VTS cell address table | ||
+ | * **''vobu_admap_t''** ''vts_vobu_admap'' | ||
* [[VMGM]] | * [[VMGM]] | ||
* ''VIDEO_TS.VOB'' | * ''VIDEO_TS.VOB'' | ||
- | |||
- | * **[[VMG]]** | ||
- | * vmgi_mat_t | ||
- | * playback_type_t | ||
- | * title_info_t | ||
- | * tt_srpt_t | ||
- | * pf_level_t | ||
- | * ptl_mait_country_t | ||
- | * ptl_mait_t | ||
- | * vts_attributes_t | ||
- | * vts_atrt_t | ||
- | * txtdt_t | ||
- | * txtdt_lu_t | ||
- | * txtdt_mgi_t | ||
- | * **[[VTS]]** | ||
- | * vtsi_mat_t | ||
- | * ptt_info_t | ||
- | * ttu_t | ||
- | * vts_ptt_srpt_t | ||
- | * map_ent_t | ||
- | * vts_tmap_t | ||
- | * vts_tmapt_t | ||
- | * **All [[IFO|IFOs]]** | ||
- | * ifo_handle_t | ||
- | |||
- | <code> | ||
- | typedef struct { | ||
- | dvd_file_t *file; | ||
- | |||
- | /* VMGI */ | ||
- | vmgi_mat_t *vmgi_mat; | ||
- | tt_srpt_t *tt_srpt; | ||
- | pgc_t *first_play_pgc; | ||
- | ptl_mait_t *ptl_mait; | ||
- | vts_atrt_t *vts_atrt; | ||
- | txtdt_mgi_t *txtdt_mgi; | ||
- | |||
- | /* Common */ | ||
- | pgci_ut_t *pgci_ut; | ||
- | c_adt_t *menu_c_adt; | ||
- | vobu_admap_t *menu_vobu_admap; | ||
- | |||
- | /* VTSI */ | ||
- | vtsi_mat_t *vtsi_mat; | ||
- | vts_ptt_srpt_t *vts_ptt_srpt; | ||
- | pgcit_t *vts_pgcit; | ||
- | vts_tmapt_t *vts_tmapt; | ||
- | c_adt_t *vts_c_adt; | ||
- | vobu_admap_t *vts_vobu_admap; | ||
- | } ifo_handle_t; | ||
- | </code> |