Componentes do Graph-Building
[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 DirectShow fornece vários componentes que podem ser usados para criar grafos de filtro. Entre elas estão as seguintes:
- Filtrar o Gerenciador de Grafo. Esse objeto controla o grafo de filtro. Ele dá suporte às interfaces IGraphBuilder, IMediaControl e IMediaEventEx , entre outros. Todos os aplicativos DirectShow usam esse objeto em algum momento, embora, em alguns casos, outro objeto crie o Gerenciador de Grafo de Filtro para o aplicativo.
- Capturar o Construtor de Grafos. Esse objeto fornece métodos adicionais para criar grafos de filtro. Ele foi originalmente projetado para criar grafos que executam a captura de vídeo (daí o nome), mas é útil para muitos outros tipos de grafo de filtro personalizado. Ele dá suporte à interface ICaptureGraphBuilder2 .
- Filtrar Mapeador e Enumerador de Dispositivo do Sistema. Esses objetos localizam filtros registrados no sistema do usuário ou que representam dispositivos de hardware.
- Construtor de Grafo de DVD. Esse objeto cria grafos de filtro para reprodução e navegação de DVD. Ele dá suporte à interface IDvdGraphBuilder .
Conexão Inteligente
O termo "Conexão Inteligente" abrange um conjunto de algoritmos que o Gerenciador de Grafo de Filtro usa para criar todo ou parte de um grafo de filtro. Sempre que o Gerenciador de Grafo de Filtro requer filtros adicionais para concluir o grafo, ele faz aproximadamente o seguinte:
- Se houver um filtro atualmente no grafo, com pelo menos um pino de entrada não conectado, o Gerenciador de Grafo de Filtro tentará usar esse filtro.
- Caso contrário, o Gerenciador de Grafo de Filtro procura no registro filtros que podem aceitar o tipo de mídia correto para a conexão. Cada filtro tem um valor de registro chamado "Mérito", que indica aproximadamente a probabilidade de o filtro ser útil na conclusão do grafo. O Gerenciador de Grafo de Filtro tenta filtros em ordem de valor de mérito. Para cada tipo de fluxo (como áudio, vídeo ou MIDI), o renderizador padrão tem um alto mérito. Os decodificadores também têm alto mérito. Os filtros de finalidade especial têm baixo mérito.
Se o Gerenciador de Grafo de Filtro ficar preso, ele fará backup e tentará uma combinação diferente de filtros. Você pode encontrar os detalhes exatos no tópico Conexão Inteligente.
Tópicos relacionados