Метод IMFTransform::SetInputType (mftransform.h)

Задает, проверяет или очищает тип носителя для входного потока в этом преобразовании Media Foundation (MFT).

Синтаксис

HRESULT SetInputType(
  [in] DWORD        dwInputStreamID,
  [in] IMFMediaType *pType,
  [in] DWORD        dwFlags
);

Параметры

[in] dwInputStreamID

Идентификатор входного потока. Чтобы получить список идентификаторов потоков, вызовите IMFTransform::GetStreamIDs.

[in] pType

Указатель на интерфейс IMFMediaType или NULL.

[in] dwFlags

Ноль или более флагов из перечисления _MFT_SET_TYPE_FLAGS .

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

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

Код возврата Описание
S_OK
Метод выполнен успешно.
MF_E_INVALIDMEDIATYPE
MFT не может использовать предлагаемый тип носителя.
MF_E_INVALIDSTREAMNUMBER
Недопустимый идентификатор потока.
MF_E_INVALIDTYPE
Предлагаемый тип недопустим. Этот код ошибки указывает, что сам тип мультимедиа настроен неправильно; например, он может содержать взаимоисключающиеся атрибуты.
MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING
MFT не может переключать типы при обработке данных. Попробуйте выполнить очистку или очистку MFT.
MF_E_TRANSFORM_TYPE_NOT_SET
Перед настройкой типов входных данных необходимо задать типы выходных данных.
MF_E_UNSUPPORTED_D3D_TYPE
MFT не удалось найти подходящую конфигурацию DirectX Video Acceleration (DXVA).

Комментарии

Этот метод можно использовать для задания, тестирования без настройки или очистки типа носителя:

  • Чтобы задать тип носителя, задайте dwFlags равным нулю, а для pType — указатель, отличный от NULL , который указывает тип носителя.
  • Чтобы проверить тип носителя, не задавая его, задайте для dwFlagsзначение MFT_SET_TYPE_TEST_ONLY а для параметра pType — указатель, отличный от NULL , указывающий тип носителя. Если тип носителя допустим, метод возвращает S_OK. В противном случае возвращается MF_E_INVALIDMEDIATYPE. Независимо от возвращаемого значения текущий тип носителя не изменяется.
  • Чтобы очистить тип носителя, присвойте pType значение NULL.
Установка типа мультимедиа в одном потоке может изменить допустимые типы в другом потоке.

MFT может потребовать, чтобы вызывающий объект установил один или несколько типов выходных данных перед установкой типа входных данных. Если это так, метод возвращает MF_E_TRANSFORM_TYPE_NOT_SET.

Если MFT поддерживает ускорение видео DirectX (DXVA), но не может найти подходящую конфигурацию DXVA (например, если графический драйвер не имеет нужных возможностей), метод должен вернуть MF_E_UNSUPPORTED_D3D_TYPE. Дополнительные сведения см. в статье Поддержка DXVA 2.0 в Media Foundation.

Если MFT_UNIQUE_METHOD_NAMES определен перед включением mftransform.h, этот метод переименован в MFTSetInputType. См. раздел Создание гибридных объектов DMO/MFT.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header mftransform.h
Библиотека Mfuuid.lib

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

IMFTransform

Преобразования Media Foundation