diff options
Diffstat (limited to 'stream/tvi_dshow.h')
-rw-r--r-- | stream/tvi_dshow.h | 728 |
1 files changed, 0 insertions, 728 deletions
diff --git a/stream/tvi_dshow.h b/stream/tvi_dshow.h deleted file mode 100644 index 7ec1ce8e50..0000000000 --- a/stream/tvi_dshow.h +++ /dev/null @@ -1,728 +0,0 @@ -/* - * This file is part of MPlayer. - * - * MPlayer is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * MPlayer is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with MPlayer; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifndef MPLAYER_TVI_DSHOW_H -#define MPLAYER_TVI_DSHOW_H - -/// \defgroup tvi_dshow TV driver (Directshow) - -#define INITGUID -#include <inttypes.h> -#include <windows.h> -//#include <ole2.h> -#include <vfw.h> -#include "loader/dshow/mediatype.h" -#include "loader/dshow/guids.h" - -#define wtoa(strW,strA,lenA) WideCharToMultiByte(0,0,strW,-1,strA,lenA,NULL,NULL) -#define atow(strA,strW,lenW) MultiByteToWideChar(0,0,strA,strlen(strA),strW,lenW) - -typedef struct DISPPARAMS *LPDISPPARAMS; -typedef struct IFileSinkFilter *LPFILESINKFILTER; -typedef struct IAMCopyCaptureFileProgress *LPAMCOPYCAPTUREFILEPROGRESS; -typedef struct IErrorLog *LPERRORLOG; -typedef struct IAMTunerNotification *LPAMTUNERNOTIFICATION; -typedef struct IFilterGraph *LPFILTERGRAPH; -typedef struct IBaseFilter *LPBASEFILTER; -typedef struct IPin *LPPIN; -typedef struct IEnumPins *LPENUMPINS; -typedef struct IEnumFilters *LPENUMFILTERS; -typedef struct IEnumMediaTypes *LPENUMMEDIATYPES; -typedef struct IReferenceClock *LPREFERENCECLOCK; -typedef struct IMediaSample *LPMEDIASAMPLE; -typedef struct IVideoWindow *LPVIDEOWINDOW; - -typedef struct -{ - long cBuffers; - long cbBuffer; - long cbAlign; - long cbPrefix; -}ALLOCATOR_PROPERTIES; - -typedef - enum tagTunerInputType { TunerInputCable = 0, - TunerInputAntenna = TunerInputCable + 1 -} TunerInputType; -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; -enum tagAMTunerSubChannel { AMTUNER_SUBCHAN_NO_TUNE = -2, - AMTUNER_SUBCHAN_DEFAULT = -1 -} AMTunerSubChannel; -typedef enum tagVideoProcAmpProperty { - VideoProcAmp_Brightness, - VideoProcAmp_Contrast, - VideoProcAmp_Hue, - VideoProcAmp_Saturation, - VideoProcAmp_Sharpness, - VideoProcAmp_Gamma, - VideoProcAmp_ColorEnable, - VideoProcAmp_WhiteBalance, - VideoProcAmp_BacklightCompensation, - VideoProcAmp_Gain -} VideoProcAmpProperty; - -typedef long OAFilterState; -typedef - enum tagAnalogVideoStandard { AnalogVideo_None = 0, - AnalogVideo_NTSC_M = 0x1, - AnalogVideo_NTSC_M_J = 0x2, - AnalogVideo_NTSC_433 = 0x4, - AnalogVideo_PAL_B = 0x10, - AnalogVideo_PAL_D = 0x20, - AnalogVideo_PAL_G = 0x40, - AnalogVideo_PAL_H = 0x80, - AnalogVideo_PAL_I = 0x100, - AnalogVideo_PAL_M = 0x200, - AnalogVideo_PAL_N = 0x400, - AnalogVideo_PAL_60 = 0x800, - AnalogVideo_SECAM_B = 0x1000, - AnalogVideo_SECAM_D = 0x2000, - AnalogVideo_SECAM_G = 0x4000, - AnalogVideo_SECAM_H = 0x8000, - AnalogVideo_SECAM_K = 0x10000, - AnalogVideo_SECAM_K1 = 0x20000, - AnalogVideo_SECAM_L = 0x40000, - AnalogVideo_SECAM_L1 = 0x80000 -} AnalogVideoStandard; - - -typedef LONG_PTR OAHWND; -typedef enum tagPhysicalConnectorType { PhysConn_Video_Tuner = 1, - PhysConn_Video_Composite = PhysConn_Video_Tuner + 1, - PhysConn_Video_SVideo = PhysConn_Video_Composite + 1, - PhysConn_Video_RGB = PhysConn_Video_SVideo + 1, - PhysConn_Video_YRYBY = PhysConn_Video_RGB + 1, - PhysConn_Video_SerialDigital = PhysConn_Video_YRYBY + 1, - PhysConn_Video_ParallelDigital = PhysConn_Video_SerialDigital + 1, - PhysConn_Video_SCSI = PhysConn_Video_ParallelDigital + 1, - PhysConn_Video_AUX = PhysConn_Video_SCSI + 1, - PhysConn_Video_1394 = PhysConn_Video_AUX + 1, - PhysConn_Video_USB = PhysConn_Video_1394 + 1, - PhysConn_Video_VideoDecoder = PhysConn_Video_USB + 1, - PhysConn_Video_VideoEncoder = PhysConn_Video_VideoDecoder + 1, - PhysConn_Video_SCART = PhysConn_Video_VideoEncoder + 1, - PhysConn_Video_Black = PhysConn_Video_SCART + 1, - PhysConn_Audio_Tuner = 0x1000, - PhysConn_Audio_Line = PhysConn_Audio_Tuner + 1, - PhysConn_Audio_Mic = PhysConn_Audio_Line + 1, - PhysConn_Audio_AESDigital = PhysConn_Audio_Mic + 1, - PhysConn_Audio_SPDIFDigital = PhysConn_Audio_AESDigital + 1, - PhysConn_Audio_SCSI = PhysConn_Audio_SPDIFDigital + 1, - PhysConn_Audio_AUX = PhysConn_Audio_SCSI + 1, - PhysConn_Audio_1394 = PhysConn_Audio_AUX + 1, - PhysConn_Audio_USB = PhysConn_Audio_1394 + 1, - PhysConn_Audio_AudioDecoder = PhysConn_Audio_USB + 1 -} PhysicalConnectorType; - -typedef struct VIDEO_STREAM_CONFIG_CAPS { - GUID guid; // will be MEDIATYPE_Video - ULONG VideoStandard; // logical OR of all AnalogVideoStandards - // supported - SIZE InputSize; // the inherent size of the incoming signal - // (every pixel unique) - SIZE MinCroppingSize; // smallest rcSrc cropping rect allowed - SIZE MaxCroppingSize; // largest rcSrc cropping rect allowed - int CropGranularityX; // granularity of cropping size - int CropGranularityY; - int CropAlignX; // alignment of cropping rect - int CropAlignY; - SIZE MinOutputSize; // smallest bitmap stream can produce - SIZE MaxOutputSize; // largest bitmap stream can produce - int OutputGranularityX; // granularity of output bitmap size - int OutputGranularityY; - int StretchTapsX; // 0, no stretch, 1 pix dup, 2 interp, ... - int StretchTapsY; // Describes quality of hardware scaler - int ShrinkTapsX; // - int ShrinkTapsY; // - LONGLONG MinFrameInterval; // 100 nS units - LONGLONG MaxFrameInterval; - LONG MinBitsPerSecond; - LONG MaxBitsPerSecond; -} VIDEO_STREAM_CONFIG_CAPS, *PVIDEO_STREAM_CONFIG_CAPS; - -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; - -typedef enum tagVideoProcAmpFlags { - VideoProcAmp_Flags_Auto = 0x0001, - VideoProcAmp_Flags_Manual = 0x0002 -} VideoProcAmpFlags; -typedef enum { - PINDIR_INPUT = 0, - PINDIR_OUTPUT -} PIN_DIRECTION; - -#define KSPROPERTY_SUPPORT_GET 1 -#define KSPROPERTY_SUPPORT_SET 2 -typedef struct { - GUID Set; - ULONG Id; - ULONG Flags; -} KSIDENTIFIER; - -typedef KSIDENTIFIER KSPROPERTY; - - -typedef struct { - KSPROPERTY Property; - ULONG Mode; // IN: KSPROPERTY_TUNER_MODE - ULONG StandardsSupported; // KS_AnalogVideo_* (if TV or DSS) - ULONG MinFrequency; // Hz - ULONG MaxFrequency; // Hz - ULONG TuningGranularity; // Hz - ULONG NumberOfInputs; // count of inputs - ULONG SettlingTime; // milliSeconds - ULONG Strategy; // KS_TUNER_STRATEGY -} KSPROPERTY_TUNER_MODE_CAPS_S, *PKSPROPERTY_TUNER_MODE_CAPS_S; - -typedef struct { - KSPROPERTY Property; - ULONG Mode; // IN: KSPROPERTY_TUNER_MODE -} KSPROPERTY_TUNER_MODE_S, *PKSPROPERTY_TUNER_MODE_S; - -typedef struct { - KSPROPERTY Property; - ULONG Frequency; // Hz - ULONG LastFrequency; // Hz (last known good) - ULONG TuningFlags; // KS_TUNER_TUNING_FLAGS - ULONG VideoSubChannel; // DSS - ULONG AudioSubChannel; // DSS - ULONG Channel; // VBI decoders - ULONG Country; // VBI decoders -} KSPROPERTY_TUNER_FREQUENCY_S, *PKSPROPERTY_TUNER_FREQUENCY_S; -typedef struct { - KSPROPERTY Property; - ULONG CurrentFrequency; - ULONG PLLOffset; - ULONG SignalStrength; - ULONG Busy; -} KSPROPERTY_TUNER_STATUS_S, *PKSPROPERTY_TUNER_STATUS_S; -typedef enum { - KS_TUNER_TUNING_EXACT = 1, // No fine tuning - KS_TUNER_TUNING_FINE, // Fine grained search - KS_TUNER_TUNING_COARSE, // Coarse search -} KS_TUNER_TUNING_FLAGS; - -typedef enum { - KSPROPERTY_TUNER_CAPS, // R -overall device capabilities - KSPROPERTY_TUNER_MODE_CAPS, // R -capabilities in this mode - KSPROPERTY_TUNER_MODE, // RW -set a mode (TV, FM, AM, DSS) - KSPROPERTY_TUNER_STANDARD, // R -get TV standard (only if TV mode) - KSPROPERTY_TUNER_FREQUENCY, // RW -set/get frequency - KSPROPERTY_TUNER_INPUT, // RW -select an input - KSPROPERTY_TUNER_STATUS, // R -tuning status - KSPROPERTY_TUNER_IF_MEDIUM // R O-Medium for IF or Transport Pin -} KSPROPERTY_TUNER; -typedef enum { - KS_TUNER_STRATEGY_PLL = 0X01, // Tune by PLL offset - KS_TUNER_STRATEGY_SIGNAL_STRENGTH = 0X02, // Tune by signal strength - KS_TUNER_STRATEGY_DRIVER_TUNES = 0X04, // Driver does fine tuning -} KS_TUNER_STRATEGY; -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, -} TVAudioMode; - -typedef struct FilterInfo { - WCHAR achName[128]; - LPFILTERGRAPH pGraph; -} FILTER_INFO; - -typedef struct PinInfo { - LPBASEFILTER pFilter; - PIN_DIRECTION dir; - unsigned short achName[128]; -} PIN_INFO; -//----------------------------------- - - -#undef INTERFACE -#define INTERFACE IPin -DECLARE_INTERFACE(IPin) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(Connect) (THIS_ IPin *, AM_MEDIA_TYPE *); - STDMETHOD(ReceiveConnection) (THIS_ IPin *, const AM_MEDIA_TYPE *); - STDMETHOD(Disconnect) (THIS); - STDMETHOD(ConnectedTo) (THIS_ IPin **); - STDMETHOD(ConnectionMediaType) (THIS_ AM_MEDIA_TYPE * pmt); - STDMETHOD(QueryPinInfo) (THIS_ PIN_INFO *); - STDMETHOD(QueryDirection) (THIS_ PIN_DIRECTION *); - STDMETHOD(QueryId) (THIS_ unsigned short **); - STDMETHOD(QueryAccept) (THIS_ const AM_MEDIA_TYPE *); - STDMETHOD(EnumMediaTypes) (THIS_ LPENUMMEDIATYPES *); - STDMETHOD(QueryInternalConnections) (THIS_ IPin **, unsigned long *); - STDMETHOD(EndOfStream) (THIS); - STDMETHOD(BeginFlush) (THIS); - STDMETHOD(EndFlush) (THIS); - STDMETHOD(NewSegment) (THIS_ REFERENCE_TIME, REFERENCE_TIME, double); -}; - -#undef INTERFACE -#define INTERFACE IBaseFilter -DECLARE_INTERFACE(IBaseFilter) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(GetClassID) (THIS_ CLSID * pClassID); - STDMETHOD(Stop) (THIS); - STDMETHOD(Pause) (THIS); - STDMETHOD(Run) (THIS_ REFERENCE_TIME tStart); - STDMETHOD(GetState) (THIS_ unsigned long, void *); - STDMETHOD(SetSyncSource) (THIS_ LPREFERENCECLOCK); - STDMETHOD(GetSyncSource) (THIS_ LPREFERENCECLOCK *); - STDMETHOD(EnumPins) (THIS_ LPENUMPINS *); - STDMETHOD(FindPin) (THIS_ const unsigned short *, LPPIN *); - STDMETHOD(QueryFilterInfo) (THIS_ void *); - STDMETHOD(JoinFilterGraph) (THIS_ LPFILTERGRAPH, - const unsigned short *); - STDMETHOD(QueryVendorInfo) (THIS_ unsigned short **); -}; - -#undef INTERFACE -#define INTERFACE IAMTVTuner -DECLARE_INTERFACE(IAMTVTuner) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(put_Channel) (THIS_ long, long, long); - STDMETHOD(get_Channel) (THIS_ long *, long *, long *); - STDMETHOD(ChannelMinMax) (THIS_ long *, long *); - STDMETHOD(put_CountryCode) (THIS_ long); - STDMETHOD(get_CountryCode) (THIS_ long *); - STDMETHOD(put_TuningSpace) (THIS_ long); - STDMETHOD(get_TuningSpace) (THIS_ long *); - STDMETHOD(Logon) (THIS_ HANDLE); - STDMETHOD(Logout) (IAMTVTuner *); - STDMETHOD(SignalPresen) (THIS_ long *); - STDMETHOD(put_Mode) (THIS_ AMTunerModeType); - STDMETHOD(get_Mode) (THIS_ AMTunerModeType *); - STDMETHOD(GetAvailableModes) (THIS_ long *); - STDMETHOD(RegisterNotificationCallBack) (THIS_ LPAMTUNERNOTIFICATION, - long); - STDMETHOD(UnRegisterNotificationCallBack) (THIS_ - LPAMTUNERNOTIFICATION); - STDMETHOD(get_AvailableTVFormats) (THIS_ long *); - STDMETHOD(get_TVFormat) (THIS_ long *); - STDMETHOD(AutoTune) (THIS_ long, long *); - STDMETHOD(StoreAutoTune) (IAMTVTuner *); - STDMETHOD(get_NumInputConnections) (THIS_ long *); - STDMETHOD(put_InputType) (THIS_ long, TunerInputType); - STDMETHOD(get_InputType) (THIS_ long, TunerInputType *); - STDMETHOD(put_ConnectInput) (THIS_ long); - STDMETHOD(get_ConnectInput) (THIS_ long *); - STDMETHOD(get_VideoFrequency) (THIS_ long *); - STDMETHOD(get_AudioFrequency) (THIS_ long *); -}; - -#undef INTERFACE -#define INTERFACE IMediaControl -DECLARE_INTERFACE(IMediaControl) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(GetTypeInfoCount) (THIS_ UINT *); - STDMETHOD(GetTypeInfo) (THIS_ UINT, LCID, LPTYPEINFO *); - STDMETHOD(GetIDsOfNames) (THIS_ REFIID, LPOLESTR *, UINT, LCID, - DISPID *); - STDMETHOD(Invoke) (THIS_ DISPID, REFIID, LCID, WORD, LPDISPPARAMS, - VARIANT *, EXCEPINFO *, UINT *); - STDMETHOD(Run) (THIS); - STDMETHOD(Pause) (THIS); - STDMETHOD(Stop) (THIS); - STDMETHOD(GetState) (THIS_ LONG, OAFilterState *); - STDMETHOD(RenderFile) (THIS_ BSTR); - STDMETHOD(AddSourceFilter) (THIS_ BSTR, LPDISPATCH *); - STDMETHOD(get_FilterCollection) (THIS_ LPDISPATCH *); - STDMETHOD(get_RegFilterCollection) (THIS_ LPDISPATCH *); - STDMETHOD(StopWhenReady) (IMediaControl *); -}; - -#undef INTERFACE -#define INTERFACE IGraphBuilder -DECLARE_INTERFACE(IGraphBuilder) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(AddFilter) (THIS_ IBaseFilter *, LPCWSTR); - STDMETHOD(RemoveFilter) (THIS_ IBaseFilter *); - STDMETHOD(EnumFilters) (THIS_ LPENUMFILTERS *); - STDMETHOD(FindFilterByName) (THIS_ LPCWSTR, IBaseFilter **); - STDMETHOD(ConnectDirect) (THIS_ IPin *, IPin *, const AM_MEDIA_TYPE *); - STDMETHOD(Reconnect) (THIS_ IPin *); - STDMETHOD(Disconnect) (THIS_ IPin *); - STDMETHOD(SetDefaultSyncSource) (IGraphBuilder *); - STDMETHOD(Connect) (THIS_ IPin *, IPin *); - STDMETHOD(Render) (THIS_ IPin *); - STDMETHOD(RenderFile) (THIS_ LPCWSTR, LPCWSTR); - STDMETHOD(AddSourceFilter) (THIS_ LPCWSTR, LPCWSTR, IBaseFilter **); - STDMETHOD(SetLogFile) (THIS_ DWORD_PTR); - STDMETHOD(Abort) (IGraphBuilder *); - STDMETHOD(ShouldOperationContinue) (IGraphBuilder *); -}; - - -#undef INTERFACE -#define INTERFACE ICaptureGraphBuilder2 -DECLARE_INTERFACE(ICaptureGraphBuilder2) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(SetFiltergraph) (THIS_ IGraphBuilder *); - STDMETHOD(GetFiltergraph) (THIS_ IGraphBuilder **); - STDMETHOD(SetOutputFileName) (THIS_ const GUID *, LPCOLESTR, - IBaseFilter **, LPFILESINKFILTER *); - STDMETHOD(FindInterface) (THIS_ const GUID *, const GUID *, - IBaseFilter *, REFIID, void **); - STDMETHOD(RenderStream) (THIS_ const GUID *, const GUID *, IUnknown *, - IBaseFilter *, IBaseFilter *); - STDMETHOD(ControlStream) (THIS_ const GUID *, const GUID *, - IBaseFilter *, REFERENCE_TIME *, - REFERENCE_TIME *, WORD, WORD); - STDMETHOD(AllocCapFile) (THIS_ LPCOLESTR, DWORDLONG); - STDMETHOD(CopyCaptureFile) (THIS_ LPOLESTR, LPOLESTR, int, - LPAMCOPYCAPTUREFILEPROGRESS); - STDMETHOD(FindPin) (THIS_ IUnknown *, PIN_DIRECTION, const GUID *, - const GUID *, BOOL, int, IPin **); -}; - -#undef INTERFACE -#define INTERFACE ICreateDevEnum -DECLARE_INTERFACE(ICreateDevEnum) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(CreateClassEnumerator) (THIS_ REFCLSID, IEnumMoniker **, - DWORD); -}; - -#undef INTERFACE -#define INTERFACE IAMCrossbar -DECLARE_INTERFACE(IAMCrossbar) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(get_PinCounts) (THIS_ long *, long *); - STDMETHOD(CanRoute) (THIS_ long, long); - STDMETHOD(Route) (THIS_ long, long); - STDMETHOD(get_IsRoutedTo) (THIS_ long, long *); - STDMETHOD(get_CrossbarPinInfo) (THIS_ BOOL, long, long *, long *); -}; - -#ifndef __IPropertyBag_INTERFACE_DEFINED__ -#define __IPropertyBag_INTERFACE_DEFINED__ -#undef INTERFACE -#define INTERFACE IPropertyBag -DECLARE_INTERFACE(IPropertyBag) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(Read) (THIS_ LPCOLESTR, LPVARIANT, LPERRORLOG); - STDMETHOD(Write) (THIS_ LPCOLESTR, LPVARIANT); -}; -#endif - -#undef INTERFACE -#define INTERFACE IAMStreamConfig -DECLARE_INTERFACE(IAMStreamConfig) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - HRESULT(STDMETHODCALLTYPE * SetFormat) (THIS_ AM_MEDIA_TYPE *); - HRESULT(STDMETHODCALLTYPE * GetFormat) (THIS_ AM_MEDIA_TYPE **); - HRESULT(STDMETHODCALLTYPE * GetNumberOfCapabilities) (THIS_ int *,int *); - HRESULT(STDMETHODCALLTYPE * GetStreamCaps) (THIS_ int,AM_MEDIA_TYPE **, BYTE *); -}; - -#undef INTERFACE -#define INTERFACE IAMVideoProcAmp -DECLARE_INTERFACE(IAMVideoProcAmp) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(GetRange) (THIS_ long, long *, long *, long *, long *,long *); - STDMETHOD(Set) (THIS_ long, long, long); - STDMETHOD(Get) (THIS_ long, long *, long *); -}; - -#undef INTERFACE -#define INTERFACE IKsPropertySet -DECLARE_INTERFACE(IKsPropertySet) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - HRESULT(STDMETHODCALLTYPE * Set) (THIS_ REFGUID, DWORD, LPVOID, DWORD,LPVOID, DWORD); - HRESULT(STDMETHODCALLTYPE * Get) (THIS_ REFGUID, DWORD, LPVOID, DWORD,LPVOID, DWORD, DWORD *); - HRESULT(STDMETHODCALLTYPE * QuerySupported) (THIS_ REFGUID, DWORD,DWORD *); -}; - -#undef INTERFACE -#define INTERFACE IAMAnalogVideoDecoder -DECLARE_INTERFACE(IAMAnalogVideoDecoder) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(get_AvailableTVFormats) (THIS_ long *); - STDMETHOD(put_TVFormat) (THIS_ long); - STDMETHOD(get_TVFormat) (THIS_ long *); - STDMETHOD(get_HorizontalLocked) (THIS_ long *); - STDMETHOD(put_VCRHorizontalLocking) (THIS_ long); - STDMETHOD(get_VCRHorizontalLocking) (THIS_ long *); - STDMETHOD(get_NumberOfLines) (THIS_ long *); - STDMETHOD(put_OutputEnable) (THIS_ long); - STDMETHOD(get_OutputEnable) (THIS_ long *); -}; - -#undef INTERFACE -#define INTERFACE IAMTVAudio -DECLARE_INTERFACE(IAMTVAudio) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(GetHardwareSupportedTVAudioModes) (THIS_ long *); - STDMETHOD(GetAvailableTVAudioModes) (THIS_ long *); - STDMETHOD(get_TVAudioMode) (THIS_ long *); - STDMETHOD(put_TVAudioMode) (THIS_ long); - STDMETHOD(RegisterNotificationCallBack) (THIS_ LPAMTUNERNOTIFICATION, - long); - STDMETHOD(UnRegisterNotificationCallBack) (THIS_ - LPAMTUNERNOTIFICATION); -}; - - -#undef INTERFACE -#define INTERFACE ISampleGrabberCB -DECLARE_INTERFACE(ISampleGrabberCB) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(SampleCB) (THIS_ double, LPMEDIASAMPLE); - STDMETHOD(BufferCB) (THIS_ double, BYTE *, long); -}; - -#undef INTERFACE -#define INTERFACE ISampleGrabber -DECLARE_INTERFACE(ISampleGrabber) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(SetOneShot) (THIS_ BOOL); - STDMETHOD(SetMediaType) (THIS_ const AM_MEDIA_TYPE *); - STDMETHOD(GetConnectedMediaType) (THIS_ AM_MEDIA_TYPE *); - STDMETHOD(SetBufferSamples) (THIS_ BOOL); - STDMETHOD(GetCurrentBuffer) (THIS_ long *, long *); - STDMETHOD(GetCurrentSample) (THIS_ LPMEDIASAMPLE *); - STDMETHOD(SetCallback) (THIS_ ISampleGrabberCB *, long); -}; - -#undef INTERFACE -#define INTERFACE IFilterGraph -DECLARE_INTERFACE(IFilterGraph) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(AddFilter) (THIS_ LPBASEFILTER, LPCWSTR); - STDMETHOD(RemoveFilter) (THIS_ LPBASEFILTER); - STDMETHOD(EnumFilters) (THIS_ LPENUMFILTERS *); - STDMETHOD(FindFilterByName) (THIS_ LPCWSTR, LPBASEFILTER *); - STDMETHOD(ConnectDirect) (THIS_ IPin *, IPin *, const AM_MEDIA_TYPE *); - STDMETHOD(Reconnect) (THIS_ LPPIN); - STDMETHOD(Disconnect) (THIS_ LPPIN); - STDMETHOD(SetDefaultSyncSource) (THIS); -}; - -#undef INTERFACE -#define INTERFACE IAMAudioInputMixer -DECLARE_INTERFACE(IAMAudioInputMixer) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(put_Enable) (THIS_ BOOL); - STDMETHOD(get_Enable) (THIS_ BOOL *); - STDMETHOD(put_Mono) (THIS_ BOOL); - STDMETHOD(get_Mono) (THIS_ BOOL *); - STDMETHOD(put_MixLevel) (THIS_ double); - STDMETHOD(get_MixLevel) (THIS_ double *); - STDMETHOD(put_Pan) (THIS_ double); - STDMETHOD(get_Pan) (THIS_ double *); - STDMETHOD(put_Loudness) (THIS_ BOOL); - STDMETHOD(get_Loudness) (THIS_ BOOL *); - STDMETHOD(put_Treble) (THIS_ double); - STDMETHOD(get_Treble) (THIS_ double *); - STDMETHOD(get_TrebleRange) (THIS_ double *); - STDMETHOD(put_Bass) (THIS_ double); - STDMETHOD(get_Bass) (THIS_ double *); - STDMETHOD(get_BassRange) (THIS_ double *); -}; - - -#undef INTERFACE -#define INTERFACE IMediaSample -DECLARE_INTERFACE(IMediaSample) -{ - STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); - STDMETHOD_(long, AddRef) (THIS); - STDMETHOD_(long, Release) (THIS); - STDMETHOD(GetPointer )(THIS_ unsigned char** ); - STDMETHOD_(LONG,GetSize )(THIS); - STDMETHOD(GetTime )(THIS_ REFERENCE_TIME* ,REFERENCE_TIME* ); - STDMETHOD(SetTime )(THIS_ REFERENCE_TIME* ,REFERENCE_TIME* ); - STDMETHOD(IsSyncPoint )(THIS); - STDMETHOD(SetSyncPoint )(THIS_ long ); - STDMETHOD(IsPreroll )(THIS); - STDMETHOD(SetPreroll )(THIS_ long ); - STDMETHOD_(LONG,GetActualDataLength)(THIS); - STDMETHOD(SetActualDataLength )(THIS_ long ); - STDMETHOD(GetMediaType )(THIS_ AM_MEDIA_TYPE** ); - STDMETHOD(SetMediaType )(THIS_ AM_MEDIA_TYPE* ); - STDMETHOD(IsDiscontinuity )(THIS); - STDMETHOD(SetDiscontinuity )(THIS_ long ); - STDMETHOD(GetMediaTime )(THIS_ long long* ,long long* ); - STDMETHOD(SetMediaTime )(THIS_ long long* ,long long* ); -}; - - -#undef INTERFACE -#define INTERFACE IAMBufferNegotiation -DECLARE_INTERFACE(IAMBufferNegotiation) -{ - STDMETHOD(QueryInterface )(THIS_ REFIID ,void **); - STDMETHOD_(ULONG,AddRef )(THIS); - STDMETHOD_(ULONG,Release )(THIS); - STDMETHOD(SuggestAllocatorProperties )(THIS_ const ALLOCATOR_PROPERTIES *); - STDMETHOD(GetAllocatorProperties )(THIS_ ALLOCATOR_PROPERTIES *); -}; - - -#undef INTERFACE -#define INTERFACE IVideoWindow -DECLARE_INTERFACE(IVideoWindow) -{ - STDMETHOD(QueryInterface )(THIS_ REFIID ,void **); - STDMETHOD_(ULONG,AddRef )(THIS); - STDMETHOD_(ULONG,Release )(THIS); - STDMETHOD(GetTypeInfoCount) (THIS_ UINT * ); - STDMETHOD(GetTypeInfo) (THIS_ UINT ,LCID , ITypeInfo ** ); - STDMETHOD(GetIDsOfNames) (THIS_ REFIID ,LPOLESTR * , UINT ,LCID , DISPID * ); - STDMETHOD(Invoke) (THIS_ DISPID ,REFIID , LCID , WORD ,void *, VARIANT * ,EXCEPINFO * , UINT * ); - STDMETHOD(put_Caption) (THIS_ BSTR ); - STDMETHOD(get_Caption) (THIS_ BSTR * ); - STDMETHOD(put_WindowStyle) (THIS_ long ); - STDMETHOD(get_WindowStyle) (THIS_ long *); - STDMETHOD(put_WindowStyleEx) (THIS_ long ); - STDMETHOD(get_WindowStyleEx) (THIS_ long *); - STDMETHOD(put_AutoShow) (THIS_ long ); - STDMETHOD(get_AutoShow) (THIS_ long *); - STDMETHOD(put_WindowState) (THIS_ long ); - STDMETHOD(get_WindowState) (THIS_ long *); - STDMETHOD(put_BackgroundPalette) (THIS_ long ); - STDMETHOD(get_BackgroundPalette) (THIS_ long *); - STDMETHOD(put_Visible) (THIS_ long ); - STDMETHOD(get_Visible) (THIS_ long *); - STDMETHOD(put_Left) (THIS_ long ); - STDMETHOD(get_Left) (THIS_ long *); - STDMETHOD(put_Width) (THIS_ long ); - STDMETHOD(get_Width) (THIS_ long *); - STDMETHOD(put_Top) (THIS_ long ); - STDMETHOD(get_Top) (THIS_ long *); - STDMETHOD(put_Height) (THIS_ long ); - STDMETHOD(get_Height) (THIS_ long *); - STDMETHOD(put_Owner) (THIS_ OAHWND ); - STDMETHOD(get_Owner) (THIS_ OAHWND * ); - STDMETHOD(put_MessageDrain) (THIS_ OAHWND ); - STDMETHOD(get_MessageDrain) (THIS_ OAHWND * ); - STDMETHOD(get_BorderColor) (THIS_ long *); - STDMETHOD(put_BorderColor) (THIS_ long ); - STDMETHOD(get_FullScreenMode) (THIS_ long *); - STDMETHOD(put_FullScreenMode) (THIS_ long ); - STDMETHOD(SetWindowForeground) (THIS_ long ); - STDMETHOD(NotifyOwnerMessage) (THIS_ OAHWND ,long , LONG_PTR ,LONG_PTR ); - STDMETHOD(SetWindowPosition) (THIS_ long ,long , long ,long ); - STDMETHOD(GetWindowPosition) (THIS_ long *,long *, long *,long *); - STDMETHOD(GetMinIdealImageSize) (THIS_ long *, long *); - STDMETHOD(GetMaxIdealImageSize) (THIS_ long *, long *); - STDMETHOD(GetRestorePosition) (THIS_ long *,long *, long *,long *); - STDMETHOD(HideCursor) (THIS_ long ); - STDMETHOD(IsCursorHidden) (THIS_ long *); -}; - -#ifndef DECLARE_ENUMERATOR_ -#define DECLARE_ENUMERATOR_(I,T) \ - DECLARE_INTERFACE_(I,IUnknown) \ - { \ - STDMETHOD(QueryInterface)(I*, REFIID,PVOID*); \ - STDMETHOD_(ULONG,AddRef)(I*); \ - STDMETHOD_(ULONG,Release)(I*); \ - STDMETHOD(Next)(I*, ULONG,T*,ULONG*); \ - STDMETHOD(Skip)(I*, ULONG); \ - STDMETHOD(Reset)(I*); \ - STDMETHOD(Clone)(I*, I**); \ - } -#endif -DECLARE_ENUMERATOR_(IEnumFilters, LPBASEFILTER); -DECLARE_ENUMERATOR_(IEnumPins, LPPIN); -DECLARE_ENUMERATOR_(IEnumMediaTypes, AM_MEDIA_TYPE *); - -#define OLE_CALL(p,method) (p)->lpVtbl->method(p) -#ifdef __GNUC__ -#define OLE_CALL_ARGS(p, method, a1, args...) (p)->lpVtbl->method(p, a1, ##args) -#else -#define OLE_CALL_ARGS(p, method, ...) (p)->lpVtbl->method(p, __VA_ARGS__) -#endif -#define OLE_RELEASE_SAFE(p) if(p){ OLE_CALL((IUnknown*)p,Release); p=NULL;} -#define OLE_QUERYINTERFACE(p,iface,ptr) OLE_CALL_ARGS((IUnknown*)p,QueryInterface,&iface,(void*)&ptr) - -#endif /* MPLAYER_TVI_DSHOW_H */ |