| 1 |
#ifndef _STRMIF_H |
| 2 |
#define _STRMIF_H |
| 3 |
#if __GNUC__ >= 3 |
| 4 |
#pragma GCC system_header |
| 5 |
#endif |
| 6 |
|
| 7 |
#ifdef __cplusplus |
| 8 |
extern "C" { |
| 9 |
#endif |
| 10 |
|
| 11 |
/*--- DirectShow Reference - DirectShow Enumerated Types - TVAudioMode Enumeration */ |
| 12 |
#define TVAUDIO_MODE_MASK 0x000000FF |
| 13 |
#define TVAUDIO_PRESET_MASK 0x0000FF00 |
| 14 |
/*--- DirectShow Reference - DirectShow Data Types */ |
| 15 |
typedef LONGLONG REFERENCE_TIME; |
| 16 |
typedef double REFTIME; |
| 17 |
/*--- DirectShow Reference - Constants and GUIDs */ |
| 18 |
enum { |
| 19 |
MERIT_PREFERRED = 0x800000, |
| 20 |
MERIT_NORMAL = 0x600000, |
| 21 |
MERIT_UNLIKELY = 0x400000, |
| 22 |
MERIT_DO_NOT_USE = 0x200000, |
| 23 |
MERIT_SW_COMPRESSOR = 0x100000, |
| 24 |
MERIT_HW_COMPRESSOR = 0x100050 |
| 25 |
}; |
| 26 |
/*--- DirectShow Reference - DirectShow Enumerated Types */ |
| 27 |
typedef enum _AM_AUDIO_RENDERER_STAT_PARAM { |
| 28 |
AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1, |
| 29 |
AM_AUDREND_STAT_PARAM_SLAVE_MODE, |
| 30 |
AM_AUDREND_STAT_PARAM_SILENCE_DUR, |
| 31 |
AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR, |
| 32 |
AM_AUDREND_STAT_PARAM_DISCONTINUITIES, |
| 33 |
AM_AUDREND_STAT_PARAM_SLAVE_RATE, |
| 34 |
AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR, |
| 35 |
AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR, |
| 36 |
AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR, |
| 37 |
AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR, |
| 38 |
AM_AUDREND_STAT_PARAM_BUFFERFULLNESS, |
| 39 |
AM_AUDREND_STAT_PARAM_JITTER |
| 40 |
} AM_AUDIO_RENDERER_STAT_PARAM; |
| 41 |
typedef enum _AM_DVD_GRAPH_FLAGS { |
| 42 |
AM_DVD_HWDEC_PREFER = 0x01, |
| 43 |
AM_DVD_HWDEC_ONLY = 0x02, |
| 44 |
AM_DVD_SWDEC_PREFER = 0x04, |
| 45 |
AM_DVD_SWDEC_ONLY = 0x08, |
| 46 |
AM_DVD_NOVPE = 0x100, |
| 47 |
AM_DVD_VMR9_ONLY = 0x800, |
| 48 |
AM_DVD_EVR_ONLY = 0x1000 |
| 49 |
} AM_DVD_GRAPH_FLAGS; |
| 50 |
typedef enum _AM_DVD_STREAM_FLAGS { |
| 51 |
AM_DVD_STREAM_VIDEO = 0x01, |
| 52 |
AM_DVD_STREAM_AUDIO = 0x02, |
| 53 |
AM_DVD_STREAM_SUBPIC = 0x04 |
| 54 |
} AM_DVD_STREAM_FLAGS; |
| 55 |
typedef enum _AM_FILTER_MISC_FLAGS { |
| 56 |
AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x00000001, |
| 57 |
AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x00000002 |
| 58 |
} AM_FILTER_MISC_FLAGS; |
| 59 |
typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS { |
| 60 |
AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001, |
| 61 |
AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002, |
| 62 |
AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004 |
| 63 |
} AM_GRAPH_CONFIG_RECONNECT_FLAGS; |
| 64 |
typedef enum _AM_INTF_SEARCH_FLAGS { |
| 65 |
AM_INTF_SEARCH_INPUT_PIN = 0x00000001, |
| 66 |
AM_INTF_SEARCH_OUTPUT_PIN = 0x00000002, |
| 67 |
AM_INTF_SEARCH_FILTER = 0x00000004 |
| 68 |
} AM_INTF_SEARCH_FLAGS; |
| 69 |
typedef enum _AM_OVERLAY_NOTIFY_FLAGS { |
| 70 |
AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x00000001, |
| 71 |
AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x00000002, |
| 72 |
AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x00000004 |
| 73 |
} AM_OVERLAY_NOTIFY_FLAGS; |
| 74 |
typedef enum _AM_PIN_CONNECTION_BLOCK_FLAGS { |
| 75 |
AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001, |
| 76 |
AM_PIN_PUSH_THROUGH_DATA = 0x00000002 |
| 77 |
} AM_PIN_CONNECTION_BLOCK_FLAGS; |
| 78 |
typedef enum _AM_PUSHSOURCE_FLAGS { |
| 79 |
AM_PUSHSOURCECAPS_INTERNAL_RM = 0x00000001, |
| 80 |
AM_PUSHSOURCECAPS_NOT_LIVE = 0x00000002, |
| 81 |
AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x00000004, |
| 82 |
AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x00010000 |
| 83 |
} AM_PUSHSOURCE_FLAGS; |
| 84 |
typedef enum tagAM_SAMPLE_PROPERTY_FLAGS { |
| 85 |
AM_SAMPLE_SPLICEPOINT = 0x01, |
| 86 |
AM_SAMPLE_PREROLL = 0x02, |
| 87 |
AM_SAMPLE_DATADISCONTINUITY = 0x04, |
| 88 |
AM_SAMPLE_TYPECHANGED = 0x08, |
| 89 |
AM_SAMPLE_TIMEVALID = 0x10, |
| 90 |
AM_SAMPLE_TIMEDISCONTINUITY = 0x40, |
| 91 |
AM_SAMPLE_FLUSH_ON_PAUSE = 0x80, |
| 92 |
AM_SAMPLE_STOPVALID = 0x100, |
| 93 |
AM_SAMPLE_ENDOFSTREAM = 0x200, |
| 94 |
AM_STREAM_MEDIA = 0, |
| 95 |
AM_STREAM_CONTROL = 1 |
| 96 |
} AM_SAMPLE_PROPERTY_FLAGS; |
| 97 |
typedef enum AM_SEEKING_SeekingCapabilities { |
| 98 |
AM_SEEKING_CanSeekAbsolute = 0x1, |
| 99 |
AM_SEEKING_CanSeekForwards = 0x2, |
| 100 |
AM_SEEKING_CanSeekBackwards = 0x4, |
| 101 |
AM_SEEKING_CanGetCurrentPos = 0x8, |
| 102 |
AM_SEEKING_CanGetStopPos = 0x10, |
| 103 |
AM_SEEKING_CanGetDuration = 0x20, |
| 104 |
AM_SEEKING_CanPlayBackwards = 0x40, |
| 105 |
AM_SEEKING_CanDoSegments = 0x80, |
| 106 |
AM_SEEKING_Source = 0x100 |
| 107 |
} AM_SEEKING_SEEKING_CAPABILITIES; |
| 108 |
typedef enum { |
| 109 |
AM_STREAM_INFO_START_DEFINED = 0x00000001, |
| 110 |
AM_STREAM_INFO_STOP_DEFINED = 0x00000002, |
| 111 |
AM_STREAM_INFO_DISCARDING = 0x00000004, |
| 112 |
AM_STREAM_INFO_STOP_SEND_EXTRA = 0x00000010 |
| 113 |
} AM_STREAM_INFO_FLAGS; |
| 114 |
enum AMOVERLAYFX { |
| 115 |
AMOVERFX_NOFX = 0x00000000, |
| 116 |
AMOVERFX_MIRRORLEFTRIGHT = 0x00000002, |
| 117 |
AMOVERFX_MIRRORUPDOWN = 0x00000004, |
| 118 |
AMOVERFX_DEINTERLACE = 0x00000008 |
| 119 |
}; |
| 120 |
typedef enum _AMRESCTL_RESERVEFLAGS { |
| 121 |
AMRESCTL_RESERVEFLAGS_RESERVE = 0x00, |
| 122 |
AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x01 |
| 123 |
} AMRESCTL_RESERVEFLAGS; |
| 124 |
typedef enum tagAMTunerModeType { |
| 125 |
AMTUNER_MODE_DEFAULT = 0x0000, |
| 126 |
AMTUNER_MODE_TV = 0x0001, |
| 127 |
AMTUNER_MODE_FM_RADIO = 0x0002, |
| 128 |
AMTUNER_MODE_AM_RADIO = 0x0004, |
| 129 |
AMTUNER_MODE_DSS = 0x0008 |
| 130 |
} AMTunerModeType; |
| 131 |
typedef enum tagAnalogVideoStandard { |
| 132 |
AnalogVideo_None = 0x00000000, |
| 133 |
AnalogVideo_NTSC_M = 0x00000001, |
| 134 |
AnalogVideo_NTSC_M_J = 0x00000002, |
| 135 |
AnalogVideo_NTSC_433 = 0x00000004, |
| 136 |
AnalogVideo_PAL_B = 0x00000010, |
| 137 |
AnalogVideo_PAL_D = 0x00000020, |
| 138 |
AnalogVideo_PAL_H = 0x00000080, |
| 139 |
AnalogVideo_PAL_I = 0x00000100, |
| 140 |
AnalogVideo_PAL_M = 0x00000200, |
| 141 |
AnalogVideo_PAL_N = 0x00000400, |
| 142 |
AnalogVideo_PAL_60 = 0x00000800, |
| 143 |
AnalogVideo_SECAM_B = 0x00001000, |
| 144 |
AnalogVideo_SECAM_D = 0x00002000, |
| 145 |
AnalogVideo_SECAM_G = 0x00004000, |
| 146 |
AnalogVideo_SECAM_H = 0x00008000, |
| 147 |
AnalogVideo_SECAM_K = 0x00010000, |
| 148 |
AnalogVideo_SECAM_K1 = 0x00020000, |
| 149 |
AnalogVideo_SECAM_L = 0x00040000, |
| 150 |
AnalogVideo_SECAM_L1 = 0x00080000, |
| 151 |
AnalogVideo_PAL_N_COMBO = 0x00100000 |
| 152 |
} AnalogVideoStandard; |
| 153 |
typedef enum { |
| 154 |
CameraControl_Flags_Auto = 0x0001, |
| 155 |
CameraControl_Flags_Manual = 0x0002 |
| 156 |
} CameraControlFlags; |
| 157 |
typedef enum { |
| 158 |
CameraControl_Pan = 1, |
| 159 |
CameraControl_Tilt, |
| 160 |
CameraControl_Roll, |
| 161 |
CameraControl_Zoom, |
| 162 |
CameraControl_Exposure, |
| 163 |
CameraControl_Iris, |
| 164 |
CameraControl_Focus |
| 165 |
} CameraControlProperty; |
| 166 |
typedef enum { |
| 167 |
CompressionCaps_CanQuality = 0x01, |
| 168 |
CompressionCaps_CanCrunch = 0x02, |
| 169 |
CompressionCaps_CanKeyFrame = 0x04, |
| 170 |
CompressionCaps_CanBFrame = 0x08, |
| 171 |
CompressionCaps_CanWindow = 0x10 |
| 172 |
} CompressionCaps; |
| 173 |
typedef enum { |
| 174 |
DECIMATION_LEGACY, |
| 175 |
DECIMATION_USE_DECODER_ONLY, |
| 176 |
DECIMATION_USE_VIDEOPORT_ONLY, |
| 177 |
DECIMATION_USE_OVERLAY_ONLY, |
| 178 |
DECIMATION_DEFAULT |
| 179 |
} DECIMATION_USAGE; |
| 180 |
typedef enum tagDVD_AUDIO_APPMODE { |
| 181 |
DVD_AudioMode_None = 0, |
| 182 |
DVD_AudioMode_Karaoke = 1, |
| 183 |
DVD_AudioMode_Surround = 2, |
| 184 |
DVD_AudioMode_Other = 3 |
| 185 |
} DVD_AUDIO_APPMODE; |
| 186 |
typedef enum tagDVD_AUDIO_FORMAT { |
| 187 |
DVD_AudioFormat_AC3 = 0, |
| 188 |
DVD_AudioFormat_MPEG1 = 1, |
| 189 |
DVD_AudioFormat_MPEG1_DRC = 2, |
| 190 |
DVD_AudioFormat_MPEG2 = 3, |
| 191 |
DVD_AudioFormat_MPEG2_DRC = 4, |
| 192 |
DVD_AudioFormat_LPCM = 5, |
| 193 |
DVD_AudioFormat_DTS = 6, |
| 194 |
DVD_AudioFormat_SDDS = 7, |
| 195 |
DVD_AudioFormat_Other = 8 |
| 196 |
} DVD_AUDIO_FORMAT; |
| 197 |
typedef enum tagDVD_AUDIO_LANG_EXT { |
| 198 |
DVD_AUD_EXT_NotSpecified = 0, |
| 199 |
DVD_AUD_EXT_Captions = 1, |
| 200 |
DVD_AUD_EXT_VisuallyImpaired = 2, |
| 201 |
DVD_AUD_EXT_DirectorComments1 = 3, |
| 202 |
DVD_AUD_EXT_DirectorComments2 = 4 |
| 203 |
} DVD_AUDIO_LANG_EXT; |
| 204 |
typedef enum { |
| 205 |
DVD_CMD_FLAG_None = 0x00000000, |
| 206 |
DVD_CMD_FLAG_Flush = 0x00000001, |
| 207 |
DVD_CMD_FLAG_SendEvents = 0x00000002, |
| 208 |
DVD_CMD_FLAG_Block = 0x00000004, |
| 209 |
DVD_CMD_FLAG_StartWhenRendered = 0x00000008, |
| 210 |
DVD_CMD_FLAG_EndAfterRendered = 0x00000010 |
| 211 |
} DVD_CMD_FLAGS; |
| 212 |
typedef enum tagDVD_DISC_SIDE { |
| 213 |
DVD_SIDE_A, |
| 214 |
DVD_SIDE_B |
| 215 |
} DVD_DISC_SIDE; |
| 216 |
typedef enum tagDVD_DOMAIN { |
| 217 |
DVD_DOMAIN_FirstPlay, |
| 218 |
DVD_DOMAIN_VideoManagerMenu, |
| 219 |
DVD_DOMAIN_VideoTitleSetMenu, |
| 220 |
DVD_DOMAIN_Title, |
| 221 |
DVD_DOMAIN_Stop |
| 222 |
} DVD_DOMAIN; |
| 223 |
typedef enum tagDVD_FRAMERATE { |
| 224 |
DVD_FPS_25 = 1, |
| 225 |
DVD_FPS_30NonDrop = 3 |
| 226 |
} DVD_FRAMERATE; |
| 227 |
typedef enum tagDVD_KARAOKE_ASSIGNMENT { |
| 228 |
DVD_Assignment_reserved0 = 0, |
| 229 |
DVD_Assignment_reserved1 = 1, |
| 230 |
DVD_Assignment_LR = 2, |
| 231 |
DVD_Assignment_LRM = 3, |
| 232 |
DVD_Assignment_LR1 = 4, |
| 233 |
DVD_Assignment_LRM1 = 5, |
| 234 |
DVD_Assignment_LR12 = 6, |
| 235 |
DVD_Assignment_LRM12 = 7 |
| 236 |
} DVD_KARAOKE_ASSIGNMENT; |
| 237 |
typedef enum tagDVD_KARAOKE_CONTENTS { |
| 238 |
DVD_Karaoke_GuideVocal1 = 0x0001, |
| 239 |
DVD_Karaoke_GuideVocal2 = 0x0002, |
| 240 |
DVD_Karaoke_GuideMelody1 = 0x0004, |
| 241 |
DVD_Karaoke_GuideMelody2 = 0x0008, |
| 242 |
DVD_Karaoke_GuideMelodyA = 0x0010, |
| 243 |
DVD_Karaoke_GuideMelodyB = 0x0020, |
| 244 |
DVD_Karaoke_SoundEffectA = 0x0040, |
| 245 |
DVD_Karaoke_SoundEffectB = 0x0080 |
| 246 |
} DVD_KARAOKE_CONTENTS; |
| 247 |
typedef enum tagDVD_KARAOKE_DOWNMIX { |
| 248 |
DVD_Mix_0to0 = 0x0001, |
| 249 |
DVD_Mix_1to0 = 0x0002, |
| 250 |
DVD_Mix_2to0 = 0x0004, |
| 251 |
DVD_Mix_3to0 = 0x0008, |
| 252 |
DVD_Mix_4to0 = 0x0010, |
| 253 |
DVD_Mix_Lto0 = 0x0020, |
| 254 |
DVD_Mix_Rto0 = 0x0040, |
| 255 |
DVD_Mix_0to1 = 0x0100, |
| 256 |
DVD_Mix_1to1 = 0x0200, |
| 257 |
DVD_Mix_2to1 = 0x0400, |
| 258 |
DVD_Mix_3to1 = 0x0800, |
| 259 |
DVD_Mix_4to1 = 0x1000, |
| 260 |
DVD_Mix_Lto1 = 0x2000, |
| 261 |
DVD_Mix_Rto1 = 0x4000 |
| 262 |
} DVD_KARAOKE_DOWNMIX; |
| 263 |
typedef enum tagDVD_MENU_ID { |
| 264 |
DVD_MENU_Title = 2, |
| 265 |
DVD_MENU_Root = 3, |
| 266 |
DVD_MENU_Subpicture = 4, |
| 267 |
DVD_MENU_Audio = 5, |
| 268 |
DVD_MENU_Angle = 6, |
| 269 |
DVD_MENU_Chapter = 7 |
| 270 |
} DVD_MENU_ID; |
| 271 |
typedef enum { |
| 272 |
DVD_ResetOnStop = 1, |
| 273 |
DVD_NotifyParentalLevelChange = 2, |
| 274 |
DVD_HMSF_TimeCodeEvents = 3, |
| 275 |
DVD_AudioDuringFFwdRew = 4, |
| 276 |
DVD_EnableNonblockingAPIs = 5, |
| 277 |
DVD_CacheSizeInMB = 6, |
| 278 |
DVD_EnablePortableBookmarks = 7 |
| 279 |
} DVD_OPTION_FLAG; |
| 280 |
typedef enum tagDVD_PARENTAL_LEVEL { |
| 281 |
DVD_PARENTAL_LEVEL_8 = 0x8000, |
| 282 |
DVD_PARENTAL_LEVEL_7 = 0x4000, |
| 283 |
DVD_PARENTAL_LEVEL_6 = 0x2000, |
| 284 |
DVD_PARENTAL_LEVEL_5 = 0x1000, |
| 285 |
DVD_PARENTAL_LEVEL_4 = 0x0800, |
| 286 |
DVD_PARENTAL_LEVEL_3 = 0x0400, |
| 287 |
DVD_PARENTAL_LEVEL_2 = 0x0200, |
| 288 |
DVD_PARENTAL_LEVEL_1 = 0x0100 |
| 289 |
} DVD_PARENTAL_LEVEL; |
| 290 |
typedef enum tagDVD_PREFERRED_DISPLAY_MODE { |
| 291 |
DISPLAY_CONTENT_DEFAULT = 0, |
| 292 |
DISPLAY_16x9 = 1, |
| 293 |
DISPLAY_4x3_PANSCAN_PREFERRED = 2, |
| 294 |
DISPLAY_4x3_LETTERBOX_PREFERRED = 3 |
| 295 |
} DVD_PREFERRED_DISPLAY_MODE; |
| 296 |
typedef enum tagDVD_RELATIVE_BUTTON { |
| 297 |
DVD_Relative_Upper = 1, |
| 298 |
DVD_Relative_Lower = 2, |
| 299 |
DVD_Relative_Left = 3, |
| 300 |
DVD_Relative_Right = 4 |
| 301 |
} DVD_RELATIVE_BUTTON; |
| 302 |
typedef enum tagDVD_SUBPICTURE_LANG_EXT { |
| 303 |
DVD_SP_EXT_NotSpecified = 0, |
| 304 |
DVD_SP_EXT_Caption_Normal = 1, |
| 305 |
DVD_SP_EXT_Caption_Big = 2, |
| 306 |
DVD_SP_EXT_Caption_Children = 3, |
| 307 |
DVD_SP_EXT_CC_Normal = 5, |
| 308 |
DVD_SP_EXT_CC_Big = 6, |
| 309 |
DVD_SP_EXT_CC_Children = 7, |
| 310 |
DVD_SP_EXT_Forced = 9, |
| 311 |
DVD_SP_EXT_DirectorComments_Normal = 13, |
| 312 |
DVD_SP_EXT_DirectorComments_Big = 14, |
| 313 |
DVD_SP_EXT_DirectorComments_Children = 15 |
| 314 |
} DVD_SUBPICTURE_LANG_EXT; |
| 315 |
typedef enum tagDVD_SUBPICTURE_TYPE { |
| 316 |
DVD_SPType_NotSpecified = 0, |
| 317 |
DVD_SPType_Language = 1, |
| 318 |
DVD_SPType_Other = 2 |
| 319 |
} DVD_SUBPICTURE_TYPE; |
| 320 |
typedef enum tagDVD_SUBPICTURE_CODING { |
| 321 |
DVD_SPCoding_RunLength = 0, |
| 322 |
DVD_SPCoding_Extended = 1, |
| 323 |
DVD_SPCoding_Other = 2 |
| 324 |
} DVD_SUBPICTURE_CODING; |
| 325 |
enum DVD_TextCharSet { |
| 326 |
DVD_CharSet_Unicode = 0, |
| 327 |
DVD_CharSet_ISO646 = 1, |
| 328 |
DVD_CharSet_JIS_Roman_Kanji = 2, |
| 329 |
DVD_CharSet_ISO8859_1 = 3, |
| 330 |
DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4 |
| 331 |
}; |
| 332 |
enum DVD_TextStringType { |
| 333 |
DVD_Struct_Volume = 0x01, |
| 334 |
DVD_Struct_Title = 0x02, |
| 335 |
DVD_Struct_ParentalID = 0x03, |
| 336 |
DVD_Struct_PartOfTitle = 0x04, |
| 337 |
DVD_Struct_Cell = 0x05, |
| 338 |
DVD_Stream_Audio = 0x10, |
| 339 |
DVD_Stream_Subpicture = 0x11, |
| 340 |
DVD_Stream_Angle = 0x12, |
| 341 |
DVD_Channel_Audio = 0x20, |
| 342 |
DVD_General_Name = 0x30, |
| 343 |
DVD_General_Comments = 0x31, |
| 344 |
DVD_Title_Series = 0x38, |
| 345 |
DVD_Title_Movie = 0x39, |
| 346 |
DVD_Title_Video = 0x3a, |
| 347 |
DVD_Title_Album = 0x3b, |
| 348 |
DVD_Title_Song = 0x3c, |
| 349 |
DVD_Title_Other = 0x3f, |
| 350 |
DVD_Title_Sub_Series = 0x40, |
| 351 |
DVD_Title_Sub_Movie = 0x41, |
| 352 |
DVD_Title_Sub_Video = 0x42, |
| 353 |
DVD_Title_Sub_Album = 0x43, |
| 354 |
DVD_Title_Sub_Song = 0x44, |
| 355 |
DVD_Title_Sub_Other = 0x47, |
| 356 |
DVD_Title_Orig_Series = 0x48, |
| 357 |
DVD_Title_Orig_Movie = 0x49, |
| 358 |
DVD_Title_Orig_Video = 0x4a, |
| 359 |
DVD_Title_Orig_Album = 0x4b, |
| 360 |
DVD_Title_Orig_Song = 0x4c, |
| 361 |
DVD_Title_Orig_Other = 0x4f, |
| 362 |
DVD_Other_Scene = 0x50, |
| 363 |
DVD_Other_Cut = 0x51, |
| 364 |
DVD_Other_Take = 0x52 |
| 365 |
}; |
| 366 |
typedef enum tagDVD_TIMECODE_FLAGS { |
| 367 |
DVD_TC_FLAG_25fps = 0x00000001, |
| 368 |
DVD_TC_FLAG_30fps = 0x00000002, |
| 369 |
DVD_TC_FLAG_DropFrame = 0x00000004, |
| 370 |
DVD_TC_FLAG_Interpolated = 0x00000008 |
| 371 |
} DVD_TIMECODE_FLAGS; |
| 372 |
typedef enum tagDVD_TITLE_APPMODE { |
| 373 |
DVD_AppMode_Not_Specified = 0, |
| 374 |
DVD_AppMode_Karaoke = 1, |
| 375 |
DVD_AppMode_Other = 3 |
| 376 |
} DVD_TITLE_APPMODE; |
| 377 |
typedef enum tagDVD_VIDEO_COMPRESSION { |
| 378 |
DVD_VideoCompression_Other = 0, |
| 379 |
DVD_VideoCompression_MPEG1 = 1, |
| 380 |
DVD_VideoCompression_MPEG2 = 2 |
| 381 |
} DVD_VIDEO_COMPRESSION; |
| 382 |
typedef enum _DVDECODERRESOLUTION { |
| 383 |
DVDECODERRESOLUTION_720x480 = 1000, |
| 384 |
DVDECODERRESOLUTION_360x240 = 1001, |
| 385 |
DVDECODERRESOLUTION_180x120 = 1002, |
| 386 |
DVDECODERRESOLUTION_88x60 = 1003 |
| 387 |
} DVDECODERRESOLUTION; |
| 388 |
typedef enum _DVRESOLUTION { |
| 389 |
DVRESOLUTION_FULL = 1000, |
| 390 |
DVRESOLUTION_HALF = 1001, |
| 391 |
DVRESOLUTION_QUARTER = 1002, |
| 392 |
DVRESOLUTION_DC = 1003 |
| 393 |
} DVRESOLUTION; |
| 394 |
typedef enum _DVENCODERFORMAT { |
| 395 |
DVENCODERFORMAT_DVSD = 2007, |
| 396 |
DVENCODERFORMAT_DVHD = 2008, |
| 397 |
DVENCODERFORMAT_DVSL = 2009 |
| 398 |
} DVENCODERFORMAT; |
| 399 |
typedef enum _DVENCODERRESOLUTION { |
| 400 |
DVENCODERRESOLUTION_720x480 = 2012, |
| 401 |
DVENCODERRESOLUTION_360x240 = 2013, |
| 402 |
DVENCODERRESOLUTION_180x120 = 2014, |
| 403 |
DVENCODERRESOLUTION_88x60 = 2015 |
| 404 |
} DVENCODERRESOLUTION; |
| 405 |
typedef enum _DVENCODERVIDEOFORMAT { |
| 406 |
DVENCODERVIDEOFORMAT_NTSC = 2000, |
| 407 |
DVENCODERVIDEOFORMAT_PAL = 2001 |
| 408 |
} DVENCODERVIDEOFORMAT; |
| 409 |
typedef enum _FilterState { |
| 410 |
State_Stopped, |
| 411 |
State_Paused, |
| 412 |
State_Running |
| 413 |
} FILTER_STATE; |
| 414 |
typedef enum { |
| 415 |
INTERLEAVE_NONE, |
| 416 |
INTERLEAVE_CAPTURE, |
| 417 |
INTERLEAVE_FULL, |
| 418 |
INTERLEAVE_NONE_BUFFERED |
| 419 |
} InterleavingMode; |
| 420 |
typedef enum { |
| 421 |
PhysConn_Video_Tuner = 1, |
| 422 |
PhysConn_Video_Composite, |
| 423 |
PhysConn_Video_SVideo, |
| 424 |
PhysConn_Video_RGB, |
| 425 |
PhysConn_Video_YRYBY, |
| 426 |
PhysConn_Video_SerialDigital, |
| 427 |
PhysConn_Video_ParallelDigital, |
| 428 |
PhysConn_Video_SCSI, |
| 429 |
PhysConn_Video_AUX, |
| 430 |
PhysConn_Video_1394, |
| 431 |
PhysConn_Video_USB, |
| 432 |
PhysConn_Video_VideoDecoder, |
| 433 |
PhysConn_Video_VideoEncoder, |
| 434 |
PhysConn_Video_SCART, |
| 435 |
PhysConn_Video_Black, |
| 436 |
PhysConn_Audio_Tuner = 4096, |
| 437 |
PhysConn_Audio_Line, |
| 438 |
PhysConn_Audio_Mic, |
| 439 |
PhysConn_Audio_AESDigital, |
| 440 |
PhysConn_Audio_SPDIFDigital, |
| 441 |
PhysConn_Audio_SCSI, |
| 442 |
PhysConn_Audio_AUX, |
| 443 |
PhysConn_Audio_1394, |
| 444 |
PhysConn_Audio_USB, |
| 445 |
PhysConn_Audio_AudioDecoder |
| 446 |
} PhysicalConnectorType; |
| 447 |
typedef enum _PinDirection { |
| 448 |
PINDIR_INPUT, |
| 449 |
PINDIR_OUTPUT |
| 450 |
} PIN_DIRECTION; |
| 451 |
typedef enum { |
| 452 |
Famine, |
| 453 |
Flood |
| 454 |
} QualityMessageType; |
| 455 |
enum { |
| 456 |
REG_PINFLAG_B_ZERO = 0x1, |
| 457 |
REG_PINFLAG_B_RENDERER = 0x2, |
| 458 |
REG_PINFLAG_B_MANY = 0x4, |
| 459 |
REG_PINFLAG_B_OUTPUT = 0x8 |
| 460 |
} REG_PINFLAG; |
| 461 |
typedef enum _REM_FILTER_FLAGS { |
| 462 |
REMFILTERF_LEAVECONNECTED = 0x00000001 |
| 463 |
} REM_FILTER_FLAGS; |
| 464 |
typedef enum { |
| 465 |
TunerInputCable, |
| 466 |
TunerInputAntenna |
| 467 |
} TunerInputType; |
| 468 |
typedef enum tagTVAudioMode { |
| 469 |
AMTVAUDIO_MODE_MONO = 0x0001, |
| 470 |
AMTVAUDIO_MODE_STEREO = 0x0002, |
| 471 |
AMTVAUDIO_MODE_LANG_A = 0x0010, |
| 472 |
AMTVAUDIO_MODE_LANG_B = 0x0020, |
| 473 |
AMTVAUDIO_MODE_LANG_C = 0x0040, |
| 474 |
AMTVAUDIO_PRESET_STEREO = 0x0200, |
| 475 |
AMTVAUDIO_PRESET_LANG_A = 0x1000, |
| 476 |
AMTVAUDIO_PRESET_LANG_B = 0x2000, |
| 477 |
AMTVAUDIO_PRESET_LANG_C = 0x4000 |
| 478 |
} TVAudioMode; |
| 479 |
typedef enum { |
| 480 |
UOP_FLAG_Play_Title_Or_AtTime = 0x00000001, |
| 481 |
UOP_FLAG_Play_Chapter = 0x00000002, |
| 482 |
UOP_FLAG_Play_Title = 0x00000004, |
| 483 |
UOP_FLAG_Stop = 0x00000008, |
| 484 |
UOP_FLAG_ReturnFromSubMenu = 0x00000010, |
| 485 |
UOP_FLAG_Play_Chapter_Or_AtTime = 0x00000020, |
| 486 |
UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x00000040, |
| 487 |
UOP_FLAG_PlayNext_Chapter = 0x00000080, |
| 488 |
UOP_FLAG_Play_Forwards = 0x00000100, |
| 489 |
UOP_FLAG_Play_Backwards = 0x00000200, |
| 490 |
UOP_FLAG_ShowMenu_Title = 0x00000400, |
| 491 |
UOP_FLAG_ShowMenu_Root = 0x00000800, |
| 492 |
UOP_FLAG_ShowMenu_SubPic = 0x00001000, |
| 493 |
UOP_FLAG_ShowMenu_Audio = 0x00002000, |
| 494 |
UOP_FLAG_ShowMenu_Angle = 0x00004000, |
| 495 |
UOP_FLAG_ShowMenu_Chapter = 0x00008000, |
| 496 |
UOP_FLAG_Resume = 0x00010000, |
| 497 |
UOP_FLAG_Select_Or_Activate_Button = 0x00020000, |
| 498 |
UOP_FLAG_Still_Off = 0x00040000, |
| 499 |
UOP_FLAG_Pause_On = 0x00080000, |
| 500 |
UOP_FLAG_Select_Audio_Stream = 0x00100000, |
| 501 |
UOP_FLAG_Select_SubPic_Stream = 0x00200000, |
| 502 |
UOP_FLAG_Select_Angle = 0x00400000, |
| 503 |
UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x00800000, |
| 504 |
UOP_FLAG_Select_Video_Mode_Preference = 0x01000000 |
| 505 |
} VALID_UOP_FLAG; |
| 506 |
typedef enum { |
| 507 |
VfwCaptureDialog_Source = 0x01, |
| 508 |
VfwCaptureDialog_Format = 0x02, |
| 509 |
VfwCaptureDialog_Display = 0x04 |
| 510 |
} VfwCaptureDialogs; |
| 511 |
typedef enum { |
| 512 |
VfwCompressDialog_Config = 0x01, |
| 513 |
VfwCompressDialog_About = 0x02, |
| 514 |
VfwCompressDialog_QueryConfig = 0x04, |
| 515 |
VfwCompressDialog_QueryAbout = 0x08 |
| 516 |
} VfwCompressDialogs; |
| 517 |
typedef enum tagVideoControlFlags { |
| 518 |
VideoControlFlag_FlipHorizontal = 0x0001, |
| 519 |
VideoControlFlag_FlipVertical = 0x0002, |
| 520 |
VideoControlFlag_ExternalTriggerEnable = 0x0004, |
| 521 |
VideoControlFlag_Trigger = 0x0008 |
| 522 |
} VideoControlFlags; |
| 523 |
typedef enum { |
| 524 |
ConstantBitRate = 0, |
| 525 |
VariableBitRateAverage, |
| 526 |
VariableBitRatePeak |
| 527 |
} VIDEOENCODER_BITRATE_MODE; |
| 528 |
typedef enum tagVideoProcAmpFlags { |
| 529 |
VideoProcAmp_Flags_Auto = 0x0001, |
| 530 |
VideoProcAmp_Flags_Manual = 0x0002 |
| 531 |
} VideoProcAmpFlags; |
| 532 |
typedef enum tagVideoProcAmpProperty { |
| 533 |
VideoProcAmp_Brightness, |
| 534 |
VideoProcAmp_Contrast, |
| 535 |
VideoProcAmp_Hue, |
| 536 |
VideoProcAmp_Saturation, |
| 537 |
VideoProcAmp_Sharpness, |
| 538 |
VideoProcAmp_Gamma, |
| 539 |
VideoProcAmp_ColorEnable, |
| 540 |
VideoProcAmp_WhiteBalance, |
| 541 |
VideoProcAmp_BacklightCompensation, |
| 542 |
VideoProcAmp_Gain |
| 543 |
} VideoProcAmpProperty; |
| 544 |
enum VMR_ASPECT_RATIO_MODE { |
| 545 |
VMR_ARMODE_NONE, |
| 546 |
VMR_ARMODE_LETTER_BOX |
| 547 |
}; |
| 548 |
typedef enum { |
| 549 |
DeinterlacePref_NextBest = 0x01, |
| 550 |
DeinterlacePref_BOB = 0x02, |
| 551 |
DeinterlacePref_Weave = 0x04, |
| 552 |
DeinterlacePref_Mask = 0x07 |
| 553 |
} VMRDeinterlacePrefs; |
| 554 |
typedef enum { |
| 555 |
DeinterlaceTech_Unknown = 0x0000, |
| 556 |
DeinterlaceTech_BOBLineReplicate = 0x0001, |
| 557 |
DeinterlaceTech_BOBVerticalStretch = 0x0002, |
| 558 |
DeinterlaceTech_MedianFiltering = 0x0004, |
| 559 |
DeinterlaceTech_EdgeFiltering = 0x0010, |
| 560 |
DeinterlaceTech_FieldAdaptive = 0x0020, |
| 561 |
DeinterlaceTech_PixelAdaptive = 0x0040, |
| 562 |
DeinterlaceTech_MotionVectorSteered = 0x0080 |
| 563 |
} VMRDeinterlaceTech; |
| 564 |
typedef enum { |
| 565 |
MixerPref_NoDecimation = 0x00000001, |
| 566 |
MixerPref_DecimateOutput = 0x00000002, |
| 567 |
MixerPref_ARAdjustXorY = 0x00000004, |
| 568 |
MixerPref_DecimationReserved = 0x00000008, |
| 569 |
MixerPref_DecimateMask = 0x0000000F, |
| 570 |
MixerPref_BiLinearFiltering = 0x00000010, |
| 571 |
MixerPref_PointFiltering = 0x00000020, |
| 572 |
MixerPref_FilteringMask = 0x000000F0, |
| 573 |
MixerPref_RenderTargetRGB = 0x00000100, |
| 574 |
MixerPref_RenderTargetYUV = 0x00001000, |
| 575 |
MixerPref_RenderTargetYUV420 = 0x00000200, |
| 576 |
MixerPref_RenderTargetYUV422 = 0x00000400, |
| 577 |
MixerPref_RenderTargetYUV444 = 0x00000800, |
| 578 |
MixerPref_RenderTargetReserved = 0x0000E000, |
| 579 |
MixerPref_RenderTargetMask = 0x0000FF00, |
| 580 |
MixerPref_DynamicSwitchToBOB = 0x00010000, |
| 581 |
MixerPref_DynamicDecimateBy2 = 0x00020000, |
| 582 |
MixerPref_DynamicReserved = 0x000C0000, |
| 583 |
MixerPref_DynamicMask = 0x000F0000 |
| 584 |
} VMRMixerPrefs; |
| 585 |
enum VMRMode { |
| 586 |
VMRMode_Windowed = 0x00000001, |
| 587 |
VMRMode_Windowless = 0x00000002, |
| 588 |
VMRMode_Renderless = 0x00000004, |
| 589 |
VMRMode_Mask = 0x00000007 |
| 590 |
}; |
| 591 |
typedef enum { |
| 592 |
VMRSample_SyncPoint = 0x00000001, |
| 593 |
VMRSample_Preroll = 0x00000002, |
| 594 |
VMRSample_Discontinuity = 0x00000004, |
| 595 |
VMRSample_TimeValid = 0x00000008 |
| 596 |
} VMRPresentationFlags; |
| 597 |
typedef enum { |
| 598 |
RenderPrefs_ForceOffscreen = 0x00000001, |
| 599 |
RenderPrefs_ForceOverlays = 0x00000002, |
| 600 |
RenderPrefs_AllowOverlays = 0x00000000, |
| 601 |
RenderPrefs_AllowOffscreen = 0x00000000, |
| 602 |
RenderPrefs_DoNotRenderColorKeyAndBorder = 0x00000008, |
| 603 |
RenderPrefs_RestrictToInitialMonitor = 0x00000010, |
| 604 |
RenderPrefs_PreferAGPMemWhenMixing = 0x00000020, |
| 605 |
RenderPrefs_Mask = 0x0000003f |
| 606 |
} VMRRenderPrefs; |
| 607 |
typedef enum { |
| 608 |
AMAP_PIXELFORMAT_VALID = 0x01, |
| 609 |
AMAP_3D_TARGET = 0x02, |
| 610 |
AMAP_ALLOW_SYSMEM = 0x04, |
| 611 |
AMAP_FORCE_SYSMEM = 0x08, |
| 612 |
AMAP_DIRECTED_FLIP = 0x10, |
| 613 |
AMAP_DXVA_TARGET = 0x20 |
| 614 |
} VMRSurfaceAllocationFlags; |
| 615 |
/*--- DirectShow Reference - DirectShow Structures */ |
| 616 |
typedef struct _AllocatorProperties { |
| 617 |
long cBuffers; |
| 618 |
long cbBuffer; |
| 619 |
long cbAlign; |
| 620 |
long cbPrefix; |
| 621 |
} ALLOCATOR_PROPERTIES; |
| 622 |
typedef struct { |
| 623 |
HRESULT hrVPEStatus; |
| 624 |
BOOL bDvdVolInvalid; |
| 625 |
BOOL bDvdVolUnknown; |
| 626 |
BOOL bNoLine21In; |
| 627 |
BOOL bNoLine21Out; |
| 628 |
int iNumStreams; |
| 629 |
int iNumStreamsFailed; |
| 630 |
DWORD dwFailedStreamsFlag; |
| 631 |
} AM_DVD_RENDERSTATUS; |
| 632 |
typedef struct _AMCOPPCommand { |
| 633 |
GUID macKDI; |
| 634 |
GUID guidCommandID; |
| 635 |
DWORD dwSequence; |
| 636 |
DWORD cbSizeData; |
| 637 |
BYTE CommandData[4056]; |
| 638 |
} AMCOPPCommand,*LPAMCOPPCommand; |
| 639 |
typedef struct _AMCOPPSignature { |
| 640 |
BYTE Signature[256]; |
| 641 |
} AMCOPPSignature; |
| 642 |
typedef struct _AMCOPPStatusInput { |
| 643 |
GUID rApp; |
| 644 |
GUID guidStatusRequestID; |
| 645 |
DWORD dwSequence; |
| 646 |
DWORD cbSizeData; |
| 647 |
BYTE StatusData[4056]; |
| 648 |
} AMCOPPStatusInput,*LPAMCOPPStatusInput; |
| 649 |
typedef struct _AMCOPPStatusOutput { |
| 650 |
GUID macKDI; |
| 651 |
DWORD cbSizeData; |
| 652 |
BYTE COPPStatus[4076]; |
| 653 |
} AMCOPPStatusOutput,*LPAMCOPPStatusOutput; |
| 654 |
typedef struct _AMMediaType { |
| 655 |
GUID majortype; |
| 656 |
GUID subtype; |
| 657 |
BOOL bFixedSizeSamples; |
| 658 |
BOOL bTemporalCompression; |
| 659 |
ULONG lSampleSize; |
| 660 |
GUID formattype; |
| 661 |
IUnknown *pUnk; |
| 662 |
ULONG cbFormat; |
| 663 |
BYTE *pbFormat; |
| 664 |
} AM_MEDIA_TYPE; |
| 665 |
typedef struct tagAM_SAMPLE2_PROPERTIES { |
| 666 |
DWORD cbData; |
| 667 |
DWORD dwTypeSpecificFlags; |
| 668 |
DWORD dwSampleFlags; |
| 669 |
LONG lActual; |
| 670 |
REFERENCE_TIME tStart; |
| 671 |
REFERENCE_TIME tStop; |
| 672 |
DWORD dwStreamId; |
| 673 |
AM_MEDIA_TYPE *pMediaType; |
| 674 |
BYTE *pbBuffer; |
| 675 |
LONG cbBuffer; |
| 676 |
} AM_SAMPLE2_PROPERTIES; |
| 677 |
typedef struct { |
| 678 |
REFERENCE_TIME tStart; |
| 679 |
REFERENCE_TIME tStop; |
| 680 |
DWORD dwStartCookie; |
| 681 |
DWORD dwStopCookie; |
| 682 |
DWORD dwFlags; |
| 683 |
} AM_STREAM_INFO; |
| 684 |
typedef struct { |
| 685 |
const CLSID *clsMajorType; |
| 686 |
const CLSID *clsMinorType; |
| 687 |
} REGPINTYPES; |
| 688 |
typedef REGPINTYPES AMOVIESETUP_MEDIATYPE,*PAMOVIESETUP_MEDIATYPE,*LPAMOVIESETUP_MEDIATYPE; |
| 689 |
typedef struct { |
| 690 |
LPWSTR strName; |
| 691 |
BOOL bRendered; |
| 692 |
BOOL bOutput; |
| 693 |
BOOL bZero; |
| 694 |
BOOL bMany; |
| 695 |
const CLSID *clsConnectsToFilter; |
| 696 |
const WCHAR *strConnectsToPin; |
| 697 |
UINT nMediaTypes; |
| 698 |
const REGPINTYPES *lpMediaType; |
| 699 |
} REGFILTERPINS; |
| 700 |
typedef REGFILTERPINS AMOVIESETUP_PIN,*PAMOVIESETUP_PIN,*LPAMOVIESETUP_PIN; |
| 701 |
typedef struct _AMOVIESETUP_FILTER { |
| 702 |
const CLSID *clsID; |
| 703 |
const WCHAR *strName; |
| 704 |
DWORD dwMerit; |
| 705 |
UINT nPins; |
| 706 |
const AMOVIESETUP_PIN *lpPin; |
| 707 |
} AMOVIESETUP_FILTER,*PAMOVIESETUP_FILTER,*LPAMOVIESETUP_FILTER; |
| 708 |
typedef struct _AUDIO_STREAM_CONFIG_CAPS { |
| 709 |
GUID guid; |
| 710 |
ULONG MinimumChannels; |
| 711 |
ULONG MaximumChannels; |
| 712 |
ULONG ChannelsGranularity; |
| 713 |
ULONG MinimumBitsPerSample; |
| 714 |
ULONG MaximumBitsPerSample; |
| 715 |
ULONG BitsPerSampleGranularity; |
| 716 |
ULONG MinimumSampleFrequency; |
| 717 |
ULONG MaximumSampleFrequency; |
| 718 |
ULONG SampleFrequencyGranularity; |
| 719 |
} AUDIO_STREAM_CONFIG_CAPS; |
| 720 |
struct CodecAPIEventData { |
| 721 |
GUID guid; |
| 722 |
DWORD dataLength; |
| 723 |
DWORD reserved[3]; |
| 724 |
}; |
| 725 |
typedef struct tagCOLORKEY { |
| 726 |
DWORD KeyType; |
| 727 |
DWORD PaletteIndex; |
| 728 |
COLORREF LowColorValue; |
| 729 |
COLORREF HighColorValue; |
| 730 |
} COLORKEY; |
| 731 |
#define CK_NOCOLORKEY 0x00000000 |
| 732 |
#define CK_INDEX 0x00000001 |
| 733 |
#define CK_RGB 0x00000002 |
| 734 |
typedef struct { |
| 735 |
DWORD dw1; |
| 736 |
DWORD dw2; |
| 737 |
} DDCOLORKEY; |
| 738 |
typedef struct tagDVD_AudioAttributes { |
| 739 |
DVD_AUDIO_APPMODE AppMode; |
| 740 |
DVD_AUDIO_FORMAT AudioFormat; |
| 741 |
LCID Language; |
| 742 |
DVD_AUDIO_LANG_EXT LanguageExtension; |
| 743 |
BOOL fHasMultichannelInfo; |
| 744 |
DWORD dwFrequency; |
| 745 |
BYTE bQuantization; |
| 746 |
BYTE bNumberOfChannels; |
| 747 |
DWORD dwReserved[2]; |
| 748 |
} DVD_AudioAttributes; |
| 749 |
typedef struct tagDVD_DECODER_CAPS { |
| 750 |
DWORD dwSize; |
| 751 |
DWORD dwAudioCaps; |
| 752 |
double dFwdMaxRateVideo; |
| 753 |
double dFwdMaxRateAudio; |
| 754 |
double dFwdMaxRateSP; |
| 755 |
double dBwdMaxRateVideo; |
| 756 |
double dBwdMaxRateAudio; |
| 757 |
double dBwdMaxRateSP; |
| 758 |
DWORD dwRes1; |
| 759 |
DWORD dwRes2; |
| 760 |
DWORD dwRes3; |
| 761 |
DWORD dwRes4; |
| 762 |
} DVD_DECODER_CAPS; |
| 763 |
#define DVD_AUDIO_CAPS_AC3 0x00000001 |
| 764 |
#define DVD_AUDIO_CAPS_MPEG2 0x00000002 |
| 765 |
#define DVD_AUDIO_CAPS_LPCM 0x00000004 |
| 766 |
#define DVD_AUDIO_CAPS_DTS 0x00000008 |
| 767 |
#define DVD_AUDIO_CAPS_SDDS 0x00000010 |
| 768 |
typedef struct tagDVD_HMSF_TIMECODE { |
| 769 |
BYTE bHours; |
| 770 |
BYTE bMinutes; |
| 771 |
BYTE bSeconds; |
| 772 |
BYTE bFrames; |
| 773 |
} DVD_HMSF_TIMECODE; |
| 774 |
typedef struct tagDVD_KaraokeAttributes { |
| 775 |
BYTE bVersion; |
| 776 |
BOOL fMasterOfCeremoniesInGuideVocal1; |
| 777 |
BOOL fDuet; |
| 778 |
DVD_KARAOKE_ASSIGNMENT ChannelAssignment; |
| 779 |
WORD wChannelContents[8]; |
| 780 |
} DVD_KaraokeAttributes; |
| 781 |
typedef struct tagDVD_MUA_Coeff { |
| 782 |
double log2_alpha; |
| 783 |
double log2_beta; |
| 784 |
} DVD_MUA_Coeff; |
| 785 |
typedef struct tagDVD_MUA_MixingInfo { |
| 786 |
BOOL fMixTo0; |
| 787 |
BOOL fMixTo1; |
| 788 |
BOOL fMix0InPhase; |
| 789 |
BOOL fMix1InPhase; |
| 790 |
DWORD dwSpeakerPosition; |
| 791 |
} DVD_MUA_MixingInfo; |
| 792 |
#define KSAUDIO_SPEAKER_LEFT 0x00000001 |
| 793 |
#define KSAUDIO_SPEAKER_RIGHT 0x00000002 |
| 794 |
#define KSAUDIO_SPEAKER_CENTER 0x00000004 |
| 795 |
#define KSAUDIO_SPEAKER_SURROUND_LEFT 0x00000008 |
| 796 |
#define KSAUDIO_SPEAKER_SURROUND_RIGHT 0x00000010 |
| 797 |
#define KSAUDIO_SPEAKER_SUBWOOFER 0x00000020 |
| 798 |
#define KSAUDIO_SPEAKER_LEFT_OF_CENTER 0x00000040 |
| 799 |
#define KSAUDIO_SPEAKER_RIGHT_OF_CENTER 0x00000080 |
| 800 |
#define KSAUDIO_SPEAKER_SURROUND_MONO 0x00000100 |
| 801 |
#define KSAUDIO_SPEAKER_SIDE_LEFT 0x00000200 |
| 802 |
#define KSAUDIO_SPEAKER_SIDE_RIGHT 0x00000400 |
| 803 |
#define KSAUDIO_SPEAKER_TOP 0x00000800 |
| 804 |
typedef struct tagDVD_MultichannelAudioAttributes { |
| 805 |
DVD_MUA_MixingInfo Info[8]; |
| 806 |
DVD_MUA_Coeff Coeff[8]; |
| 807 |
} DVD_MultichannelAudioAttributes; |
| 808 |
typedef struct tagDVD_PLAYBACK_LOCATION { |
| 809 |
ULONG TitleNum; |
| 810 |
ULONG ChapterNum; |
| 811 |
ULONG TimeCode; |
| 812 |
} DVD_PLAYBACK_LOCATION; |
| 813 |
typedef struct tagDVD_PLAYBACK_LOCATION2 { |
| 814 |
ULONG TitleNum; |
| 815 |
ULONG ChapterNum; |
| 816 |
DVD_HMSF_TIMECODE TimeCode; |
| 817 |
ULONG TimeCodeFlags; |
| 818 |
} DVD_PLAYBACK_LOCATION2; |
| 819 |
typedef struct tagDVD_SubpictureAttributes { |
| 820 |
DVD_SUBPICTURE_TYPE Type; |
| 821 |
DVD_SUBPICTURE_CODING CodingMode; |
| 822 |
LCID Language; |
| 823 |
DVD_SUBPICTURE_LANG_EXT LanguageExtension; |
| 824 |
} DVD_SubpictureAttributes; |
| 825 |
typedef struct tagDVD_TIMECODE { |
| 826 |
ULONG Hours1:4; |
| 827 |
ULONG Hours10:4; |
| 828 |
ULONG Minutes1:4; |
| 829 |
ULONG Minutes10:4; |
| 830 |
ULONG Seconds1:4; |
| 831 |
ULONG Seconds10:4; |
| 832 |
ULONG Frames1:4; |
| 833 |
ULONG Frames10:2; |
| 834 |
ULONG FrameRateCode:2; |
| 835 |
} DVD_TIMECODE; |
| 836 |
typedef struct tagDVD_VideoAttributes { |
| 837 |
BOOL fPanscanPermitted; |
| 838 |
BOOL fLetterboxPermitted; |
| 839 |
ULONG ulAspectX; |
| 840 |
ULONG ulAspectY; |
| 841 |
ULONG ulFrameRate; |
| 842 |
ULONG ulFrameHeight; |
| 843 |
DVD_VIDEO_COMPRESSION Compression; |
| 844 |
BOOL fLine21Field1InGOP; |
| 845 |
BOOL fLine21Field2InGOP; |
| 846 |
ULONG ulSourceResolutionX; |
| 847 |
ULONG ulSourceResolutionY; |
| 848 |
BOOL fIsSourceLetterboxed; |
| 849 |
BOOL fIsFilmMode; |
| 850 |
} DVD_VideoAttributes; |
| 851 |
struct tagDVD_MenuAttributes { |
| 852 |
BOOL fCompatibleRegion[8]; |
| 853 |
DVD_VideoAttributes VideoAttributes; |
| 854 |
BOOL fAudioPresent; |
| 855 |
DVD_AudioAttributes AudioAttributes; |
| 856 |
BOOL fSubpicturePresent; |
| 857 |
DVD_SubpictureAttributes SubpictureAttributes; |
| 858 |
} DVD_MenuAttributes; |
| 859 |
typedef struct tagDVD_TitleMainAttributes { |
| 860 |
DVD_TITLE_APPMODE AppMode; |
| 861 |
DVD_VideoAttributes VideoAttributes; |
| 862 |
ULONG ulNumberOfAudioStreams; |
| 863 |
DVD_AudioAttributes AudioAttributes[8]; |
| 864 |
DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8]; |
| 865 |
ULONG ulNumberOfSubpictureStreams; |
| 866 |
DVD_SubpictureAttributes SubpictureAttributes[32]; |
| 867 |
} DVD_TitleAttributes; |
| 868 |
typedef struct tag_DVINFO { |
| 869 |
DWORD dwDVAAuxSrc; |
| 870 |
DWORD dwDVAAuxCtl; |
| 871 |
DWORD dwDVAAuxSrc1; |
| 872 |
DWORD dwDVAAuxCtl1; |
| 873 |
DWORD dwDVVAuxSrc; |
| 874 |
DWORD dwDVVAuxCtl; |
| 875 |
DWORD dwDVReserved[2]; |
| 876 |
} DVINFO,*PDVINFO; |
| 877 |
/*************** |
| 878 |
#define MAX_FILTER_NAME 128 |
| 879 |
typedef struct _FilterInfo { |
| 880 |
WCHAR achName[MAX_FILTER_NAME]; |
| 881 |
IFilterGraph *pGraph; |
| 882 |
} FILTER_INFO; |
| 883 |
***************/ |
| 884 |
typedef struct _NORMALIZEDRECT { |
| 885 |
float left; |
| 886 |
float top; |
| 887 |
float right; |
| 888 |
float bottom; |
| 889 |
} NORMALIZEDRECT,*PNORMALIZEDRECT; |
| 890 |
#define MAX_PIN_NAME 128 |
| 891 |
typedef struct _PinInfo { |
| 892 |
IBaseFilter *pFilter; |
| 893 |
PIN_DIRECTION dir; |
| 894 |
WCHAR achName[MAX_PIN_NAME]; |
| 895 |
} PIN_INFO; |
| 896 |
typedef struct{ |
| 897 |
QualityMessageType Type; |
| 898 |
long Proportion; |
| 899 |
REFERENCE_TIME Late; |
| 900 |
REFERENCE_TIME TimeStamp; |
| 901 |
} Quality; |
| 902 |
typedef struct { |
| 903 |
CLSID clsMedium; |
| 904 |
DWORD dw1; |
| 905 |
DWORD dw2; |
| 906 |
} REGPINMEDIUM; |
| 907 |
typedef struct { |
| 908 |
DWORD dwFlags; |
| 909 |
UINT cInstances; |
| 910 |
UINT nMediaTypes; |
| 911 |
const REGPINTYPES *lpMediaType; |
| 912 |
UINT nMediums; |
| 913 |
const REGPINMEDIUM *lpMedium; |
| 914 |
const CLSID *clsPinCategory; |
| 915 |
} REGFILTERPINS2; |
| 916 |
typedef struct { |
| 917 |
DWORD dwVersion; |
| 918 |
DWORD dwMerit; |
| 919 |
union { |
| 920 |
struct { |
| 921 |
ULONG cPins; |
| 922 |
const REGFILTERPINS *rgPins; |
| 923 |
}; |
| 924 |
struct { |
| 925 |
ULONG cPins2; |
| 926 |
const REGFILTERPINS2 *rgPins2; |
| 927 |
}; |
| 928 |
}; |
| 929 |
} REGFILTER2; |
| 930 |
typedef struct { |
| 931 |
ULONG stream_id; |
| 932 |
DWORD dwMediaSampleContent; |
| 933 |
ULONG ulSubstreamFilterValue; |
| 934 |
int iDataOffset; |
| 935 |
} STREAM_ID_MAP; |
| 936 |
#define MPEG2_PROGRAM_STREAM_MAP 0x00000000 |
| 937 |
#define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001 |
| 938 |
#define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002 |
| 939 |
#define MPEG2_PROGRAM_PACK_HEADER 0x00000003 |
| 940 |
#define MPEG2_PROGRAM_PES_STREAM 0x00000004 |
| 941 |
#define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005 |
| 942 |
#define SUBSTREAM_FILTER_VAL_NONE 0x10000000 |
| 943 |
typedef struct tagTIMECODE { |
| 944 |
WORD wFrameRate; |
| 945 |
WORD wFrameFract; |
| 946 |
DWORD dwFrames; |
| 947 |
} TIMECODE; |
| 948 |
#define ED_FORMAT_SMPTE_30 0x00001196 |
| 949 |
#define ED_FORMAT_SMPTE_30DROP 0x00001197 |
| 950 |
#define ED_FORMAT_SMPTE_25 0x00001198 |
| 951 |
#define ED_FORMAT_SMPTE_24 0x00001199 |
| 952 |
typedef struct tagTIMECODE_SAMPLE { |
| 953 |
LONGLONG qwTick; |
| 954 |
TIMECODE timecode; |
| 955 |
DWORD dwUser; |
| 956 |
DWORD dwFlags; |
| 957 |
} TIMECODE_SAMPLE; |
| 958 |
/*#define AM_TIMECODE_FLAG_FCM */ |
| 959 |
/*#define AM_TIMECODE_FLAG_CF */ |
| 960 |
/*#define AM_TIMECODE_FLAG_FIELD */ |
| 961 |
/*#define AM_TIMECODE_FLAG_DF */ |
| 962 |
/*#define AM_TIMECODE_COLORFRAME */ |
| 963 |
/*#define AM_TIMECODE_COLORSEQUENCE */ |
| 964 |
/*#define AM_TIMECODE_FILMSEQUENCE_TYPE */ |
| 965 |
typedef struct _VIDEO_STREAM_CONFIG_CAPS { |
| 966 |
GUID guid; |
| 967 |
ULONG VideoStandard; |
| 968 |
SIZE InputSize; |
| 969 |
SIZE MinCroppingSize; |
| 970 |
SIZE MaxCroppingSize; |
| 971 |
int CropGranularityX; |
| 972 |
int CropGranularityY; |
| 973 |
int CropAlignX; |
| 974 |
int CropAlignY; |
| 975 |
SIZE MinOutputSize; |
| 976 |
SIZE MaxOutputSize; |
| 977 |
int OutputGranularityX; |
| 978 |
int OutputGranularityY; |
| 979 |
int StretchTapsX; |
| 980 |
int StretchTapsY; |
| 981 |
int ShrinkTapsX; |
| 982 |
int ShrinkTapsY; |
| 983 |
LONGLONG MinFrameInterval; |
| 984 |
LONGLONG MaxFrameInterval; |
| 985 |
LONG MinBitsPerSecond; |
| 986 |
LONG MaxBitsPerSecond; |
| 987 |
} VIDEO_STREAM_CONFIG_CAPS; |
| 988 |
typedef struct tagVMRALLOCATIONINFO { |
| 989 |
DWORD dwFlags; |
| 990 |
LPBITMAPINFOHEADER lpHdr; |
| 991 |
LPDDPIXELFORMAT lpPixFmt; |
| 992 |
SIZE szAspectRatio; |
| 993 |
DWORD dwMinBuffers; |
| 994 |
DWORD dwMaxBuffers; |
| 995 |
DWORD dwInterlaceFlags; |
| 996 |
SIZE szNativeSize; |
| 997 |
} VMRALLOCATIONINFO; |
| 998 |
/********** |
| 999 |
typedef struct _VMRALPHABITMAP { |
| 1000 |
DWORD dwFlags; |
| 1001 |
HDC hdc; |
| 1002 |
LPDIRECTDRAWSURFACE7 pDDS; |
| 1003 |
RECT rSrc; |
| 1004 |
NORMALIZEDRECT rDest; |
| 1005 |
FLOAT fAlpha; |
| 1006 |
COLORREF clrSrcKey; |
| 1007 |
} VMRALPHABITMAP,*PVMRALPHABITMAP; |
| 1008 |
**********/ |
| 1009 |
#define VMRBITMAP_DISABLE 0x00000001 |
| 1010 |
#define VMRBITMAP_HDC 0x00000002 |
| 1011 |
#define VMRBITMAP_ENTIREDDS 0x00000004 |
| 1012 |
#define VMRBITMAP_SRCCOLORKEY 0x00000008 |
| 1013 |
#define VMRBITMAP_SRCRECT 0x00000010 |
| 1014 |
typedef struct _VMRDeinterlaceCaps { |
| 1015 |
DWORD dwSize; |
| 1016 |
DWORD dwNumPreviousOutputFrames; |
| 1017 |
DWORD dwNumForwardRefSamples; |
| 1018 |
DWORD dwNumBackwardRefSamples; |
| 1019 |
VMRDeinterlaceTech DeinterlaceTechnology; |
| 1020 |
} VMRDeinterlaceCaps; |
| 1021 |
typedef struct _VMRFrequency { |
| 1022 |
DWORD dwNumerator; |
| 1023 |
DWORD dwDenominator; |
| 1024 |
} VMRFrequency; |
| 1025 |
typedef struct tagVMRGUID { |
| 1026 |
GUID *pGUID; |
| 1027 |
GUID GUID; |
| 1028 |
} VMRGUID; |
| 1029 |
typedef struct tagVMRMONITORINFO { |
| 1030 |
VMRGUID guid; |
| 1031 |
RECT rcMonitor; |
| 1032 |
HMONITOR hMon; |
| 1033 |
DWORD dwFlags; |
| 1034 |
wchar_t szDevice[32]; |
| 1035 |
wchar_t szDescription[256]; |
| 1036 |
} VMRMONITORINFO; |
| 1037 |
/********** |
| 1038 |
typedef struct tagVMRPRESENTATIONINFO { |
| 1039 |
DWORD dwFlags; |
| 1040 |
LPDIRECTDRAWSURFACE7 lpSurf; |
| 1041 |
REFERENCE_TIME rtStart; |
| 1042 |
REFERENCE_TIME rtEnd; |
| 1043 |
SIZE szAspectRatio; |
| 1044 |
RECT rcSrc; |
| 1045 |
RECT rcDst; |
| 1046 |
DWORD dwTypeSpecificFlags; |
| 1047 |
DWORD dwInterlaceFlags; |
| 1048 |
} VMRPRESENTATIONINFO; |
| 1049 |
**********/ |
| 1050 |
typedef struct _VMRVideoDesc { |
| 1051 |
DWORD dwSize; |
| 1052 |
DWORD dwSampleWidth; |
| 1053 |
DWORD dwSampleHeight; |
| 1054 |
BOOL SingleFieldPerSample; |
| 1055 |
DWORD dwFourCC; |
| 1056 |
VMRFrequency InputSampleFreq; |
| 1057 |
VMRFrequency OutputFrameFreq; |
| 1058 |
} VMRVideoDesc; |
| 1059 |
/********** |
| 1060 |
typedef struct _VMRVIDEOSTREAMINFO { |
| 1061 |
LPDIRECTDRAWSURFACE7 pddsVideoSurface; |
| 1062 |
DWORD dwWidth; |
| 1063 |
DWORD dwHeight; |
| 1064 |
DWORD dwStrmID; |
| 1065 |
FLOAT fAlpha; |
| 1066 |
DDCOLORKEY ddClrKey; |
| 1067 |
NORMALIZEDRECT rNormal; |
| 1068 |
} VMRVIDEOSTREAMINFO; |
| 1069 |
**********/ |
| 1070 |
/*--- DirectShow Reference - Interfaces */ |
| 1071 |
#define INTERFACE IAMAnalogVideoDecoder |
| 1072 |
DECLARE_INTERFACE_(IAMAnalogVideoDecoder, IUnknown) |
| 1073 |
{ |
| 1074 |
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; |
| 1075 |
STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| 1076 |
STDMETHOD_(ULONG,Release)(THIS) PURE; |
| 1077 |
STDMETHOD_(HRESULT,get_AvailableTVFormats)(THIS_ long*) PURE; |
| 1078 |
STDMETHOD_(HRESULT,get_HorizontalLocked)(THIS_ long*) PURE; |
| 1079 |
STDMETHOD_(HRESULT,get_NumberOfLines)(THIS_ long*) PURE; |
| 1080 |
STDMETHOD_(HRESULT,get_OutputEnable)(THIS_ long*) PURE; |
| 1081 |
STDMETHOD_(HRESULT,get_TVFormat)(THIS_ long*) PURE; |
| 1082 |
STDMETHOD_(HRESULT,get_VCRHorizontalLocking)(THIS_ long*) PURE; |
| 1083 |
STDMETHOD_(HRESULT,put_OutputEnable)(THIS_ long) PURE; |
| 1084 |
STDMETHOD_(HRESULT,put_TVFormat)(THIS_ long) PURE; |
| 1085 |
STDMETHOD_(HRESULT,put_VCRHorizontalLocking)(THIS_ long) PURE; |
| 1086 |
}; |
| 1087 |
#undef INTERFACE |
| 1088 |
#define INTERFACE IAMAudioInputMixer |
| 1089 |
DECLARE_INTERFACE_(IAMAudioInputMixer, IUnknown) |
| 1090 |
{ |
| 1091 |
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; |
| 1092 |
STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| 1093 |
STDMETHOD_(ULONG,Release)(THIS) PURE; |
| 1094 |
STDMETHOD_(HRESULT,get_Bass)(THIS_ double*) PURE; |
| 1095 |
STDMETHOD_(HRESULT,get_BassRange)(THIS_ double*) PURE; |
| 1096 |
STDMETHOD_(HRESULT,get_Enable)(THIS_ BOOL*) PURE; |
| 1097 |
STDMETHOD_(HRESULT,get_Loudness)(THIS_ BOOL*) PURE; |
| 1098 |
STDMETHOD_(HRESULT,get_MixLevel)(THIS_ double*) PURE; |
| 1099 |
STDMETHOD_(HRESULT,get_Mono)(THIS_ BOOL*) PURE; |
| 1100 |
STDMETHOD_(HRESULT,get_Pan)(THIS_ double*) PURE; |
| 1101 |
STDMETHOD_(HRESULT,get_Treble)(THIS_ double*) PURE; |
| 1102 |
STDMETHOD_(HRESULT,get_TrebleRange)(THIS_ double*) PURE; |
| 1103 |
STDMETHOD_(HRESULT,put_Bass)(THIS_ double) PURE; |
| 1104 |
STDMETHOD_(HRESULT,put_Enable)(THIS_ BOOL) PURE; |
| 1105 |
STDMETHOD_(HRESULT,put_Loudness)(THIS_ BOOL) PURE; |
| 1106 |
STDMETHOD_(HRESULT,put_MixLevel)(THIS_ double) PURE; |
| 1107 |
STDMETHOD_(HRESULT,put_Mono)(THIS_ BOOL) PURE; |
| 1108 |
STDMETHOD_(HRESULT,put_Pan)(THIS_ double) PURE; |
| 1109 |
STDMETHOD_(HRESULT,put_Treble)(THIS_ double) PURE; |
| 1110 |
}; |
| 1111 |
#undef INTERFACE |
| 1112 |
#define INTERFACE IAMAudioRendererStats |
| 1113 |
DECLARE_INTERFACE_(IAMAudioRendererStats, IUnknown) |
| 1114 |
{ |
| 1115 |
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; |
| 1116 |
STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| 1117 |
STDMETHOD_(ULONG,Release)(THIS) PURE; |
| 1118 |
STDMETHOD_(HRESULT,GetStatParam)(THIS_ DWORD,DWORD*,DWORD*) PURE; |
| 1119 |
}; |
| 1120 |
#undef INTERFACE |
| 1121 |
#define INTERFACE IAMBufferNegotiation |
| 1122 |
DECLARE_INTERFACE_(IAMBufferNegotiation, IUnknown) |
| 1123 |
{ |
| 1124 |
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; |
| 1125 |
STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| 1126 |
STDMETHOD_(ULONG,Release)(THIS) PURE; |
| 1127 |
STDMETHOD_(HRESULT,GetAllocatorProperties)(THIS_ ALLOCATOR_PROPERTIES*) PURE; |
| 1128 |
STDMETHOD_(HRESULT,SuggestAllocatorProperties)(THIS_ const ALLOCATOR_PROPERTIES*) PURE; |
| 1129 |
}; |
| 1130 |
#undef INTERFACE |
| 1131 |
#define INTERFACE IAMCameraControl |
| 1132 |
DECLARE_INTERFACE_(IAMCameraControl, IUnknown) |
| 1133 |
{ |
| 1134 |
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; |
| 1135 |
STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| 1136 |
STDMETHOD_(ULONG,Release)(THIS) PURE; |
| 1137 |
STDMETHOD_(HRESULT,Get)(THIS_ long,long*,long*) PURE; |
| 1138 |
STDMETHOD_(HRESULT,GetRange)(THIS_ long,long*,long*,long*,long*,long*) PURE; |
| 1139 |
STDMETHOD_(HRESULT,Set)(THIS_ long,long,long) PURE; |
| 1140 |
}; |
| 1141 |
#undef INTERFACE |
| 1142 |
|
| 1143 |
#define INTERFACE IAMCertifiedOutputProtection |
| 1144 |
DECLARE_INTERFACE_(IAMCertifiedOutputProtection, IUnknown) |
| 1145 |
{ |
| 1146 |
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; |
| 1147 |
STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| 1148 |
STDMETHOD_(ULONG,Release)(THIS) PURE; |
| 1149 |
STDMETHOD_(HRESULT,KeyExchange)(THIS_ GUID*,BYTE**,DWORD*) PURE; |
| 1150 |
STDMETHOD_(HRESULT,ProtectionCommand)(THIS_ const AMCOPPCommand*) PURE; |
| 1151 |
STDMETHOD_(HRESULT,ProtectionStatus)(THIS_ const AMCOPPStatusInput*,AMCOPPStatusOutput*) PURE; |
| 1152 |
STDMETHOD_(HRESULT,SessionSequenceStart)(THIS_ const AMCOPPSignature*) PURE; |
| 1153 |
}; |
| 1154 |
#undef INTERFACE |
| 1155 |
|
| 1156 |
#ifdef __cplusplus |
| 1157 |
} |
| 1158 |
#endif |
| 1159 |
#endif |