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


Метод CMemAllocator.SetProperties

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

Метод SetProperties задает количество буферов для выделения и размер каждого буфера.

Синтаксис

HRESULT SetProperties(
   ALLOCATOR_PROPERTIES *pRequest,
   ALLOCATOR_PROPERTIES *pActual
);

Параметры

pRequest

Указатель на структуру ALLOCATOR_PROPERTIES , содержащую требования к буферу.

pActual

Указатель на структуру ALLOCATOR_PROPERTIES , получающую фактические свойства буфера.

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

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

Код возврата Описание
S_OK
Успешно.
E_POINTER
Аргумент указателя NULL.
VFW_E_ALREADY_COMMITTED
Не удается изменить выделенную память, пока фильтр активен.
VFW_E_BADALIGN
Указано недопустимое выравнивание.
VFW_E_BUFFERS_OUTSTANDING
Один или несколько буферов по-прежнему активны.

Комментарии

Этот метод переопределяет метод CBaseAllocator::SetProperties .

Выравнивание буфера, заданное элементом cbAlign структуры ALLOCATOR_PROPERTIES , должно быть равно двум.

Требования

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

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

Класс CMemAllocator