Mercurial > libdvdnav.hg
annotate dvd_types.h @ 133:d09a81cf65ce src
determine correct PG and PTT numbers when seeking across PG boundaries
author | mroi |
---|---|
date | Mon, 24 Mar 2003 16:42:59 +0000 |
parents | df9712507b30 |
children | 0fd70a257b44 |
rev | line source |
---|---|
0 | 1 /* |
2 * Copyright (C) 2000, 2001 Björn Englund, Håkan Hjort | |
3 * | |
4 * This file is part of libdvdnav, a DVD navigation library. It is a modified | |
5 * file originally part of the Ogle DVD player project. | |
6 * | |
7 * libdvdnav 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 * libdvdnav 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 | |
18 * along with this program; if not, write to the Free Software | |
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA | |
20 * | |
21 * $Id$ | |
22 * | |
23 */ | |
24 | |
25 #ifndef DVD_H_INCLUDED | |
26 #define DVD_H_INCLUDED | |
27 | |
28 #include <inttypes.h> | |
29 | |
30 /** | |
43
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
31 * \file dvd_types.h |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
32 * |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
33 * Various useful structs and enums for DVDs. |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
34 */ |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
35 |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
36 /** |
0 | 37 * DVD Domain |
38 */ | |
39 typedef enum { | |
40 DVD_DOMAIN_FirstPlay, /**< First Play Domain */ | |
41 DVD_DOMAIN_VMG, /**< Video Manager Domain */ | |
42 DVD_DOMAIN_VTSMenu, /**< Video Title Set Menu Domain */ | |
43 DVD_DOMAIN_VTSTitle, /**< Video Title Set Domain */ | |
44 DVD_DOMAIN_Stop /**< Stop Domain */ | |
45 } DVDDomain_t; | |
46 | |
47 /** | |
48 * DVD Menu | |
49 */ | |
50 typedef enum { | |
51 DVD_MENU_Title = 2, /**< TBD */ | |
52 DVD_MENU_Root = 3, /**< TBD */ | |
53 DVD_MENU_Subpicture = 4, /**< TBD */ | |
54 DVD_MENU_Audio = 5, /**< TBD */ | |
55 DVD_MENU_Angle = 6, /**< TBD */ | |
56 DVD_MENU_Part = 7 /**< TBD */ | |
57 } DVDMenuID_t; | |
58 | |
59 /** | |
60 * User operations | |
61 */ | |
62 typedef enum { | |
63 UOP_FLAG_TitleOrTimePlay = 0x00000001, | |
64 UOP_FLAG_ChapterSearchOrPlay = 0x00000002, | |
65 UOP_FLAG_TitlePlay = 0x00000004, | |
66 UOP_FLAG_Stop = 0x00000008, | |
67 UOP_FLAG_GoUp = 0x00000010, | |
68 UOP_FLAG_TimeOrChapterSearch = 0x00000020, | |
69 UOP_FLAG_PrevOrTopPGSearch = 0x00000040, | |
70 UOP_FLAG_NextPGSearch = 0x00000080, | |
71 UOP_FLAG_ForwardScan = 0x00000100, | |
72 UOP_FLAG_BackwardScan = 0x00000200, | |
73 UOP_FLAG_TitleMenuCall = 0x00000400, | |
74 UOP_FLAG_RootMenuCall = 0x00000800, | |
75 UOP_FLAG_SubPicMenuCall = 0x00001000, | |
76 UOP_FLAG_AudioMenuCall = 0x00002000, | |
77 UOP_FLAG_AngleMenuCall = 0x00004000, | |
78 UOP_FLAG_ChapterMenuCall = 0x00008000, | |
79 UOP_FLAG_Resume = 0x00010000, | |
80 UOP_FLAG_ButtonSelectOrActivate = 0x00020000, | |
81 UOP_FLAG_StillOff = 0x00040000, | |
82 UOP_FLAG_PauseOn = 0x00080000, | |
83 UOP_FLAG_AudioStreamChange = 0x00100000, | |
84 UOP_FLAG_SubPicStreamChange = 0x00200000, | |
85 UOP_FLAG_AngleChange = 0x00400000, | |
86 UOP_FLAG_KaraokeAudioPresModeChange = 0x00800000, | |
87 UOP_FLAG_VideoPresModeChange = 0x01000000 | |
88 } DVDUOP_t; | |
89 | |
90 | |
91 /** | |
92 * Parental Level | |
93 */ | |
94 typedef enum { | |
95 DVD_PARENTAL_LEVEL_1 = 1, | |
96 DVD_PARENTAL_LEVEL_2 = 2, | |
97 DVD_PARENTAL_LEVEL_3 = 3, | |
98 DVD_PARENTAL_LEVEL_4 = 4, | |
99 DVD_PARENTAL_LEVEL_5 = 5, | |
100 DVD_PARENTAL_LEVEL_6 = 6, | |
101 DVD_PARENTAL_LEVEL_7 = 7, | |
102 DVD_PARENTAL_LEVEL_8 = 8, | |
103 DVD_PARENTAL_LEVEL_None = 15 | |
104 } DVDParentalLevel_t; | |
105 | |
106 /** | |
107 * Language ID (ISO-639 language code) | |
108 */ | |
109 typedef uint16_t DVDLangID_t; | |
110 | |
111 /** | |
112 * Country ID (ISO-3166 country code) | |
113 */ | |
114 typedef uint16_t DVDCountryID_t; | |
115 | |
116 /** | |
117 * Register | |
118 */ | |
119 typedef uint16_t DVDRegister_t; | |
120 | |
121 typedef enum { | |
122 DVDFalse = 0, | |
123 DVDTrue = 1 | |
124 } DVDBool_t; | |
125 | |
126 typedef DVDRegister_t DVDGPRMArray_t[16]; | |
127 typedef DVDRegister_t DVDSPRMArray_t[24]; | |
128 | |
129 typedef int DVDStream_t; | |
130 | |
131 /** | |
132 * Angle number (1-9 or default?) | |
133 */ | |
134 typedef int DVDAngle_t; | |
135 | |
136 typedef int DVDPTT_t; | |
137 typedef int DVDTitle_t; | |
138 typedef struct { | |
139 uint8_t Hours; | |
140 uint8_t Minutes; | |
141 uint8_t Seconds; | |
142 uint8_t Frames; | |
143 } DVDTimecode_t; | |
144 | |
145 /** | |
146 * Subpicture stream number (0-31,62,63) | |
147 */ | |
148 typedef int DVDSubpictureStream_t; | |
149 | |
150 /** | |
151 * Audio stream number (0-7, 15(none)) | |
152 */ | |
153 typedef int DVDAudioStream_t; | |
154 | |
155 | |
156 /** | |
157 * The audio application mode | |
158 */ | |
159 typedef enum { | |
160 DVD_AUDIO_APP_MODE_None = 0, /**< app mode none */ | |
161 DVD_AUDIO_APP_MODE_Karaoke = 1, /**< app mode karaoke */ | |
162 DVD_AUDIO_APP_MODE_Surround = 2, /**< app mode surround */ | |
163 DVD_AUDIO_APP_MODE_Other = 3 /**< app mode other */ | |
164 } DVDAudioAppMode_t; | |
165 | |
166 /** | |
167 * The audio format | |
168 */ | |
169 typedef enum { | |
170 DVD_AUDIO_FORMAT_AC3 = 0, /**< Dolby AC-3 */ | |
171 DVD_AUDIO_FORMAT_MPEG1 = 1, /**< MPEG-1 */ | |
172 DVD_AUDIO_FORMAT_MPEG1_DRC = 2, /**< MPEG-1 with dynamic range control */ | |
173 DVD_AUDIO_FORMAT_MPEG2 = 3, /**< MPEG-2 */ | |
174 DVD_AUDIO_FORMAT_MPEG2_DRC = 4, /**< MPEG-2 with dynamic range control */ | |
175 DVD_AUDIO_FORMAT_LPCM = 5, /**< Linear Pulse Code Modulation */ | |
176 DVD_AUDIO_FORMAT_DTS = 6, /**< Digital Theater Systems */ | |
177 DVD_AUDIO_FORMAT_SDDS = 7, /**< Sony Dynamic Digital Sound */ | |
178 DVD_AUDIO_FORMAT_Other = 8 /**< Other format*/ | |
179 } DVDAudioFormat_t; | |
180 | |
181 /** | |
182 * Audio language extension | |
183 */ | |
184 typedef enum { | |
185 DVD_AUDIO_LANG_EXT_NotSpecified = 0, /**< TBD */ | |
186 DVD_AUDIO_LANG_EXT_NormalCaptions = 1, /**< TBD */ | |
187 DVD_AUDIO_LANG_EXT_VisuallyImpaired = 2, /**< TBD */ | |
188 DVD_AUDIO_LANG_EXT_DirectorsComments1 = 3, /**< TBD */ | |
189 DVD_AUDIO_LANG_EXT_DirectorsComments2 = 4 /**< TBD */ | |
190 } DVDAudioLangExt_t; | |
191 | |
192 /** | |
193 * Subpicture language extension | |
194 */ | |
195 typedef enum { | |
196 DVD_SUBPICTURE_LANG_EXT_NotSpecified = 0, | |
197 DVD_SUBPICTURE_LANG_EXT_NormalCaptions = 1, | |
198 DVD_SUBPICTURE_LANG_EXT_BigCaptions = 2, | |
199 DVD_SUBPICTURE_LANG_EXT_ChildrensCaptions = 3, | |
200 DVD_SUBPICTURE_LANG_EXT_NormalCC = 5, | |
201 DVD_SUBPICTURE_LANG_EXT_BigCC = 6, | |
202 DVD_SUBPICTURE_LANG_EXT_ChildrensCC = 7, | |
203 DVD_SUBPICTURE_LANG_EXT_Forced = 9, | |
204 DVD_SUBPICTURE_LANG_EXT_NormalDirectorsComments = 13, | |
205 DVD_SUBPICTURE_LANG_EXT_BigDirectorsComments = 14, | |
206 DVD_SUBPICTURE_LANG_EXT_ChildrensDirectorsComments = 15, | |
207 } DVDSubpictureLangExt_t; | |
208 | |
209 /** | |
210 * Karaoke Downmix mode | |
211 */ | |
212 typedef enum { | |
213 DVD_KARAOKE_DOWNMIX_0to0 = 0x0001, | |
214 DVD_KARAOKE_DOWNMIX_1to0 = 0x0002, | |
215 DVD_KARAOKE_DOWNMIX_2to0 = 0x0004, | |
216 DVD_KARAOKE_DOWNMIX_3to0 = 0x0008, | |
217 DVD_KARAOKE_DOWNMIX_4to0 = 0x0010, | |
218 DVD_KARAOKE_DOWNMIX_Lto0 = 0x0020, | |
219 DVD_KARAOKE_DOWNMIX_Rto0 = 0x0040, | |
220 DVD_KARAOKE_DOWNMIX_0to1 = 0x0100, | |
221 DVD_KARAOKE_DOWNMIX_1to1 = 0x0200, | |
222 DVD_KARAOKE_DOWNMIX_2to1 = 0x0400, | |
223 DVD_KARAOKE_DOWNMIX_3to1 = 0x0800, | |
224 DVD_KARAOKE_DOWNMIX_4to1 = 0x1000, | |
225 DVD_KARAOKE_DOWNMIX_Lto1 = 0x2000, | |
226 DVD_KARAOKE_DOWNMIX_Rto1 = 0x4000 | |
227 } DVDKaraokeDownmix_t; | |
228 | |
229 typedef int DVDKaraokeDownmixMask_t; | |
230 | |
231 typedef enum { | |
232 DVD_DISPLAY_MODE_ContentDefault = 0, | |
233 DVD_DISPLAY_MODE_16x9 = 1, | |
234 DVD_DISPLAY_MODE_4x3PanScan = 2, | |
235 DVD_DISPLAY_MODE_4x3Letterboxed = 3 | |
236 } DVDDisplayMode_t; | |
237 | |
238 typedef int DVDAudioSampleFreq_t; /**< TBD */ | |
239 typedef int DVDAudioSampleQuant_t; /**< TBD */ | |
240 typedef int DVDChannelNumber_t; /**< TBD */ | |
241 | |
242 | |
243 typedef struct { | |
244 DVDAudioAppMode_t AppMode; | |
245 DVDAudioFormat_t AudioFormat; | |
246 DVDLangID_t Language; | |
247 DVDAudioLangExt_t LanguageExtension; | |
248 DVDBool_t HasMultichannelInfo; | |
249 DVDAudioSampleFreq_t SampleFrequency; | |
250 DVDAudioSampleQuant_t SampleQuantization; | |
251 DVDChannelNumber_t NumberOfChannels; | |
252 } DVDAudioAttributes_t; | |
253 | |
254 typedef enum { | |
255 DVD_SUBPICTURE_TYPE_NotSpecified = 0, | |
256 DVD_SUBPICTURE_TYPE_Language = 1, | |
257 DVD_SUBPICTURE_TYPE_Other = 2 | |
258 } DVDSubpictureType_t; | |
259 | |
260 typedef enum { | |
261 DVD_SUBPICTURE_CODING_RunLength = 0, | |
262 DVD_SUBPICTURE_CODING_Extended = 1, | |
263 DVD_SUBPICTURE_CODING_Other = 2 | |
264 } DVDSubpictureCoding_t; | |
265 | |
266 typedef struct { | |
267 DVDSubpictureType_t Type; | |
268 DVDSubpictureCoding_t CodingMode; | |
269 DVDLangID_t Language; | |
270 DVDSubpictureLangExt_t LanguageExtension; | |
271 } DVDSubpictureAttributes_t; | |
272 | |
273 typedef int DVDVideoCompression_t; /**< TBD */ | |
274 | |
275 typedef struct { | |
276 DVDBool_t PanscanPermitted; | |
277 DVDBool_t LetterboxPermitted; | |
278 int AspectX; | |
279 int AspectY; | |
280 int FrameRate; | |
281 int FrameHeight; | |
282 DVDVideoCompression_t Compression; | |
283 DVDBool_t Line21Field1InGop; | |
284 DVDBool_t Line21Field2InGop; | |
285 int more_to_come; | |
286 } DVDVideoAttributes_t; | |
287 | |
43
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
288 /** |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
289 * Atructure containing info on highlight areas. |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
290 */ |
22
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
0
diff
changeset
|
291 typedef struct { |
43
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
292 uint32_t palette; /*!< The CLUT entries for the highlight palette |
22
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
0
diff
changeset
|
293 (4-bits per entry -> 4 entries) */ |
43
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
294 uint16_t sx,sy,ex,ey; /*!< The start/end x,y positions */ |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
295 uint32_t pts; /*!< Highlight PTS to match with SPU */ |
0ba15bf3dc25
Biiiiiiig change to let doxygen generate some docs for the library. Note that I'm in no way sure that the autoconf stuff plays nice.
richwareham
parents:
22
diff
changeset
|
296 uint32_t buttonN; /*!< Button number for the SPU decoder. */ |
22
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
0
diff
changeset
|
297 } dvdnav_highlight_area_t; |
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
0
diff
changeset
|
298 |
0 | 299 #endif /* DVD_H_INCLUDED */ |