Фильтр диспетчера графов
[Функция, связанная с этой страницей, 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 создает диспетчер графов фильтра в потоке приложения. При использовании этого CLSID поток, вызывающий CoCreateInstance, должен иметь цикл сообщений, который отправляет сообщения; в противном случае могут возникать взаимоблокировки. Кроме того, перед выходом потока приложения необходимо освободить диспетчер графов фильтров и все объекты графа (например, фильтры, закрепления, эталонные часы и т. д.).
Интерфейсы
Диспетчер графов фильтров предоставляет следующие интерфейсы:
- 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
Связанные разделы