#include <amfilter.h>

Public Member Functions | |
| CDynamicOutputPin (TCHAR *pObjectName, CBaseFilter *pFilter, CCritSec *pLock, HRESULT *phr, LPCWSTR pName) | |
| ~CDynamicOutputPin () | |
| DECLARE_IUNKNOWN STDMETHODIMP | NonDelegatingQueryInterface (REFIID riid, void **ppv) |
| STDMETHODIMP | Disconnect (void) |
| STDMETHODIMP | Block (DWORD dwBlockFlags, HANDLE hEvent) |
| void | SetConfigInfo (IGraphConfig *pGraphConfig, HANDLE hStopEvent) |
| HRESULT | DeliverBeginFlush (void) |
| HRESULT | DeliverEndFlush (void) |
| HRESULT | Inactive (void) |
| HRESULT | Active (void) |
| virtual HRESULT | CompleteConnect (IPin *pReceivePin) |
| virtual HRESULT | StartUsingOutputPin (void) |
| virtual void | StopUsingOutputPin (void) |
| virtual bool | StreamingThreadUsingOutputPin (void) |
| HRESULT | ChangeOutputFormat (const AM_MEDIA_TYPE *pmt, REFERENCE_TIME tSegmentStart, REFERENCE_TIME tSegmentStop, double dSegmentRate) |
| HRESULT | ChangeMediaType (const CMediaType *pmt) |
| HRESULT | DynamicReconnect (const CMediaType *pmt) |
Protected Types | |
| enum | BLOCK_STATE { NOT_BLOCKED, PENDING, BLOCKED } |
Protected Member Functions | |
| HRESULT | SynchronousBlockOutputPin (void) |
| HRESULT | AsynchronousBlockOutputPin (HANDLE hNotifyCallerPinBlockedEvent) |
| HRESULT | UnblockOutputPin (void) |
| void | BlockOutputPin (void) |
| void | ResetBlockState (void) |
Static Protected Member Functions | |
| static HRESULT | WaitEvent (HANDLE hEvent) |
Protected Attributes | |
| CCritSec | m_BlockStateLock |
| HANDLE | m_hUnblockOutputPinEvent |
| HANDLE | m_hNotifyCallerPinBlockedEvent |
| BLOCK_STATE | m_BlockState |
| DWORD | m_dwBlockCallerThreadID |
| DWORD | m_dwNumOutstandingOutputPinUsers |
| HANDLE | m_hStopEvent |
| IGraphConfig * | m_pGraphConfig |
| BOOL | m_bPinUsesReadOnlyAllocator |
Private Member Functions | |
| HRESULT | Initialize (void) |
| HRESULT | ChangeMediaTypeHelper (const CMediaType *pmt) |
Definition at line 818 of file amfilter.h.
enum CDynamicOutputPin::BLOCK_STATE [protected] |
| CDynamicOutputPin::CDynamicOutputPin | ( | TCHAR * | pObjectName, | |
| CBaseFilter * | pFilter, | |||
| CCritSec * | pLock, | |||
| HRESULT * | phr, | |||
| LPCWSTR | pName | |||
| ) |
| CDynamicOutputPin::~CDynamicOutputPin | ( | ) |
Definition at line 2934 of file amfilter.cpp.
References EXECUTE_ASSERT, m_hNotifyCallerPinBlockedEvent, m_hUnblockOutputPinEvent, and NULL.
| STDMETHODIMP CDynamicOutputPin::NonDelegatingQueryInterface | ( | REFIID | riid, | |
| void ** | ppv | |||
| ) |
Reimplemented from CBasePin.
Definition at line 2967 of file amfilter.cpp.
References GetInterface(), and CBasePin::NonDelegatingQueryInterface().
| STDMETHODIMP CDynamicOutputPin::Disconnect | ( | void | ) |
Reimplemented from CBasePin.
Definition at line 2976 of file amfilter.cpp.
References CBasePin::DisconnectInternal(), and CBasePin::m_pLock.
| STDMETHODIMP CDynamicOutputPin::Block | ( | DWORD | dwBlockFlags, | |
| HANDLE | hEvent | |||
| ) |
Definition at line 2982 of file amfilter.cpp.
References AmGetLastErrorToHResult(), AsynchronousBlockOutputPin(), E_INVALIDARG, FAILED, HRESULT, NULL, S_OK, SynchronousBlockOutputPin(), and UnblockOutputPin().
| void CDynamicOutputPin::SetConfigInfo | ( | IGraphConfig * | pGraphConfig, | |
| HANDLE | hStopEvent | |||
| ) |
Definition at line 3256 of file amfilter.cpp.
References m_hStopEvent, and m_pGraphConfig.
Referenced by Active().
| HRESULT CDynamicOutputPin::DeliverBeginFlush | ( | void | ) | [virtual] |
Reimplemented from CBaseOutputPin.
Definition at line 3294 of file amfilter.cpp.
References CBaseOutputPin::DeliverBeginFlush(), EXECUTE_ASSERT, and m_hStopEvent.
| HRESULT CDynamicOutputPin::DeliverEndFlush | ( | void | ) | [virtual] |
Reimplemented from CBaseOutputPin.
Definition at line 3305 of file amfilter.cpp.
References CBaseOutputPin::DeliverEndFlush(), EXECUTE_ASSERT, and m_hStopEvent.
| HRESULT CDynamicOutputPin::Inactive | ( | void | ) | [virtual] |
Reimplemented from CBaseOutputPin.
Definition at line 3283 of file amfilter.cpp.
References EXECUTE_ASSERT, CBaseOutputPin::Inactive(), and m_hStopEvent.
| HRESULT CDynamicOutputPin::Active | ( | void | ) | [virtual] |
Reimplemented from CBaseOutputPin.
Definition at line 3266 of file amfilter.cpp.
References CBaseOutputPin::Active(), DbgBreak, E_FAIL, EXECUTE_ASSERT, initialized, m_hStopEvent, m_pGraphConfig, NULL, and SetConfigInfo().
| HRESULT CDynamicOutputPin::CompleteConnect | ( | IPin * | pReceivePin | ) | [virtual] |
Reimplemented from CBaseOutputPin.
Definition at line 3459 of file amfilter.cpp.
References ASSERT, CBaseOutputPin::CompleteConnect(), HRESULT, CBasePin::IsStopped(), and CBaseOutputPin::m_pAllocator.
| HRESULT CDynamicOutputPin::StartUsingOutputPin | ( | void | ) | [virtual] |
Definition at line 3167 of file amfilter.cpp.
References AmGetLastErrorToHResult(), ASSERT, BLOCKED, CritCheckOut, DbgBreak, FALSE, CCritSec::Lock(), m_BlockState, m_BlockStateLock, m_dwNumOutstandingOutputPinUsers, m_hStopEvent, m_hUnblockOutputPinEvent, S_OK, and CCritSec::Unlock().
Referenced by CAutoUsingOutputPin::CAutoUsingOutputPin().
| void CDynamicOutputPin::StopUsingOutputPin | ( | void | ) | [virtual] |
Definition at line 3230 of file amfilter.cpp.
References BlockOutputPin(), m_BlockState, m_BlockStateLock, m_dwNumOutstandingOutputPinUsers, and NOT_BLOCKED.
Referenced by CAutoUsingOutputPin::~CAutoUsingOutputPin().
| bool CDynamicOutputPin::StreamingThreadUsingOutputPin | ( | void | ) | [virtual] |
Definition at line 3249 of file amfilter.cpp.
References m_BlockStateLock, and m_dwNumOutstandingOutputPinUsers.
Referenced by AsynchronousBlockOutputPin(), BlockOutputPin(), ChangeMediaType(), ChangeMediaTypeHelper(), ChangeOutputFormat(), and DynamicReconnect().
| HRESULT CDynamicOutputPin::ChangeOutputFormat | ( | const AM_MEDIA_TYPE * | pmt, | |
| REFERENCE_TIME | tSegmentStart, | |||
| REFERENCE_TIME | tSegmentStop, | |||
| double | dSegmentRate | |||
| ) |
Definition at line 3317 of file amfilter.cpp.
References ASSERT, ChangeMediaType(), CBaseOutputPin::DeliverNewSegment(), FAILED, HRESULT, NULL, S_OK, and StreamingThreadUsingOutputPin().
| HRESULT CDynamicOutputPin::ChangeMediaType | ( | const CMediaType * | pmt | ) |
Definition at line 3345 of file amfilter.cpp.
References ASSERT, ChangeMediaTypeHelper(), DynamicReconnect(), FAILED, HRESULT, CBasePin::IsConnected(), CBasePin::IsStopped(), CBasePin::m_Connected, NULL, S_OK, and StreamingThreadUsingOutputPin().
Referenced by ChangeOutputFormat().
| HRESULT CDynamicOutputPin::DynamicReconnect | ( | const CMediaType * | pmt | ) |
Definition at line 3438 of file amfilter.cpp.
References ASSERT, E_FAIL, HRESULT, m_hStopEvent, m_pGraphConfig, NULL, and StreamingThreadUsingOutputPin().
Referenced by ChangeMediaType().
| HRESULT CDynamicOutputPin::SynchronousBlockOutputPin | ( | void | ) | [protected] |
Definition at line 3037 of file amfilter.cpp.
References AmGetLastErrorToHResult(), AsynchronousBlockOutputPin(), EXECUTE_ASSERT, FAILED, FALSE, HRESULT, NULL, S_OK, and WaitEvent().
Referenced by Block().
| HRESULT CDynamicOutputPin::AsynchronousBlockOutputPin | ( | HANDLE | hNotifyCallerPinBlockedEvent | ) | [protected] |
Definition at line 3071 of file amfilter.cpp.
References AmGetLastErrorToHResult(), BlockOutputPin(), BOOL, FALSE, m_BlockState, m_BlockStateLock, m_dwBlockCallerThreadID, m_hNotifyCallerPinBlockedEvent, NOT_BLOCKED, PENDING, S_OK, and StreamingThreadUsingOutputPin().
Referenced by Block(), and SynchronousBlockOutputPin().
| HRESULT CDynamicOutputPin::UnblockOutputPin | ( | void | ) | [protected] |
Definition at line 3137 of file amfilter.cpp.
References EXECUTE_ASSERT, m_BlockState, m_BlockStateLock, m_dwBlockCallerThreadID, m_hNotifyCallerPinBlockedEvent, m_hUnblockOutputPinEvent, NOT_BLOCKED, NULL, S_FALSE, and S_OK.
Referenced by Block().
| void CDynamicOutputPin::BlockOutputPin | ( | void | ) | [protected] |
Definition at line 3114 of file amfilter.cpp.
References ASSERT, BLOCKED, CritCheckIn, EXECUTE_ASSERT, m_BlockState, m_BlockStateLock, m_hNotifyCallerPinBlockedEvent, m_hUnblockOutputPinEvent, NULL, and StreamingThreadUsingOutputPin().
Referenced by AsynchronousBlockOutputPin(), and StopUsingOutputPin().
| void CDynamicOutputPin::ResetBlockState | ( | void | ) | [protected] |
| HRESULT CDynamicOutputPin::WaitEvent | ( | HANDLE | hEvent | ) | [static, protected] |
Definition at line 3510 of file amfilter.cpp.
References AmGetLastErrorToHResult(), DbgBreak, and S_OK.
Referenced by SynchronousBlockOutputPin().
| HRESULT CDynamicOutputPin::Initialize | ( | void | ) | [private] |
Definition at line 2949 of file amfilter.cpp.
References AmGetLastErrorToHResult(), m_hUnblockOutputPinEvent, NULL, S_OK, CBasePin::SetReconnectWhenActive(), and TRUE.
Referenced by CDynamicOutputPin().
| HRESULT CDynamicOutputPin::ChangeMediaTypeHelper | ( | const CMediaType * | pmt | ) | [private] |
Definition at line 3379 of file amfilter.cpp.
References ASSERT, CBaseOutputPin::DecideBufferSize(), FAILED, HRESULT, IsEqualObject(), m_bPinUsesReadOnlyAllocator, CBasePin::m_Connected, CBaseOutputPin::m_pAllocator, CBaseOutputPin::m_pInputPin, NULL, S_OK, CBasePin::SetMediaType(), and StreamingThreadUsingOutputPin().
Referenced by ChangeMediaType().
CCritSec CDynamicOutputPin::m_BlockStateLock [protected] |
Definition at line 900 of file amfilter.h.
Referenced by AsynchronousBlockOutputPin(), BlockOutputPin(), StartUsingOutputPin(), StopUsingOutputPin(), StreamingThreadUsingOutputPin(), and UnblockOutputPin().
HANDLE CDynamicOutputPin::m_hUnblockOutputPinEvent [protected] |
Definition at line 906 of file amfilter.h.
Referenced by BlockOutputPin(), Initialize(), StartUsingOutputPin(), UnblockOutputPin(), and ~CDynamicOutputPin().
HANDLE CDynamicOutputPin::m_hNotifyCallerPinBlockedEvent [protected] |
Definition at line 912 of file amfilter.h.
Referenced by AsynchronousBlockOutputPin(), BlockOutputPin(), UnblockOutputPin(), and ~CDynamicOutputPin().
BLOCK_STATE CDynamicOutputPin::m_BlockState [protected] |
Definition at line 915 of file amfilter.h.
Referenced by AsynchronousBlockOutputPin(), BlockOutputPin(), StartUsingOutputPin(), StopUsingOutputPin(), and UnblockOutputPin().
DWORD CDynamicOutputPin::m_dwBlockCallerThreadID [protected] |
Definition at line 920 of file amfilter.h.
Referenced by AsynchronousBlockOutputPin(), and UnblockOutputPin().
DWORD CDynamicOutputPin::m_dwNumOutstandingOutputPinUsers [protected] |
Definition at line 930 of file amfilter.h.
Referenced by StartUsingOutputPin(), StopUsingOutputPin(), and StreamingThreadUsingOutputPin().
HANDLE CDynamicOutputPin::m_hStopEvent [protected] |
Definition at line 935 of file amfilter.h.
Referenced by Active(), DeliverBeginFlush(), DeliverEndFlush(), DynamicReconnect(), Inactive(), SetConfigInfo(), and StartUsingOutputPin().
IGraphConfig* CDynamicOutputPin::m_pGraphConfig [protected] |
Definition at line 936 of file amfilter.h.
Referenced by Active(), DynamicReconnect(), and SetConfigInfo().
BOOL CDynamicOutputPin::m_bPinUsesReadOnlyAllocator [protected] |
1.5.6