CustomBaseFilter.h

Go to the documentation of this file.
00001 
00034 #pragma once
00035 #include <DirectShow/stdafx.h>
00036 #include <DirectShow/CStatusInterface.h>
00037 #include <DirectShow/CSettingsInterface.h>
00038 
00039 using namespace std;
00040 
00041 class CCustomBaseFilter : public CTransformFilter, public CSettingsInterface, public CStatusInterface
00042 {
00044         DECLARE_IUNKNOWN;
00045 
00046 public:
00047         CCustomBaseFilter(TCHAR *pObjectName, LPUNKNOWN lpUnk, CLSID clsid);
00048         virtual ~CCustomBaseFilter(void);
00049         
00051         virtual HRESULT CheckInputType(const CMediaType *pMediaType);
00052 
00055         virtual HRESULT SetMediaType(PIN_DIRECTION direction, const CMediaType *pmt);
00056 
00058 
00064         HRESULT Transform(IMediaSample *pSource, IMediaSample *pDest);
00065 
00067         STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
00068         
00070         STDMETHODIMP GetParameter( const char* szParamName, char* szResult, int& length );
00071         STDMETHODIMP SetParameter( const char* szParamName, const char* szValue);
00072 
00075         virtual void InitialiseInputTypes() PURE;
00076 
00077 protected:
00083         void AddInputType(const GUID* pType, const GUID* pSubType, const GUID* pFormat);
00084 
00089         virtual DWORD ApplyTransform(BYTE* pBufferIn, BYTE* pBufferOut) PURE;
00090 
00092         VIDEOINFOHEADER m_videoInHeader;
00094         VIDEOINFOHEADER m_videoOutHeader;
00095         // Other video information
00097         int m_nInHeight;
00099         int m_nInWidth;
00101         int m_nInPixels;
00103         int m_nOutHeight;
00105         int m_nOutWidth;
00107         int m_nOutPixels;
00109         int m_nBitCount;
00110 
00111 private:
00112         // Used for storing and checking connection types
00113         GUIDList_t m_vInTypes;
00114         GUIDList_t m_vInSubTypes;
00115         GUIDList_t m_vInFormats;
00116 };

Generated on Fri Mar 13 14:12:38 2009 for RTVC by  doxygen 1.5.3