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


Метод CBaseRenderer.PrepareReceive

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

Метод PrepareReceive подготавливает фильтр для отрисовки примера.

Синтаксис

virtual HRESULT PrepareReceive(
   IMediaSample *pMediaSample
);

Параметры

pMediaSample

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

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

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

Код возврата Описание
S_OK
Успешно.
E_FAIL
сбой.
E_UNEXPECTED
Непредвиденная ошибка.
VFW_E_SAMPLE_REJECTED
Фильтр отбрасывания этого примера.

Комментарии

Фильтр вызывает этот метод из метода CBaseRenderer::Receive перед отрисовкой примера. Если фильтр выполняется, этот метод планирует отрисовку примера.

Если фильтр уже содержит ожидающий выборку или если конец потока уже достигнут, метод возвращает E_UNEXPECTED. Возможно, фильтр вышестоящий не сериализует вызовы потоковой передачи правильно.

Если алгоритм планирования определяет, что образец должен быть удален (см. раздел CBaseRenderer::ScheduleSample), метод возвращает VFW_E_SAMPLE_REJECTED. Однако метод IMemInputPin::Receive входного пина не передает этот код ошибки в фильтр вышестоящий, так как удаление примера не является ошибкой.

Требования

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

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

Класс CBaseRenderer