diff -r 000000000000 -r 76b1f169d9fe mingw-5.1.4/win32/include/strmif.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mingw-5.1.4/win32/include/strmif.h Fri Apr 03 17:16:45 2009 +0100 @@ -0,0 +1,1159 @@ +#ifndef _STRMIF_H +#define _STRMIF_H +#if __GNUC__ >= 3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/*--- DirectShow Reference - DirectShow Enumerated Types - TVAudioMode Enumeration */ +#define TVAUDIO_MODE_MASK 0x000000FF +#define TVAUDIO_PRESET_MASK 0x0000FF00 +/*--- DirectShow Reference - DirectShow Data Types */ +typedef LONGLONG REFERENCE_TIME; +typedef double REFTIME; +/*--- DirectShow Reference - Constants and GUIDs */ +enum { + MERIT_PREFERRED = 0x800000, + MERIT_NORMAL = 0x600000, + MERIT_UNLIKELY = 0x400000, + MERIT_DO_NOT_USE = 0x200000, + MERIT_SW_COMPRESSOR = 0x100000, + MERIT_HW_COMPRESSOR = 0x100050 +}; +/*--- DirectShow Reference - DirectShow Enumerated Types */ +typedef enum _AM_AUDIO_RENDERER_STAT_PARAM { + AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1, + AM_AUDREND_STAT_PARAM_SLAVE_MODE, + AM_AUDREND_STAT_PARAM_SILENCE_DUR, + AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR, + AM_AUDREND_STAT_PARAM_DISCONTINUITIES, + AM_AUDREND_STAT_PARAM_SLAVE_RATE, + AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR, + AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR, + AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR, + AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR, + AM_AUDREND_STAT_PARAM_BUFFERFULLNESS, + AM_AUDREND_STAT_PARAM_JITTER +} AM_AUDIO_RENDERER_STAT_PARAM; +typedef enum _AM_DVD_GRAPH_FLAGS { + AM_DVD_HWDEC_PREFER = 0x01, + AM_DVD_HWDEC_ONLY = 0x02, + AM_DVD_SWDEC_PREFER = 0x04, + AM_DVD_SWDEC_ONLY = 0x08, + AM_DVD_NOVPE = 0x100, + AM_DVD_VMR9_ONLY = 0x800, + AM_DVD_EVR_ONLY = 0x1000 +} AM_DVD_GRAPH_FLAGS; +typedef enum _AM_DVD_STREAM_FLAGS { + AM_DVD_STREAM_VIDEO = 0x01, + AM_DVD_STREAM_AUDIO = 0x02, + AM_DVD_STREAM_SUBPIC = 0x04 +} AM_DVD_STREAM_FLAGS; +typedef enum _AM_FILTER_MISC_FLAGS { + AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x00000001, + AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x00000002 +} AM_FILTER_MISC_FLAGS; +typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS { + AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001, + AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002, + AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004 +} AM_GRAPH_CONFIG_RECONNECT_FLAGS; +typedef enum _AM_INTF_SEARCH_FLAGS { + AM_INTF_SEARCH_INPUT_PIN = 0x00000001, + AM_INTF_SEARCH_OUTPUT_PIN = 0x00000002, + AM_INTF_SEARCH_FILTER = 0x00000004 +} AM_INTF_SEARCH_FLAGS; +typedef enum _AM_OVERLAY_NOTIFY_FLAGS { + AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x00000001, + AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x00000002, + AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x00000004 +} AM_OVERLAY_NOTIFY_FLAGS; +typedef enum _AM_PIN_CONNECTION_BLOCK_FLAGS { + AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001, + AM_PIN_PUSH_THROUGH_DATA = 0x00000002 +} AM_PIN_CONNECTION_BLOCK_FLAGS; +typedef enum _AM_PUSHSOURCE_FLAGS { + AM_PUSHSOURCECAPS_INTERNAL_RM = 0x00000001, + AM_PUSHSOURCECAPS_NOT_LIVE = 0x00000002, + AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x00000004, + AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x00010000 +} AM_PUSHSOURCE_FLAGS; +typedef enum tagAM_SAMPLE_PROPERTY_FLAGS { + AM_SAMPLE_SPLICEPOINT = 0x01, + AM_SAMPLE_PREROLL = 0x02, + AM_SAMPLE_DATADISCONTINUITY = 0x04, + AM_SAMPLE_TYPECHANGED = 0x08, + AM_SAMPLE_TIMEVALID = 0x10, + AM_SAMPLE_TIMEDISCONTINUITY = 0x40, + AM_SAMPLE_FLUSH_ON_PAUSE = 0x80, + AM_SAMPLE_STOPVALID = 0x100, + AM_SAMPLE_ENDOFSTREAM = 0x200, + AM_STREAM_MEDIA = 0, + AM_STREAM_CONTROL = 1 +} AM_SAMPLE_PROPERTY_FLAGS; +typedef enum AM_SEEKING_SeekingCapabilities { + AM_SEEKING_CanSeekAbsolute = 0x1, + AM_SEEKING_CanSeekForwards = 0x2, + AM_SEEKING_CanSeekBackwards = 0x4, + AM_SEEKING_CanGetCurrentPos = 0x8, + AM_SEEKING_CanGetStopPos = 0x10, + AM_SEEKING_CanGetDuration = 0x20, + AM_SEEKING_CanPlayBackwards = 0x40, + AM_SEEKING_CanDoSegments = 0x80, + AM_SEEKING_Source = 0x100 +} AM_SEEKING_SEEKING_CAPABILITIES; +typedef enum { + AM_STREAM_INFO_START_DEFINED = 0x00000001, + AM_STREAM_INFO_STOP_DEFINED = 0x00000002, + AM_STREAM_INFO_DISCARDING = 0x00000004, + AM_STREAM_INFO_STOP_SEND_EXTRA = 0x00000010 +} AM_STREAM_INFO_FLAGS; +enum AMOVERLAYFX { + AMOVERFX_NOFX = 0x00000000, + AMOVERFX_MIRRORLEFTRIGHT = 0x00000002, + AMOVERFX_MIRRORUPDOWN = 0x00000004, + AMOVERFX_DEINTERLACE = 0x00000008 +}; +typedef enum _AMRESCTL_RESERVEFLAGS { + AMRESCTL_RESERVEFLAGS_RESERVE = 0x00, + AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x01 +} AMRESCTL_RESERVEFLAGS; +typedef enum tagAMTunerModeType { + AMTUNER_MODE_DEFAULT = 0x0000, + AMTUNER_MODE_TV = 0x0001, + AMTUNER_MODE_FM_RADIO = 0x0002, + AMTUNER_MODE_AM_RADIO = 0x0004, + AMTUNER_MODE_DSS = 0x0008 +} AMTunerModeType; +typedef enum tagAnalogVideoStandard { + AnalogVideo_None = 0x00000000, + AnalogVideo_NTSC_M = 0x00000001, + AnalogVideo_NTSC_M_J = 0x00000002, + AnalogVideo_NTSC_433 = 0x00000004, + AnalogVideo_PAL_B = 0x00000010, + AnalogVideo_PAL_D = 0x00000020, + AnalogVideo_PAL_H = 0x00000080, + AnalogVideo_PAL_I = 0x00000100, + AnalogVideo_PAL_M = 0x00000200, + AnalogVideo_PAL_N = 0x00000400, + AnalogVideo_PAL_60 = 0x00000800, + AnalogVideo_SECAM_B = 0x00001000, + AnalogVideo_SECAM_D = 0x00002000, + AnalogVideo_SECAM_G = 0x00004000, + AnalogVideo_SECAM_H = 0x00008000, + AnalogVideo_SECAM_K = 0x00010000, + AnalogVideo_SECAM_K1 = 0x00020000, + AnalogVideo_SECAM_L = 0x00040000, + AnalogVideo_SECAM_L1 = 0x00080000, + AnalogVideo_PAL_N_COMBO = 0x00100000 +} AnalogVideoStandard; +typedef enum { + CameraControl_Flags_Auto = 0x0001, + CameraControl_Flags_Manual = 0x0002 +} CameraControlFlags; +typedef enum { + CameraControl_Pan = 1, + CameraControl_Tilt, + CameraControl_Roll, + CameraControl_Zoom, + CameraControl_Exposure, + CameraControl_Iris, + CameraControl_Focus +} CameraControlProperty; +typedef enum { + CompressionCaps_CanQuality = 0x01, + CompressionCaps_CanCrunch = 0x02, + CompressionCaps_CanKeyFrame = 0x04, + CompressionCaps_CanBFrame = 0x08, + CompressionCaps_CanWindow = 0x10 +} CompressionCaps; +typedef enum { + DECIMATION_LEGACY, + DECIMATION_USE_DECODER_ONLY, + DECIMATION_USE_VIDEOPORT_ONLY, + DECIMATION_USE_OVERLAY_ONLY, + DECIMATION_DEFAULT +} DECIMATION_USAGE; +typedef enum tagDVD_AUDIO_APPMODE { + DVD_AudioMode_None = 0, + DVD_AudioMode_Karaoke = 1, + DVD_AudioMode_Surround = 2, + DVD_AudioMode_Other = 3 +} DVD_AUDIO_APPMODE; +typedef enum tagDVD_AUDIO_FORMAT { + DVD_AudioFormat_AC3 = 0, + DVD_AudioFormat_MPEG1 = 1, + DVD_AudioFormat_MPEG1_DRC = 2, + DVD_AudioFormat_MPEG2 = 3, + DVD_AudioFormat_MPEG2_DRC = 4, + DVD_AudioFormat_LPCM = 5, + DVD_AudioFormat_DTS = 6, + DVD_AudioFormat_SDDS = 7, + DVD_AudioFormat_Other = 8 +} DVD_AUDIO_FORMAT; +typedef enum tagDVD_AUDIO_LANG_EXT { + DVD_AUD_EXT_NotSpecified = 0, + DVD_AUD_EXT_Captions = 1, + DVD_AUD_EXT_VisuallyImpaired = 2, + DVD_AUD_EXT_DirectorComments1 = 3, + DVD_AUD_EXT_DirectorComments2 = 4 +} DVD_AUDIO_LANG_EXT; +typedef enum { + DVD_CMD_FLAG_None = 0x00000000, + DVD_CMD_FLAG_Flush = 0x00000001, + DVD_CMD_FLAG_SendEvents = 0x00000002, + DVD_CMD_FLAG_Block = 0x00000004, + DVD_CMD_FLAG_StartWhenRendered = 0x00000008, + DVD_CMD_FLAG_EndAfterRendered = 0x00000010 +} DVD_CMD_FLAGS; +typedef enum tagDVD_DISC_SIDE { + DVD_SIDE_A, + DVD_SIDE_B +} DVD_DISC_SIDE; +typedef enum tagDVD_DOMAIN { + DVD_DOMAIN_FirstPlay, + DVD_DOMAIN_VideoManagerMenu, + DVD_DOMAIN_VideoTitleSetMenu, + DVD_DOMAIN_Title, + DVD_DOMAIN_Stop +} DVD_DOMAIN; +typedef enum tagDVD_FRAMERATE { + DVD_FPS_25 = 1, + DVD_FPS_30NonDrop = 3 +} DVD_FRAMERATE; +typedef enum tagDVD_KARAOKE_ASSIGNMENT { + DVD_Assignment_reserved0 = 0, + DVD_Assignment_reserved1 = 1, + DVD_Assignment_LR = 2, + DVD_Assignment_LRM = 3, + DVD_Assignment_LR1 = 4, + DVD_Assignment_LRM1 = 5, + DVD_Assignment_LR12 = 6, + DVD_Assignment_LRM12 = 7 +} DVD_KARAOKE_ASSIGNMENT; +typedef enum tagDVD_KARAOKE_CONTENTS { + DVD_Karaoke_GuideVocal1 = 0x0001, + DVD_Karaoke_GuideVocal2 = 0x0002, + DVD_Karaoke_GuideMelody1 = 0x0004, + DVD_Karaoke_GuideMelody2 = 0x0008, + DVD_Karaoke_GuideMelodyA = 0x0010, + DVD_Karaoke_GuideMelodyB = 0x0020, + DVD_Karaoke_SoundEffectA = 0x0040, + DVD_Karaoke_SoundEffectB = 0x0080 +} DVD_KARAOKE_CONTENTS; +typedef enum tagDVD_KARAOKE_DOWNMIX { + DVD_Mix_0to0 = 0x0001, + DVD_Mix_1to0 = 0x0002, + DVD_Mix_2to0 = 0x0004, + DVD_Mix_3to0 = 0x0008, + DVD_Mix_4to0 = 0x0010, + DVD_Mix_Lto0 = 0x0020, + DVD_Mix_Rto0 = 0x0040, + DVD_Mix_0to1 = 0x0100, + DVD_Mix_1to1 = 0x0200, + DVD_Mix_2to1 = 0x0400, + DVD_Mix_3to1 = 0x0800, + DVD_Mix_4to1 = 0x1000, + DVD_Mix_Lto1 = 0x2000, + DVD_Mix_Rto1 = 0x4000 +} DVD_KARAOKE_DOWNMIX; +typedef enum tagDVD_MENU_ID { + DVD_MENU_Title = 2, + DVD_MENU_Root = 3, + DVD_MENU_Subpicture = 4, + DVD_MENU_Audio = 5, + DVD_MENU_Angle = 6, + DVD_MENU_Chapter = 7 +} DVD_MENU_ID; +typedef enum { + DVD_ResetOnStop = 1, + DVD_NotifyParentalLevelChange = 2, + DVD_HMSF_TimeCodeEvents = 3, + DVD_AudioDuringFFwdRew = 4, + DVD_EnableNonblockingAPIs = 5, + DVD_CacheSizeInMB = 6, + DVD_EnablePortableBookmarks = 7 +} DVD_OPTION_FLAG; +typedef enum tagDVD_PARENTAL_LEVEL { + DVD_PARENTAL_LEVEL_8 = 0x8000, + DVD_PARENTAL_LEVEL_7 = 0x4000, + DVD_PARENTAL_LEVEL_6 = 0x2000, + DVD_PARENTAL_LEVEL_5 = 0x1000, + DVD_PARENTAL_LEVEL_4 = 0x0800, + DVD_PARENTAL_LEVEL_3 = 0x0400, + DVD_PARENTAL_LEVEL_2 = 0x0200, + DVD_PARENTAL_LEVEL_1 = 0x0100 +} DVD_PARENTAL_LEVEL; +typedef enum tagDVD_PREFERRED_DISPLAY_MODE { + DISPLAY_CONTENT_DEFAULT = 0, + DISPLAY_16x9 = 1, + DISPLAY_4x3_PANSCAN_PREFERRED = 2, + DISPLAY_4x3_LETTERBOX_PREFERRED = 3 +} DVD_PREFERRED_DISPLAY_MODE; +typedef enum tagDVD_RELATIVE_BUTTON { + DVD_Relative_Upper = 1, + DVD_Relative_Lower = 2, + DVD_Relative_Left = 3, + DVD_Relative_Right = 4 +} DVD_RELATIVE_BUTTON; +typedef enum tagDVD_SUBPICTURE_LANG_EXT { + DVD_SP_EXT_NotSpecified = 0, + DVD_SP_EXT_Caption_Normal = 1, + DVD_SP_EXT_Caption_Big = 2, + DVD_SP_EXT_Caption_Children = 3, + DVD_SP_EXT_CC_Normal = 5, + DVD_SP_EXT_CC_Big = 6, + DVD_SP_EXT_CC_Children = 7, + DVD_SP_EXT_Forced = 9, + DVD_SP_EXT_DirectorComments_Normal = 13, + DVD_SP_EXT_DirectorComments_Big = 14, + DVD_SP_EXT_DirectorComments_Children = 15 +} DVD_SUBPICTURE_LANG_EXT; +typedef enum tagDVD_SUBPICTURE_TYPE { + DVD_SPType_NotSpecified = 0, + DVD_SPType_Language = 1, + DVD_SPType_Other = 2 +} DVD_SUBPICTURE_TYPE; +typedef enum tagDVD_SUBPICTURE_CODING { + DVD_SPCoding_RunLength = 0, + DVD_SPCoding_Extended = 1, + DVD_SPCoding_Other = 2 +} DVD_SUBPICTURE_CODING; +enum DVD_TextCharSet { + DVD_CharSet_Unicode = 0, + DVD_CharSet_ISO646 = 1, + DVD_CharSet_JIS_Roman_Kanji = 2, + DVD_CharSet_ISO8859_1 = 3, + DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4 +}; +enum DVD_TextStringType { + DVD_Struct_Volume = 0x01, + DVD_Struct_Title = 0x02, + DVD_Struct_ParentalID = 0x03, + DVD_Struct_PartOfTitle = 0x04, + DVD_Struct_Cell = 0x05, + DVD_Stream_Audio = 0x10, + DVD_Stream_Subpicture = 0x11, + DVD_Stream_Angle = 0x12, + DVD_Channel_Audio = 0x20, + DVD_General_Name = 0x30, + DVD_General_Comments = 0x31, + DVD_Title_Series = 0x38, + DVD_Title_Movie = 0x39, + DVD_Title_Video = 0x3a, + DVD_Title_Album = 0x3b, + DVD_Title_Song = 0x3c, + DVD_Title_Other = 0x3f, + DVD_Title_Sub_Series = 0x40, + DVD_Title_Sub_Movie = 0x41, + DVD_Title_Sub_Video = 0x42, + DVD_Title_Sub_Album = 0x43, + DVD_Title_Sub_Song = 0x44, + DVD_Title_Sub_Other = 0x47, + DVD_Title_Orig_Series = 0x48, + DVD_Title_Orig_Movie = 0x49, + DVD_Title_Orig_Video = 0x4a, + DVD_Title_Orig_Album = 0x4b, + DVD_Title_Orig_Song = 0x4c, + DVD_Title_Orig_Other = 0x4f, + DVD_Other_Scene = 0x50, + DVD_Other_Cut = 0x51, + DVD_Other_Take = 0x52 +}; +typedef enum tagDVD_TIMECODE_FLAGS { + DVD_TC_FLAG_25fps = 0x00000001, + DVD_TC_FLAG_30fps = 0x00000002, + DVD_TC_FLAG_DropFrame = 0x00000004, + DVD_TC_FLAG_Interpolated = 0x00000008 +} DVD_TIMECODE_FLAGS; +typedef enum tagDVD_TITLE_APPMODE { + DVD_AppMode_Not_Specified = 0, + DVD_AppMode_Karaoke = 1, + DVD_AppMode_Other = 3 +} DVD_TITLE_APPMODE; +typedef enum tagDVD_VIDEO_COMPRESSION { + DVD_VideoCompression_Other = 0, + DVD_VideoCompression_MPEG1 = 1, + DVD_VideoCompression_MPEG2 = 2 +} DVD_VIDEO_COMPRESSION; +typedef enum _DVDECODERRESOLUTION { + DVDECODERRESOLUTION_720x480 = 1000, + DVDECODERRESOLUTION_360x240 = 1001, + DVDECODERRESOLUTION_180x120 = 1002, + DVDECODERRESOLUTION_88x60 = 1003 +} DVDECODERRESOLUTION; +typedef enum _DVRESOLUTION { + DVRESOLUTION_FULL = 1000, + DVRESOLUTION_HALF = 1001, + DVRESOLUTION_QUARTER = 1002, + DVRESOLUTION_DC = 1003 +} DVRESOLUTION; +typedef enum _DVENCODERFORMAT { + DVENCODERFORMAT_DVSD = 2007, + DVENCODERFORMAT_DVHD = 2008, + DVENCODERFORMAT_DVSL = 2009 +} DVENCODERFORMAT; +typedef enum _DVENCODERRESOLUTION { + DVENCODERRESOLUTION_720x480 = 2012, + DVENCODERRESOLUTION_360x240 = 2013, + DVENCODERRESOLUTION_180x120 = 2014, + DVENCODERRESOLUTION_88x60 = 2015 +} DVENCODERRESOLUTION; +typedef enum _DVENCODERVIDEOFORMAT { + DVENCODERVIDEOFORMAT_NTSC = 2000, + DVENCODERVIDEOFORMAT_PAL = 2001 +} DVENCODERVIDEOFORMAT; +typedef enum _FilterState { + State_Stopped, + State_Paused, + State_Running +} FILTER_STATE; +typedef enum { + INTERLEAVE_NONE, + INTERLEAVE_CAPTURE, + INTERLEAVE_FULL, + INTERLEAVE_NONE_BUFFERED +} InterleavingMode; +typedef enum { + PhysConn_Video_Tuner = 1, + PhysConn_Video_Composite, + PhysConn_Video_SVideo, + PhysConn_Video_RGB, + PhysConn_Video_YRYBY, + PhysConn_Video_SerialDigital, + PhysConn_Video_ParallelDigital, + PhysConn_Video_SCSI, + PhysConn_Video_AUX, + PhysConn_Video_1394, + PhysConn_Video_USB, + PhysConn_Video_VideoDecoder, + PhysConn_Video_VideoEncoder, + PhysConn_Video_SCART, + PhysConn_Video_Black, + PhysConn_Audio_Tuner = 4096, + PhysConn_Audio_Line, + PhysConn_Audio_Mic, + PhysConn_Audio_AESDigital, + PhysConn_Audio_SPDIFDigital, + PhysConn_Audio_SCSI, + PhysConn_Audio_AUX, + PhysConn_Audio_1394, + PhysConn_Audio_USB, + PhysConn_Audio_AudioDecoder +} PhysicalConnectorType; +typedef enum _PinDirection { + PINDIR_INPUT, + PINDIR_OUTPUT +} PIN_DIRECTION; +typedef enum { + Famine, + Flood +} QualityMessageType; +enum { + REG_PINFLAG_B_ZERO = 0x1, + REG_PINFLAG_B_RENDERER = 0x2, + REG_PINFLAG_B_MANY = 0x4, + REG_PINFLAG_B_OUTPUT = 0x8 +} REG_PINFLAG; +typedef enum _REM_FILTER_FLAGS { + REMFILTERF_LEAVECONNECTED = 0x00000001 +} REM_FILTER_FLAGS; +typedef enum { + TunerInputCable, + TunerInputAntenna +} TunerInputType; +typedef enum tagTVAudioMode { + AMTVAUDIO_MODE_MONO = 0x0001, + AMTVAUDIO_MODE_STEREO = 0x0002, + AMTVAUDIO_MODE_LANG_A = 0x0010, + AMTVAUDIO_MODE_LANG_B = 0x0020, + AMTVAUDIO_MODE_LANG_C = 0x0040, + AMTVAUDIO_PRESET_STEREO = 0x0200, + AMTVAUDIO_PRESET_LANG_A = 0x1000, + AMTVAUDIO_PRESET_LANG_B = 0x2000, + AMTVAUDIO_PRESET_LANG_C = 0x4000 +} TVAudioMode; +typedef enum { + UOP_FLAG_Play_Title_Or_AtTime = 0x00000001, + UOP_FLAG_Play_Chapter = 0x00000002, + UOP_FLAG_Play_Title = 0x00000004, + UOP_FLAG_Stop = 0x00000008, + UOP_FLAG_ReturnFromSubMenu = 0x00000010, + UOP_FLAG_Play_Chapter_Or_AtTime = 0x00000020, + UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x00000040, + UOP_FLAG_PlayNext_Chapter = 0x00000080, + UOP_FLAG_Play_Forwards = 0x00000100, + UOP_FLAG_Play_Backwards = 0x00000200, + UOP_FLAG_ShowMenu_Title = 0x00000400, + UOP_FLAG_ShowMenu_Root = 0x00000800, + UOP_FLAG_ShowMenu_SubPic = 0x00001000, + UOP_FLAG_ShowMenu_Audio = 0x00002000, + UOP_FLAG_ShowMenu_Angle = 0x00004000, + UOP_FLAG_ShowMenu_Chapter = 0x00008000, + UOP_FLAG_Resume = 0x00010000, + UOP_FLAG_Select_Or_Activate_Button = 0x00020000, + UOP_FLAG_Still_Off = 0x00040000, + UOP_FLAG_Pause_On = 0x00080000, + UOP_FLAG_Select_Audio_Stream = 0x00100000, + UOP_FLAG_Select_SubPic_Stream = 0x00200000, + UOP_FLAG_Select_Angle = 0x00400000, + UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x00800000, + UOP_FLAG_Select_Video_Mode_Preference = 0x01000000 +} VALID_UOP_FLAG; +typedef enum { + VfwCaptureDialog_Source = 0x01, + VfwCaptureDialog_Format = 0x02, + VfwCaptureDialog_Display = 0x04 +} VfwCaptureDialogs; +typedef enum { + VfwCompressDialog_Config = 0x01, + VfwCompressDialog_About = 0x02, + VfwCompressDialog_QueryConfig = 0x04, + VfwCompressDialog_QueryAbout = 0x08 +} VfwCompressDialogs; +typedef enum tagVideoControlFlags { + VideoControlFlag_FlipHorizontal = 0x0001, + VideoControlFlag_FlipVertical = 0x0002, + VideoControlFlag_ExternalTriggerEnable = 0x0004, + VideoControlFlag_Trigger = 0x0008 +} VideoControlFlags; +typedef enum { + ConstantBitRate = 0, + VariableBitRateAverage, + VariableBitRatePeak +} VIDEOENCODER_BITRATE_MODE; +typedef enum tagVideoProcAmpFlags { + VideoProcAmp_Flags_Auto = 0x0001, + VideoProcAmp_Flags_Manual = 0x0002 +} VideoProcAmpFlags; +typedef enum tagVideoProcAmpProperty { + VideoProcAmp_Brightness, + VideoProcAmp_Contrast, + VideoProcAmp_Hue, + VideoProcAmp_Saturation, + VideoProcAmp_Sharpness, + VideoProcAmp_Gamma, + VideoProcAmp_ColorEnable, + VideoProcAmp_WhiteBalance, + VideoProcAmp_BacklightCompensation, + VideoProcAmp_Gain +} VideoProcAmpProperty; +enum VMR_ASPECT_RATIO_MODE { + VMR_ARMODE_NONE, + VMR_ARMODE_LETTER_BOX +}; +typedef enum { + DeinterlacePref_NextBest = 0x01, + DeinterlacePref_BOB = 0x02, + DeinterlacePref_Weave = 0x04, + DeinterlacePref_Mask = 0x07 +} VMRDeinterlacePrefs; +typedef enum { + DeinterlaceTech_Unknown = 0x0000, + DeinterlaceTech_BOBLineReplicate = 0x0001, + DeinterlaceTech_BOBVerticalStretch = 0x0002, + DeinterlaceTech_MedianFiltering = 0x0004, + DeinterlaceTech_EdgeFiltering = 0x0010, + DeinterlaceTech_FieldAdaptive = 0x0020, + DeinterlaceTech_PixelAdaptive = 0x0040, + DeinterlaceTech_MotionVectorSteered = 0x0080 +} VMRDeinterlaceTech; +typedef enum { + MixerPref_NoDecimation = 0x00000001, + MixerPref_DecimateOutput = 0x00000002, + MixerPref_ARAdjustXorY = 0x00000004, + MixerPref_DecimationReserved = 0x00000008, + MixerPref_DecimateMask = 0x0000000F, + MixerPref_BiLinearFiltering = 0x00000010, + MixerPref_PointFiltering = 0x00000020, + MixerPref_FilteringMask = 0x000000F0, + MixerPref_RenderTargetRGB = 0x00000100, + MixerPref_RenderTargetYUV = 0x00001000, + MixerPref_RenderTargetYUV420 = 0x00000200, + MixerPref_RenderTargetYUV422 = 0x00000400, + MixerPref_RenderTargetYUV444 = 0x00000800, + MixerPref_RenderTargetReserved = 0x0000E000, + MixerPref_RenderTargetMask = 0x0000FF00, + MixerPref_DynamicSwitchToBOB = 0x00010000, + MixerPref_DynamicDecimateBy2 = 0x00020000, + MixerPref_DynamicReserved = 0x000C0000, + MixerPref_DynamicMask = 0x000F0000 +} VMRMixerPrefs; +enum VMRMode { + VMRMode_Windowed = 0x00000001, + VMRMode_Windowless = 0x00000002, + VMRMode_Renderless = 0x00000004, + VMRMode_Mask = 0x00000007 +}; +typedef enum { + VMRSample_SyncPoint = 0x00000001, + VMRSample_Preroll = 0x00000002, + VMRSample_Discontinuity = 0x00000004, + VMRSample_TimeValid = 0x00000008 +} VMRPresentationFlags; +typedef enum { + RenderPrefs_ForceOffscreen = 0x00000001, + RenderPrefs_ForceOverlays = 0x00000002, + RenderPrefs_AllowOverlays = 0x00000000, + RenderPrefs_AllowOffscreen = 0x00000000, + RenderPrefs_DoNotRenderColorKeyAndBorder = 0x00000008, + RenderPrefs_RestrictToInitialMonitor = 0x00000010, + RenderPrefs_PreferAGPMemWhenMixing = 0x00000020, + RenderPrefs_Mask = 0x0000003f +} VMRRenderPrefs; +typedef enum { + AMAP_PIXELFORMAT_VALID = 0x01, + AMAP_3D_TARGET = 0x02, + AMAP_ALLOW_SYSMEM = 0x04, + AMAP_FORCE_SYSMEM = 0x08, + AMAP_DIRECTED_FLIP = 0x10, + AMAP_DXVA_TARGET = 0x20 +} VMRSurfaceAllocationFlags; +/*--- DirectShow Reference - DirectShow Structures */ +typedef struct _AllocatorProperties { + long cBuffers; + long cbBuffer; + long cbAlign; + long cbPrefix; +} ALLOCATOR_PROPERTIES; +typedef struct { + HRESULT hrVPEStatus; + BOOL bDvdVolInvalid; + BOOL bDvdVolUnknown; + BOOL bNoLine21In; + BOOL bNoLine21Out; + int iNumStreams; + int iNumStreamsFailed; + DWORD dwFailedStreamsFlag; +} AM_DVD_RENDERSTATUS; +typedef struct _AMCOPPCommand { + GUID macKDI; + GUID guidCommandID; + DWORD dwSequence; + DWORD cbSizeData; + BYTE CommandData[4056]; +} AMCOPPCommand,*LPAMCOPPCommand; +typedef struct _AMCOPPSignature { + BYTE Signature[256]; +} AMCOPPSignature; +typedef struct _AMCOPPStatusInput { + GUID rApp; + GUID guidStatusRequestID; + DWORD dwSequence; + DWORD cbSizeData; + BYTE StatusData[4056]; +} AMCOPPStatusInput,*LPAMCOPPStatusInput; +typedef struct _AMCOPPStatusOutput { + GUID macKDI; + DWORD cbSizeData; + BYTE COPPStatus[4076]; +} AMCOPPStatusOutput,*LPAMCOPPStatusOutput; +typedef struct _AMMediaType { + GUID majortype; + GUID subtype; + BOOL bFixedSizeSamples; + BOOL bTemporalCompression; + ULONG lSampleSize; + GUID formattype; + IUnknown *pUnk; + ULONG cbFormat; + BYTE *pbFormat; +} AM_MEDIA_TYPE; +typedef struct tagAM_SAMPLE2_PROPERTIES { + DWORD cbData; + DWORD dwTypeSpecificFlags; + DWORD dwSampleFlags; + LONG lActual; + REFERENCE_TIME tStart; + REFERENCE_TIME tStop; + DWORD dwStreamId; + AM_MEDIA_TYPE *pMediaType; + BYTE *pbBuffer; + LONG cbBuffer; +} AM_SAMPLE2_PROPERTIES; +typedef struct { + REFERENCE_TIME tStart; + REFERENCE_TIME tStop; + DWORD dwStartCookie; + DWORD dwStopCookie; + DWORD dwFlags; +} AM_STREAM_INFO; +typedef struct { + const CLSID *clsMajorType; + const CLSID *clsMinorType; +} REGPINTYPES; +typedef REGPINTYPES AMOVIESETUP_MEDIATYPE,*PAMOVIESETUP_MEDIATYPE,*LPAMOVIESETUP_MEDIATYPE; +typedef struct { + LPWSTR strName; + BOOL bRendered; + BOOL bOutput; + BOOL bZero; + BOOL bMany; + const CLSID *clsConnectsToFilter; + const WCHAR *strConnectsToPin; + UINT nMediaTypes; + const REGPINTYPES *lpMediaType; +} REGFILTERPINS; +typedef REGFILTERPINS AMOVIESETUP_PIN,*PAMOVIESETUP_PIN,*LPAMOVIESETUP_PIN; +typedef struct _AMOVIESETUP_FILTER { + const CLSID *clsID; + const WCHAR *strName; + DWORD dwMerit; + UINT nPins; + const AMOVIESETUP_PIN *lpPin; +} AMOVIESETUP_FILTER,*PAMOVIESETUP_FILTER,*LPAMOVIESETUP_FILTER; +typedef struct _AUDIO_STREAM_CONFIG_CAPS { + GUID guid; + ULONG MinimumChannels; + ULONG MaximumChannels; + ULONG ChannelsGranularity; + ULONG MinimumBitsPerSample; + ULONG MaximumBitsPerSample; + ULONG BitsPerSampleGranularity; + ULONG MinimumSampleFrequency; + ULONG MaximumSampleFrequency; + ULONG SampleFrequencyGranularity; +} AUDIO_STREAM_CONFIG_CAPS; +struct CodecAPIEventData { + GUID guid; + DWORD dataLength; + DWORD reserved[3]; +}; +typedef struct tagCOLORKEY { + DWORD KeyType; + DWORD PaletteIndex; + COLORREF LowColorValue; + COLORREF HighColorValue; +} COLORKEY; +#define CK_NOCOLORKEY 0x00000000 +#define CK_INDEX 0x00000001 +#define CK_RGB 0x00000002 +typedef struct { + DWORD dw1; + DWORD dw2; +} DDCOLORKEY; +typedef struct tagDVD_AudioAttributes { + DVD_AUDIO_APPMODE AppMode; + DVD_AUDIO_FORMAT AudioFormat; + LCID Language; + DVD_AUDIO_LANG_EXT LanguageExtension; + BOOL fHasMultichannelInfo; + DWORD dwFrequency; + BYTE bQuantization; + BYTE bNumberOfChannels; + DWORD dwReserved[2]; +} DVD_AudioAttributes; +typedef struct tagDVD_DECODER_CAPS { + DWORD dwSize; + DWORD dwAudioCaps; + double dFwdMaxRateVideo; + double dFwdMaxRateAudio; + double dFwdMaxRateSP; + double dBwdMaxRateVideo; + double dBwdMaxRateAudio; + double dBwdMaxRateSP; + DWORD dwRes1; + DWORD dwRes2; + DWORD dwRes3; + DWORD dwRes4; +} DVD_DECODER_CAPS; +#define DVD_AUDIO_CAPS_AC3 0x00000001 +#define DVD_AUDIO_CAPS_MPEG2 0x00000002 +#define DVD_AUDIO_CAPS_LPCM 0x00000004 +#define DVD_AUDIO_CAPS_DTS 0x00000008 +#define DVD_AUDIO_CAPS_SDDS 0x00000010 +typedef struct tagDVD_HMSF_TIMECODE { + BYTE bHours; + BYTE bMinutes; + BYTE bSeconds; + BYTE bFrames; +} DVD_HMSF_TIMECODE; +typedef struct tagDVD_KaraokeAttributes { + BYTE bVersion; + BOOL fMasterOfCeremoniesInGuideVocal1; + BOOL fDuet; + DVD_KARAOKE_ASSIGNMENT ChannelAssignment; + WORD wChannelContents[8]; +} DVD_KaraokeAttributes; +typedef struct tagDVD_MUA_Coeff { + double log2_alpha; + double log2_beta; +} DVD_MUA_Coeff; +typedef struct tagDVD_MUA_MixingInfo { + BOOL fMixTo0; + BOOL fMixTo1; + BOOL fMix0InPhase; + BOOL fMix1InPhase; + DWORD dwSpeakerPosition; +} DVD_MUA_MixingInfo; +#define KSAUDIO_SPEAKER_LEFT 0x00000001 +#define KSAUDIO_SPEAKER_RIGHT 0x00000002 +#define KSAUDIO_SPEAKER_CENTER 0x00000004 +#define KSAUDIO_SPEAKER_SURROUND_LEFT 0x00000008 +#define KSAUDIO_SPEAKER_SURROUND_RIGHT 0x00000010 +#define KSAUDIO_SPEAKER_SUBWOOFER 0x00000020 +#define KSAUDIO_SPEAKER_LEFT_OF_CENTER 0x00000040 +#define KSAUDIO_SPEAKER_RIGHT_OF_CENTER 0x00000080 +#define KSAUDIO_SPEAKER_SURROUND_MONO 0x00000100 +#define KSAUDIO_SPEAKER_SIDE_LEFT 0x00000200 +#define KSAUDIO_SPEAKER_SIDE_RIGHT 0x00000400 +#define KSAUDIO_SPEAKER_TOP 0x00000800 +typedef struct tagDVD_MultichannelAudioAttributes { + DVD_MUA_MixingInfo Info[8]; + DVD_MUA_Coeff Coeff[8]; +} DVD_MultichannelAudioAttributes; +typedef struct tagDVD_PLAYBACK_LOCATION { + ULONG TitleNum; + ULONG ChapterNum; + ULONG TimeCode; +} DVD_PLAYBACK_LOCATION; +typedef struct tagDVD_PLAYBACK_LOCATION2 { + ULONG TitleNum; + ULONG ChapterNum; + DVD_HMSF_TIMECODE TimeCode; + ULONG TimeCodeFlags; +} DVD_PLAYBACK_LOCATION2; +typedef struct tagDVD_SubpictureAttributes { + DVD_SUBPICTURE_TYPE Type; + DVD_SUBPICTURE_CODING CodingMode; + LCID Language; + DVD_SUBPICTURE_LANG_EXT LanguageExtension; +} DVD_SubpictureAttributes; +typedef struct tagDVD_TIMECODE { + ULONG Hours1:4; + ULONG Hours10:4; + ULONG Minutes1:4; + ULONG Minutes10:4; + ULONG Seconds1:4; + ULONG Seconds10:4; + ULONG Frames1:4; + ULONG Frames10:2; + ULONG FrameRateCode:2; +} DVD_TIMECODE; +typedef struct tagDVD_VideoAttributes { + BOOL fPanscanPermitted; + BOOL fLetterboxPermitted; + ULONG ulAspectX; + ULONG ulAspectY; + ULONG ulFrameRate; + ULONG ulFrameHeight; + DVD_VIDEO_COMPRESSION Compression; + BOOL fLine21Field1InGOP; + BOOL fLine21Field2InGOP; + ULONG ulSourceResolutionX; + ULONG ulSourceResolutionY; + BOOL fIsSourceLetterboxed; + BOOL fIsFilmMode; +} DVD_VideoAttributes; +struct tagDVD_MenuAttributes { + BOOL fCompatibleRegion[8]; + DVD_VideoAttributes VideoAttributes; + BOOL fAudioPresent; + DVD_AudioAttributes AudioAttributes; + BOOL fSubpicturePresent; + DVD_SubpictureAttributes SubpictureAttributes; +} DVD_MenuAttributes; +typedef struct tagDVD_TitleMainAttributes { + DVD_TITLE_APPMODE AppMode; + DVD_VideoAttributes VideoAttributes; + ULONG ulNumberOfAudioStreams; + DVD_AudioAttributes AudioAttributes[8]; + DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8]; + ULONG ulNumberOfSubpictureStreams; + DVD_SubpictureAttributes SubpictureAttributes[32]; +} DVD_TitleAttributes; +typedef struct tag_DVINFO { + DWORD dwDVAAuxSrc; + DWORD dwDVAAuxCtl; + DWORD dwDVAAuxSrc1; + DWORD dwDVAAuxCtl1; + DWORD dwDVVAuxSrc; + DWORD dwDVVAuxCtl; + DWORD dwDVReserved[2]; +} DVINFO,*PDVINFO; +/*************** +#define MAX_FILTER_NAME 128 +typedef struct _FilterInfo { + WCHAR achName[MAX_FILTER_NAME]; + IFilterGraph *pGraph; +} FILTER_INFO; +***************/ +typedef struct _NORMALIZEDRECT { + float left; + float top; + float right; + float bottom; +} NORMALIZEDRECT,*PNORMALIZEDRECT; +#define MAX_PIN_NAME 128 +typedef struct _PinInfo { + IBaseFilter *pFilter; + PIN_DIRECTION dir; + WCHAR achName[MAX_PIN_NAME]; +} PIN_INFO; +typedef struct{ + QualityMessageType Type; + long Proportion; + REFERENCE_TIME Late; + REFERENCE_TIME TimeStamp; +} Quality; +typedef struct { + CLSID clsMedium; + DWORD dw1; + DWORD dw2; +} REGPINMEDIUM; +typedef struct { + DWORD dwFlags; + UINT cInstances; + UINT nMediaTypes; + const REGPINTYPES *lpMediaType; + UINT nMediums; + const REGPINMEDIUM *lpMedium; + const CLSID *clsPinCategory; +} REGFILTERPINS2; +typedef struct { + DWORD dwVersion; + DWORD dwMerit; + union { + struct { + ULONG cPins; + const REGFILTERPINS *rgPins; + }; + struct { + ULONG cPins2; + const REGFILTERPINS2 *rgPins2; + }; + }; +} REGFILTER2; +typedef struct { + ULONG stream_id; + DWORD dwMediaSampleContent; + ULONG ulSubstreamFilterValue; + int iDataOffset; +} STREAM_ID_MAP; +#define MPEG2_PROGRAM_STREAM_MAP 0x00000000 +#define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001 +#define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002 +#define MPEG2_PROGRAM_PACK_HEADER 0x00000003 +#define MPEG2_PROGRAM_PES_STREAM 0x00000004 +#define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005 +#define SUBSTREAM_FILTER_VAL_NONE 0x10000000 +typedef struct tagTIMECODE { + WORD wFrameRate; + WORD wFrameFract; + DWORD dwFrames; +} TIMECODE; +#define ED_FORMAT_SMPTE_30 0x00001196 +#define ED_FORMAT_SMPTE_30DROP 0x00001197 +#define ED_FORMAT_SMPTE_25 0x00001198 +#define ED_FORMAT_SMPTE_24 0x00001199 +typedef struct tagTIMECODE_SAMPLE { + LONGLONG qwTick; + TIMECODE timecode; + DWORD dwUser; + DWORD dwFlags; +} TIMECODE_SAMPLE; +/*#define AM_TIMECODE_FLAG_FCM */ +/*#define AM_TIMECODE_FLAG_CF */ +/*#define AM_TIMECODE_FLAG_FIELD */ +/*#define AM_TIMECODE_FLAG_DF */ +/*#define AM_TIMECODE_COLORFRAME */ +/*#define AM_TIMECODE_COLORSEQUENCE */ +/*#define AM_TIMECODE_FILMSEQUENCE_TYPE */ +typedef struct _VIDEO_STREAM_CONFIG_CAPS { + GUID guid; + ULONG VideoStandard; + SIZE InputSize; + SIZE MinCroppingSize; + SIZE MaxCroppingSize; + int CropGranularityX; + int CropGranularityY; + int CropAlignX; + int CropAlignY; + SIZE MinOutputSize; + SIZE MaxOutputSize; + int OutputGranularityX; + int OutputGranularityY; + int StretchTapsX; + int StretchTapsY; + int ShrinkTapsX; + int ShrinkTapsY; + LONGLONG MinFrameInterval; + LONGLONG MaxFrameInterval; + LONG MinBitsPerSecond; + LONG MaxBitsPerSecond; +} VIDEO_STREAM_CONFIG_CAPS; +typedef struct tagVMRALLOCATIONINFO { + DWORD dwFlags; + LPBITMAPINFOHEADER lpHdr; + LPDDPIXELFORMAT lpPixFmt; + SIZE szAspectRatio; + DWORD dwMinBuffers; + DWORD dwMaxBuffers; + DWORD dwInterlaceFlags; + SIZE szNativeSize; +} VMRALLOCATIONINFO; +/********** +typedef struct _VMRALPHABITMAP { + DWORD dwFlags; + HDC hdc; + LPDIRECTDRAWSURFACE7 pDDS; + RECT rSrc; + NORMALIZEDRECT rDest; + FLOAT fAlpha; + COLORREF clrSrcKey; +} VMRALPHABITMAP,*PVMRALPHABITMAP; +**********/ +#define VMRBITMAP_DISABLE 0x00000001 +#define VMRBITMAP_HDC 0x00000002 +#define VMRBITMAP_ENTIREDDS 0x00000004 +#define VMRBITMAP_SRCCOLORKEY 0x00000008 +#define VMRBITMAP_SRCRECT 0x00000010 +typedef struct _VMRDeinterlaceCaps { + DWORD dwSize; + DWORD dwNumPreviousOutputFrames; + DWORD dwNumForwardRefSamples; + DWORD dwNumBackwardRefSamples; + VMRDeinterlaceTech DeinterlaceTechnology; +} VMRDeinterlaceCaps; +typedef struct _VMRFrequency { + DWORD dwNumerator; + DWORD dwDenominator; +} VMRFrequency; +typedef struct tagVMRGUID { + GUID *pGUID; + GUID GUID; +} VMRGUID; +typedef struct tagVMRMONITORINFO { + VMRGUID guid; + RECT rcMonitor; + HMONITOR hMon; + DWORD dwFlags; + wchar_t szDevice[32]; + wchar_t szDescription[256]; +} VMRMONITORINFO; +/********** +typedef struct tagVMRPRESENTATIONINFO { + DWORD dwFlags; + LPDIRECTDRAWSURFACE7 lpSurf; + REFERENCE_TIME rtStart; + REFERENCE_TIME rtEnd; + SIZE szAspectRatio; + RECT rcSrc; + RECT rcDst; + DWORD dwTypeSpecificFlags; + DWORD dwInterlaceFlags; +} VMRPRESENTATIONINFO; +**********/ +typedef struct _VMRVideoDesc { + DWORD dwSize; + DWORD dwSampleWidth; + DWORD dwSampleHeight; + BOOL SingleFieldPerSample; + DWORD dwFourCC; + VMRFrequency InputSampleFreq; + VMRFrequency OutputFrameFreq; +} VMRVideoDesc; +/********** +typedef struct _VMRVIDEOSTREAMINFO { + LPDIRECTDRAWSURFACE7 pddsVideoSurface; + DWORD dwWidth; + DWORD dwHeight; + DWORD dwStrmID; + FLOAT fAlpha; + DDCOLORKEY ddClrKey; + NORMALIZEDRECT rNormal; +} VMRVIDEOSTREAMINFO; +**********/ +/*--- DirectShow Reference - Interfaces */ +#define INTERFACE IAMAnalogVideoDecoder +DECLARE_INTERFACE_(IAMAnalogVideoDecoder, IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD_(HRESULT,get_AvailableTVFormats)(THIS_ long*) PURE; + STDMETHOD_(HRESULT,get_HorizontalLocked)(THIS_ long*) PURE; + STDMETHOD_(HRESULT,get_NumberOfLines)(THIS_ long*) PURE; + STDMETHOD_(HRESULT,get_OutputEnable)(THIS_ long*) PURE; + STDMETHOD_(HRESULT,get_TVFormat)(THIS_ long*) PURE; + STDMETHOD_(HRESULT,get_VCRHorizontalLocking)(THIS_ long*) PURE; + STDMETHOD_(HRESULT,put_OutputEnable)(THIS_ long) PURE; + STDMETHOD_(HRESULT,put_TVFormat)(THIS_ long) PURE; + STDMETHOD_(HRESULT,put_VCRHorizontalLocking)(THIS_ long) PURE; +}; +#undef INTERFACE +#define INTERFACE IAMAudioInputMixer +DECLARE_INTERFACE_(IAMAudioInputMixer, IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD_(HRESULT,get_Bass)(THIS_ double*) PURE; + STDMETHOD_(HRESULT,get_BassRange)(THIS_ double*) PURE; + STDMETHOD_(HRESULT,get_Enable)(THIS_ BOOL*) PURE; + STDMETHOD_(HRESULT,get_Loudness)(THIS_ BOOL*) PURE; + STDMETHOD_(HRESULT,get_MixLevel)(THIS_ double*) PURE; + STDMETHOD_(HRESULT,get_Mono)(THIS_ BOOL*) PURE; + STDMETHOD_(HRESULT,get_Pan)(THIS_ double*) PURE; + STDMETHOD_(HRESULT,get_Treble)(THIS_ double*) PURE; + STDMETHOD_(HRESULT,get_TrebleRange)(THIS_ double*) PURE; + STDMETHOD_(HRESULT,put_Bass)(THIS_ double) PURE; + STDMETHOD_(HRESULT,put_Enable)(THIS_ BOOL) PURE; + STDMETHOD_(HRESULT,put_Loudness)(THIS_ BOOL) PURE; + STDMETHOD_(HRESULT,put_MixLevel)(THIS_ double) PURE; + STDMETHOD_(HRESULT,put_Mono)(THIS_ BOOL) PURE; + STDMETHOD_(HRESULT,put_Pan)(THIS_ double) PURE; + STDMETHOD_(HRESULT,put_Treble)(THIS_ double) PURE; +}; +#undef INTERFACE +#define INTERFACE IAMAudioRendererStats +DECLARE_INTERFACE_(IAMAudioRendererStats, IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD_(HRESULT,GetStatParam)(THIS_ DWORD,DWORD*,DWORD*) PURE; +}; +#undef INTERFACE +#define INTERFACE IAMBufferNegotiation +DECLARE_INTERFACE_(IAMBufferNegotiation, IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD_(HRESULT,GetAllocatorProperties)(THIS_ ALLOCATOR_PROPERTIES*) PURE; + STDMETHOD_(HRESULT,SuggestAllocatorProperties)(THIS_ const ALLOCATOR_PROPERTIES*) PURE; +}; +#undef INTERFACE +#define INTERFACE IAMCameraControl +DECLARE_INTERFACE_(IAMCameraControl, IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD_(HRESULT,Get)(THIS_ long,long*,long*) PURE; + STDMETHOD_(HRESULT,GetRange)(THIS_ long,long*,long*,long*,long*,long*) PURE; + STDMETHOD_(HRESULT,Set)(THIS_ long,long,long) PURE; +}; +#undef INTERFACE + +#define INTERFACE IAMCertifiedOutputProtection +DECLARE_INTERFACE_(IAMCertifiedOutputProtection, IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD_(HRESULT,KeyExchange)(THIS_ GUID*,BYTE**,DWORD*) PURE; + STDMETHOD_(HRESULT,ProtectionCommand)(THIS_ const AMCOPPCommand*) PURE; + STDMETHOD_(HRESULT,ProtectionStatus)(THIS_ const AMCOPPStatusInput*,AMCOPPStatusOutput*) PURE; + STDMETHOD_(HRESULT,SessionSequenceStart)(THIS_ const AMCOPPSignature*) PURE; +}; +#undef INTERFACE + +#ifdef __cplusplus +} +#endif +#endif