Метод CTransformFilter.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 . Возможные значения:
Код возврата | Описание |
---|---|
|
Фильтр вышестоящий должен прекратить отправку примеров. |
|
Успешно. |
Комментарии
Входной пин-код фильтра вызывает этот метод при получении примера. Этот метод вызывает метод CTransformFilter::InitializeOutputSample , который подготавливает новый выходной пример. Затем он вызывает метод CTransformFilter::Transform , который должен реализовать производный класс. Метод Transform обрабатывает входные данные и создает выходные данные.
Если метод Transform возвращает S_FALSE, Receive
метод удаляет этот пример. В первом отброшенном образце фильтр отправляет событие EC_QUALITY_CHANGE диспетчеру графов фильтров. В противном случае, если метод Transform возвращает S_OK, фильтр доставляет выходной пример. Для этого он вызывает метод IMemInputPin::Receive в нисходящем входном контакте.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|