⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mediaobj.h

📁 从FFMPEG转换而来的H264解码程序,VC下编译..
💻 H
📖 第 1 页 / 共 3 页
字号:
            IMediaObject * This,
            DWORD dwInputStreamIndex,
            IMediaBuffer *pBuffer,
            DWORD dwFlags,
            REFERENCE_TIME rtTimestamp,
            REFERENCE_TIME rtTimelength);

        HRESULT ( STDMETHODCALLTYPE *ProcessOutput )(
            IMediaObject * This,
            DWORD dwFlags,
            DWORD cOutputBufferCount,
            /* [size_is][out][in] */ DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
            /* [out] */ DWORD *pdwStatus);

        HRESULT ( STDMETHODCALLTYPE *Lock )(
            IMediaObject * This,
            LONG bLock);

        END_INTERFACE
    } IMediaObjectVtbl;

    interface IMediaObject
    {
        CONST_VTBL struct IMediaObjectVtbl *lpVtbl;
    };



#ifdef COBJMACROS


#define IMediaObject_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IMediaObject_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IMediaObject_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IMediaObject_GetStreamCount(This,pcInputStreams,pcOutputStreams)	\
    (This)->lpVtbl -> GetStreamCount(This,pcInputStreams,pcOutputStreams)

#define IMediaObject_GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags)	\
    (This)->lpVtbl -> GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags)

#define IMediaObject_GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags)	\
    (This)->lpVtbl -> GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags)

#define IMediaObject_GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt)	\
    (This)->lpVtbl -> GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt)

#define IMediaObject_GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt)	\
    (This)->lpVtbl -> GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt)

#define IMediaObject_SetInputType(This,dwInputStreamIndex,pmt,dwFlags)	\
    (This)->lpVtbl -> SetInputType(This,dwInputStreamIndex,pmt,dwFlags)

#define IMediaObject_SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags)	\
    (This)->lpVtbl -> SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags)

#define IMediaObject_GetInputCurrentType(This,dwInputStreamIndex,pmt)	\
    (This)->lpVtbl -> GetInputCurrentType(This,dwInputStreamIndex,pmt)

#define IMediaObject_GetOutputCurrentType(This,dwOutputStreamIndex,pmt)	\
    (This)->lpVtbl -> GetOutputCurrentType(This,dwOutputStreamIndex,pmt)

#define IMediaObject_GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment)	\
    (This)->lpVtbl -> GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment)

#define IMediaObject_GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment)	\
    (This)->lpVtbl -> GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment)

#define IMediaObject_GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency)	\
    (This)->lpVtbl -> GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency)

#define IMediaObject_SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency)	\
    (This)->lpVtbl -> SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency)

#define IMediaObject_Flush(This)	\
    (This)->lpVtbl -> Flush(This)

#define IMediaObject_Discontinuity(This,dwInputStreamIndex)	\
    (This)->lpVtbl -> Discontinuity(This,dwInputStreamIndex)

#define IMediaObject_AllocateStreamingResources(This)	\
    (This)->lpVtbl -> AllocateStreamingResources(This)

#define IMediaObject_FreeStreamingResources(This)	\
    (This)->lpVtbl -> FreeStreamingResources(This)

#define IMediaObject_GetInputStatus(This,dwInputStreamIndex,dwFlags)	\
    (This)->lpVtbl -> GetInputStatus(This,dwInputStreamIndex,dwFlags)

#define IMediaObject_ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength)	\
    (This)->lpVtbl -> ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength)

#define IMediaObject_ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus)	\
    (This)->lpVtbl -> ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus)

#define IMediaObject_Lock(This,bLock)	\
    (This)->lpVtbl -> Lock(This,bLock)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IMediaObject_GetStreamCount_Proxy(
    IMediaObject * This,
    /* [out] */ DWORD *pcInputStreams,
    /* [out] */ DWORD *pcOutputStreams);


void __RPC_STUB IMediaObject_GetStreamCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_GetInputStreamInfo_Proxy(
    IMediaObject * This,
    DWORD dwInputStreamIndex,
    /* [out] */ DWORD *pdwFlags);


void __RPC_STUB IMediaObject_GetInputStreamInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputStreamInfo_Proxy(
    IMediaObject * This,
    DWORD dwOutputStreamIndex,
    /* [out] */ DWORD *pdwFlags);


void __RPC_STUB IMediaObject_GetOutputStreamInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_GetInputType_Proxy(
    IMediaObject * This,
    DWORD dwInputStreamIndex,
    DWORD dwTypeIndex,
    /* [out] */ DMO_MEDIA_TYPE *pmt);


void __RPC_STUB IMediaObject_GetInputType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputType_Proxy(
    IMediaObject * This,
    DWORD dwOutputStreamIndex,
    DWORD dwTypeIndex,
    /* [out] */ DMO_MEDIA_TYPE *pmt);


void __RPC_STUB IMediaObject_GetOutputType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_SetInputType_Proxy(
    IMediaObject * This,
    DWORD dwInputStreamIndex,
    /* [in] */ const DMO_MEDIA_TYPE *pmt,
    DWORD dwFlags);


void __RPC_STUB IMediaObject_SetInputType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_SetOutputType_Proxy(
    IMediaObject * This,
    DWORD dwOutputStreamIndex,
    /* [in] */ const DMO_MEDIA_TYPE *pmt,
    DWORD dwFlags);


void __RPC_STUB IMediaObject_SetOutputType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_GetInputCurrentType_Proxy(
    IMediaObject * This,
    DWORD dwInputStreamIndex,
    /* [out] */ DMO_MEDIA_TYPE *pmt);


void __RPC_STUB IMediaObject_GetInputCurrentType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputCurrentType_Proxy(
    IMediaObject * This,
    DWORD dwOutputStreamIndex,
    /* [out] */ DMO_MEDIA_TYPE *pmt);


