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


Метод CVideoTransformFilter.Receive

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

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

Синтаксис

HRESULT Receive(
   IMediaSample *pSample
);

Параметры

pSample

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

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

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

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

Комментарии

Этот метод вызывает CVideoTransformFilter::ShouldSkipFrame , чтобы определить, следует ли доставить этот пример или просто отменить его. Если Значение ShouldSkipFrame возвращает значение FALSE (указывающее, что образец должен быть доставлен), метод выполняет следующие действия:

  1. Вызывает CTransformFilter::InitializeOutputSample для подготовки выходного примера.
  2. Вызывает CTransformFilter::Transform для обработки входного примера. Этот метод является чисто виртуальным и должен быть реализован в производном классе.
  3. Вызывает CBaseOutputPin::D eliver для доставки выходного примера.

Кроме того, этот метод проверяет наличие изменений формата во входном или выходном примере, вызывая метод IMediaSample::GetMediaType. При изменении формата метод задает тип подключения для соответствующего контакта. Прежде чем задать новый тип, он вызывает StopStreaming. Задав новый тип, он вызывает StartStreaming. Производный класс может использовать эти методы для обновления своего внутреннего состояния. Производное классу также может потребоваться проверка для нового формата в методе Transform.

Требования

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

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

Класс CVideoTransformFilter