是否可以共享DXVA表面?

时间:2014-06-24 01:52:58

标签: directx direct3d dxva

我正在使用DXVA视频解码器。它工作正常,但我想与另一个IDirect3D9设备对象共享解压缩的表面。

我阅读了this文档,并且我正在调用 IDirectXVideoDecoderService::CreateSurface() 方法来创建曲面,我尝试传递非NULL HANDLE * ,它指向NULL作为方法的最后一个参数。但该方法失败,结果为0x8876086c( D3DERR_INVALIDCALL )。我还试图分配一个HANDLE数组,并将每个元素设置为NULL,然后将此数组作为参数传递,但仍然得到相同的错误。

有没有办法在IDirect3D9设备之间共享DXVA表面?

1 个答案:

答案 0 :(得分:1)

阅读文件:

  

资源创建API包括 - CreateTexture,CreateVolumeTexture,CreateCubeTexture,CreateRenderTarget,CreateVertexBuffer,CreateIndexBuffer,CreateDepthStencilSurface,CreateOffscreenPlainSurface,CreateDepthStencilSurfaceEx,CreateOffscreenPlainSurfaceEx和CreateRenderTargetEx。

IDirectXVideoAccelerationService :: CreateSurface似乎不包括在内。

并且:

  

pSharedHandle [in,out]

     

指向用于在Direct3D设备之间共享曲面的句柄的指针。将此参数设置为NULL。

似乎无法使用它。