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