ifo_read.c File Reference

Go to the source code of this file.

Functions

static int ifoRead_VMG (ifo_handle_t *ifofile)
static int ifoRead_VTS (ifo_handle_t *ifofile)
static int ifoRead_PGC (ifo_handle_t *ifofile, pgc_t *pgc, unsigned int offset)
static int ifoRead_PGC_COMMAND_TBL (ifo_handle_t *ifofile, pgc_command_tbl_t *cmd_tbl, unsigned int offset)
static int ifoRead_PGC_PROGRAM_MAP (ifo_handle_t *ifofile, pgc_program_map_t *program_map, unsigned int nr, unsigned int offset)
static int ifoRead_CELL_PLAYBACK_TBL (ifo_handle_t *ifofile, cell_playback_t *cell_playback, unsigned int nr, unsigned int offset)
static int ifoRead_CELL_POSITION_TBL (ifo_handle_t *ifofile, cell_position_t *cell_position, unsigned int nr, unsigned int offset)
static int ifoRead_VTS_ATTRIBUTES (ifo_handle_t *ifofile, vts_attributes_t *vts_attributes, unsigned int offset)
static int ifoRead_C_ADT_internal (ifo_handle_t *ifofile, c_adt_t *c_adt, unsigned int sector)
static int ifoRead_VOBU_ADMAP_internal (ifo_handle_t *ifofile, vobu_admap_t *vobu_admap, unsigned int sector)
static int ifoRead_PGCIT_internal (ifo_handle_t *ifofile, pgcit_t *pgcit, unsigned int offset)
static void ifoFree_PGC (pgc_t *pgc)
static void ifoFree_PGC_COMMAND_TBL (pgc_command_tbl_t *cmd_tbl)
static void ifoFree_PGCIT_internal (pgcit_t *pgcit)
static int DVDFileSeekForce_ (dvd_file_t *dvd_file, uint32_t offset, int force_size)
static int DVDFileSeek_ (dvd_file_t *dvd_file, uint32_t offset)
static void read_video_attr (video_attr_t *va)
static void read_audio_attr (audio_attr_t *aa)
static void read_multichannel_ext (multichannel_ext_t *me)
static void read_subp_attr (subp_attr_t *sa)
static void read_user_ops (user_ops_t *uo)
static void read_pgci_srp (pgci_srp_t *ps)
static void read_cell_playback (cell_playback_t *cp)
static void read_playback_type (playback_type_t *pt)
static void free_ptl_mait (ptl_mait_t *ptl_mait, int num_entries)
ifo_handle_tifoOpen (dvd_reader_t *dvd, int title)
 handle = ifoOpen(dvd, title);
ifo_handle_tifoOpenVMGI (dvd_reader_t *dvd)
 handle = ifoOpenVMGI(dvd);
ifo_handle_tifoOpenVTSI (dvd_reader_t *dvd, int title)
 handle = ifoOpenVTSI(dvd, title);
void ifoClose (ifo_handle_t *ifofile)
 ifoClose(ifofile); Cleans up the IFO information.
int ifoRead_FP_PGC (ifo_handle_t *ifofile)
 okay = ifoRead_FP_PGC(ifofile);
void ifoFree_FP_PGC (ifo_handle_t *ifofile)
int ifoRead_TT_SRPT (ifo_handle_t *ifofile)
 okay = ifoRead_TT_SRPT(ifofile);
void ifoFree_TT_SRPT (ifo_handle_t *ifofile)
int ifoRead_VTS_PTT_SRPT (ifo_handle_t *ifofile)
 okay = ifoRead_VTS_PTT_SRPT(ifofile);
void ifoFree_VTS_PTT_SRPT (ifo_handle_t *ifofile)
int ifoRead_PTL_MAIT (ifo_handle_t *ifofile)
 The following functions are for reading only part of the VMGI/VTSI files.
