Класс CBaseFilter
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Класс CBaseFilter
является абстрактным классом для реализации фильтров. Чтобы реализовать фильтр с помощью этого класса, необходимо выполнить по крайней мере следующие действия:
- Наследуйте новый класс от
CBaseFilter
. - Включите переменные-члены, определяющие контакты в фильтре. Контакты должны наследоваться от класса CBasePin .
- Переопределите чистый виртуальный метод CBaseFilter::GetPin, который извлекает контакты на фильтре.
- Переопределите чистый виртуальный метод CBaseFilter::GetPinCount, который извлекает количество контактов.
- Предоставляет методы для создания, обработки или отрисовки примеров мультимедиа.
Несколько базовых классов являются производными от CBaseFilter
, включая CSource, CBaseRenderer и CTransformFilter. Обычно проще реализовать фильтр с помощью одного из этих специализированных классов, а не использовать CBaseFilter
напрямую.
Защищенные переменные-члены | Описание |
---|---|
m_State | Текущее состояние фильтра. |
m_pClock | Указатель на эталонные часы фильтра. |
m_tStart | Время ссылки, соответствующее времени потока 0. |
m_clsid | Идентификатор класса (CLSID) фильтра. |
m_pLock | Указатель на критически важный раздел, используемый для сериализации изменений состояния. |
m_pName | Имя фильтра. |
m_pGraph | Указатель на диспетчер графов фильтров. |
m_pSink | Указатель на интерфейс IMediaEventSink в диспетчере графов фильтров. |
m_PinVersion | Текущая версия набора контактов на этом фильтре. |
Открытые методы | Описание |
CBaseFilter | Метод конструктора. |
~ CBaseFilter | Метод деструктора. |
StreamTime | Извлекает текущее время потока. Виртуальной. |
Isactive | Определяет, активен ли фильтр (запущен или приостановлен). |
IsStopped | Определяет, остановлен ли фильтр в данный момент. |
NotifyEvent | Отправляет уведомление о событии диспетчеру графов фильтров. |
GetFilterGraph | Извлекает указатель на диспетчер графов фильтров. |
Повторное подключение | Разрывает существующее соединение контактов и повторно подключает его к тому же контакту, используя указанный тип носителя. |
GetPinVersion | Извлекает номер версии для набора контактов в этом фильтре. Виртуальной. |
IncrementPinVersion | Увеличивает номер версии в наборе контактов. |
GetSetupData | Извлекает данные регистрации для фильтра. Виртуальной. |
Чистые виртуальные методы | Описание |
GetPinCount | Извлекает количество контактов. |
GetPin | Извлекает закрепление. |
Методы IPersist | Описание |
GetClassID | Извлекает идентификатор класса. |
Методы IMediaFilter | Описание |
GetState | Извлекает состояние фильтра (выполняется, остановлено или приостановлено). |
SetSyncSource | Задает эталонные часы для фильтра. |
GetSyncSource | Извлекает эталонные часы, которые использует фильтр. |
Остановить | Останавливает фильтр. |
Пауза | Приостанавливает фильтр. |
Выполнить | Запускает фильтр. |
Методы IBaseFilter | Описание |
EnumPins | Перечисляет контакты в этом фильтре. |
FindPin | Извлекает пин-код с указанным идентификатором. |
QueryFilterInfo | Извлекает сведения о фильтре. |
JoinFilterGraph | Уведомляет фильтр о том, что он присоединился к графу фильтра или покинул его. |
QueryVendorInfo | Извлекает строку, содержащую сведения о поставщике. |
Методы IAMovieSetup | Описание |
Зарегистрировать | Добавляет фильтр в реестр. |
Unregister; | Удаляет фильтр из реестра. |
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|