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


Метод CTransInPlaceInputPin.NotifyAllocator

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

Метод NotifyAllocator задает распределитель для соединения. Этот метод реализует метод IMemInputPin::NotifyAllocator .

Синтаксис

HRESULT NotifyAllocator(
   IMemAllocator *pAllocator,
   BOOL          bReadOnly
);

Параметры

pAllocator

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

bReadOnly

Флаг, указывающий, доступны ли примеры из этого распределителя только для чтения. Если задано значение TRUE, примеры доступны только для чтения.

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

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

Код возврата Описание
S_OK
Успешное завершение
E_FAIL
Failure
E_POINTER
Аргумент указателя NULL

Комментарии

Фильтр пытается использовать один и тот же распределитель для обоих подключений.

  • Если выходной контакт не подключен, входной контакт автоматически принимает распределитель. Когда выходной контакт подключен, фильтр повторно подключит входной контакт. На этом этапе фильтр снова попытается использовать один распределитель.
  • Если выходной контакт подключен, входной контакт принимает распределитель. Выходной контакт также использует тот же распределитель. Он вызывает NotifyAllocator на нисходящем входном контакте.

В предыдущем случае имеется следующее исключение:

  • Если предлагаемый распределитель доступен только для чтения (то есть параметр bReadOnly имеет значение TRUE) и фильтру необходимо изменить примеры, фильтр должен использовать два разных распределителя. В этом случае, если фильтр вышестоящий предлагает использовать распределитель нижестоящего фильтра, метод возвращает E_FAIL.

Требования

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

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

Класс CTransInPlaceInputPin