Метод 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 , указывающее причину ошибки.
Комментарии
Входной контакт вызывает этот метод при получении примера из фильтра вышестоящий.
Если фильтр выполняется, этот метод выполняет следующие действия.
- Планирует отрисовку примера (CBaseRenderer::P repareReceive).
- Ожидает запланированного времени (CBaseRenderer::WaitForRenderTime).
- Отрисовывает пример (CBaseRenderer::Render).
- Освобождает пример (CBaseRenderer::ClearPendingSample).
Если фильтр приостановлен, метод выполняет следующие действия.
- Уведомляет производный класс о доступности примера (CBaseRenderer::OnReceiveFirstSample).
- Ожидает запланированного времени.
- Отрисовывает пример.
- Освобождает пример.
Пока он приостановлен, метод ожидает на шаге 2, пока фильтр не перейдет в состояние выполнения. На этом этапе фильтр запланирует пример.
В базовом классе метод OnReceiveFirstSample ничего не делает. Производный класс может переопределить его. Например, когда отрисовщик видео приостановлен, он отображает первый пример в виде неподвижного изображения.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|