Класс CBaseOutputPin
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Класс CBaseOutputPin
является абстрактным базовым классом, реализующим выходную закрепку.
Этот класс является производным от CBasePin. Он отличается от CBasePin в следующих отношениях:
- Он подключается только к входным контактам, поддерживающим интерфейс IMemInputPin .
- Он поддерживает передачу локальной памяти через интерфейс IMemAllocator .
- Он отклоняет уведомления об окончании потока, очистке и новом сегменте. (Их не следует отправлять в выходной контакт.)
- Он предоставляет методы для доставки нисходящих примеров.
Когда контакт подключается, он запрашивает выделение памяти из входного контакта. В противном случае создается новый объект распределителя. Выходной контакт отвечает за настройку свойств распределителя. Для этого используется чистый виртуальный метод CBaseOutputPin::D ecideBufferSize. Переопределите этот метод в производном классе. Если входной контакт имеет какие-либо требования к буферу, они передаются в метод DecideBufferSize .
Вызовите метод CBaseOutputPin::GetDeliveryBuffer , чтобы получить пустой пример носителя. Вызовите метод CBaseOutputPin::D eliver для доставки нисходящих примеров.
Производный класс должен переопределить чистый виртуальный метод CBasePin::CheckMediaType для проверки типа носителя во время соединений с закреплением.
Защищенные переменные-члены | Описание |
---|---|
m_pAllocator | Указатель на распределитель памяти. |
m_pInputPin | Указатель на входной контакт, подключенный к этому контакту. |
Открытые методы | Описание |
CBaseOutputPin | Метод конструктора. |
CompleteConnect | Завершает подключение к контакту ввода. Виртуальной. |
DecideAllocator | Выбирает распределителя памяти. Виртуальной. |
GetDeliveryBuffer | Извлекает пример носителя, содержащий пустой буфер. Виртуальной. |
Доставка | Доставляет пример носителя в подключенный входной контакт. Виртуальной. |
InitAllocator | Создает распределителя памяти. Виртуальной. |
CheckConnect | Определяет, подходит ли закрепление. |
BreakConnect | Освобождает закрепление из подключения. |
Активен | Уведомляет закрепление о том, что фильтр теперь активен. |
Неактивно | Уведомляет контакт о том, что фильтр больше не активен. |
DeliverEndOfStream | Доставляет уведомление об окончании потока в подключенный входной контакт. Виртуальной. |
DeliverBeginFlush | Запрашивает подключенный входной контакт, чтобы начать операцию очистки. Виртуальной. |
DeliverEndFlush | Запрашивает подключенный входной контакт для завершения операции очистки. Виртуальной. |
DeliverNewSegment | Доставляет уведомление о новом сегменте в подключенный входной контакт. Виртуальной. |
Чистые виртуальные методы | Описание |
DecideBufferSize | Задает требования к буферу. |
Методы IPin | Описание |
BeginFlush | Начинает операцию очистки. |
EndFlush | Завершает операцию очистки. |
EndOfStream | Уведомляет контакт о том, что дополнительные данные не ожидаются. |
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|