从IMFSourceReader和IMFSample处理图像数据

问题描述 投票:1回答:1

我正在尝试使用IMFSourceReader读取和解码.mp4文件。我已经通过设置部分媒体类型并调用MFVideoFormat_NV12,将源阅读器配置为解码为IMFSourceReader::SetCurrentMediaType,并加载了尺寸为1266x544的视频。

[处理时,我收到MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED标志,其新尺寸为1280x544,MF_MT_MINIMUM_DISPLAY_APERTURE为1266x544。

我相信期望是然后使用视频缩放器dsp或视频处理器mft。但是据我了解,当我在Windows 7上时,视频处理器mft需要Windows 8.1,并且视频缩放器dsp不支持MFVideoFormat_NV12

裁剪源阅读器添加的额外数据以仅显示MFVideoFormat_NV12的最小显示孔径内的数据的正确方法是什么?

c++ windows ms-media-foundation
1个回答
0
投票
通常来说,这不需要进一步缩放或裁剪,您已经拥有所需的帧。如果您从示例对象中读取它们(我相信您正在尝试这样做),请使用更大的跨度(连续行之间的1280字节)。

如果将其用作纹理,将其呈现在某处或用作渲染的一部分,则只使用调整后的坐标(0,0)-(1266,544)忽略其余部分,而不是使用完整纹理。

© www.soinside.com 2019 - 2024. All rights reserved.