comparison dvd_types.h @ 0:427b7da5cbdb src

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