Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize 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 Filter Graph Manager cria e controla gráficos de filtro. Este objeto é o componente central no DirectShow. Os aplicativos usam-no para criar e controlar gráficos de filtro. O Filter Graph Manager também lida com sincronização, notificação de eventos e outros aspetos do controle do gráfico de filtro. Crie este objeto chamando CoCreateInstance.
CLSID
Há dois CLSIDs para criar o Gerenciador de Gráficos de Filtro:
| CLSID | Descrição |
|---|---|
| CLSID_FilterGraph | Cria o Gerenciador de Gráficos de Filtro em um thread de trabalho compartilhado. |
| CLSID_FilterGraphNoThread | Cria o Gerenciador de Gráfico de Filtro no thread do aplicativo. |
Geralmente, 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 Gráfico 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 Filter Graph Manager no thread do aplicativo. Se você usar esse CLSID, o thread que chama CoCreateInstance deve ter um loop de mensagem que despacha mensagens; caso contrário, podem ocorrer impasses. Além disso, antes que o thread do aplicativo saia, ele deve liberar o Gerenciador de Gráficos de Filtro e todos os objetos de gráfico (como filtros, pinos, relógios de referência e assim por diante).
Interfaces
O Filter Graph Manager 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