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


Метод CTransInPlaceFilter.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_OK
Успешное завершение
E_UNEXPECTED
Непредвиденная ошибка.

Комментарии

Входной контакт фильтра вызывает этот метод при получении примера. Фильтр вызывает метод Transform , который должен реализовать производный класс. Метод Transform обрабатывает данные. Если фильтр использует только один распределител, он передает pSample непосредственно в метод Transform . В противном случае он копирует pSample и передает копию.

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

Требования

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

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

Класс CTransInPlaceFilter