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

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

Синтаксис

HRESULT ProcessEvent(
  [in] DWORD         dwInputStreamID,
  [in] IMFMediaEvent *pEvent
);

Параметры

[in] dwInputStreamID

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

[in] pEvent

Указатель на интерфейс IMFMediaEvent объекта события.

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

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

Код возврата Описание
S_OK
Метод выполнен успешно.
E_NOTIMPL
Не реализован.
MF_E_INVALIDSTREAMNUMBER
Недопустимый номер потока.
MF_E_TRANSFORM_TYPE_NOT_SET
Тип мультимедиа не задан в одном или нескольких потоках.
MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT
Конвейер не должен распространять событие.

Комментарии

MFT может обрабатывать отправку события вниз или позволить конвейеру сделать это, как указано возвращаемым значением:

  • E_NOTIMPL. MFT игнорирует все события, и конвейер должен отправлять все события ниже. После того как конвейер получит это возвращаемое значение, он может не вызывать ProcessEvent снова.
  • S_OK: MFT изучил это событие, но конвейер должен отправить событие ниже. Внутри системы MFT может каким-либо образом реагировать на событие или игнорировать событие.
  • MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT. Конвейер не должен распространять это событие ниже. Либо MFT отправит событие вниз, либо MFT будет использовать событие, а не отправлять его вниз. MFT должен использовать событие только в том случае, если событие должно остановиться на этом MFT и не перемещаться дальше по нисходящему потоку. Но в большинстве случаев событие должно перемещаться вниз по течению.
Чтобы отправить событие вниз, MFT добавляет событие в объект коллекции, предоставленный клиентом в элементе pEvents структуры MFT_OUTPUT_DATA_BUFFER , когда клиент вызывает IMFTransform::P rocessOutput.

События должны быть сериализованы с примерами, которые поступают до и после них. Вложите событие в выходной пример, который следует за событием. (Конвейер сначала обработает событие, а затем образец.) Если MFT удерживает одну или несколько выборок между вызовами IMFTransform::P rocessInput и ProcessOutput, MFT должен обрабатывать отправку всех событий вниз, так как в этом случае конвейер не может сопоставить входные выборки с выходными выборками.

Если MFT не сдержит выборки и не нужно проверять какие-либо события, он может вернуть E_NOTIMPL.

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

Требования

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

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

IMFTransform

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