通过ffmpeg d3d11va解码h264,我成功得到一个帧,但是当我复制资源时,我得到了这个错误..
ret = avcodec_receive_frame(avctx, frame);//it's OK;
dctx->CopySubresourceRegion(dst_resource, 0, 0, 0, 0, (ID3D11Texture2D*)frame->data[0], (int)frame->data[1],NULL);
最佳答案
您不能只将数据转换为 ID3D11Texture2D
接口(interface)类型。您必须先将其从框架复制到纹理 2D 的实例中,然后才能使用它进行复制。
由于您开始使用的内存在 CPU 中,因此您需要创建一个 USAGE_STAGING
纹理,Map
,复制数据,Unmap
, 然后你可以 CopySubresourceRegion
关于ffmpeg - D3D11 损坏 : CopySubresourceRegion:Sixth parameter is corrupt or NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71851321/