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


Метод CTransformInputPin.Receive

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

Метод Receive получает следующий пример мультимедиа в потоке. Этот метод реализует метод IMemInputPin::Receive .

Синтаксис

HRESULT Receive(
   IMediaSample *pSample
);

Параметры

pSample

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

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

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

Код возврата Описание
S_FALSE
В настоящее время закрепления выполняется очистка; пример был отклонен.
S_OK
Успешно.

Комментарии

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

Если фильтру требуется доступ к образцу после возврата этого метода, он должен содержать счетчик ссылок путем вызова метода IUnknown::AddRef в образце. Например, некоторым фильтрам декодера требуется текущий пример для декодирования следующего примера.

Требования

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