IMFDeviceTransform::SetOutputStreamState 方法 (mftransform.h)
SetOutputStreamState 方法设置设备 MFT 输出流状态和媒体类型。
语法
HRESULT SetOutputStreamState(
[in] DWORD dwStreamID,
[in] IMFMediaType *pMediaType,
[in] DeviceStreamState value,
[in] DWORD dwFlags
);
parameters
[in] dwStreamID
需要更改状态和媒体类型的输入流的流 ID。
[in] pMediaType
输入流的首选媒体类型通过此参数传入。 仅当传入媒体类型与当前媒体类型不同时,设备 MFT 才应更改媒体类型。
[in] value
指定输入流应转换到的 DeviceStreamState 。
[in] dwFlags
必须为零。
返回值
该方法返回 HRESULT。 可能的值包括但不限于下表中给出的值。
返回代码 | 说明 |
---|---|
|
已成功转换流状态。 |
|
设备 MFT 目前不支持该请求。 |
|
传递的流 ID 无效。 |
|
无法进行请求的流转换。 |
注解
此接口方法有助于将输出流转换为指定状态,且在输出流上设置了指定的媒体类型。 当设备源请求更改特定输出流的状态和媒体类型时,DTM 将使用此功能。 设备 MFT 应将指定输出流的媒体类型和状态更改为请求的媒体类型。
如果传入媒体类型和流状态与当前媒体类型和流状态相同,则方法 返回S_OK。
如果流的传入媒体类型和当前媒体类型相同,则设备 MFT 必须将流的状态更改为请求的值并返回相应的 HRESULT。
如果输出流的媒体类型更改需要输入中的相应更改,则 Device MFT 必须将 METransformInputStreamStateChanged 事件发布到 DTM 以更改相关的输入流。 只有在更改输入流的媒体类型和相应的 HRESULT 后,调用才能返回。
例如,假设设备 MFT 具有两个输入流和三个输出流。 让输出 1 和输出 2 从输入 1 源,以 720p 的速度流式传输。 现在,假设输出 2 的媒体类型更改为 1080p。 为了满足此请求,设备 MFT 必须将输入 1 媒体类型更改为 1080p,方法是将 METransformInputStreamStateChanged 事件发布到 DTM。 DTM 将调用 SetInputStreamState 来更改输入流的媒体类型和状态。 在此调用之后, SetOutputStreamState 必须返回。
要求
最低受支持的客户端 | Windows 10 版本 1703 |
目标平台 | Windows |
标头 | mftransform.h |