ID3D11VideoDecoder 接口是Direct3D 11中的一部分,用于实现视频解码器的接口。这个接口通常用于创建和配置视频解码器。以下是 ID3D11VideoDecoder 接口的一些基本信息:
DECLARE_INTERFACE_(ID3D11VideoDecoder, IUnknown)
{
    // 省略了其他继承的成员

    virtual HRESULT STDMETHODCALLTYPE GetCreationParameters(
        /* [annotation] */
        _Out_  D3D11_VIDEO_DECODER_DESC *pVideoDesc,
        /* [annotation] */
        _Out_  D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDriverHandle(
        /* [annotation] */
        _Out_  HANDLE *pDriverHandle) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBuffer(
        /* [annotation] */
        _In_  D3D11_VIDEO_DECODER_BUFFER_TYPE Type,
        /* [annotation] */
        _Out_  UINT *pBufferSize,
        /* [annotation] */
        _Outptr_result_bytebuffer_(*pBufferSize)  void **ppBuffer) = 0;

    virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
        /* [annotation] */
        _In_  D3D11_VIDEO_DECODER_BUFFER_TYPE Type) = 0;

    virtual HRESULT STDMETHODCALLTYPE BeginFrame(
        /* [annotation] */
        _In_  ID3D11VideoDecoderOutputView *pView,
        /* [annotation] */
        _In_  ID3D11VideoDecoder *pDecoder,
        /* [annotation] */
        _In_  UINT ContentKeySize,
        /* [annotation] */
        _In_reads_opt_(ContentKeySize)  const void *pContentKey) = 0;

    // 更多方法...

    virtual HRESULT STDMETHODCALLTYPE EndFrame(
        /* [annotation] */
        _In_  ID3D11VideoDecoder *pDecoder,
        /* [annotation] */
        _In_  BOOL isTargetLocked,
        /* [annotation] */
        _Out_opt_  HANDLE *pDriverHandle) = 0;

    // 更多方法...
};

这个接口包含了一系列用于创建、配置和使用视频解码器的方法。你可以使用这些方法来操作Direct3D 11中与视频解码相关的功能。

要使用这些方法,你需要先创建一个 ID3D11VideoDecoder 对象,通常是通过 ID3D11Device 的 CreateVideoDecoder 方法。然后,你可以使用该对象来配置解码器并进行解码操作。


转载请注明出处:http://www.zyzy.cn/article/detail/25806/Win32 API/D3d11.h/ID3D11VideoDecoder