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 DVDFileSeek_ (dvd_file_t *dvd_file, uint32_t offset)
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 274 of file ifo_read.c.

Referenced by ifoOpen(), and ifoOpenVMGI().

static int ifoRead_VTS ( ifo_handle_t ifofile  )  [static]

Definition at line 364 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 624 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 476 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 561 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 575 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 604 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 1825 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 1366 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 1500 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 1586 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 549 of file ifo_read.c.

Referenced by ifoFree_PGC(), and ifoRead_PGC().

static void ifoFree_PGCIT_internal ( pgcit_t *  pgcit  )  [static]

Definition at line 1659 of file ifo_read.c.

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

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

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 97 of file ifo_read.c.

Referenced by DVDProbe::probe(), and DVDThread::ripTitle().

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 182 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 209 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 244 of file ifo_read.c.

Referenced by ifoOpen(), ifoOpenNewVTSI(), ifoOpenVMGI(), ifoOpenVTSI(), DVDProbe::probe(), DVDThread::ripTitle(), vm_free_copy(), 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 738 of file ifo_read.c.

Referenced by ifoOpen(), and vm_reset().

void ifoFree_FP_PGC ( ifo_handle_t ifofile  ) 

Definition at line 777 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 789 of file ifo_read.c.

Referenced by ifoOpen(), and vm_reset().

void ifoFree_TT_SRPT ( ifo_handle_t ifofile  ) 

Definition at line 877 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 889 of file ifo_read.c.

Referenced by ifoOpen(), and ifoOpenNewVTSI().

void ifoFree_VTS_PTT_SRPT ( ifo_handle_t ifofile  ) 

Definition at line 1013 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 1029 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 1157 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 1173 of file ifo_read.c.

Referenced by ifoOpen().

void ifoFree_VTS_TMAPT ( ifo_handle_t ifofile  ) 

Definition at line 1292 of file ifo_read.c.

Referenced by 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 1310 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 1335 of file ifo_read.c.

Referenced by ifoOpen().

static void ifoFree_C_ADT_internal ( c_adt_t *  c_adt  )  [static]

Definition at line 1422 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 1429 of file ifo_read.c.

Referenced by ifoClose().

void ifoFree_TITLE_C_ADT ( ifo_handle_t ifofile  ) 

Definition at line 1437 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 1445 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 1469 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 1538 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 1545 of file ifo_read.c.

Referenced by ifoClose().

void ifoFree_TITLE_VOBU_ADMAP ( ifo_handle_t ifofile  ) 

Definition at line 1553 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 1561 of file ifo_read.c.

Referenced by ifoOpen(), and ifoOpenNewVTSI().

void ifoFree_PGCIT ( ifo_handle_t ifofile  ) 

Definition at line 1668 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 1680 of file ifo_read.c.

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

void ifoFree_PGCI_UT ( ifo_handle_t ifofile  ) 

Definition at line 1808 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 1876 of file ifo_read.c.

Referenced by ifoOpen(), and vm_reset().

void ifoFree_VTS_ATRT ( ifo_handle_t ifofile  ) 

Definition at line 1964 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 1977 of file ifo_read.c.

Referenced by ifoOpen().

void ifoFree_TXTDT_MGI ( ifo_handle_t ifofile  ) 

Definition at line 2011 of file ifo_read.c.

Referenced by ifoClose().


Variable Documentation

const uint8_t my_friendly_zeros[2048] [static]

Definition at line 53 of file ifo_read.c.

Referenced by ifoRead_TT_SRPT().


Generated on Sat Dec 18 05:15:53 2010 for MythTV by  doxygen 1.5.5