CMultiIOBaseFilter Class Reference

Inheritance diagram for CMultiIOBaseFilter:

CRtvcTee

Detailed Description

Definition at line 71 of file MultiIOBaseFilter.h.


Public Member Functions

 CMultiIOBaseFilter (TCHAR *pObjectName, LPUNKNOWN lpUnk, CLSID clsid)
virtual ~CMultiIOBaseFilter (void)
void Initialise ()
virtual int GetPinCount ()
 CBase Filter methods - Overridden since we don't just have one input and output pin as the standard transform filter does.
virtual CBasePin * GetPin (int n)
 Override this method: the pins get created in this method of the transform filter.
virtual STDMETHODIMP FindPin (LPCWSTR Id, IPin **ppPin)
 Method needed to connect pins based on their names.
virtual HRESULT CheckInputType (const CMediaType *mtIn)
virtual void OnConnect (int nIndex, RTVC_DIRECTION eDirection)
 Overridden to create more input pins on connection.
virtual void OnDisconnect (int nIndex)
 Overridden to remove unused input pins on disconnect.
virtual HRESULT Receive (IMediaSample *pSample, int nIndex) PURE
 chance to customize the transform process
virtual HRESULT InitializeOutputSample (IMediaSample *pSample, IMediaSample **ppOutSample, int nInputIndex, int nOutputIndex)
 Standard setup for output sample.
virtual int InitialNumberOfInputPins ()
 Input input pin creation management methods.
virtual int InitialNumberOfOutputPins ()
 Input output pin creation management methods.
virtual bool OnFullCreateMoreInputs ()
 Determines whether the filter creates more inputs once all inputs have been used up.
virtual bool OnFullCreateMoreOutputs ()
 Determines whether the filter creates more outputs once all inputs have been used up.
virtual void InitialiseInputTypes ()=0
 The allowed media types for the input must be added in the overridden method in the subclass.
virtual void InitialiseOutputTypes ()=0
 The allowed media types for the output must be added in the overridden method in the subclass.
virtual HRESULT DecideBufferSize (IMemAllocator *pAlloc, ALLOCATOR_PROPERTIES *pRequestProperties, int m_nIndex) PURE
 From CBaseOutputPin.
virtual HRESULT CheckOutputType (const CMediaType *pMediaType)
 From CBasePin.
virtual HRESULT GetMediaType (int iPosition, CMediaType *pmt, int nOutputPinIndex) PURE
 To Check media type.
virtual HRESULT SetMediaType (PIN_DIRECTION direction, const CMediaType *pmt, int nIndex)
 override this to know when the media type is actually set This method has been extended to allow the subclass to specify which media type is allowed on a per pin basis.
virtual STDMETHODIMP EndOfStream (int nIndex)
virtual STDMETHODIMP BeginFlush (int nIndex)
virtual STDMETHODIMP EndFlush (int nIndex)
virtual STDMETHODIMP NewSegment (REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate, int nIndex)

Protected Member Functions

void AddInputType (const GUID *pType, const GUID *pSubType, const GUID *pFormat, int nPin=-1)
 Used for Media Type Negotiation Call the AddInputType method in your overridden InitialiseInputTypes method to add your acceptable media types, subtypes and formats.
void AddOutputType (const GUID *pType, const GUID *pSubType, const GUID *pFormat, int nPin=-1)
 Add output types, the default value for pin = -1 which indicates that the specified input type can be used for all pins.
void CreateInputPin ()
 Helper method to create an input pin with our naming convention.
void CreateOutputPin ()
 Helper method to create an output pin with our naming convention.

Protected Attributes

INPUT_PIN_LIST m_vInputPins
 List of input pins of the filter.
OUTPUT_PIN_LIST m_vOutputPins
 List of output pins of the filter.
MEDIA_TYPE_LIST m_mMediaTypes
 Media types of the connected input pins.
CCritSec m_csFilter
 Filter Lock.
CCritSec m_csReceive
 Receive Lock.

Friends

class CMultiIOInputPin
class CMultiIOOutputPin

Data Structures

class  CIOMediaType

Member Function Documentation

HRESULT CMultiIOBaseFilter::InitializeOutputSample ( IMediaSample *  pSample,
IMediaSample **  ppOutSample,
int  nInputIndex,
int  nOutputIndex 
) [virtual]

Standard setup for output sample.

Method: InitializeOutputSample FullName: CMultiIOBaseFilter::InitializeOutputSample Access: virtual public Qualifier:.

Returns:
: HRESULT
Parameters:
 IMediaSample *pSample
 IMediaSample **ppOutSample
 int nInputIndex: this is required when initialising an out sample so that we can get the properties such as sample start time of the specified input and use this for the specified out sample
 int nOutputIndex: this needs to be specified so that we can get the correct allocator

Definition at line 364 of file MultiIOBaseFilter.cpp.

HRESULT CMultiIOBaseFilter::SetMediaType ( PIN_DIRECTION  direction,
const CMediaType *  pmt,
int  nIndex 
) [virtual]

override this to know when the media type is actually set This method has been extended to allow the subclass to specify which media type is allowed on a per pin basis.

If the index - 1 is specified, the media type is allowable for all pins

Definition at line 438 of file MultiIOBaseFilter.cpp.

void CMultiIOBaseFilter::AddInputType ( const GUID *  pType,
const GUID *  pSubType,
const GUID *  pFormat,
int  nPin = -1 
) [protected]

Used for Media Type Negotiation Call the AddInputType method in your overridden InitialiseInputTypes method to add your acceptable media types, subtypes and formats.

Add input types, the default value for pin = -1 which indicates that the specified input type can be used for all pins

Definition at line 108 of file MultiIOBaseFilter.cpp.


The documentation for this class was generated from the following files:
Generated on Fri Mar 13 14:12:38 2009 for RTVC by  doxygen 1.5.3