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