void ifoFree_PTL_MAIT (ifo_handle_t *ifofile)
 The following functions are used for freeing parsed sections of the ifo_handle_t structure and the allocated substructures.
int ifoRead_VTS_TMAPT (ifo_handle_t *ifofile)
 okay = ifoRead_VTS_TMAPT(ifofile);
void ifoFree_VTS_TMAPT (ifo_handle_t *ifofile)
int ifoRead_TITLE_C_ADT (ifo_handle_t *ifofile)
 okay = ifoRead_TITLE_C_ADT(ifofile);
int ifoRead_C_ADT (ifo_handle_t *ifofile)
 okay = ifoRead_C_ADT(ifofile);
static void ifoFree_C_ADT_internal (c_adt_t *c_adt)
void ifoFree_C_ADT (ifo_handle_t *ifofile)
void ifoFree_TITLE_C_ADT (ifo_handle_t *ifofile)
int ifoRead_TITLE_VOBU_ADMAP (ifo_handle_t *ifofile)
 okay = ifoRead_TITLE_VOBU_ADMAP(ifofile);
int ifoRead_VOBU_ADMAP (ifo_handle_t *ifofile)
 okay = ifoRead_VOBU_ADMAP(ifofile);
static void ifoFree_VOBU_ADMAP_internal (vobu_admap_t *vobu_admap)
void ifoFree_VOBU_ADMAP (ifo_handle_t *ifofile)
void ifoFree_TITLE_VOBU_ADMAP (ifo_handle_t *ifofile)
int ifoRead_PGCIT (ifo_handle_t *ifofile)
 okay = ifoRead_PGCIT(ifofile);
void ifoFree_PGCIT (ifo_handle_t *ifofile)
int ifoRead_PGCI_UT (ifo_handle_t *ifofile)
 okay = ifoRead_PGCI_UT(ifofile);
void ifoFree_PGCI_UT (ifo_handle_t *ifofile)
int ifoRead_VTS_ATRT (ifo_handle_t *ifofile)
 okay = ifoRead_VTS_ATRT(ifofile);
void ifoFree_VTS_ATRT (ifo_handle_t *ifofile)
int ifoRead_TXTDT_MGI (ifo_handle_t *ifofile)
 okay = ifoRead_TXTDT_MGI(ifofile);
void ifoFree_TXTDT_MGI (ifo_handle_t *ifofile)

Variables

static const uint8_t my_friendly_zeros [2048]

Function Documentation

static int ifoRead_VMG ( ifo_handle_t ifofile  )  [static]

Definition at line 520 of file ifo_read.c.

Referenced by ifoOpen(), and ifoOpenVMGI().

static int ifoRead_VTS ( ifo_handle_t ifofile  )  [static]

Definition at line 611 of file ifo_read.c.

Referenced by ifoOpen(), and ifoOpenVTSI().

static int ifoRead_PGC ( ifo_handle_t ifofile,
pgc_t *  pgc,
unsigned int  offset 
) [static]

Definition at line 870 of file ifo_read.c.

Referenced by ifoRead_FP_PGC(), and ifoRead_PGCIT_internal().

static int ifoRead_PGC_COMMAND_TBL ( ifo_handle_t ifofile,
pgc_command_tbl_t *  cmd_tbl,
unsigned int  offset 
) [static]

Definition at line 726 of file ifo_read.c.

Referenced by ifoRead_PGC().

static int ifoRead_PGC_PROGRAM_MAP ( ifo_handle_t ifofile,
pgc_program_map_t program_map,
unsigned int  nr,
unsigned int  offset 
) [static]

Definition at line 811 of file ifo_read.c.

Referenced by ifoRead_PGC().

static int ifoRead_CELL_PLAYBACK_TBL ( ifo_handle_t ifofile,
cell_playback_t *  cell_playback,
unsigned int  nr,
unsigned int  offset 
) [static]

Definition at line 825 of file ifo_read.c.

