IMFDeviceTransform::GetInputStreamPreferredState 方法 (mftransform.h)

GetInputStreamPreferredState 方法获取设备 MFT 输入流的首选状态和媒体类型。

语法

HRESULT GetInputStreamPreferredState(
  [in]  DWORD             dwStreamID,
  [out] DeviceStreamState *value,
  [out] IMFMediaType      **ppMediaType
);

parameters

[in] dwStreamID

需要检索其状态的输入流的流 ID。

[out] value

指定指定输入设备 MFT 流的当前 DeviceStreamState

[out] ppMediaType

输入流的首选媒体类型通过此参数传入。

返回值

该方法返回 HRESULT。 可能的值包括但不限于下表中给出的值。

返回代码 说明
S_OK
已成功转换流状态。
MF_E_INVALIDREQUEST
设备 MFT 目前不支持该请求。
MF_E_INVAILIDSTREAMNUMBER
传递的流 ID 无效。
MF_E_INVALID_STREAM_STATE
无法进行请求的流转换。

注解

此接口函数有助于查询设备 MFT 输入流的首选状态和需要转换到的媒体类型。

当输出流的媒体类型更改需要输入中的相应更改时,Device MFT 会将 METransformInputStreamStateChanged 发布到 DTM 以更改相关的输入流。 DTM 将调用 GetInputStreamPreferredState 来检索设备 MFT 输入流的首选媒体类型和状态。

例如,假设设备 MFT 具有两个输入流和三个输出流。 让输出 1 和输出 2 从输入 1 源,以 720p 的速度流式传输。 现在,假设输出 2 的媒体类型更改为 1080p。 为了满足此请求,设备 MFT 必须将输入 1 媒体类型更改为 1080p,方法是将 METransformInputStreamStateChanged 事件发布到 DTM。 DTM 将调用 GetInputStreamPreferredState 并检索首选状态和 mediatype。 DTM 将调用 SetInputStreamState 来更改输入流的媒体类型和状态。

要求

   
最低受支持的客户端 Windows 10 版本 1703
目标平台 Windows
标头 mftransform.h

另请参阅

IMFDeviceTransform