Mercurial > libdvdnav.hg
annotate dvd_types.h @ 249:5d643668f1e3 src
I added this code myself a long time ago, but now I am quite convinced that
it is wrong: Why would we filter out SPU stream change events that switch
SPUs off? This breaks watching the trailer on the RC2 of "Girl, interrupted",
because you always get unwanted subtitles.
When I added this code, it fixed a problem with the RC2 of "Terminator", but
I cannot reproduce this problem any more. Back then, the menu highlights would
not show up, but they do now. I assume the problem really got fixed with proper
support for forced subtitles in xine, so this crappy workaround here can go
away.
After all, this way it is more symmetric to audio stream change events,
because these are not filtered.
author | mroi |
---|---|
date | Sun, 12 Sep 2004 15:12:43 +0000 |
parents | 3bfaec0c1288 |
children | 6fac6a613ea5 |
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 | |
165 | 25 /* |
26 * Various useful structs and enums for DVDs. | |
27 */ | |
28 | |
0 | 29 #ifndef DVD_H_INCLUDED |
30 #define DVD_H_INCLUDED | |
31 | |
32 #include <inttypes.h> | |
33 | |
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
|
34 |
165 | 35 /* |
36 * DVD Menu ID | |
37 * (see dvdnav_menu_call()) | |
0 | 38 */ |
39 typedef enum { | |
166 | 40 /* When used in VTS domain, DVD_MENU_Escape behaves like DVD_MENU_Root, |
165 | 41 * but from within a menu domain, DVD_MENU_Escape resumes playback. */ |
42 DVD_MENU_Escape = 0, | |
43 DVD_MENU_Title = 2, | |
44 DVD_MENU_Root = 3, | |
45 DVD_MENU_Subpicture = 4, | |
46 DVD_MENU_Audio = 5, | |
47 DVD_MENU_Angle = 6, | |
48 DVD_MENU_Part = 7 | |
49 } DVDMenuID_t; | |
50 | |
51 | |
52 /* | |
53 * Structure containing info on highlight areas | |
54 * (see dvdnav_get_highlight_area()) | |
55 */ | |
56 typedef struct { | |
57 uint32_t palette; /* The CLUT entries for the highlight palette | |
58 (4-bits per entry -> 4 entries) */ | |
59 uint16_t sx,sy,ex,ey; /* The start/end x,y positions */ | |
60 uint32_t pts; /* Highlight PTS to match with SPU */ | |
61 | |
62 /* button number for the SPU decoder/overlaying engine */ | |
63 uint32_t buttonN; | |
64 } dvdnav_highlight_area_t; | |
65 | |
66 | |
67 /* the following types are currently unused */ | |
68 | |
69 #if 0 | |
70 | |
71 /* Domain */ | |
72 typedef enum { | |
73 DVD_DOMAIN_FirstPlay, /* First Play Domain */ | |
74 DVD_DOMAIN_VMG, /* Video Manager Domain */ | |
75 DVD_DOMAIN_VTSMenu, /* Video Title Set Menu Domain */ | |
76 DVD_DOMAIN_VTSTitle, /* Video Title Set Domain */ | |
77 DVD_DOMAIN_Stop /* Stop Domain */ | |
0 | 78 } DVDDomain_t; |
79 | |
165 | 80 /* User operation permissions */ |
0 | 81 typedef enum { |
82 UOP_FLAG_TitleOrTimePlay = 0x00000001, | |
83 UOP_FLAG_ChapterSearchOrPlay = 0x00000002, | |
84 UOP_FLAG_TitlePlay = 0x00000004, | |
85 UOP_FLAG_Stop = 0x00000008, | |
86 UOP_FLAG_GoUp = 0x00000010, | |
87 UOP_FLAG_TimeOrChapterSearch = 0x00000020, | |
88 UOP_FLAG_PrevOrTopPGSearch = 0x00000040, | |
89 UOP_FLAG_NextPGSearch = 0x00000080, | |
90 UOP_FLAG_ForwardScan = 0x00000100, | |
91 UOP_FLAG_BackwardScan = 0x00000200, | |
92 UOP_FLAG_TitleMenuCall = 0x00000400, | |
93 UOP_FLAG_RootMenuCall = 0x00000800, | |
94 UOP_FLAG_SubPicMenuCall = 0x00001000, | |
95 UOP_FLAG_AudioMenuCall = 0x00002000, | |
96 UOP_FLAG_AngleMenuCall = 0x00004000, | |
97 UOP_FLAG_ChapterMenuCall = 0x00008000, | |
98 UOP_FLAG_Resume = 0x00010000, | |
99 UOP_FLAG_ButtonSelectOrActivate = 0x00020000, | |
100 UOP_FLAG_StillOff = 0x00040000, | |
101 UOP_FLAG_PauseOn = 0x00080000, | |
102 UOP_FLAG_AudioStreamChange = 0x00100000, | |
103 UOP_FLAG_SubPicStreamChange = 0x00200000, | |
104 UOP_FLAG_AngleChange = 0x00400000, | |
105 UOP_FLAG_KaraokeAudioPresModeChange = 0x00800000, | |
106 UOP_FLAG_VideoPresModeChange = 0x01000000 | |
107 } DVDUOP_t; | |
108 | |
165 | 109 /* Parental Level */ |
0 | 110 typedef enum { |
111 DVD_PARENTAL_LEVEL_1 = 1, | |
112 DVD_PARENTAL_LEVEL_2 = 2, | |
113 DVD_PARENTAL_LEVEL_3 = 3, | |
114 DVD_PARENTAL_LEVEL_4 = 4, | |
115 DVD_PARENTAL_LEVEL_5 = 5, | |
116 DVD_PARENTAL_LEVEL_6 = 6, | |
117 DVD_PARENTAL_LEVEL_7 = 7, | |
118 DVD_PARENTAL_LEVEL_8 = 8, | |
119 DVD_PARENTAL_LEVEL_None = 15 | |
120 } DVDParentalLevel_t; | |
121 | |
165 | 122 /* Language ID (ISO-639 language code) */ |
0 | 123 typedef uint16_t DVDLangID_t; |
124 | |
165 | 125 /* Country ID (ISO-3166 country code) */ |
0 | 126 typedef uint16_t DVDCountryID_t; |
127 | |
165 | 128 /* Register */ |
0 | 129 typedef uint16_t DVDRegister_t; |
130 typedef enum { | |
131 DVDFalse = 0, | |
132 DVDTrue = 1 | |
133 } DVDBool_t; | |
134 typedef DVDRegister_t DVDGPRMArray_t[16]; | |
135 typedef DVDRegister_t DVDSPRMArray_t[24]; | |
136 | |
165 | 137 /* Navigation */ |
0 | 138 typedef int DVDStream_t; |
165 | 139 typedef int DVDPTT_t; |
140 typedef int DVDTitle_t; | |
0 | 141 |
165 | 142 /* Angle number (1-9 or default?) */ |
0 | 143 typedef int DVDAngle_t; |
144 | |
165 | 145 /* Timecode */ |
0 | 146 typedef struct { |
147 uint8_t Hours; | |
148 uint8_t Minutes; | |
149 uint8_t Seconds; | |
150 uint8_t Frames; | |
151 } DVDTimecode_t; | |
152 | |
165 | 153 /* Subpicture stream number (0-31,62,63) */ |
0 | 154 typedef int DVDSubpictureStream_t; |
155 | |
165 | 156 /* Audio stream number (0-7, 15(none)) */ |
0 | 157 typedef int DVDAudioStream_t; |
158 | |
165 | 159 /* The audio application mode */ |
0 | 160 typedef enum { |
165 | 161 DVD_AUDIO_APP_MODE_None = 0, |
162 DVD_AUDIO_APP_MODE_Karaoke = 1, | |
163 DVD_AUDIO_APP_MODE_Surround = 2, | |
164 DVD_AUDIO_APP_MODE_Other = 3 | |
0 | 165 } DVDAudioAppMode_t; |
166 | |
165 | 167 /* The audio format */ |
0 | 168 typedef enum { |
165 | 169 DVD_AUDIO_FORMAT_AC3 = 0, |
170 DVD_AUDIO_FORMAT_MPEG1 = 1, | |
171 DVD_AUDIO_FORMAT_MPEG1_DRC = 2, | |
172 DVD_AUDIO_FORMAT_MPEG2 = 3, | |
173 DVD_AUDIO_FORMAT_MPEG2_DRC = 4, | |
174 DVD_AUDIO_FORMAT_LPCM = 5, | |
175 DVD_AUDIO_FORMAT_DTS = 6, | |
176 DVD_AUDIO_FORMAT_SDDS = 7, | |
177 DVD_AUDIO_FORMAT_Other = 8 | |
0 | 178 } DVDAudioFormat_t; |
179 | |
165 | 180 /* Audio language extension */ |
0 | 181 typedef enum { |
165 | 182 DVD_AUDIO_LANG_EXT_NotSpecified = 0, |
183 DVD_AUDIO_LANG_EXT_NormalCaptions = 1, | |
184 DVD_AUDIO_LANG_EXT_VisuallyImpaired = 2, | |
185 DVD_AUDIO_LANG_EXT_DirectorsComments1 = 3, | |
186 DVD_AUDIO_LANG_EXT_DirectorsComments2 = 4 | |
0 | 187 } DVDAudioLangExt_t; |
188 | |
165 | 189 /* Subpicture language extension */ |
0 | 190 typedef enum { |
191 DVD_SUBPICTURE_LANG_EXT_NotSpecified = 0, | |
192 DVD_SUBPICTURE_LANG_EXT_NormalCaptions = 1, | |
193 DVD_SUBPICTURE_LANG_EXT_BigCaptions = 2, | |
194 DVD_SUBPICTURE_LANG_EXT_ChildrensCaptions = 3, | |
195 DVD_SUBPICTURE_LANG_EXT_NormalCC = 5, | |
196 DVD_SUBPICTURE_LANG_EXT_BigCC = 6, | |
197 DVD_SUBPICTURE_LANG_EXT_ChildrensCC = 7, | |
198 DVD_SUBPICTURE_LANG_EXT_Forced = 9, | |
199 DVD_SUBPICTURE_LANG_EXT_NormalDirectorsComments = 13, | |
200 DVD_SUBPICTURE_LANG_EXT_BigDirectorsComments = 14, | |
201 DVD_SUBPICTURE_LANG_EXT_ChildrensDirectorsComments = 15, | |
202 } DVDSubpictureLangExt_t; | |
203 | |
165 | 204 /* Karaoke Downmix mode */ |
0 | 205 typedef enum { |
206 DVD_KARAOKE_DOWNMIX_0to0 = 0x0001, | |
207 DVD_KARAOKE_DOWNMIX_1to0 = 0x0002, | |
208 DVD_KARAOKE_DOWNMIX_2to0 = 0x0004, | |
209 DVD_KARAOKE_DOWNMIX_3to0 = 0x0008, | |
210 DVD_KARAOKE_DOWNMIX_4to0 = 0x0010, | |
211 DVD_KARAOKE_DOWNMIX_Lto0 = 0x0020, | |
212 DVD_KARAOKE_DOWNMIX_Rto0 = 0x0040, | |
213 DVD_KARAOKE_DOWNMIX_0to1 = 0x0100, | |
214 DVD_KARAOKE_DOWNMIX_1to1 = 0x0200, | |
215 DVD_KARAOKE_DOWNMIX_2to1 = 0x0400, | |
216 DVD_KARAOKE_DOWNMIX_3to1 = 0x0800, | |
217 DVD_KARAOKE_DOWNMIX_4to1 = 0x1000, | |
218 DVD_KARAOKE_DOWNMIX_Lto1 = 0x2000, | |
219 DVD_KARAOKE_DOWNMIX_Rto1 = 0x4000 | |
220 } DVDKaraokeDownmix_t; | |
221 typedef int DVDKaraokeDownmixMask_t; | |
222 | |
165 | 223 /* Display mode */ |
0 | 224 typedef enum { |
225 DVD_DISPLAY_MODE_ContentDefault = 0, | |
226 DVD_DISPLAY_MODE_16x9 = 1, | |
227 DVD_DISPLAY_MODE_4x3PanScan = 2, | |
228 DVD_DISPLAY_MODE_4x3Letterboxed = 3 | |
229 } DVDDisplayMode_t; | |
230 | |
165 | 231 /* Audio attributes */ |
0 | 232 typedef struct { |
233 DVDAudioAppMode_t AppMode; | |
234 DVDAudioFormat_t AudioFormat; | |
235 DVDLangID_t Language; | |
236 DVDAudioLangExt_t LanguageExtension; | |
237 DVDBool_t HasMultichannelInfo; | |
238 DVDAudioSampleFreq_t SampleFrequency; | |
239 DVDAudioSampleQuant_t SampleQuantization; | |
240 DVDChannelNumber_t NumberOfChannels; | |
241 } DVDAudioAttributes_t; | |
165 | 242 typedef int DVDAudioSampleFreq_t; |
243 typedef int DVDAudioSampleQuant_t; | |
244 typedef int DVDChannelNumber_t; | |
0 | 245 |
165 | 246 /* Subpicture attributes */ |
0 | 247 typedef enum { |
248 DVD_SUBPICTURE_TYPE_NotSpecified = 0, | |
249 DVD_SUBPICTURE_TYPE_Language = 1, | |
250 DVD_SUBPICTURE_TYPE_Other = 2 | |
251 } DVDSubpictureType_t; | |
252 typedef enum { | |
253 DVD_SUBPICTURE_CODING_RunLength = 0, | |
254 DVD_SUBPICTURE_CODING_Extended = 1, | |
255 DVD_SUBPICTURE_CODING_Other = 2 | |
256 } DVDSubpictureCoding_t; | |
257 typedef struct { | |
258 DVDSubpictureType_t Type; | |
259 DVDSubpictureCoding_t CodingMode; | |
260 DVDLangID_t Language; | |
261 DVDSubpictureLangExt_t LanguageExtension; | |
262 } DVDSubpictureAttributes_t; | |
263 | |
165 | 264 /* Video attributes */ |
0 | 265 typedef struct { |
266 DVDBool_t PanscanPermitted; | |
267 DVDBool_t LetterboxPermitted; | |
268 int AspectX; | |
269 int AspectY; | |
270 int FrameRate; | |
271 int FrameHeight; | |
272 DVDVideoCompression_t Compression; | |
273 DVDBool_t Line21Field1InGop; | |
274 DVDBool_t Line21Field2InGop; | |
275 int more_to_come; | |
276 } DVDVideoAttributes_t; | |
165 | 277 typedef int DVDVideoCompression_t; |
0 | 278 |
165 | 279 #endif |
22
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
0
diff
changeset
|
280 |
0 | 281 #endif /* DVD_H_INCLUDED */ |