Поделиться через


Метод IMFDeviceTransform::SetOutputStreamState (mftransform.h)

Метод SetOutputStreamState задает состояние выходного потока MFT устройства и тип носителя.

Синтаксис

HRESULT SetOutputStreamState(
  [in] DWORD             dwStreamID,
  [in] IMFMediaType      *pMediaType,
  [in] DeviceStreamState value,
  [in] DWORD             dwFlags
);

Параметры

[in] dwStreamID

Идентификатор потока входного потока, в котором необходимо изменить состояние и тип носителя.

[in] pMediaType

Предпочтительный тип мультимедиа для входного потока передается через этот параметр. Устройство MFT должно изменять тип носителя только в том случае, если тип входящего носителя отличается от текущего типа мультимедиа.

[in] value

Указывает DeviceStreamState, на который должен перейти входной поток.

[in] dwFlags

Должен равняться нулю.

Возвращаемое значение

Метод возвращает HRESULT. Возможные значения включают, помимо прочего, значения, указанные в следующей таблице.

Код возврата Описание
S_OK
Передача состояния потока выполнена успешно.
MF_E_INVALIDREQUEST
В настоящее время устройство MFT не поддерживает запрос.
MF_E_INVAILIDSTREAMNUMBER
Передан недопустимый идентификатор потока.
MF_E_INVALID_STREAM_STATE
Запрошенный переход потока невозможен.

Комментарии

Этот метод интерфейса помогает перевести выходной поток в указанное состояние с заданным типом носителя, заданным в выходном потоке. Это будет использоваться DTM, когда источник устройства запрашивает изменение состояния и типа носителя определенного выходного потока. Устройство MFT должно изменить тип и состояние указанного выходного потока на запрошенный тип мультимедиа.

Если тип входящего носителя и состояние потока совпадают с текущим типом носителя и состоянием потока, метод возвращает S_OK.

Если тип входящего носителя и текущий тип мультимедиа потока совпадают, device MFT должен изменить состояние потока на запрошенное значение и вернуть соответствующее значение HRESULT.

Если для изменения типа мультимедиа выходного потока требуется соответствующее изменение входных данных, устройство MFT должно отправить событие METransformInputStreamStateChanged в DTM, чтобы изменить соответствующий входной поток. Вызов должен возвращаться только после изменения типа носителя входного потока и соответствующего HRESULT.

В качестве примера рассмотрим MFT-устройство с двумя входными и тремя потоками вывода. Оставьте выходные данные 1 и выходные данные 2 из входных данных 1 и потоковую передачу с 720p. Теперь предположим, что тип носителя выходных данных 2 изменится на 1080p. Чтобы удовлетворить этот запрос, MFT устройства необходимо изменить тип носителя Input 1 на 1080p, опубликовав событие METransformInputStreamStateChanged в DTM. DTM вызывает SetInputStreamState , чтобы изменить тип и состояние носителя входного потока. После этого вызова setOutputStreamState должен вернуть.

Требования

   
Минимальная версия клиента Windows 10 версии 1703
Целевая платформа Windows
Header mftransform.h

См. также раздел

IMFDeviceTransform