Referenced by ifoRead_PGC().

static int ifoRead_CELL_POSITION_TBL ( ifo_handle_t ifofile,
cell_position_t *  cell_position,
unsigned int  nr,
unsigned int  offset 
) [static]

Definition at line 850 of file ifo_read.c.

Referenced by ifoRead_PGC().

static int ifoRead_VTS_ATTRIBUTES ( ifo_handle_t ifofile,
vts_attributes_t *  vts_attributes,
unsigned int  offset 
) [static]

Definition at line 2078 of file ifo_read.c.

Referenced by ifoRead_VTS_ATRT().

static int ifoRead_C_ADT_internal ( ifo_handle_t ifofile,
c_adt_t *  c_adt,
unsigned int  sector 
) [static]

Definition at line 1615 of file ifo_read.c.

Referenced by ifoRead_C_ADT(), and ifoRead_TITLE_C_ADT().

static int ifoRead_VOBU_ADMAP_internal ( ifo_handle_t ifofile,
vobu_admap_t *  vobu_admap,
unsigned int  sector 
) [static]

Definition at line 1749 of file ifo_read.c.

Referenced by ifoRead_TITLE_VOBU_ADMAP(), and ifoRead_VOBU_ADMAP().

static int ifoRead_PGCIT_internal ( ifo_handle_t ifofile,
pgcit_t *  pgcit,
unsigned int  offset 
) [static]

Definition at line 1835 of file ifo_read.c.

Referenced by ifoRead_PGCI_UT(), and ifoRead_PGCIT().

static void ifoFree_PGC ( pgc_t *  pgc  )  [static]
static void ifoFree_PGC_COMMAND_TBL ( pgc_command_tbl_t *  cmd_tbl  )  [static]

Definition at line 799 of file ifo_read.c.

Referenced by ifoFree_PGC(), and ifoRead_PGC().

static void ifoFree_PGCIT_internal ( pgcit_t *  pgcit  )  [static]

Definition at line 1911 of file ifo_read.c.

Referenced by ifoFree_PGCI_UT(), ifoFree_PGCIT(), and ifoRead_PGCI_UT().

static int DVDFileSeekForce_ ( dvd_file_t dvd_file,
uint32_t  offset,
int  force_size 
) [inline, static]

Definition at line 94 of file ifo_read.c.

Referenced by ifoRead_VOBU_ADMAP_internal().

static int DVDFileSeek_ ( dvd_file_t dvd_file,
uint32_t  offset 
) [inline, static]
static void read_video_attr ( video_attr_t *  va  )  [static]

Definition at line 102 of file ifo_read.c.

Referenced by ifoRead_VMG(), ifoRead_VTS(), and ifoRead_VTS_ATTRIBUTES().

static void read_audio_attr ( audio_attr_t *  aa  )  [static]

Definition at line 121 of file ifo_read.c.

Referenced by ifoRead_VMG(), ifoRead_VTS(), and ifoRead_VTS_ATTRIBUTES().

static void read_multichannel_ext ( multichannel_ext_t *  me  )  [static]

Definition at line 146 of file ifo_read.c.

Referenced by ifoRead_VTS().

static void read_subp_attr ( subp_attr_t *  sa  )  [static]

Definition at line 173 of file ifo_read.c.

Referenced by ifoRead_VMG(), ifoRead_VTS(), and ifoRead_VTS_ATTRIBUTES().

static void read_user_ops ( user_ops_t *  uo  )  [static]

Definition at line 188 of file ifo_read.c.

Referenced by ifoRead_PGC().

static void read_pgci_srp ( pgci_srp_t *  ps  )  [static]

Definition at line 222 of file ifo_read.c.

Referenced by ifoRead_PGCIT_internal().

static void read_cell_playback ( cell_playback_t *  cp  )  [static]

Definition at line 236 of file ifo_read.c.

