2013-05-14 81 views
0

我正在写摄像头驱动程序上方的应用程序,我正在使用IMFSourceReader以同步的方式从驱动程序中提取IMFSamples。我能够配置每个流的SourceReader媒体类型,并以我的相机驱动程序支持的两种视频格式(NV12和YUY2)生成示例。我想要的是一种可以像RGB一样轻松显示的视频格式,所以我一直在寻找可以转换这些媒体类型的MFT,但我不确定我可以将它连接到SourceReader,正如我从媒体基础文档I中所理解的那样看到IMFSourceReader可以加载解码器,但解码器不是一个转换器...使用IMFSourceReader转换流媒体类型

我想知道什么是最好的方式来转换视频源输出媒体类型为不同的媒体类型,如RGB(旁边做转换),同时仍然使用IMFSourceReader?

回答

0

在Windows 8上,您可以设置MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING属性以使GPU加速YUV到RGB转换。

在早期版本的Windows上,您可以将DXVA2与D3D9一起使用,并使用IDirect3DDevice9 :: StretchRect()在您的YUV表面与RGB表面之间进行复制。如果图形驱动程序支持此操作,这将在复制过程中进行转换。您应该调用ID3D9 :: CheckDeviceFormatConversion()来检查驱动程序是否支持您在执行此操作之前进行的颜色转换。