DDraw7 overlay 使用心得

本应DDraw7 overlay的东西都很老了,还去学习他干嘛?没办法,爱技术,爱专研。但你别说,现在D3D的东西都已经很厉害,但只有overlay能很好的重现视频回放,无论从性能,或者效果(tearing effect)都是最好的。

  闲话少说,重新挖出dx7sdk来专研的一番,里面mosqiuto(蚊子)的样例好好看看了。发现了有些东西还是值得记下了的:

1. 开始的是很快都把视频解码出来的YV12数据在overlay表面中显示出来了,但发现图像怎么脏的,有很多斑在上面,而且颜色不对。以为是RGB/BGR掉乱的的问题,试了是之后证明不是这个原因,想了很久,也在网上谷歌(我的最爱)的很久,都没找到原因。后来调试慢慢看看(也是随意看看),看到重int srcStride[3]传进来的第三个变量的值不对,才发现是自己粗心大意,把height/2给到第三个变量传进来了,造成v平面有些像素没有更新到显卡,导致看到图像是全的,但是有很多斑。哇!改过了,漂漂亮亮的图像出来了,嘿嘿,嘿~嘿,巧虎出来咯!

 

2.其实一开始还有一个问题的,在我的电脑上面(T61/Win7),图像不动的,只有窗口移动或者大小时才变一下。纳闷了好久都没找到原因(现在也没解决),后面运行到另外一台电脑(R61i/Win7)竟然就可以了。看MSDN说,这个updateoverlay函数是不需要每次图像内容变化都去调用的(应该是这样的),但两种方法都测试过了,我的T61就是不更新图像!?

这位老兄也遇到了同样的问题

http://bbs.csdn.net/topics/70218558

不知道他找到原因没有。你在它乡还好吗?知道的话告我一声吧

 

3.在另外一台win7电脑,Atom D5200很奇怪的是,用dxcapviewer查看,它说支持yv12的FourCC,但就开不出这样的overlay表面出来,用蚊子的程序可用工作在VYUY的overlay 表面,难道intel作假了!?

 

小马过河的故事告诉我们,做人要靠自己!

你可能感兴趣的:(DDraw7 overlay 使用心得)