Media Foundation:隔行扫描源图像到逐行输出图像

时间:2014-01-20 17:49:12

标签: ms-media-foundation

我正在使用Media Foundation样本中的示例项目MFCaptureToFile捕获一些传统的隔行扫描视频(使用Firewire),并使用H.264编码器将其编码为MP4文件。我想配置MF,以便输出H.264图像是渐进的。可以吗?

据我了解,我必须将ICodecAPI的AVEncVideoOutputScanType属性设置为eAVEncVideoOutputScan_Progressive。如何从IMFSinkWriter获取ICodecAPI?我是否使用GetServiceForStream方法?我试过,但是如果我使用GUID_NULL作为第二个参数,那么我得到E_NOINTERFACE,而对于第三个参数使用IID_ICodecAPI。

1 个答案:

答案 0 :(得分:1)

您是否尝试在输出媒体类型上设置MF_MT_INTERLACE_MODEMFVideoInterlace_Progressive

IMFMediaType    *pMediaTypeOut;   
...
pMediaTypeOut->SetUINT32(MF_MT_INTERLACE_MODE, MFVideoInterlace_Progressive); 

对于ICodecAPI,这里有一个稍微修改过的编码示例来自MSDN,它从接收器编写器查询接口,它确实有效,但遗憾的是SetValue(CODECAPI_AVEncVideoOutputScanType,...)的返回是{{1}因此,检查输出媒体类型上的值是否可以完成作业。

E_NOTIMPL