Gerenciador de Grafo de Filtro
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
O Gerenciador de Grafo de Filtro cria e controla grafos de filtro. Esse objeto é o componente central no DirectShow. Os aplicativos o usam para criar e controlar grafos de filtro. O Gerenciador de Grafo de Filtro também manipula a sincronização, a notificação de eventos e outros aspectos do gráfico de controle do filtro. Crie esse objeto chamando CoCreateInstance.
CLSID
Há dois CLSIDs para criar o Gerenciador de Grafo de Filtro:
CLSID | Descrição |
---|---|
CLSID_FilterGraph | Cria o Gerenciador de Grafo de Filtro em um thread de trabalho compartilhado. |
CLSID_FilterGraphNoThread | Cria o Gerenciador de Grafo de Filtro no thread do aplicativo. |
Em geral, os aplicativos devem usar CLSID_FilterGraph. Ambos os CLSIDs criam o mesmo objeto, mas usam modelos de threading diferentes:
- CLSID_FilterGraph cria o Gerenciador de Grafo de Filtro em um thread de trabalho, que é compartilhado por todas as instâncias CLSID_FilterGraph dentro do mesmo processo. O thread despacha mensagens enviadas por filtros e controla o tempo de vida de todas as janelas criadas por filtros.
- CLSID_FilterGraphNoThread cria o Gerenciador de Grafo de Filtro no thread do aplicativo. Se você usar esse CLSID, o thread que chama CoCreateInstance deverá ter um loop de mensagem que despacha mensagens; caso contrário, deadlocks podem ocorrer. Além disso, antes que o thread do aplicativo seja encerrado, ele deve liberar o Gerenciador de Grafo de Filtro e todos os objetos de grafo (como filtros, pinos, relógios de referência e assim por diante).
Interfaces
O Gerenciador de Grafo de Filtro expõe as seguintes interfaces:
- 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
Tópicos relacionados