我正在使用nvencode api进行视频编码。我的捕获卡使用直接dma传输(GpuDirect)将帧复制到预分配的输入缓冲区(NV_ENC_INPUT_PTR)。序列如下所示:
nvEncodeApi->nvEncLockInputBuffer(_encoder, &lockInputBufferParams); // lock input buffer
DmaCopy(lockInputBufferParams.bufferDataPtr); // initiate dma transfer
nvEncodeApi->nvEncUnlockInputBuffer(_encoder, lockInputBufferParams.inputBuffer);然后我开始编码过程。
这工作得很好,但为了呈现捕获的帧,我需要将其复制到纹理中。
有没有一种方法可以在解锁后从NV_ENC_INPUT_PTR inputBuffer复制到Direct3d11纹理?
注意:我知道我可以使用Direct3D纹理作为nvencode的输入缓冲区,并使用映射/取消映射API。但是我的捕获卡似乎不能直接对映射纹理执行DMA传输。
https://stackoverflow.com/questions/51304267
复制相似问题