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


Метод CPullPin.Receive

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

Метод Receive вызывается, когда объект получает образец носителя из выходного контакта. Производный класс должен реализовывать этот метод.

Синтаксис

virtual HRESULT Receive(
   IMediaSample *pSample
) = 0;

Параметры

pSample

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

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

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

Комментарии

Этот метод вызывается всякий раз, когда новый образец поступает из выходного контакта. Напишите этот метод так же, как и метод IMemInputPin::Receive .

Метки времени в образце указывают смещения байтов относительно исходной начальной позиции, указанной в методе CPullPin::Seek .

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

Все метки времени задаются как смещение в байтах, умноженное на 10 000 000, определяемое как константа UNITS. Таким образом, одна секунда является одним байтом. Чтобы найти фактические смещения байтов, вызовите метод IMediaSample::GetTime и разделите результаты на ЕДИНИЦЫ.

Требования

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

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

Класс CPullPin