提问一个视频播放的有关问题,怎样能使每秒25帧图像播放的更流畅,更平滑

提问一个视频播放的问题,怎样能使每秒25帧图像播放的更流畅,更平滑。
小弟现在正做一个播放器,读取流->延时->解码->DirectDraw播放。
现在发现,此程序只有在release模式,而且是直接点击可执行程序时画面比较流畅,有轻微卡顿。
但在调试状态下,Debug模式,图像就很不流畅。感觉是1秒停顿一次,但每秒还是播放25帧画面。
此时我的GOP设置是25.感觉就是遇到一个关键帧就卡一次。

我的延时机制是,不断计算图像的时间戳与当前视频播放已经持续时间的差,并调用Sleep延时一段时间。每两帧图像的时间戳间隔为40毫秒,恒定。

请问这个机制有什么很大的问题吗,谁还有更高效的机制吗。请高手赐教。

------解决方案--------------------
不同帧可能解码时间差距比较大,所以问题就出来了,应该是ddraw显示的时候处理,比如ddraw永远都保存了5帧的缓冲,满了decoder就等,少了decoder就解新的帧
------解决方案--------------------
sleep肯定不行,用event
------解决方案--------------------
"
小弟现在正做一个播放器,读取流->延时->解码->DirectDraw播放。 

我的延时机制是,不断计算图像的时间戳与当前视频播放已经持续时间的差,并调用Sleep延时一段时间。每两帧图像的时间戳间隔为40毫秒,恒定 "

两点:
1 顺序为: 读取流->解码->延时->DirectDraw
2 找楼主的方式,没有考虑到解码所消耗cpu和所占用的时钟,尽管解码相对于编码来说消耗很少,按照你的方法,遇到关键帧,解码消耗一大,延时就不准确了,所以会在关键帧出现的时候可能卡
------解决方案--------------------
为什么一定要延时呢?让播放自己去阻塞不行吗