CTransformFilter.Transform 方法

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 Transform 转换输入示例以生成输出示例。

语法

virtual HRESULT Transform(
   IMediaSample *pIn,
   IMediaSample *pOut
);

参数

指向输入示例的 IMediaSample 接口的指针。

别扭

指向输出示例的 IMediaSample 接口的指针。

返回值

基类返回E_UNEXPECTED。

派生类应返回一个 HRESULT 值,指示成功或失败。 可能的值包括下表中显示的值。

返回代码 说明
S_FALSE
不要提供此示例。
S_OK
成功。

备注

重写此方法以生成输出数据。 从 pIn 参数指定的示例中读取输入数据,并将新数据写入 pOut 参数指定的示例中。

在筛选器调用此方法之前,它将属性从输入示例复制到输出示例。 方法Transform应使用 IMediaSample 方法或 IMediaSample2 接口 ((如果可用) )设置两个示例之间的任何不同属性。

例如,如果筛选器不应提供此示例 (以支持质量控制) ,则 方法应返回S_FALSE。

要求

要求
标头
Transfrm.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

CTransformFilter 类