我正在使用DXVA视频解码器。它工作正常,但我想与另一个IDirect3D9设备对象共享解压缩的表面。
我阅读了this文档,并且我正在调用 IDirectXVideoDecoderService::CreateSurface() 方法来创建曲面,我尝试传递非NULL HANDLE * ,它指向NULL作为方法的最后一个参数。但该方法失败,结果为0x8876086c( D3DERR_INVALIDCALL )。我还试图分配一个HANDLE数组,并将每个元素设置为NULL,然后将此数组作为参数传递,但仍然得到相同的错误。
有没有办法在IDirect3D9设备之间共享DXVA表面?
答案 0 :(得分:1)
阅读文件:
资源创建API包括 - CreateTexture,CreateVolumeTexture,CreateCubeTexture,CreateRenderTarget,CreateVertexBuffer,CreateIndexBuffer,CreateDepthStencilSurface,CreateOffscreenPlainSurface,CreateDepthStencilSurfaceEx,CreateOffscreenPlainSurfaceEx和CreateRenderTargetEx。
IDirectXVideoAccelerationService :: CreateSurface似乎不包括在内。
并且:
pSharedHandle [in,out]
指向用于在Direct3D设备之间共享曲面的句柄的指针。将此参数设置为NULL。
似乎无法使用它。