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


Метод CTransformFilter.Receive

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Метод Receive получает пример мультимедиа, обрабатывает его и доставляет выходной пример в нижестоящий фильтр.

Синтаксис

HRESULT Receive(
   IMediaSample *pSample
);

Параметры

pSample

Указатель на интерфейс IMediaSample в примере входных данных.

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

Возвращает значение HRESULT . Возможные значения:

Код возврата Описание
S_FALSE
Фильтр вышестоящий должен прекратить отправку примеров.
S_OK
Успешно.

Комментарии

Входной пин-код фильтра вызывает этот метод при получении примера. Этот метод вызывает метод CTransformFilter::InitializeOutputSample , который подготавливает новый выходной пример. Затем он вызывает метод CTransformFilter::Transform , который должен реализовать производный класс. Метод Transform обрабатывает входные данные и создает выходные данные.

Если метод Transform возвращает S_FALSE, Receive метод удаляет этот пример. В первом отброшенном образце фильтр отправляет событие EC_QUALITY_CHANGE диспетчеру графов фильтров. В противном случае, если метод Transform возвращает S_OK, фильтр доставляет выходной пример. Для этого он вызывает метод IMemInputPin::Receive в нисходящем входном контакте.

Требования

Требование Значение
Заголовок
Transfrm.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

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

Класс CTransformFilter