| dvdnav.h | | dvdnav.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * | | * | |
| * libdvdnav is distributed in the hope that it will be useful, | | * libdvdnav is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with this program; if not, write to the Free Software | | * along with this program; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, U
SA | | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, U
SA | |
| * | | * | |
|
| * $Id: dvdnav.h 955 2007-08-19 21:25:04Z rathann $ | | * $Id: dvdnav.h 975 2007-11-29 23:24:05Z nicodvb $ | |
| * | | * | |
| */ | | */ | |
| | | | |
| /* | | /* | |
| * This is the main header file applications should include if they want | | * This is the main header file applications should include if they want | |
| * to access dvdnav functionality. | | * to access dvdnav functionality. | |
| */ | | */ | |
| | | | |
| #ifndef DVDNAV_H_INCLUDED | | #ifndef DVDNAV_H_INCLUDED | |
| #define DVDNAV_H_INCLUDED | | #define DVDNAV_H_INCLUDED | |
| | | | |
| skipping to change at line 282 | | skipping to change at line 282 | |
| * Plays the specified title of the DVD from its beginning (that is: part 1
). | | * Plays the specified title of the DVD from its beginning (that is: part 1
). | |
| */ | | */ | |
| dvdnav_status_t dvdnav_title_play(dvdnav_t *self, int32_t title); | | dvdnav_status_t dvdnav_title_play(dvdnav_t *self, int32_t title); | |
| | | | |
| /* | | /* | |
| * Plays the specified title, starting from the specified part. | | * Plays the specified title, starting from the specified part. | |
| */ | | */ | |
| dvdnav_status_t dvdnav_part_play(dvdnav_t *self, int32_t title, int32_t par
t); | | dvdnav_status_t dvdnav_part_play(dvdnav_t *self, int32_t title, int32_t par
t); | |
| | | | |
| /* | | /* | |
|
| | | * Stores in *times an array (that the application *must* free) of | |
| | | * dvdtimes corresponding to the chapter times for the chosen title. | |
| | | * *duration will have the duration of the title | |
| | | * The number of entries in *times is the result of the function. | |
| | | * On error *times is NULL and the output is 0 | |
| | | */ | |
| | | uint32_t dvdnav_describe_title_chapters(dvdnav_t *this, int32_t title, uint | |
| | | 64_t **times, uint64_t *duration); | |
| | | | |
| | | /* | |
| * Play the specified amount of parts of the specified title of | | * Play the specified amount of parts of the specified title of | |
| * the DVD then STOP. | | * the DVD then STOP. | |
| * | | * | |
| * Currently unimplemented! | | * Currently unimplemented! | |
| */ | | */ | |
| dvdnav_status_t dvdnav_part_play_auto_stop(dvdnav_t *self, int32_t title, | | dvdnav_status_t dvdnav_part_play_auto_stop(dvdnav_t *self, int32_t title, | |
| int32_t part, int32_t parts_to_pl
ay); | | int32_t part, int32_t parts_to_pl
ay); | |
| | | | |
| /* | | /* | |
| * Play the specified title starting from the specified time. | | * Play the specified title starting from the specified time. | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 11 lines changed or added | |
|
| ifo_types.h | | ifo_types.h | |
| | | | |
| skipping to change at line 68 | | skipping to change at line 68 | |
| uint8_t second; | | uint8_t second; | |
| uint8_t frame_u; /* The two high bits are the frame rate. */ | | uint8_t frame_u; /* The two high bits are the frame rate. */ | |
| } ATTRIBUTE_PACKED dvd_time_t; | | } ATTRIBUTE_PACKED dvd_time_t; | |
| | | | |
| /** | | /** | |
| * Type to store per-command data. | | * Type to store per-command data. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint8_t bytes[8]; | | uint8_t bytes[8]; | |
| } ATTRIBUTE_PACKED vm_cmd_t; | | } ATTRIBUTE_PACKED vm_cmd_t; | |
|
| #define COMMAND_DATA_SIZE 8 | | #define COMMAND_DATA_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Video Attributes. | | * Video Attributes. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| #ifdef WORDS_BIGENDIAN | | #ifdef WORDS_BIGENDIAN | |
| unsigned char mpeg_version : 2; | | unsigned char mpeg_version : 2; | |
| unsigned char video_format : 2; | | unsigned char video_format : 2; | |
| unsigned char display_aspect_ratio : 2; | | unsigned char display_aspect_ratio : 2; | |
| unsigned char permitted_df : 2; | | unsigned char permitted_df : 2; | |
| | | | |
| skipping to change at line 261 | | skipping to change at line 261 | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t nr_of_pre; | | uint16_t nr_of_pre; | |
| uint16_t nr_of_post; | | uint16_t nr_of_post; | |
| uint16_t nr_of_cell; | | uint16_t nr_of_cell; | |
| uint16_t zero_1; | | uint16_t zero_1; | |
| vm_cmd_t *pre_cmds; | | vm_cmd_t *pre_cmds; | |
| vm_cmd_t *post_cmds; | | vm_cmd_t *post_cmds; | |
| vm_cmd_t *cell_cmds; | | vm_cmd_t *cell_cmds; | |
| } ATTRIBUTE_PACKED pgc_command_tbl_t; | | } ATTRIBUTE_PACKED pgc_command_tbl_t; | |
|
| #define PGC_COMMAND_TBL_SIZE 8 | | #define PGC_COMMAND_TBL_SIZE 8U | |
| | | | |
| /** | | /** | |
| * PGC Program Map | | * PGC Program Map | |
| */ | | */ | |
| typedef uint8_t pgc_program_map_t; | | typedef uint8_t pgc_program_map_t; | |
| | | | |
| /** | | /** | |
| * Cell Playback Information. | | * Cell Playback Information. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| | | | |
| skipping to change at line 414 | | skipping to change at line 414 | |
| uint32_t palette[16]; /* New type struct {zero_1, Y, Cr, Cb} ? */ | | uint32_t palette[16]; /* New type struct {zero_1, Y, Cr, Cb} ? */ | |
| uint16_t command_tbl_offset; | | uint16_t command_tbl_offset; | |
| uint16_t program_map_offset; | | uint16_t program_map_offset; | |
| uint16_t cell_playback_offset; | | uint16_t cell_playback_offset; | |
| uint16_t cell_position_offset; | | uint16_t cell_position_offset; | |
| pgc_command_tbl_t *command_tbl; | | pgc_command_tbl_t *command_tbl; | |
| pgc_program_map_t *program_map; | | pgc_program_map_t *program_map; | |
| cell_playback_t *cell_playback; | | cell_playback_t *cell_playback; | |
| cell_position_t *cell_position; | | cell_position_t *cell_position; | |
| } ATTRIBUTE_PACKED pgc_t; | | } ATTRIBUTE_PACKED pgc_t; | |
|
| #define PGC_SIZE 236 | | #define PGC_SIZE 236U | |
| | | | |
| /** | | /** | |
| * Program Chain Information Search Pointer. | | * Program Chain Information Search Pointer. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint8_t entry_id; | | uint8_t entry_id; | |
| #ifdef WORDS_BIGENDIAN | | #ifdef WORDS_BIGENDIAN | |
| unsigned int block_mode : 2; | | unsigned int block_mode : 2; | |
| unsigned int block_type : 2; | | unsigned int block_type : 2; | |
| unsigned int unknown1 : 4; | | unsigned int unknown1 : 4; | |
| #else | | #else | |
| unsigned char unknown1 : 4; | | unsigned char unknown1 : 4; | |
| unsigned char block_type : 2; | | unsigned char block_type : 2; | |
| unsigned char block_mode : 2; | | unsigned char block_mode : 2; | |
| #endif | | #endif | |
| uint16_t ptl_id_mask; | | uint16_t ptl_id_mask; | |
| uint32_t pgc_start_byte; | | uint32_t pgc_start_byte; | |
| pgc_t *pgc; | | pgc_t *pgc; | |
| } ATTRIBUTE_PACKED pgci_srp_t; | | } ATTRIBUTE_PACKED pgci_srp_t; | |
|
| #define PGCI_SRP_SIZE 8 | | #define PGCI_SRP_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Program Chain Information Table. | | * Program Chain Information Table. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t nr_of_pgci_srp; | | uint16_t nr_of_pgci_srp; | |
| uint16_t zero_1; | | uint16_t zero_1; | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| pgci_srp_t *pgci_srp; | | pgci_srp_t *pgci_srp; | |
| } ATTRIBUTE_PACKED pgcit_t; | | } ATTRIBUTE_PACKED pgcit_t; | |
|
| #define PGCIT_SIZE 8 | | #define PGCIT_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Menu PGCI Language Unit. | | * Menu PGCI Language Unit. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t lang_code; | | uint16_t lang_code; | |
| uint8_t lang_extension; | | uint8_t lang_extension; | |
| uint8_t exists; | | uint8_t exists; | |
| uint32_t lang_start_byte; | | uint32_t lang_start_byte; | |
| pgcit_t *pgcit; | | pgcit_t *pgcit; | |
| } ATTRIBUTE_PACKED pgci_lu_t; | | } ATTRIBUTE_PACKED pgci_lu_t; | |
|
| #define PGCI_LU_SIZE 8 | | #define PGCI_LU_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Menu PGCI Unit Table. | | * Menu PGCI Unit Table. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t nr_of_lus; | | uint16_t nr_of_lus; | |
| uint16_t zero_1; | | uint16_t zero_1; | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| pgci_lu_t *lu; | | pgci_lu_t *lu; | |
| } ATTRIBUTE_PACKED pgci_ut_t; | | } ATTRIBUTE_PACKED pgci_ut_t; | |
|
| #define PGCI_UT_SIZE 8 | | #define PGCI_UT_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Cell Address Information. | | * Cell Address Information. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t vob_id; | | uint16_t vob_id; | |
| uint8_t cell_id; | | uint8_t cell_id; | |
| uint8_t zero_1; | | uint8_t zero_1; | |
| uint32_t start_sector; | | uint32_t start_sector; | |
| uint32_t last_sector; | | uint32_t last_sector; | |
| | | | |
| skipping to change at line 490 | | skipping to change at line 490 | |
| | | | |
| /** | | /** | |
| * Cell Address Table. | | * Cell Address Table. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t nr_of_vobs; /* VOBs */ | | uint16_t nr_of_vobs; /* VOBs */ | |
| uint16_t zero_1; | | uint16_t zero_1; | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| cell_adr_t *cell_adr_table; /* No explicit size given. */ | | cell_adr_t *cell_adr_table; /* No explicit size given. */ | |
| } ATTRIBUTE_PACKED c_adt_t; | | } ATTRIBUTE_PACKED c_adt_t; | |
|
| #define C_ADT_SIZE 8 | | #define C_ADT_SIZE 8U | |
| | | | |
| /** | | /** | |
| * VOBU Address Map. | | * VOBU Address Map. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| uint32_t *vobu_start_sectors; | | uint32_t *vobu_start_sectors; | |
| } ATTRIBUTE_PACKED vobu_admap_t; | | } ATTRIBUTE_PACKED vobu_admap_t; | |
|
| #define VOBU_ADMAP_SIZE 4 | | #define VOBU_ADMAP_SIZE 4U | |
| | | | |
| /** | | /** | |
| * VMGI | | * VMGI | |
| * | | * | |
| * The following structures relate to the Video Manager. | | * The following structures relate to the Video Manager. | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * Video Manager Information Management Table. | | * Video Manager Information Management Table. | |
| */ | | */ | |
| | | | |
| skipping to change at line 594 | | skipping to change at line 594 | |
| | | | |
| /** | | /** | |
| * PartOfTitle Search Pointer Table. | | * PartOfTitle Search Pointer Table. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t nr_of_srpts; | | uint16_t nr_of_srpts; | |
| uint16_t zero_1; | | uint16_t zero_1; | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| title_info_t *title; | | title_info_t *title; | |
| } ATTRIBUTE_PACKED tt_srpt_t; | | } ATTRIBUTE_PACKED tt_srpt_t; | |
|
| #define TT_SRPT_SIZE 8 | | #define TT_SRPT_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Parental Management Information Unit Table. | | * Parental Management Information Unit Table. | |
| * Level 1 (US: G), ..., 7 (US: NC-17), 8 | | * Level 1 (US: G), ..., 7 (US: NC-17), 8 | |
| */ | | */ | |
| typedef uint16_t pf_level_t[8]; | | typedef uint16_t pf_level_t[8]; | |
| | | | |
| /** | | /** | |
| * Parental Management Information Unit Table. | | * Parental Management Information Unit Table. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t country_code; | | uint16_t country_code; | |
| uint16_t zero_1; | | uint16_t zero_1; | |
| uint16_t pf_ptl_mai_start_byte; | | uint16_t pf_ptl_mai_start_byte; | |
| uint16_t zero_2; | | uint16_t zero_2; | |
| pf_level_t *pf_ptl_mai; /* table of (nr_of_vtss + 1), video_ts is first *
/ | | pf_level_t *pf_ptl_mai; /* table of (nr_of_vtss + 1), video_ts is first *
/ | |
| } ATTRIBUTE_PACKED ptl_mait_country_t; | | } ATTRIBUTE_PACKED ptl_mait_country_t; | |
|
| #define PTL_MAIT_COUNTRY_SIZE 8 | | #define PTL_MAIT_COUNTRY_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Parental Management Information Table. | | * Parental Management Information Table. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t nr_of_countries; | | uint16_t nr_of_countries; | |
| uint16_t nr_of_vtss; | | uint16_t nr_of_vtss; | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| ptl_mait_country_t *countries; | | ptl_mait_country_t *countries; | |
| } ATTRIBUTE_PACKED ptl_mait_t; | | } ATTRIBUTE_PACKED ptl_mait_t; | |
|
| #define PTL_MAIT_SIZE 8 | | #define PTL_MAIT_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Video Title Set Attributes. | | * Video Title Set Attributes. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| uint32_t vts_cat; | | uint32_t vts_cat; | |
| | | | |
| video_attr_t vtsm_vobs_attr; | | video_attr_t vtsm_vobs_attr; | |
| uint8_t zero_1; | | uint8_t zero_1; | |
| | | | |
| skipping to change at line 654 | | skipping to change at line 654 | |
| | | | |
| video_attr_t vtstt_vobs_video_attr; | | video_attr_t vtstt_vobs_video_attr; | |
| uint8_t zero_7; | | uint8_t zero_7; | |
| uint8_t nr_of_vtstt_audio_streams; | | uint8_t nr_of_vtstt_audio_streams; | |
| audio_attr_t vtstt_audio_attr[8]; | | audio_attr_t vtstt_audio_attr[8]; | |
| uint8_t zero_8[16]; | | uint8_t zero_8[16]; | |
| uint8_t zero_9; | | uint8_t zero_9; | |
| uint8_t nr_of_vtstt_subp_streams; | | uint8_t nr_of_vtstt_subp_streams; | |
| subp_attr_t vtstt_subp_attr[32]; | | subp_attr_t vtstt_subp_attr[32]; | |
| } ATTRIBUTE_PACKED vts_attributes_t; | | } ATTRIBUTE_PACKED vts_attributes_t; | |
|
| #define VTS_ATTRIBUTES_SIZE 542 | | #define VTS_ATTRIBUTES_SIZE 542U | |
| #define VTS_ATTRIBUTES_MIN_SIZE 356 | | #define VTS_ATTRIBUTES_MIN_SIZE 356U | |
| | | | |
| /** | | /** | |
| * Video Title Set Attribute Table. | | * Video Title Set Attribute Table. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t nr_of_vtss; | | uint16_t nr_of_vtss; | |
| uint16_t zero_1; | | uint16_t zero_1; | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| vts_attributes_t *vts; | | vts_attributes_t *vts; | |
| uint32_t *vts_atrt_offsets; /* offsets table for each vts_attributes */ | | uint32_t *vts_atrt_offsets; /* offsets table for each vts_attributes */ | |
| } ATTRIBUTE_PACKED vts_atrt_t; | | } ATTRIBUTE_PACKED vts_atrt_t; | |
|
| #define VTS_ATRT_SIZE 8 | | #define VTS_ATRT_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Text Data. (Incomplete) | | * Text Data. (Incomplete) | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint32_t last_byte; /* offsets are relative here */ | | uint32_t last_byte; /* offsets are relative here */ | |
| uint16_t offsets[100]; /* == nr_of_srpts + 1 (first is disc title) */ | | uint16_t offsets[100]; /* == nr_of_srpts + 1 (first is disc title) */ | |
| #if 0 | | #if 0 | |
| uint16_t unknown; /* 0x48 ?? 0x48 words (16bit) info following */ | | uint16_t unknown; /* 0x48 ?? 0x48 words (16bit) info following */ | |
| uint16_t zero_1; | | uint16_t zero_1; | |
| | | | |
| skipping to change at line 700 | | skipping to change at line 700 | |
| | | | |
| /** | | /** | |
| * Text Data Language Unit. (Incomplete) | | * Text Data Language Unit. (Incomplete) | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t lang_code; | | uint16_t lang_code; | |
| uint16_t unknown; /* 0x0001, title 1? disc 1? side 1? */ | | uint16_t unknown; /* 0x0001, title 1? disc 1? side 1? */ | |
| uint32_t txtdt_start_byte; /* prt, rel start of vmg_txtdt_mgi */ | | uint32_t txtdt_start_byte; /* prt, rel start of vmg_txtdt_mgi */ | |
| txtdt_t *txtdt; | | txtdt_t *txtdt; | |
| } ATTRIBUTE_PACKED txtdt_lu_t; | | } ATTRIBUTE_PACKED txtdt_lu_t; | |
|
| #define TXTDT_LU_SIZE 8 | | #define TXTDT_LU_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Text Data Manager Information. (Incomplete) | | * Text Data Manager Information. (Incomplete) | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| char disc_name[14]; /* how many bytes?? */ | | char disc_name[14]; /* how many bytes?? */ | |
| uint16_t nr_of_language_units; /* 32bit?? */ | | uint16_t nr_of_language_units; /* 32bit?? */ | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| txtdt_lu_t *lu; | | txtdt_lu_t *lu; | |
| } ATTRIBUTE_PACKED txtdt_mgi_t; | | } ATTRIBUTE_PACKED txtdt_mgi_t; | |
|
| #define TXTDT_MGI_SIZE 20 | | #define TXTDT_MGI_SIZE 20U | |
| | | | |
| /** | | /** | |
| * VTS | | * VTS | |
| * | | * | |
| * Structures relating to the Video Title Set (VTS). | | * Structures relating to the Video Title Set (VTS). | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * Video Title Set Information Management Table. | | * Video Title Set Information Management Table. | |
| */ | | */ | |
| | | | |
| skipping to change at line 802 | | skipping to change at line 802 | |
| /** | | /** | |
| * PartOfTitle Search Pointer Table. | | * PartOfTitle Search Pointer Table. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t nr_of_srpts; | | uint16_t nr_of_srpts; | |
| uint16_t zero_1; | | uint16_t zero_1; | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| ttu_t *title; | | ttu_t *title; | |
| uint32_t *ttu_offset; /* offset table for each ttu */ | | uint32_t *ttu_offset; /* offset table for each ttu */ | |
| } ATTRIBUTE_PACKED vts_ptt_srpt_t; | | } ATTRIBUTE_PACKED vts_ptt_srpt_t; | |
|
| #define VTS_PTT_SRPT_SIZE 8 | | #define VTS_PTT_SRPT_SIZE 8U | |
| | | | |
| /** | | /** | |
| * Time Map Entry. | | * Time Map Entry. | |
| */ | | */ | |
| /* Should this be bit field at all or just the uint32_t? */ | | /* Should this be bit field at all or just the uint32_t? */ | |
| typedef uint32_t map_ent_t; | | typedef uint32_t map_ent_t; | |
| | | | |
| /** | | /** | |
| * Time Map. | | * Time Map. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint8_t tmu; /* Time unit, in seconds */ | | uint8_t tmu; /* Time unit, in seconds */ | |
| uint8_t zero_1; | | uint8_t zero_1; | |
| uint16_t nr_of_entries; | | uint16_t nr_of_entries; | |
| map_ent_t *map_ent; | | map_ent_t *map_ent; | |
| } ATTRIBUTE_PACKED vts_tmap_t; | | } ATTRIBUTE_PACKED vts_tmap_t; | |
|
| #define VTS_TMAP_SIZE 4 | | #define VTS_TMAP_SIZE 4U | |
| | | | |
| /** | | /** | |
| * Time Map Table. | | * Time Map Table. | |
| */ | | */ | |
| typedef struct { | | typedef struct { | |
| uint16_t nr_of_tmaps; | | uint16_t nr_of_tmaps; | |
| uint16_t zero_1; | | uint16_t zero_1; | |
| uint32_t last_byte; | | uint32_t last_byte; | |
| vts_tmap_t *tmap; | | vts_tmap_t *tmap; | |
| uint32_t *tmap_offset; /* offset table for each tmap */ | | uint32_t *tmap_offset; /* offset table for each tmap */ | |
| } ATTRIBUTE_PACKED vts_tmapt_t; | | } ATTRIBUTE_PACKED vts_tmapt_t; | |
|
| #define VTS_TMAPT_SIZE 8 | | #define VTS_TMAPT_SIZE 8U | |
| | | | |
| #if PRAGMA_PACK | | #if PRAGMA_PACK | |
| #pragma pack() | | #pragma pack() | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
| * The following structure defines an IFO file. The structure is divided i
nto | | * The following structure defines an IFO file. The structure is divided i
nto | |
| * two parts, the VMGI, or Video Manager Information, which is read from th
e | | * two parts, the VMGI, or Video Manager Information, which is read from th
e | |
| * VIDEO_TS.[IFO,BUP] file, and the VTSI, or Video Title Set Information, w
hich | | * VIDEO_TS.[IFO,BUP] file, and the VTSI, or Video Title Set Information, w
hich | |
| * is read in from the VTS_XX_0.[IFO,BUP] files. | | * is read in from the VTS_XX_0.[IFO,BUP] files. | |
| | | | |
End of changes. 19 change blocks. |
| 20 lines changed or deleted | | 20 lines changed or added | |
|