0

我正在开发一个能够通过 DrectX11 的 ID3D11VideoDecoder 接口(https://msdn.microsoft.com/en-us/library/windows/desktop/hh447766(v=vs.85).aspx)解码 H264 流的应用程序,我得到了卡在 ID3D11VideoDevice::CreateVideoDecoderOutputView 方法,它只是无法返回 E_INVALIDARG。是的,我知道,可能有数百万个原因,但可能有一些异常常见的原因吗?是否有任何可用的示例说明通过 ID3D11VideoDecoder 进行解码(我还没有找到)?我认为最有可能失败的代码部分如下所示:

// texture
D3D11_TEXTURE2D_DESC descT = { 0 };
descT.Width = 1024;
descT.Height = 768;
descT.MipLevels = 1;
descT.ArraySize =  1;
descT.Format = DXGI_FORMAT_NV12;
descT.SampleDesc.Count = 1;
descT.Usage = D3D11_USAGE_DEFAULT;
descT.BindFlags = D3D11_BIND_DECODER; 
ID3D11Texture2D *pTex = nullptr;
pDX11VideoDevice->CreateTexture2D(&desc, 0, &pTex);

// decoder
D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC desc;
desc.DecodeProfile = D3D11_DECODER_PROFILE_H264_VLD_NOFGT; // what is     interesting it fails whatever decoder I choose
desc.Texture2D.ArraySlice = 1;
desc.ViewDimension = D3D11_VDOV_DIMENSION_TEXTURE2D;

HRESULT hr = pDX11VideoDevice->CreateVideoDecoderOutputView(pTex, &desc, &pVideoDecoderOutputView); // and here the fail occurs

谢谢

4

1 回答 1

0

OK,问题解决了,应该有

desc.Texture2D.ArraySlice = 0; 

在上面帖子的片段中。还有很多工作要做

于 2015-05-08T10:56:24.450 回答