Mercurial > libdvdnav.hg
annotate dvd_types.h @ 389:d3c273ced49c src
Use consistent license headers everywhere: Fix wrong FSF address.
| author | diego |
|---|---|
| date | Sun, 14 Sep 2008 15:40:51 +0000 |
| parents | 90ca650854e0 |
| children | ef8c0e834a14 |
| 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. | |
| 388 | 6 * |
| 0 | 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. | |
| 388 | 11 * |
| 0 | 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. | |
| 388 | 16 * |
|
389
d3c273ced49c
Use consistent license headers everywhere: Fix wrong FSF address.
diego
parents:
388
diff
changeset
|
17 * You should have received a copy of the GNU General Public License along |
|
d3c273ced49c
Use consistent license headers everywhere: Fix wrong FSF address.
diego
parents:
388
diff
changeset
|
18 * with libdvdnav; if not, write to the Free Software Foundation, Inc., |
|
d3c273ced49c
Use consistent license headers everywhere: Fix wrong FSF address.
diego
parents:
388
diff
changeset
|
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| 0 | 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 | |
| 165 | 32 /* |
| 33 * DVD Menu ID | |
| 34 * (see dvdnav_menu_call()) | |
| 0 | 35 */ |
| 36 typedef enum { | |
| 166 | 37 /* When used in VTS domain, DVD_MENU_Escape behaves like DVD_MENU_Root, |
| 165 | 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 { | |
| 388 | 54 uint32_t palette; /* The CLUT entries for the highlight palette |
| 165 | 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 */ | |
| 0 | 75 } DVDDomain_t; |
| 76 | |
| 165 | 77 /* User operation permissions */ |
| 0 | 78 typedef enum { |
| 388 | 79 UOP_FLAG_TitleOrTimePlay = 0x00000001, |
| 80 UOP_FLAG_ChapterSearchOrPlay = 0x00000002, | |
| 81 UOP_FLAG_TitlePlay = 0x00000004, | |
| 82 UOP_FLAG_Stop = 0x00000008, | |
| 0 | 83 UOP_FLAG_GoUp = 0x00000010, |
| 388 | 84 UOP_FLAG_TimeOrChapterSearch = 0x00000020, |
| 85 UOP_FLAG_PrevOrTopPGSearch = 0x00000040, | |
| 86 UOP_FLAG_NextPGSearch = 0x00000080, | |
| 87 UOP_FLAG_ForwardScan = 0x00000100, | |
| 0 | 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, | |
| 388 | 103 UOP_FLAG_VideoPresModeChange = 0x01000000 |
| 0 | 104 } DVDUOP_t; |
| 105 | |
| 165 | 106 /* Parental Level */ |
| 0 | 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 | |
| 165 | 119 /* Language ID (ISO-639 language code) */ |
| 0 | 120 typedef uint16_t DVDLangID_t; |
| 121 | |
| 165 | 122 /* Country ID (ISO-3166 country code) */ |
| 0 | 123 typedef uint16_t DVDCountryID_t; |
| 124 | |
| 165 | 125 /* Register */ |
| 0 | 126 typedef uint16_t DVDRegister_t; |
| 127 typedef enum { | |
| 128 DVDFalse = 0, | |
| 129 DVDTrue = 1 | |
| 388 | 130 } DVDBool_t; |
| 0 | 131 typedef DVDRegister_t DVDGPRMArray_t[16]; |
| 132 typedef DVDRegister_t DVDSPRMArray_t[24]; | |
| 133 | |
| 165 | 134 /* Navigation */ |
| 0 | 135 typedef int DVDStream_t; |
| 165 | 136 typedef int DVDPTT_t; |
| 137 typedef int DVDTitle_t; | |
| 0 | 138 |
| 165 | 139 /* Angle number (1-9 or default?) */ |
| 0 | 140 typedef int DVDAngle_t; |
| 141 | |
| 165 | 142 /* Timecode */ |
| 0 | 143 typedef struct { |
| 144 uint8_t Hours; | |
| 145 uint8_t Minutes; | |
| 146 uint8_t Seconds; | |
| 147 uint8_t Frames; | |
| 148 } DVDTimecode_t; | |
| 149 | |
| 165 | 150 /* Subpicture stream number (0-31,62,63) */ |
| 388 | 151 typedef int DVDSubpictureStream_t; |
| 0 | 152 |
| 165 | 153 /* Audio stream number (0-7, 15(none)) */ |
| 388 | 154 typedef int DVDAudioStream_t; |
| 0 | 155 |
| 165 | 156 /* The audio application mode */ |
| 0 | 157 typedef enum { |
| 165 | 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 | |
| 0 | 162 } DVDAudioAppMode_t; |
| 163 | |
| 165 | 164 /* The audio format */ |
| 0 | 165 typedef enum { |
| 165 | 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 | |
| 0 | 175 } DVDAudioFormat_t; |
| 176 | |
| 165 | 177 /* Audio language extension */ |
| 0 | 178 typedef enum { |
| 165 | 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 | |
| 0 | 184 } DVDAudioLangExt_t; |
| 185 | |
| 165 | 186 /* Subpicture language extension */ |
| 0 | 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, | |
| 388 | 199 } DVDSubpictureLangExt_t; |
| 0 | 200 |
| 165 | 201 /* Karaoke Downmix mode */ |
| 0 | 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 | |
| 165 | 220 /* Display mode */ |
| 0 | 221 typedef enum { |
| 222 DVD_DISPLAY_MODE_ContentDefault = 0, | |
| 223 DVD_DISPLAY_MODE_16x9 = 1, | |
| 224 DVD_DISPLAY_MODE_4x3PanScan = 2, | |
| 388 | 225 DVD_DISPLAY_MODE_4x3Letterboxed = 3 |
| 0 | 226 } DVDDisplayMode_t; |
| 227 | |
| 165 | 228 /* Audio attributes */ |
| 0 | 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; | |
| 165 | 239 typedef int DVDAudioSampleFreq_t; |
| 240 typedef int DVDAudioSampleQuant_t; | |
| 241 typedef int DVDChannelNumber_t; | |
| 0 | 242 |
| 165 | 243 /* Subpicture attributes */ |
| 0 | 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 | |
| 165 | 261 /* Video attributes */ |
| 0 | 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; | |
| 165 | 274 typedef int DVDVideoCompression_t; |
| 0 | 275 |
| 165 | 276 #endif |
|
22
3c1df0cb3aee
Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents:
0
diff
changeset
|
277 |
| 0 | 278 #endif /* DVD_H_INCLUDED */ |
