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


Метод CBaseOutputPin.DecideBufferSize

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

Метод DecideBufferSize задает требования к буферу.

Синтаксис

virtual HRESULT DecideBufferSize(
   IMemAllocator        *pAlloc,
   ALLOCATOR_PROPERTIES *ppropInputRequest
) = 0;

Параметры

pAlloc

Указатель на интерфейс IMemAllocator распределителя.

ppropInputRequest

Указатель на ALLOCATOR_PROPERTIES структуру, содержащую требования к буферу входного контакта. Если входной контакт не имеет никаких требований, вызывающий объект должен обнулить элементы этой структуры перед вызовом метода .

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

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

Комментарии

Переопределите этот метод в производном классе. Вызовите метод IMemAllocator::SetProperties , чтобы указать требования к буферу. Как правило, производный класс учитывает требования к буферу входного контакта, но это не обязательно.

Требования

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

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

Класс CBaseOutputPin