~ubuntu-branches/ubuntu/saucy/libdvdread/saucy

« back to all changes in this revision

Viewing changes to src/dvdread/ifo_read.h

  • Committer: Package Import Robot
  • Author(s): Bryce Harrington
  • Date: 2011-11-28 17:12:51 UTC
  • mfrom: (1.1.4) (3.2.10 sid)
  • Revision ID: package-import@ubuntu.com-20111128171251-fxbi0nd6rrz3lsfb
Tags: 4.2.0-1ubuntu1
* Merge from debian testing.  Remaining changes:
  - Re-add missing install-css.sh. Update the script with patch by Gene Cumm
    for dynamic version calculation.
  - debian/control: add Suggests for install-css.sh on wget, debhelper, etc.
  - debian/rules: install install-css.sh, leave perms executable.
  - 100-quell-vts-tmapt-warning.patch - Don't recommend sending bug
    reports when VTS_TMAPT is missing
  - 102-reorder-linkage.patch - Fix link order for shared library loading.
* Drop 101-fix-msb-unicode.patch; fixed upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2000, 2001, 2002 Björn Englund <d4bjorn@dtek.chalmers.se>,
 
3
 *                                Håkan Hjort <d95hjort@dtek.chalmers.se>
 
4
 *
 
5
 * This file is part of libdvdread.
 
6
 *
 
7
 * libdvdread is free software; you can redistribute it and/or modify
 
8
 * it under the terms of the GNU General Public License as published by
 
9
 * the Free Software Foundation; either version 2 of the License, or
 
10
 * (at your option) any later version.
 
11
 *
 
12
 * libdvdread is distributed in the hope that it will be useful,
 
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
 * GNU General Public License for more details.
 
16
 *
 
17
 * You should have received a copy of the GNU General Public License along
 
18
 * with libdvdread; if not, write to the Free Software Foundation, Inc.,
 
19
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
20
 */
 
21
 
 
22
#ifndef LIBDVDREAD_IFO_READ_H
 
23
#define LIBDVDREAD_IFO_READ_H
 
24
 
 
25
#include "ifo_types.h"
 
26
#include "dvdread/dvd_reader.h"
 
27
 
 
28
#ifdef __cplusplus
 