void __RPC_STUB IMediaObject_GetOutputCurrentType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_GetInputSizeInfo_Proxy(
    IMediaObject * This,
    DWORD dwInputStreamIndex,
    /* [out] */ DWORD *pcbSize,
    /* [out] */ DWORD *pcbMaxLookahead,
    /* [out] */ DWORD *pcbAlignment);


void __RPC_STUB IMediaObject_GetInputSizeInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputSizeInfo_Proxy(
    IMediaObject * This,
    DWORD dwOutputStreamIndex,
    /* [out] */ DWORD *pcbSize,
    /* [out] */ DWORD *pcbAlignment);


void __RPC_STUB IMediaObject_GetOutputSizeInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_GetInputMaxLatency_Proxy(
    IMediaObject * This,
    DWORD dwInputStreamIndex,
    /* [out] */ REFERENCE_TIME *prtMaxLatency);


void __RPC_STUB IMediaObject_GetInputMaxLatency_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_SetInputMaxLatency_Proxy(
    IMediaObject * This,
    DWORD dwInputStreamIndex,
    REFERENCE_TIME rtMaxLatency);


void __RPC_STUB IMediaObject_SetInputMaxLatency_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_Flush_Proxy(
    IMediaObject * This);


void __RPC_STUB IMediaObject_Flush_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_Discontinuity_Proxy(
    IMediaObject * This,
    DWORD dwInputStreamIndex);


void __RPC_STUB IMediaObject_Discontinuity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_AllocateStreamingResources_Proxy(
    IMediaObject * This);


void __RPC_STUB IMediaObject_AllocateStreamingResources_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_FreeStreamingResources_Proxy(
    IMediaObject * This);


void __RPC_STUB IMediaObject_FreeStreamingResources_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_GetInputStatus_Proxy(
    IMediaObject * This,
    DWORD dwInputStreamIndex,
    /* [out] */ DWORD *dwFlags);


void __RPC_STUB IMediaObject_GetInputStatus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_ProcessInput_Proxy(
    IMediaObject * This,
    DWORD dwInputStreamIndex,
    IMediaBuffer *pBuffer,
    DWORD dwFlags,
    REFERENCE_TIME rtTimestamp,
    REFERENCE_TIME rtTimelength);


void __RPC_STUB IMediaObject_ProcessInput_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_ProcessOutput_Proxy(
    IMediaObject * This,
    DWORD dwFlags,
    DWORD cOutputBufferCount,
    /* [size_is][out][in] */ DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
    /* [out] */ DWORD *pdwStatus);


void __RPC_STUB IMediaObject_ProcessOutput_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMediaObject_Lock_Proxy(
    IMediaObject * This,
    LONG bLock);


void __RPC_STUB IMediaObject_Lock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IMediaObject_INTERFACE_DEFINED__ */


#ifndef __IEnumDMO_INTERFACE_DEFINED__
#define __IEnumDMO_INTERFACE_DEFINED__

/* interface IEnumDMO */
/* [uuid][object] */


EXTERN_C const IID IID_IEnumDMO;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f")
    IEnumDMO : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Next(
            DWORD cItemsToFetch,
            /* [length_is][size_is][out] */ CLSID *pCLSID,
            /* [string][length_is][size_is][out] */ WCHAR **Names,
            /* [out] */ DWORD *pcItemsFetched) = 0;

        virtual HRESULT STDMETHODCALLTYPE Skip(
            DWORD cItemsToSkip) = 0;

        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;

        virtual HRESULT STDMETHODCALLTYPE Clone(
            /* [out] */ IEnumDMO **ppEnum) = 0;

    };

#else 	/* C style interface */

    typedef struct IEnumDMOVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IEnumDMO * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IEnumDMO * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IEnumDMO * This);

        HRESULT ( STDMETHODCALLTYPE *Next )(
            IEnumDMO * This,
            DWORD cItemsToFetch,
            /* [length_is][size_is][out] */ CLSID *pCLSID,
            /* [string][length_is][size_is][out] */ WCHAR **Names,
            /* [out] */ DWORD *pcItemsFetched);

        HRESULT ( STDMETHODCALLTYPE *Skip )(
            IEnumDMO * This,
            DWORD cItemsToSkip);

        HRESULT ( STDMETHODCALLTYPE *Reset )(
            IEnumDMO * This);

        HRESULT ( STDMETHODCALLTYPE *Clone )(
            IEnumDMO * This,
            /* [out] */ IEnumDMO **ppEnum);

        END_INTERFACE
    } IEnumDMOVtbl;

    interface IEnumDMO
    {
        CONST_VTBL struct IEnumDMOVtbl *lpVtbl;
    };



#ifdef COBJMACROS


#define IEnumDMO_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IEnumDMO_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IEnumDMO_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IEnumDMO_Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched)	\
    (This)->lpVtbl -> Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched)

#define IEnumDMO_Skip(This,cItemsToSkip)	\
    (This)->lpVtbl -> Skip(This,cItemsToSkip)

#define IEnumDMO_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IEnumDMO_Clone(This,ppEnum)	\
    (This)->lpVtbl -> Clone(This,ppEnum)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IEnumDMO_Next_Proxy(
    IEnumDMO * This,
    DWORD cItemsToFetch,
    /* [length_is][size_is][out] */ CLSID *pCLSID,
    /* [string][length_is][size_is][out] */ WCHAR **Names,
    /* [out] */ DWORD *pcItemsFetched);


void __RPC_STUB IEnumDMO_Next_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumDMO_Skip_Proxy(
    IEnumDMO * This,
    DWORD cItemsToSkip);


void __RPC_STUB IEnumDMO_Skip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -