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


Метод CSourceStream.DoBufferProcessingLoop

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

Метод DoBufferProcessingLoop создает данные мультимедиа и доставляет их в нисходящий входной контакт.

Синтаксис

virtual HRESULT DoBufferProcessingLoop();

Параметры

Этот метод не имеет параметров.

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

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

Код возврата Описание
S_FALSE
Поток получил запрос на остановку.
S_OK
Поток завершен, или нижестоящий фильтр не принимает примеры.

Комментарии

Этот метод реализует цикл main, который обрабатывает данные и доставляет их ниже. Каждый раз, когда выполняется цикл, метод извлекает пустой образец носителя из распределителя. Он передает пример в метод CSourceStream::FillBuffer . Метод FillBuffer , который должен реализовать производный класс, создает данные мультимедиа и помещает их в буфер образца.

Цикл завершается, когда происходит любое из следующих действий:

  • Метод IMemInputPin::Receive входного контакта отклоняет пример.
  • Метод FillBuffer возвращает S_FALSE, указывая конец потока, или возвращает код ошибки.
  • Поток получает запрос CSourceStream::Stop .

Метод DoBufferProcessingLoop обрабатывает уведомление об окончании потока. Если возникает ошибка, она отправляет событие EC_ERRORABORT диспетчеру графов фильтров.

Требования

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

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

Класс CSourceStream