Метод 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. Возможные значения включают, помимо прочего, значения, указанные в следующей таблице.
Код возврата | Описание |
---|---|
|
Передача состояния потока выполнена успешно. |
|
В настоящее время устройство MFT не поддерживает запрос. |
|
Передан недопустимый идентификатор потока. |
|
Запрошенный переход потока невозможен. |
Комментарии
Этот метод интерфейса помогает перевести выходной поток в указанное состояние с заданным типом носителя, заданным в выходном потоке. Это будет использоваться 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 |