我正在写一个应用程序上面的相机驱动程序,我正在使用IMFSourceReader以同步的方式从驱动程序中提取IMFSamples。我能够配置每个流的SourceReader媒体类型,并生成我的摄像头驱动程序支持的两种视频格式的样本,NV12和YUY2。我想要的是一种视频格式,我可以很容易地显示像RGB,所以我正在寻找MFT,可以转换这些媒体类型,但我不确定我可以连接到SourceReader,因为我从媒体基础文档我看到IMFSourceReader可以加载一个解码器,但解码器不是一个转换器…
我想知道什么是最好的方法来转换一个视频源输出媒体类型到一个不同的媒体类型,如RGB (除了我自己做转换),同时仍然使用IMFSourceReader?
发布于 2013-05-30 07:55:39
在Windows8上,你可以设置MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING属性来获得图形处理器加速的YUV到RGB的转换。
在Windows的早期版本中,可以将DXVA2与D3D9一起使用,只需使用IDirect3DDevice9::StretchRect()在YUV曲面和RGB曲面之间进行复制。这将在复制过程中执行转换,如果图形驱动程序支持的话。您应该调用ID3D9::CheckDeviceFormatConversion()来检查驱动程序是否支持您正在进行的颜色转换。
https://stackoverflow.com/questions/16538117
复制相似问题