Метод 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 и разделите результаты на ЕДИНИЦЫ.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|