Referenced by ifoRead_CELL_PLAYBACK_TBL().

static void read_playback_type ( playback_type_t *  pt  )  [static]

Definition at line 265 of file ifo_read.c.

Referenced by ifoRead_TT_SRPT().

static void free_ptl_mait ( ptl_mait_t *  ptl_mait,
int  num_entries 
) [static]

Definition at line 281 of file ifo_read.c.

Referenced by ifoRead_PTL_MAIT().

ifo_handle_t* ifoOpen ( dvd_reader_t ,
int   
)

handle = ifoOpen(dvd, title);

Opens an IFO and reads in all the data for the IFO file corresponding to the given title. If title 0 is given, the video manager IFO file is read. Returns a handle to a completely parsed structure.

Definition at line 290 of file ifo_read.c.

Referenced by ifo_print(), and vm_get_title_ifo().

ifo_handle_t* ifoOpenVMGI ( dvd_reader_t  ) 

handle = ifoOpenVMGI(dvd);

Opens an IFO and reads in _only_ the vmgi_mat data. This call can be used together with the calls below to read in each segment of the IFO file on demand.

Definition at line 427 of file ifo_read.c.

Referenced by vm_reset().

ifo_handle_t* ifoOpenVTSI ( dvd_reader_t ,
int   
)

handle = ifoOpenVTSI(dvd, title);

Opens an IFO and reads in _only_ the vtsi_mat data. This call can be used together with the calls below to read in each segment of the IFO file on demand.

Definition at line 454 of file ifo_read.c.

Referenced by ifoOpenNewVTSI().

void ifoClose ( ifo_handle_t  ) 

ifoClose(ifofile); Cleans up the IFO information.

This will free all data allocated for the substructures.

Definition at line 489 of file ifo_read.c.

Referenced by ifo_print(), ifoOpen(), ifoOpenNewVTSI(), ifoOpenVMGI(), ifoOpenVTSI(), vm_free_copy(), vm_ifo_close(), vm_merge(), and vm_stop().

int ifoRead_FP_PGC ( ifo_handle_t  ) 

okay = ifoRead_FP_PGC(ifofile);

Reads in the first play program chain data, filling the ifofile->first_play_pgc structure. This data is only located in the video manager information file (VMGI). This structure is optional.

Definition at line 989 of file ifo_read.c.

Referenced by ifoOpen(), and vm_reset().

void ifoFree_FP_PGC ( ifo_handle_t ifofile  ) 

Definition at line 1028 of file ifo_read.c.

Referenced by ifoClose().

int ifoRead_TT_SRPT ( ifo_handle_t  ) 

okay = ifoRead_TT_SRPT(ifofile);

Reads the title info for the main menu, filling the ifofile->tt_srpt structure and its substructures. This data is only located in the video manager information file. This structure is mandatory in the IFO file.

Definition at line 1040 of file ifo_read.c.

Referenced by ifoOpen(), and vm_reset().

void ifoFree_TT_SRPT ( ifo_handle_t ifofile  ) 

Definition at line 1129 of file ifo_read.c.

Referenced by ifoClose(), and ifoRead_TT_SRPT().

int ifoRead_VTS_PTT_SRPT ( ifo_handle_t  ) 

okay = ifoRead_VTS_PTT_SRPT(ifofile);

Reads in the part of title search pointer table, filling the ifofile->vts_ptt_srpt structure and its substructures. This data is only located in the video title set information file. This structure is mandatory, and must be included in the VTSI file.

Definition at line 1141 of file ifo_read.c.

Referenced by ifoOpen(), and ifoOpenNewVTSI().

void ifoFree_VTS_PTT_SRPT ( ifo_handle_t ifofile  ) 

Definition at line 1267 of file ifo_read.c.

Referenced by ifoClose().

int ifoRead_PTL_MAIT ( ifo_handle_t  ) 

The following functions are for reading only part of the VMGI/VTSI files.

