Direct3d 11下加入视频文件并实现音频视频同步

来源:互联网 发布:sql left join 分页 编辑:程序博客网 时间:2024/05/16 19:15

Media foundation作为微软目前视频和音频解码的标准库,里面有几乎所有window平台下的功能,最近因为项目要实现在mygui下播放视频,所以就研究了下该库,做法和directshow 中dump的例子很像。定义一个继承自IMFSampleGrabberSinkCallback的类,具体函数可以参照微软官方音频捕获的例子。

然后再找到media foundation 利用mediasession 播放视频的例子。然后只要改写其功能中render部分,将发送给显示硬件的数据接口改为发送到自己定义的接收区,这样就可以实现数据抓取了。由于代码太大而且比较多久不一一解释了

用到的接口有以下几种:

IMFMediaSource

IMFMediaSession

IMFMediaSource          

IMFVideoDisplayControl  

SampleGrabberCB

IMFAsyncCallback

IMFSourceResolver

IMFMediaTypeHandler

IMFActivate

IMFMediaType

IMFStreamDescriptor

IMFTopologyNode

IMFTopology

IMFPresentationDescriptor

有想法的联系:

362783516@qq.com