Фильтрация диспетчера графов
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Диспетчер фильтров графов создает графы фильтров и управляет ими. Этот объект является центральным компонентом в DirectShow. Приложения используют его для создания графов фильтров и управления ими. Диспетчер графа фильтров также обрабатывает синхронизацию, уведомления о событиях и другие аспекты управления графом фильтров. Создайте этот объект, вызвав CoCreateInstance.
CLSID
Существует два идентификатора CLSID для создания диспетчера графов фильтров:
CLSID | Описание |
---|---|
CLSID_FilterGraph | Создает диспетчер графов фильтров в общем рабочем потоке. |
CLSID_FilterGraphNoThread | Создает диспетчер графов фильтров в потоке приложения. |
Как правило, приложения должны использовать CLSID_FilterGraph. Оба идентификатора CLSID создают один и тот же объект, но используют разные потоковые модели:
- CLSID_FilterGraph создает диспетчер фильтров Графа в рабочем потоке, который совместно используется всеми экземплярами CLSID_FilterGraph в рамках одного процесса. Поток отправляет сообщения, отправленные фильтрами, и управляет временем существования всех окон, созданных фильтрами.
- CLSID_FilterGraphNoThread создает диспетчер graph filter в потоке приложения. При использовании этого идентификатора CLSID поток, вызывающий CoCreateInstance , должен иметь цикл сообщений, который отправляет сообщения; в противном случае могут возникать взаимоблокировки. Кроме того, перед выходом потока приложения он должен освободить диспетчер graph filter и все объекты графа (например, фильтры, контакты, эталонные часы и т. д.).
Интерфейсы
Диспетчер графов фильтров предоставляет следующие интерфейсы:
- IAMGraphStreams
- IAMStats
- IBasicAudio
- IBasicVideo
- IBasicVideo2
- IFilterChain
- IFilterGraph
- IFilterGraph2
- IFilterGraph3
- IFilterMapper2
- IGraphBuilder
- IGraphConfig
- IGraphVersion
- IMediaControl
- IMediaEvent
- IMediaEventEx
- IMediaEventSink
- IMediaFilter
- IMediaPosition
- IMediaSeeking
- IQueueCommand
- IRegisterServiceProvider
- IResourceManager
- IServiceProvider
- IVideoFrameStep
- IVideoWindow
Связанные темы