Returns 1 if the data was successfully read and 0 on error. okay = ifoRead_PLT_MAIT(ifofile); Read in the Parental Management Information table, filling the ifofile->ptl_mait structure and its substructures. This data is only located in the video manager information file. This fills the ifofile->ptl_mait structure and all its substructures.

Definition at line 1283 of file ifo_read.c.

Referenced by ifoOpen(), and vm_reset().

void ifoFree_PTL_MAIT ( ifo_handle_t  ) 

The following functions are used for freeing parsed sections of the ifo_handle_t structure and the allocated substructures.

The free calls below are safe: they will not mind if you attempt to free part of an IFO file which was not read in or which does not exist.

Definition at line 1406 of file ifo_read.c.

Referenced by ifoClose().

int ifoRead_VTS_TMAPT ( ifo_handle_t  ) 

okay = ifoRead_VTS_TMAPT(ifofile);

Reads in the VTS Time Map Table, this data is only located in the video title set information file. This fills the ifofile->vts_tmapt structure and all its substructures. When pressent enables VOBU level time-based seeking for One_Sequential_PGC_Titles.

Definition at line 1422 of file ifo_read.c.

Referenced by ifoOpen().

void ifoFree_VTS_TMAPT ( ifo_handle_t ifofile  ) 

Definition at line 1541 of file ifo_read.c.

Referenced by ifoClose(), and ifoRead_VTS_TMAPT().

int ifoRead_TITLE_C_ADT ( ifo_handle_t  ) 

okay = ifoRead_TITLE_C_ADT(ifofile);

Reads in the cell address table for the video title set corresponding to this IFO file. This data is only located in the video title set information file. This structure is mandatory, and must be included in the VTSI file. This call fills the ifofile->vts_c_adt structure and its substructures.

Definition at line 1559 of file ifo_read.c.

Referenced by ifoOpen().

int ifoRead_C_ADT ( ifo_handle_t  ) 

okay = ifoRead_C_ADT(ifofile);

Reads in the cell address table for the menu VOB. For the video manager, this corresponds to the VIDEO_TS.VOB file, and for each title set, this corresponds to the VTS_XX_0.VOB file. This data is located in both the video manager and video title set information files. For VMGI files, this fills the ifofile->vmgm_c_adt structure and all its substructures. For VTSI files, this fills the ifofile->vtsm_c_adt structure.

Definition at line 1584 of file ifo_read.c.

Referenced by ifoOpen().

static void ifoFree_C_ADT_internal ( c_adt_t *  c_adt  )  [static]

Definition at line 1671 of file ifo_read.c.

Referenced by ifoFree_C_ADT(), and ifoFree_TITLE_C_ADT().

void ifoFree_C_ADT ( ifo_handle_t ifofile  ) 

Definition at line 1678 of file ifo_read.c.

Referenced by ifoClose().

void ifoFree_TITLE_C_ADT ( ifo_handle_t ifofile  ) 

Definition at line 1686 of file ifo_read.c.

Referenced by ifoClose().

int ifoRead_TITLE_VOBU_ADMAP ( ifo_handle_t  ) 

okay = ifoRead_TITLE_VOBU_ADMAP(ifofile);

Reads in the VOBU address map for the associated video title set. This data is only located in the video title set information file. This structure is mandatory, and must be included in the VTSI file. Fills the ifofile->vts_vobu_admap structure and its substructures.

Definition at line 1694 of file ifo_read.c.

Referenced by ifoOpen(), and ifoOpenNewVTSI().

int ifoRead_VOBU_ADMAP ( ifo_handle_t  ) 

okay = ifoRead_VOBU_ADMAP(ifofile);

Reads in the VOBU address map for the menu VOB. For the video manager, this corresponds to the VIDEO_TS.VOB file, and for each title set, this corresponds to the VTS_XX_0.VOB file. This data is located in both the video manager and video title set information files. For VMGI files, this fills the ifofile->vmgm_vobu_admap structure and all its substructures. For VTSI files, this fills the ifofile->vtsm_vobu_admap structure.

