使用dxva解码h264视频

时间:2012-12-19 08:32:27

标签: windows dxva

我正在开发一个需要使用dxva2.0解码h264视频的项目。我根据文档http://msdn.microsoft.com/en-us/library/windows/desktop/aa965245%28v=vs.85%29.aspx编写代码。也就是说,我创建了一个IDirectXVideoDecoder的接口,然后我调用了dxva api“BeginFrame”,“Execute”和“EndFrame”。然后问题出来了。当我在Intel Core i5 CPU上执行我的程序(GPU是CPU内部的Intel HD图形)时,一切正常。但是当我在intel ATOM处理器(使用intel GMA3000系列图形硬件)上执行它时,我无法得到正确的结果:一些视频帧被正确解码,而其他视频帧完全混乱。 我使用的数据是从另一台计算机发送的,数据可以直接填充到dxva的缓冲区。在h264中,缓冲区是DXVA2_PictureParameter,DXVA2_Bitstream,DXVA2_InverseQuantization和DXVA2_SliceControl。所以没有必要使用ffmpeg或ffdshow(而ffdshow是gpl,我不能使用它)。 “dxva checker”软件告诉我,intel core i5的指南是“ModeH264_VLD_NoFGT_ClearVideo”,而intel atom的指针是“ModeH264_VLD_NoFGT”。我想知道两个guids之间的区别。 是否可以在intel视频卡上使用“ModeH264_VLD_NoFGT”来解码视频?

0 个答案:

没有答案