【问题标题】:Is it possible to share a DXVA surface?是否可以共享 DXVA 表面?
【发布时间】:2014-06-24 01:52:58
【问题描述】:

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

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

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

【问题讨论】:

  • "...传递一个指向 NULL 的非 NULL HANDLE..."* - 你能显示这段代码吗?当我读到它时,我不清楚你到底在传递什么。

标签: directx direct3d dxva


【解决方案1】:

阅读文档:

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

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

还有:

pSharedHandle [输入,输出]

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

好像不能用。

【讨论】:

    猜你喜欢
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    相关资源
    最近更新 更多