view loader/dshow/outputpin.h @ 244:1c3029be6713

Setup_FS fix for directshow
author arpi_esp
date Thu, 29 Mar 2001 12:38:51 +0000
parents bdc4a8fc04d8
children 9355b2ae634e
line wrap: on
line source

/*	"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