IAMTimelineGroup::SetSmartRecompressFormat 方法
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
注意
[已弃用。 此 API 可能会从 Windows 的未来版本中删除。]
SetSmartRecompressFormat
方法指定用于智能压缩的视频压缩格式。
音频组不支持智能重压。
语法
HRESULT SetSmartRecompressFormat(
long *pFormat
);
参数
-
pFormat
-
指向描述压缩格式的 结构的指针。 目前,只有 SCompFmt0 结构有效。 必须将此参数强制转换为 long 类型的指针。
返回值
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
备注
调用此方法之前,请对同一组调用 IAMTimelineGroup::SetMediaType 方法以指定未压缩格式。
SetSmartRecompressFormat
如果该方法成功,则可以使用智能呈现引擎输出压缩的视频流。 压缩的视频将具有 pFormat 参数中指定的宽度、高度和帧速率。 这些值将替代 SetMediaType 方法中为未压缩格式指定的值。 但是,为了获得智能再压缩的好处,这两种格式应该匹配。 换句话说,压缩格式和未压缩格式的高度、宽度和帧速率应相同。
如果智能呈现引擎无法生成压缩格式,它将生成未压缩的视频流。 如果发生这种情况,智能呈现引擎将在 IRenderEngine::ConnectFrontEnd 方法期间报告DEX_IDS_CANT_FIND_COMPRESSOR呈现错误。 应用程序可以通过 IAMErrorLog::LogError 方法捕获此错误。 (有关详细信息,请参阅 日志记录错误 和 呈现错误。)
智能重压格式不是永久性的。 如果应用程序使用智能重压,则必须在加载项目文件时设置重压格式。
注意
头文件 Qedit.h 与版本 7 之后的 Direct3D 标头不兼容。
注意
若要获取 Qedit.h,请下载适用于 Windows Vista 和 .NET Framework 3.0 的Microsoft Windows SDK更新。 Qedit.h 在 Windows 7 和 .NET Framework 3.5 Service Pack 1 的Microsoft Windows SDK中不可用。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