29
extern "C" {
 
30
#endif
 
31
 
 
32
/**
 
33
 * handle = ifoOpen(dvd, title);
 
34
 *
 
35
 * Opens an IFO and reads in all the data for the IFO file corresponding to the
 
36
 * given title.  If title 0 is given, the video manager IFO file is read.
 
37
 * Returns a handle to a completely parsed structure.
 
38
 */
 
39
ifo_handle_t *ifoOpen(dvd_reader_t *, int );
 
40
 
 
41
/**
 
42
 * handle = ifoOpenVMGI(dvd);
 
43
 *
 
44
 * Opens an IFO and reads in _only_ the vmgi_mat data.  This call can be used
 
45
 * together with the calls below to read in each segment of the IFO file on
 
46
 * demand.
 
47
 */
 
48
ifo_handle_t *ifoOpenVMGI(dvd_reader_t *);
 
49
 
 
50
/**
 
51
 * handle = ifoOpenVTSI(dvd, title);
 
52
 *
 
53
 * Opens an IFO and reads in _only_ the vtsi_mat data.  This call can be used
 
54
 * together with the calls below to read in each segment of the IFO file on
 
55
 * demand.
 
56
 */
 
57
ifo_handle_t *ifoOpenVTSI(dvd_reader_t *, int);
 
58
 
 
59
/**
 
60
 * ifoClose(ifofile);
 
61
 * Cleans up the IFO information.  This will free all data allocated for the
 
62
 * substructures.
 
63
 */
 
64
void ifoClose(ifo_handle_t *);
 
65
 
 
66
/**
 
67
 * The following functions are for reading only part of the VMGI/VTSI files.
 
68
 * Returns 1 if the data was successfully read and 0 on error.
 
69
 */
 
70
 
 
71
/**
 
72
 * okay = ifoRead_PLT_MAIT(ifofile);
 
73
 *
 
74
 * Read in the Parental Management Information table, filling the
 
75
 * ifofile->ptl_mait structure and its substructures.  This data is only
 
76
 * located in the video manager information file.  This fills the
 
77
 * ifofile->ptl_mait structure and all its substructures.
 
78
 */
 
79
int ifoRead_PTL_MAIT(ifo_handle_t *);
 
80
 
 
81
/**
 
82
 * okay = ifoRead_VTS_ATRT(ifofile);
 
83
 *
 
84
 * Read in the attribute table for the main menu vob, filling the
 
85
 * ifofile->vts_atrt structure and its substructures.  Only located in the
 
86
 * video manager information file.  This fills in the ifofile->vts_atrt
 
87
 * structure and all its substructures.
 
88
 */
 
89
int ifoRead_VTS_ATRT(ifo_handle_t *);
 
90
 
 
91
/**
 
92
 * okay = ifoRead_TT_SRPT(ifofile);
 
93
 *
 
94
 * Reads the title info for the main menu, filling the ifofile->tt_srpt
 
95
 * structure and its substructures.  This data is only located in the video
 
96
 * manager information file.  This structure is mandatory in the IFO file.
 
97
 */
 
98
int ifoRead_TT_SRPT(ifo_handle_t *);
 
99
 
 
100
/**
 
101
 * okay = ifoRead_VTS_PTT_SRPT(ifofile);
 
102
 *
 
103
 * Reads in the part of title search pointer table, filling the
 
104
 * ifofile->vts_ptt_srpt structure and its substructures.  This data is only
 
105
 * located in the video title set information file.  This structure is
 
106
 * mandatory, and must be included in the VTSI file.
 
107
 */
 
108
int ifoRead_VTS_PTT_SRPT(ifo_handle_t *);
 
109
 
 
110
/**
 
111
 * okay = ifoRead_FP_PGC(ifofile);
 
112
 *
 
113
 * Reads in the first play program chain data, filling the
 
114
 * ifofile->first_play_pgc structure.  This data is only located in the video
 
115
 * manager information file (VMGI).  This structure is optional.
 
116
 */
 
117
int ifoRead_FP_PGC(ifo_handle_t *);
 
118
 
 
119
/**
 
120
 * okay = ifoRead_PGCIT(ifofile);
 
121
 *
 
122
 * Reads in the program chain information table for the video title set.  Fills
 
123
 * in the ifofile->vts_pgcit structure and its substructures, which includes
 
124
 * the data for each program chain in the set.  This data is only located in
 
125
 * the video title set information file.  This structure is mandatory, and must
 
126
 * be included in the VTSI file.
 
127
 */
 
128
int ifoRead_PGCIT(ifo_handle_t *);
 
129
 
 
130
/**
 
131
 * okay = ifoRead_PGCI_UT(ifofile);
 
132
 *
 
133
 * Reads in the menu PGCI unit table for the menu VOB.  For the video manager,
 
134
 * this corresponds to the VIDEO_TS.VOB file, and for each title set, this
 
135
 * corresponds to the VTS_XX_0.VOB file.  This data is located in both the
 
136
 * video manager and video title set information files.  For VMGI files, this
 
137
 * fills the ifofile->vmgi_pgci_ut structure and all its substructures.  For
 
138
 * VTSI files, this fills the ifofile->vtsm_pgci_ut structure.
 
139
 */
 
140
int ifoRead_PGCI_UT(ifo_handle_t *);
 
141
 
 
142
/**
 
143
 * okay = ifoRead_VTS_TMAPT(ifofile);
 
144
 *
 
145
 * Reads in the VTS Time Map Table, this data is only located in the video
 
146
 * title set information file.  This fills the ifofile->vts_tmapt structure
 
147
 * and all its substructures.  When pressent enables VOBU level time-based
 
148
 * seeking for One_Sequential_PGC_Titles.
 
149
 */
 
150
int ifoRead_VTS_TMAPT(ifo_handle_t *);
 
151
 
 
152
/**
 
153
 * okay = ifoRead_C_ADT(ifofile);
 
154
 *
 
155
 * Reads in the cell address table for the menu VOB.  For the video manager,
 
156
 * this corresponds to the VIDEO_TS.VOB file, and for each title set, this
 
157
 * corresponds to the VTS_XX_0.VOB file.  This data is located in both the
 
158
 * video manager and video title set information files.  For VMGI files, this
 
159
 * fills the ifofile->vmgm_c_adt structure and all its substructures.  For VTSI
 
160
 * files, this fills the ifofile->vtsm_c_adt structure.
 
161
 */
 
162
int ifoRead_C_ADT(ifo_handle_t *);
 
163
 
 
164
/**
 
165
 * okay = ifoRead_TITLE_C_ADT(ifofile);
 
166
 *
 
167
 * Reads in the cell address table for the video title set corresponding to
 
168
 * this IFO file.  This data is only located in the video title set information
 
169
 * file.  This structure is mandatory, and must be included in the VTSI file.
 
170
 * This call fills the ifofile->vts_c_adt structure and its substructures.
 
171
 */
 
172
int ifoRead_TITLE_C_ADT(ifo_handle_t *);
 
173
 
 
174
/**
 
175
 * okay = ifoRead_VOBU_ADMAP(ifofile);
 
176
 *
 
177
 * Reads in the VOBU address map for the menu VOB.  For the video manager, this
 
178
 * corresponds to the VIDEO_TS.VOB file, and for each title set, this
 
179
 * corresponds to the VTS_XX_0.VOB file.  This data is located in both the
 
180
 * video manager and video title set information files.  For VMGI files, this
 
181
 * fills the ifofile->vmgm_vobu_admap structure and all its substructures.  For
 
182
 * VTSI files, this fills the ifofile->vtsm_vobu_admap structure.
 
183
 */
 
184
int ifoRead_VOBU_ADMAP(ifo_handle_t *);
 
185
 
 
186
/**
 
187
 * okay = ifoRead_TITLE_VOBU_ADMAP(ifofile);
 
188
 *
 
189
 * Reads in the VOBU address map for the associated video title set.  This data
 
190
 * is only located in the video title set information file.  This structure is
 
191
 * mandatory, and must be included in the VTSI file.  Fills the
 
192
 * ifofile->vts_vobu_admap structure and its substructures.
 
193
 */
 
194
int ifoRead_TITLE_VOBU_ADMAP(ifo_handle_t *);
 
195
 
 
196
/**
 
197
 * okay = ifoRead_TXTDT_MGI(ifofile);
 
198
 *
 
199
 * Reads in the text data strings for the DVD.  Fills the ifofile->txtdt_mgi
 
200
 * structure and all its substructures.  This data is only located in the video
 
201
 * manager information file.  This structure is mandatory, and must be included
 
202
 * in the VMGI file.
 
203
 */
 
204
int ifoRead_TXTDT_MGI(ifo_handle_t *);
 
205
 
 
206
/**
 
207
 * The following functions are used for freeing parsed sections of the
 
208
 * ifo_handle_t structure and the allocated substructures.  The free calls
 
209
 * below are safe:  they will not mind if you attempt to free part of an IFO
 
210
 * file which was not read in or which does not exist.
 
211
 */
 
212
void ifoFree_PTL_MAIT(ifo_handle_t *);
 
213
void ifoFree_VTS_ATRT(ifo_handle_t *);
 
214
void ifoFree_TT_SRPT(ifo_handle_t *);
 
215
void ifoFree_VTS_PTT_SRPT(ifo_handle_t *);
 
216
void ifoFree_FP_PGC(ifo_handle_t *);
 
217
void ifoFree_PGCIT(ifo_handle_t *);
 
218
void ifoFree_PGCI_UT(ifo_handle_t *);
 
219
void ifoFree_VTS_TMAPT(ifo_handle_t *);
 
220
void ifoFree_C_ADT(ifo_handle_t *);
 
221
void ifoFree_TITLE_C_ADT(ifo_handle_t *);
 
222
void ifoFree_VOBU_ADMAP(ifo_handle_t *);
 
223
void ifoFree_TITLE_VOBU_ADMAP(ifo_handle_t *);
 
224
void ifoFree_TXTDT_MGI(ifo_handle_t *);
 
225
 
 
226
#ifdef __cplusplus
 
227
};
 
228
#endif
 
229
#endif /* LIBDVDREAD_IFO_READ_H */