67 #define ALIGNDOWN(value,boundary) ((value)/(boundary)*(boundary)) 68 #define ALIGNUP(value,boundary) (ALIGNDOWN((value)+(boundary)-1, (boundary)))
HRESULT(* REQUESTPROC)(LPVOID userdata)
HRESULT WINAPI PullPin_BeginFlush(IPin *iface)
PRECONNECTPROC fnPreConnect
HRESULT WINAPI PullPin_EndOfStream(IPin *iface)
HRESULT(* PRECONNECTPROC)(IPin *iface, IPin *pConnectPin, ALLOCATOR_PROPERTIES *props)
HRESULT WINAPI PullPin_ReceiveConnection(IPin *iface, IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
HRESULT WINAPI PullPin_Disconnect(IPin *iface)
HRESULT PullPin_PauseProcessing(PullPin *This)
HANDLE hEventStateChanged
static PullPin * impl_PullPin_from_IPin(IPin *iface)
QUERYACCEPTPROC fnQueryAccept
ULONG WINAPI PullPin_Release(IPin *iface)
HRESULT WINAPI PullPin_EndFlush(IPin *iface)
CRITICAL_SECTION thread_lock
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
REQUESTPROC fnCustomRequest
HRESULT(* SAMPLEPROC_PULL)(LPVOID userdata, IMediaSample *pSample, DWORD_PTR cookie)
HRESULT(* QUERYACCEPTPROC)(LPVOID userdata, const AM_MEDIA_TYPE *pmt)
HRESULT PullPin_WaitForStateChange(PullPin *This, DWORD dwMilliseconds)
HRESULT WINAPI PullPin_QueryAccept(IPin *iface, const AM_MEDIA_TYPE *pmt)
HRESULT(* CLEANUPPROC)(LPVOID userdata)
HRESULT(* STOPPROCESSPROC)(LPVOID userdata)
HRESULT PullPin_StartProcessing(PullPin *This)
IMemAllocator * prefAlloc
HRESULT WINAPI PullPin_QueryInterface(IPin *iface, REFIID riid, LPVOID *ppv)
static const WCHAR props[]
HRESULT WINAPI PullPin_NewSegment(IPin *iface, REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate)
SAMPLEPROC_PULL fnSampleProc
HRESULT PullPin_Construct(const IPinVtbl *PullPin_Vtbl, const PIN_INFO *pPinInfo, SAMPLEPROC_PULL pSampleProc, LPVOID pUserData, QUERYACCEPTPROC pQueryAccept, CLEANUPPROC pCleanUp, REQUESTPROC pCustomRequest, STOPPROCESSPROC pDone, LPCRITICAL_SECTION pCritSec, IPin **ppPin)