#include <amfilter.h>

Public Member Functions | |
| CBasePin (TCHAR *pObjectName, CBaseFilter *pFilter, CCritSec *pLock, HRESULT *phr, LPCWSTR pName, PIN_DIRECTION dir) | |
| virtual | ~CBasePin () |
| DECLARE_IUNKNOWN STDMETHODIMP | NonDelegatingQueryInterface (REFIID riid, void **ppv) |
| STDMETHODIMP_ (ULONG) NonDelegatingRelease() | |
| STDMETHODIMP_ (ULONG) NonDelegatingAddRef() | |
| STDMETHODIMP | Connect (IPin *pReceivePin, const AM_MEDIA_TYPE *pmt) |
| STDMETHODIMP | ReceiveConnection (IPin *pConnector, const AM_MEDIA_TYPE *pmt) |
| STDMETHODIMP | Disconnect () |
| STDMETHODIMP | ConnectedTo (IPin **pPin) |
| STDMETHODIMP | ConnectionMediaType (AM_MEDIA_TYPE *pmt) |
| STDMETHODIMP | QueryPinInfo (PIN_INFO *pInfo) |
| STDMETHODIMP | QueryDirection (PIN_DIRECTION *pPinDir) |
| STDMETHODIMP | QueryId (LPWSTR *Id) |
| STDMETHODIMP | QueryAccept (const AM_MEDIA_TYPE *pmt) |
| STDMETHODIMP | EnumMediaTypes (IEnumMediaTypes **ppEnum) |
| STDMETHODIMP | QueryInternalConnections (IPin **apPin, ULONG *nPin) |
| STDMETHODIMP | EndOfStream (void) |
| STDMETHODIMP | NewSegment (REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) |
| STDMETHODIMP | Notify (IBaseFilter *pSender, Quality q) |
| STDMETHODIMP | SetSink (IQualityControl *piqc) |
| BOOL | IsConnected (void) |
| IPin * | GetConnected () |
| BOOL | IsStopped () |
| virtual LONG | GetMediaTypeVersion () |
| void | IncrementTypeVersion () |
| virtual HRESULT | Active (void) |
| virtual HRESULT | Inactive (void) |
| virtual HRESULT | Run (REFERENCE_TIME tStart) |
| virtual HRESULT | CheckMediaType (const CMediaType *) PURE |
| virtual HRESULT | SetMediaType (const CMediaType *) |
| virtual HRESULT | CheckConnect (IPin *) |
| virtual HRESULT | BreakConnect () |
| virtual HRESULT | CompleteConnect (IPin *pReceivePin) |
| virtual HRESULT | GetMediaType (int iPosition, CMediaType *pMediaType) |
| REFERENCE_TIME | CurrentStopTime () |
| REFERENCE_TIME | CurrentStartTime () |
| double | CurrentRate () |
| LPWSTR | Name () |
| void | SetReconnectWhenActive (bool bCanReconnect) |
| bool | CanReconnectWhenActive () |
Protected Member Functions | |
| void | DisplayPinInfo (IPin *pReceivePin) |
| void | DisplayTypeInfo (IPin *pPin, const CMediaType *pmt) |
| HRESULT | AttemptConnection (IPin *pReceivePin, const CMediaType *pmt) |
| HRESULT | TryMediaTypes (IPin *pReceivePin, const CMediaType *pmt, IEnumMediaTypes *pEnum) |
| HRESULT | AgreeMediaType (IPin *pReceivePin, const CMediaType *pmt) |
| STDMETHODIMP | DisconnectInternal () |
Protected Attributes | |
| WCHAR * | m_pName |
| IPin * | m_Connected |
| PIN_DIRECTION | m_dir |
| CCritSec * | m_pLock |
| bool | m_bRunTimeError |
| bool | m_bCanReconnectWhenActive |
| bool | m_bTryMyTypesFirst |
| CBaseFilter * | m_pFilter |
| IQualityControl * | m_pQSink |
| LONG | m_TypeVersion |
| CMediaType | m_mt |
| CRefTime | m_tStart |
| CRefTime | m_tStop |
| double | m_dRate |
Definition at line 266 of file amfilter.h.
| CBasePin::CBasePin | ( | TCHAR * | pObjectName, | |
| CBaseFilter * | pFilter, | |||
| CCritSec * | pLock, | |||
| HRESULT * | phr, | |||
| LPCWSTR | pName, | |||
| PIN_DIRECTION | dir | |||
| ) |
Definition at line 1036 of file amfilter.cpp.
References ASSERT, lstrlenW, CUnknown::m_cRef, m_pName, and NULL.
| CBasePin::~CBasePin | ( | ) | [virtual] |
Definition at line 1114 of file amfilter.cpp.
References ASSERT, FALSE, m_Connected, CUnknown::m_cRef, and m_pName.
| void CBasePin::DisplayPinInfo | ( | IPin * | pReceivePin | ) | [inline, protected] |
| void CBasePin::DisplayTypeInfo | ( | IPin * | pPin, | |
| const CMediaType * | pmt | |||
| ) | [inline, protected] |
| HRESULT CBasePin::AttemptConnection | ( | IPin * | pReceivePin, | |
| const CMediaType * | pmt | |||
| ) | [protected] |
Definition at line 1230 of file amfilter.cpp.
References BreakConnect(), CheckConnect(), CheckMediaType(), CompleteConnect(), CONNECT_TRACE_LEVEL, DbgLog, DisplayTypeInfo(), E_FAIL, E_INVALIDARG, EXECUTE_ASSERT, FAILED, hr, HRESULT, LOG_TRACE, m_Connected, NULL, and SetMediaType().
Referenced by AgreeMediaType(), and TryMediaTypes().
| HRESULT CBasePin::TryMediaTypes | ( | IPin * | pReceivePin, | |
| const CMediaType * | pmt, | |||
| IEnumMediaTypes * | pEnum | |||
| ) | [protected] |
Definition at line 1286 of file amfilter.cpp.
References ASSERT, AttemptConnection(), DeleteMediaType(), E_FAIL, E_INVALIDARG, FAILED, hr, HRESULT, NULL, and S_OK.
Referenced by AgreeMediaType().
| HRESULT CBasePin::AgreeMediaType | ( | IPin * | pReceivePin, | |
| const CMediaType * | pmt | |||
| ) | [protected] |
Definition at line 1346 of file amfilter.cpp.
References ASSERT, AttemptConnection(), E_FAIL, E_INVALIDARG, EnumMediaTypes(), hr, HRESULT, CMediaType::IsPartiallySpecified(), m_bTryMyTypesFirst, NULL, and TryMediaTypes().
Referenced by Connect().
| STDMETHODIMP CBasePin::NonDelegatingQueryInterface | ( | REFIID | riid, | |
| void ** | ppv | |||
| ) |
Reimplemented from CUnknown.
Reimplemented in CBaseInputPin, CDynamicOutputPin, CAsyncOutputPin, and CTransformOutputPin.
Definition at line 1125 of file amfilter.cpp.
References GetInterface(), and CUnknown::NonDelegatingQueryInterface().
Referenced by CTransformOutputPin::NonDelegatingQueryInterface(), CAsyncOutputPin::NonDelegatingQueryInterface(), CDynamicOutputPin::NonDelegatingQueryInterface(), and CBaseInputPin::NonDelegatingQueryInterface().
| STDMETHODIMP CBasePin::Connect | ( | IPin * | pReceivePin, | |
| const AM_MEDIA_TYPE * | pmt | |||
| ) |
Reimplemented in CAsyncOutputPin.
Definition at line 1194 of file amfilter.cpp.
References AgreeMediaType(), BreakConnect(), CheckPointer, CONNECT_TRACE_LEVEL, DbgLog, DisplayPinInfo(), EXECUTE_ASSERT, FAILED, hr, HRESULT, IsStopped(), LOG_TRACE, m_bCanReconnectWhenActive, m_Connected, m_pLock, and ValidateReadPtr.
| STDMETHODIMP CBasePin::ReceiveConnection | ( | IPin * | pConnector, | |
| const AM_MEDIA_TYPE * | pmt | |||
| ) |
Definition at line 1433 of file amfilter.cpp.
References BreakConnect(), CheckConnect(), CheckMediaType(), CheckPointer, CompleteConnect(), CONNECT_TRACE_LEVEL, DbgLog, E_FAIL, E_INVALIDARG, EXECUTE_ASSERT, FAILED, hr, HRESULT, IsStopped(), LOG_TRACE, m_bCanReconnectWhenActive, m_Connected, m_pLock, NULL, SetMediaType(), and ValidateReadPtr.
| STDMETHODIMP CBasePin::Disconnect | ( | void | ) |
Reimplemented in CDynamicOutputPin.
Definition at line 1509 of file amfilter.cpp.
References DisconnectInternal(), IsStopped(), and m_pLock.
| STDMETHODIMP CBasePin::ConnectedTo | ( | IPin ** | pPin | ) |
Definition at line 1547 of file amfilter.cpp.
References ASSERT, CheckPointer, m_Connected, NULL, S_OK, and ValidateReadWritePtr.
Referenced by CBaseInputPin::ReceiveCanBlock().
| STDMETHODIMP CBasePin::ConnectionMediaType | ( | AM_MEDIA_TYPE * | pmt | ) |
Definition at line 1570 of file amfilter.cpp.
References CheckPointer, CopyMediaType(), IsConnected(), m_mt, m_pLock, S_OK, and ValidateReadWritePtr.
| STDMETHODIMP CBasePin::QueryPinInfo | ( | PIN_INFO * | pInfo | ) |
Definition at line 1589 of file amfilter.cpp.
References CheckPointer, lstrcpynW, m_dir, m_pFilter, m_pName, and ValidateReadWritePtr.
| STDMETHODIMP CBasePin::QueryDirection | ( | PIN_DIRECTION * | pPinDir | ) |
Definition at line 1613 of file amfilter.cpp.
References CheckPointer, m_dir, and ValidateReadWritePtr.
Referenced by CBaseInputPin::ReceiveCanBlock().
| STDMETHODIMP CBasePin::QueryId | ( | LPWSTR * | Id | ) |
Reimplemented in CRendererInputPin, CSourceStream, CTransformInputPin, and CTransformOutputPin.
Definition at line 1625 of file amfilter.cpp.
References AMGetWideString(), and Name().
| STDMETHODIMP CBasePin::QueryAccept | ( | const AM_MEDIA_TYPE * | pmt | ) |
Definition at line 1636 of file amfilter.cpp.
References CheckMediaType(), CheckPointer, FAILED, hr, HRESULT, S_FALSE, and ValidateReadPtr.
| STDMETHODIMP CBasePin::EnumMediaTypes | ( | IEnumMediaTypes ** | ppEnum | ) |
Reimplemented in CTransInPlaceInputPin, and CTransInPlaceOutputPin.
Definition at line 1654 of file amfilter.cpp.
References CheckPointer, E_OUTOFMEMORY, NULL, and ValidateReadWritePtr.
Referenced by AgreeMediaType().
| STDMETHODIMP CBasePin::QueryInternalConnections | ( | IPin ** | apPin, | |
| ULONG * | nPin | |||
| ) | [inline] |
Definition at line 404 of file amfilter.h.
| STDMETHODIMP CBasePin::EndOfStream | ( | void | ) |
Reimplemented in CRenderedInputPin, CBaseOutputPin, CRendererInputPin, and CTransformInputPin.
Definition at line 1711 of file amfilter.cpp.
References S_OK.
Referenced by CRendererInputPin::EndOfStream(), and CBaseInputPin::Receive().
| STDMETHODIMP CBasePin::NewSegment | ( | REFERENCE_TIME | tStart, | |
| REFERENCE_TIME | tStop, | |||
| double | dRate | |||
| ) |
Reimplemented in CTransformInputPin.
Definition at line 1735 of file amfilter.cpp.
References m_dRate, m_tStart, m_tStop, and S_OK.
Referenced by CTransformInputPin::NewSegment().
| STDMETHODIMP CBasePin::Notify | ( | IBaseFilter * | pSender, | |
| Quality | q | |||
| ) |
Reimplemented in CBaseInputPin, and CTransformOutputPin.
Definition at line 1726 of file amfilter.cpp.
References DbgBreak.
| STDMETHODIMP CBasePin::SetSink | ( | IQualityControl * | piqc | ) |
| BOOL CBasePin::IsConnected | ( | void | ) | [inline] |
Definition at line 435 of file amfilter.h.
References NULL.
Referenced by CSourceStream::Active(), CTransformInputPin::BeginFlush(), CBaseRenderer::BreakConnect(), CDynamicOutputPin::ChangeMediaType(), CTransformOutputPin::CheckConnect(), CTransInPlaceOutputPin::CheckMediaType(), CTransInPlaceInputPin::CheckMediaType(), CTransformOutputPin::CheckMediaType(), CTransformInputPin::CheckMediaType(), CTransformInputPin::CheckStreaming(), CBaseInputPin::CheckStreaming(), CTransInPlaceFilter::CompleteConnect(), CBaseRenderer::CompleteStateChange(), ConnectionMediaType(), CTransInPlaceFilter::DecideBufferSize(), CTransformInputPin::EndFlush(), CTransInPlaceOutputPin::EnumMediaTypes(), CTransInPlaceInputPin::EnumMediaTypes(), CTransInPlaceInputPin::GetAllocator(), CTransInPlaceInputPin::GetAllocatorRequirements(), CTransformOutputPin::GetMediaType(), CSourceStream::Inactive(), CTransInPlaceInputPin::NotifyAllocator(), CBaseRenderer::OnDisplayChange(), CTransformFilter::Pause(), CBaseRenderer::Pause(), CBaseFilter::Pause(), CBaseRenderer::PrepareReceive(), CBaseRenderer::Run(), CBaseFilter::Run(), CBaseRenderer::SendRepaint(), CTransformFilter::Stop(), CBaseRenderer::Stop(), and CBaseFilter::Stop().
| IPin* CBasePin::GetConnected | ( | ) | [inline] |
Definition at line 437 of file amfilter.h.
Referenced by CTransInPlaceOutputPin::CheckMediaType(), CTransInPlaceInputPin::CheckMediaType(), CTransInPlaceOutputPin::EnumMediaTypes(), CTransInPlaceInputPin::EnumMediaTypes(), and CBaseVideoRenderer::SendQuality().
| BOOL CBasePin::IsStopped | ( | ) | [inline] |
Definition at line 440 of file amfilter.h.
Referenced by CTransformOutputPin::BreakConnect(), CTransformInputPin::BreakConnect(), CDynamicOutputPin::ChangeMediaType(), CTransformInputPin::CheckStreaming(), CBaseInputPin::CheckStreaming(), CDynamicOutputPin::CompleteConnect(), Connect(), Disconnect(), and ReceiveConnection().
| LONG CBasePin::GetMediaTypeVersion | ( | ) | [virtual] |
Definition at line 1680 of file amfilter.cpp.
References m_TypeVersion.
Referenced by CEnumMediaTypes::AreWeOutOfSync(), CEnumMediaTypes::CEnumMediaTypes(), and CEnumMediaTypes::Reset().
| void CBasePin::IncrementTypeVersion | ( | ) |
| HRESULT CBasePin::Active | ( | void | ) | [virtual] |
Reimplemented in CRenderedInputPin, CBaseOutputPin, CDynamicOutputPin, CRendererInputPin, and CSourceStream.
Definition at line 1691 of file amfilter.cpp.
Referenced by CRenderedInputPin::Active(), and CBaseFilter::Pause().
| HRESULT CBasePin::Inactive | ( | void | ) | [virtual] |
Reimplemented in CBaseOutputPin, CBaseInputPin, CDynamicOutputPin, CRendererInputPin, and CSourceStream.
Definition at line 1704 of file amfilter.cpp.
References FALSE, and m_bRunTimeError.
Referenced by CBaseFilter::Stop().
| HRESULT CBasePin::Run | ( | REFERENCE_TIME | tStart | ) | [virtual] |
Reimplemented in CRenderedInputPin.
Definition at line 1697 of file amfilter.cpp.
Referenced by CBaseFilter::Run().
| virtual HRESULT CBasePin::CheckMediaType | ( | const CMediaType * | ) | [virtual] |
Reimplemented in CAsyncOutputPin, CRendererInputPin, CSourceStream, CTransformInputPin, CTransformOutputPin, CTransInPlaceInputPin, and CTransInPlaceOutputPin.
Referenced by AttemptConnection(), QueryAccept(), CBaseInputPin::Receive(), and ReceiveConnection().
| HRESULT CBasePin::SetMediaType | ( | const CMediaType * | pmt | ) | [virtual] |
Reimplemented in CRendererInputPin, CTransformInputPin, and CTransformOutputPin.
Definition at line 1402 of file amfilter.cpp.
References m_mt.
Referenced by AttemptConnection(), CDynamicOutputPin::ChangeMediaTypeHelper(), ReceiveConnection(), CTransformOutputPin::SetMediaType(), CTransformInputPin::SetMediaType(), and CRendererInputPin::SetMediaType().
| HRESULT CBasePin::CheckConnect | ( | IPin * | pPin | ) | [virtual] |
Reimplemented in CBaseOutputPin, CAsyncOutputPin, CTransformInputPin, and CTransformOutputPin.
Definition at line 1409 of file amfilter.cpp.
Referenced by AttemptConnection(), CTransformInputPin::CheckConnect(), CAsyncOutputPin::CheckConnect(), CBaseOutputPin::CheckConnect(), and ReceiveConnection().
| HRESULT CBasePin::BreakConnect | ( | ) | [virtual] |
Reimplemented in CBaseOutputPin, CBaseInputPin, CAsyncOutputPin, CRendererInputPin, CTransformInputPin, and CTransformOutputPin.
Definition at line 1427 of file amfilter.cpp.
Referenced by AttemptConnection(), CAsyncOutputPin::BreakConnect(), Connect(), DisconnectInternal(), and ReceiveConnection().
| HRESULT CBasePin::CompleteConnect | ( | IPin * | pReceivePin | ) | [virtual] |
Reimplemented in CBaseOutputPin, CDynamicOutputPin, CAsyncOutputPin, CRendererInputPin, CTransformInputPin, and CTransformOutputPin.
Definition at line 1395 of file amfilter.cpp.
Referenced by AttemptConnection(), CTransformInputPin::CompleteConnect(), CRendererInputPin::CompleteConnect(), CAsyncOutputPin::CompleteConnect(), and ReceiveConnection().
| HRESULT CBasePin::GetMediaType | ( | int | iPosition, | |
| CMediaType * | pMediaType | |||
| ) | [virtual] |
Reimplemented in CAsyncOutputPin, CSourceStream, and CTransformOutputPin.
Definition at line 1673 of file amfilter.cpp.
Referenced by CEnumMediaTypes::Next(), and CEnumMediaTypes::Skip().
| REFERENCE_TIME CBasePin::CurrentStopTime | ( | ) | [inline] |
Definition at line 476 of file amfilter.h.
| REFERENCE_TIME CBasePin::CurrentStartTime | ( | ) | [inline] |
Definition at line 479 of file amfilter.h.
| double CBasePin::CurrentRate | ( | ) | [inline] |
Definition at line 482 of file amfilter.h.
| LPWSTR CBasePin::Name | ( | ) | [inline] |
| void CBasePin::SetReconnectWhenActive | ( | bool | bCanReconnect | ) | [inline] |
| bool CBasePin::CanReconnectWhenActive | ( | ) | [inline] |
| STDMETHODIMP CBasePin::DisconnectInternal | ( | ) | [protected] |
Definition at line 1522 of file amfilter.cpp.
References ASSERT, BreakConnect(), CritCheckIn, DbgBreak, FAILED, hr, HRESULT, m_Connected, m_pLock, NULL, S_FALSE, and S_OK.
Referenced by CDynamicOutputPin::Disconnect(), and Disconnect().
WCHAR* CBasePin::m_pName [protected] |
Definition at line 271 of file amfilter.h.
Referenced by CBasePin(), QueryPinInfo(), and ~CBasePin().
IPin* CBasePin::m_Connected [protected] |
Definition at line 272 of file amfilter.h.
Referenced by AttemptConnection(), CDynamicOutputPin::ChangeMediaType(), CDynamicOutputPin::ChangeMediaTypeHelper(), Connect(), ConnectedTo(), CBaseOutputPin::DeliverBeginFlush(), CBaseOutputPin::DeliverEndFlush(), CBaseOutputPin::DeliverEndOfStream(), CBaseOutputPin::DeliverNewSegment(), DisconnectInternal(), CBaseInputPin::PassNotify(), ReceiveConnection(), and ~CBasePin().
PIN_DIRECTION CBasePin::m_dir [protected] |
Definition at line 273 of file amfilter.h.
Referenced by CheckConnect(), QueryDirection(), and QueryPinInfo().
CCritSec* CBasePin::m_pLock [protected] |
Definition at line 274 of file amfilter.h.
Referenced by CBaseInputPin::BeginFlush(), CAsyncOutputPin::CheckMediaType(), Connect(), ConnectionMediaType(), CDynamicOutputPin::Disconnect(), Disconnect(), DisconnectInternal(), CBaseInputPin::EndFlush(), CRenderedInputPin::EndFlush(), CTransInPlaceInputPin::GetAllocator(), CBaseInputPin::GetAllocator(), CBaseFilter::IsActive(), CTransInPlaceInputPin::NotifyAllocator(), CBaseInputPin::NotifyAllocator(), ReceiveConnection(), and SetSink().
bool CBasePin::m_bRunTimeError [protected] |
Definition at line 275 of file amfilter.h.
Referenced by CTransformInputPin::CheckStreaming(), CBaseInputPin::CheckStreaming(), CBaseInputPin::EndFlush(), CBaseInputPin::Inactive(), CBaseOutputPin::Inactive(), Inactive(), and CBaseInputPin::Receive().
bool CBasePin::m_bCanReconnectWhenActive [protected] |
bool CBasePin::m_bTryMyTypesFirst [protected] |
CBaseFilter* CBasePin::m_pFilter [protected] |
Reimplemented in CSourceStream.
Definition at line 279 of file amfilter.h.
Referenced by CTransInPlaceOutputPin::CheckMediaType(), CRenderedInputPin::DoCompleteHandling(), CRenderedInputPin::EndOfStream(), CBaseInputPin::PassNotify(), QueryPinInfo(), CBaseInputPin::Receive(), and CBaseInputPin::ReceiveCanBlock().
IQualityControl* CBasePin::m_pQSink [protected] |
Definition at line 280 of file amfilter.h.
Referenced by CBaseInputPin::PassNotify(), and SetSink().
LONG CBasePin::m_TypeVersion [protected] |
Definition at line 281 of file amfilter.h.
Referenced by GetMediaTypeVersion(), and IncrementTypeVersion().
CMediaType CBasePin::m_mt [protected] |
Definition at line 282 of file amfilter.h.
Referenced by CTransInPlaceOutputPin::CheckMediaType(), ConnectionMediaType(), CTransformOutputPin::CurrentMediaType(), CTransformInputPin::CurrentMediaType(), and SetMediaType().
CRefTime CBasePin::m_tStart [protected] |
CRefTime CBasePin::m_tStop [protected] |
double CBasePin::m_dRate [protected] |
1.5.6