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


Уведомление CBasePin об изменениях состояния фильтра

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

При изменении состояния фильтра-владельца класс CBasePin уведомляется. Для каждого перехода состояния фильтр вызывает соответствующий метод на пине, как показано в следующей таблице.

Новое состояние фильтра Метод CBasePin
Остановился CBasePin::Inactive
Приостановлено CBasePin::Active
Бег CBasePin::Run

 

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