Метод CBaseRenderer.Receive

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

Метод Receive получает следующий пример носителя в потоке.

Синтаксис

virtual Receive(
   IMediaSample *pMediaSample
);

Параметры

pMediaSample

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

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

Возвращает S_OK в случае успешного выполнения или значение HRESULT , указывающее причину ошибки.

Комментарии

Входной контакт вызывает этот метод при получении примера из фильтра вышестоящий.

Если фильтр выполняется, этот метод выполняет следующие действия.

  1. Планирует отрисовку примера (CBaseRenderer::P repareReceive).
  2. Ожидает запланированного времени (CBaseRenderer::WaitForRenderTime).
  3. Отрисовывает пример (CBaseRenderer::Render).
  4. Освобождает пример (CBaseRenderer::ClearPendingSample).

Если фильтр приостановлен, метод выполняет следующие действия.

  1. Уведомляет производный класс о доступности примера (CBaseRenderer::OnReceiveFirstSample).
  2. Ожидает запланированного времени.
  3. Отрисовывает пример.
  4. Освобождает пример.

Пока он приостановлен, метод ожидает на шаге 2, пока фильтр не перейдет в состояние выполнения. На этом этапе фильтр запланирует пример.

В базовом классе метод OnReceiveFirstSample ничего не делает. Производный класс может переопределить его. Например, когда отрисовщик видео приостановлен, он отображает первый пример в виде неподвижного изображения.

Требования

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

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

Класс CBaseRenderer