2015-05-07 3 views
0

Я разрабатываю приложение, способное декодировать H264 поток через интерфейс ID3D11VideoDecoder DrectX11 (в https://msdn.microsoft.com/en-us/library/windows/desktop/hh447766(v=vs.85).aspx), и я застрял в методе ID3D11VideoDevice :: CreateVideoDecoderOutputView, он просто не может возвращения E_INVALIDARG. Да, я знаю, могут быть миллионы причин, , но есть ли какие-то необычные вещи? Есть ли доступные образцы, иллюстрирующие декодирование через ID3D11VideoDecoder (я их не нашел)? часть моего кода, я думаю, что, скорее всего, не в состоянии выглядит следующим образом:ID3D11VideoDevice :: CreateVideoDecoderOutputView терпит неудачу

// 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 

Спасибо

ответ

0

ОК, решена проблема, должна быть

desc.Texture2D.ArraySlice = 0; 

в сниппета в сообщении выше. Еще много работы впереди

Смежные вопросы