Mercurial > mplayer.hg
diff loader/dshow/outputpin.h @ 168:bdc4a8fc04d8
Initial revision
author | arpi_esp |
---|---|
date | Tue, 20 Mar 2001 00:05:27 +0000 |
parents | |
children | 9355b2ae634e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loader/dshow/outputpin.h Tue Mar 20 00:05:27 2001 +0000 @@ -0,0 +1,122 @@ +/* "output pin" - the one that connects to output of filter. */ + +#ifndef OUTPUTPIN_H +#define OUTPUTPIN_H +#include "interfaces.h" +#include "guids.h" +#include "default.h" + +class COutputPin: public IPin, public IMemInputPin +{ + int refcount; + AM_MEDIA_TYPE type; + IPin* remote; + char** frame_pointer; + long* frame_size_pointer; +public: + COutputPin(const AM_MEDIA_TYPE& vhdr); + ~COutputPin(){delete IPin::vt; delete IMemInputPin::vt;} + void SetFramePointer(char** z){frame_pointer=z;} + void SetFrameSizePointer(long* z){frame_size_pointer=z;} + void SetNewFormat(const AM_MEDIA_TYPE& a){type=a;} + static HRESULT STDCALL QueryInterface(IUnknown* This, GUID* iid, void** ppv); + static HRESULT STDCALL AddRef(IUnknown* This); + static HRESULT STDCALL Release(IUnknown* This); + + static HRESULT STDCALL M_QueryInterface(IUnknown* This, GUID* iid, void** ppv); + static HRESULT STDCALL M_AddRef(IUnknown* This); + static HRESULT STDCALL M_Release(IUnknown* This); + + static HRESULT STDCALL Connect ( + IPin * This, + /* [in] */ IPin *pReceivePin, + /* [in] */ /*const */AM_MEDIA_TYPE *pmt); + + static HRESULT STDCALL ReceiveConnection ( + IPin * This, + /* [in] */ IPin *pConnector, + /* [in] */ const AM_MEDIA_TYPE *pmt); + + static HRESULT STDCALL Disconnect ( + IPin * This); + + static HRESULT STDCALL ConnectedTo ( + IPin * This, + /* [out] */ IPin **pPin); + + static HRESULT STDCALL ConnectionMediaType ( + IPin * This, + /* [out] */ AM_MEDIA_TYPE *pmt); + + static HRESULT STDCALL QueryPinInfo ( + IPin * This, + /* [out] */ PIN_INFO *pInfo); + + static HRESULT STDCALL QueryDirection ( + IPin * This, + /* [out] */ PIN_DIRECTION *pPinDir); + + static HRESULT STDCALL QueryId ( + IPin * This, + /* [out] */ LPWSTR *Id); + + static HRESULT STDCALL QueryAccept ( + IPin * This, + /* [in] */ const AM_MEDIA_TYPE *pmt); + + static HRESULT STDCALL EnumMediaTypes ( + IPin * This, + /* [out] */ IEnumMediaTypes **ppEnum); + + static HRESULT STDCALL QueryInternalConnections ( + IPin * This, + /* [out] */ IPin **apPin, + /* [out][in] */ ULONG *nPin); + + static HRESULT STDCALL EndOfStream ( + IPin * This); + + static HRESULT STDCALL BeginFlush ( + IPin * This); + + static HRESULT STDCALL EndFlush ( + IPin * This); + + static HRESULT STDCALL NewSegment ( + IPin * This, + /* [in] */ REFERENCE_TIME tStart, + /* [in] */ REFERENCE_TIME tStop, + /* [in] */ double dRate); + + + + + + + static HRESULT STDCALL GetAllocator( + IMemInputPin * This, + /* [out] */ IMemAllocator **ppAllocator) ; + + static HRESULT STDCALL NotifyAllocator( + IMemInputPin * This, + /* [in] */ IMemAllocator *pAllocator, + /* [in] */ int bReadOnly) ; + + static HRESULT STDCALL GetAllocatorRequirements( + IMemInputPin * This, + /* [out] */ ALLOCATOR_PROPERTIES *pProps) ; + + static HRESULT STDCALL Receive( + IMemInputPin * This, + /* [in] */ IMediaSample *pSample) ; + + static HRESULT STDCALL ReceiveMultiple( + IMemInputPin * This, + /* [size_is][in] */ IMediaSample **pSamples, + /* [in] */ long nSamples, + /* [out] */ long *nSamplesProcessed) ; + + static HRESULT STDCALL ReceiveCanBlock( + IMemInputPin * This) ; +}; +#endif