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


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

Метод ProcessInput доставляет данные во входной поток в этом преобразовании Media Foundation (MFT).

Синтаксис

HRESULT ProcessInput(
  [in] DWORD     dwInputStreamID,
  [in] IMFSample *pSample,
  [in] DWORD     dwFlags
);

Параметры

[in] dwInputStreamID

Идентификатор входного потока.

[in] pSample

Указатель на интерфейс IMFSample входного примера. Пример должен содержать по крайней мере один буфер мультимедиа, содержащий допустимые входные данные.

[in] dwFlags

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

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

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

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

Комментарии

В большинстве случаев при успешном выполнении метода MFT сохраняет образец и содержит счетчик ссылок на указатель IMFSample . После выполнения MFT с использованием примера он должен освободить его, чтобы избежать утечки памяти.

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

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

Требования

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

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

IMFDeviceTransform