Definition at line 1718 of file ifo_read.c.

Referenced by ifoOpen(), ifoOpenNewVTSI(), and vm_reset().

static void ifoFree_VOBU_ADMAP_internal ( vobu_admap_t *  vobu_admap  )  [static]

Definition at line 1787 of file ifo_read.c.

Referenced by ifoFree_TITLE_VOBU_ADMAP(), and ifoFree_VOBU_ADMAP().

void ifoFree_VOBU_ADMAP ( ifo_handle_t ifofile  ) 

Definition at line 1794 of file ifo_read.c.

Referenced by ifoClose().

void ifoFree_TITLE_VOBU_ADMAP ( ifo_handle_t ifofile  ) 

Definition at line 1802 of file ifo_read.c.

Referenced by ifoClose().

int ifoRead_PGCIT ( ifo_handle_t  ) 

okay = ifoRead_PGCIT(ifofile);

Reads in the program chain information table for the video title set. Fills in the ifofile->vts_pgcit structure and its substructures, which includes the data for each program chain in the set. This data is only located in the video title set information file. This structure is mandatory, and must be included in the VTSI file.

Definition at line 1810 of file ifo_read.c.

Referenced by ifoOpen(), and ifoOpenNewVTSI().

void ifoFree_PGCIT ( ifo_handle_t ifofile  ) 

Definition at line 1923 of file ifo_read.c.

Referenced by ifoClose().

int ifoRead_PGCI_UT ( ifo_handle_t  ) 

okay = ifoRead_PGCI_UT(ifofile);

Reads in the menu PGCI unit table for the menu VOB. For the video manager, this corresponds to the VIDEO_TS.VOB file, and for each title set, this corresponds to the VTS_XX_0.VOB file. This data is located in both the video manager and video title set information files. For VMGI files, this fills the ifofile->vmgi_pgci_ut structure and all its substructures. For VTSI files, this fills the ifofile->vtsm_pgci_ut structure.

Definition at line 1935 of file ifo_read.c.

Referenced by ifoOpen(), ifoOpenNewVTSI(), and vm_reset().

void ifoFree_PGCI_UT ( ifo_handle_t ifofile  ) 

Definition at line 2061 of file ifo_read.c.

Referenced by ifoClose().

int ifoRead_VTS_ATRT ( ifo_handle_t  ) 

okay = ifoRead_VTS_ATRT(ifofile);

Read in the attribute table for the main menu vob, filling the ifofile->vts_atrt structure and its substructures. Only located in the video manager information file. This fills in the ifofile->vts_atrt structure and all its substructures.

Definition at line 2131 of file ifo_read.c.

Referenced by ifoOpen(), and vm_reset().

void ifoFree_VTS_ATRT ( ifo_handle_t ifofile  ) 

Definition at line 2219 of file ifo_read.c.

Referenced by ifoClose().

int ifoRead_TXTDT_MGI ( ifo_handle_t  ) 

okay = ifoRead_TXTDT_MGI(ifofile);

Reads in the text data strings for the DVD. Fills the ifofile->txtdt_mgi structure and all its substructures. This data is only located in the video manager information file. This structure is mandatory, and must be included in the VMGI file.

Definition at line 2232 of file ifo_read.c.

Referenced by ifoOpen().

void ifoFree_TXTDT_MGI ( ifo_handle_t ifofile  ) 

Definition at line 2266 of file ifo_read.c.

Referenced by ifoClose().


Variable Documentation

const uint8_t my_friendly_zeros[2048] [static]

Definition at line 56 of file ifo_read.c.

Referenced by ifoRead_TT_SRPT().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends
Generated on Sun May 27 06:41:45 2012 for MythTV by  doxygen 1.6.3