Compartilhar via


Componentes do Graph-Building

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture 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 Audio/Video Capture 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. Estes incluem o seguinte:

  • do Gerenciador de Grafo de Filtro. Esse objeto controla o grafo de filtro. Ele dá suporte às interfaces IGraphBuilder, IMediaControle 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.
  • Capturardo Construtor de Grafos. Esse objeto fornece métodos adicionais para a criação de 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 deICaptureGraphBuilder2.
  • Filtrar de Mapeador de Filtro e do Enumerador de Dispositivo do Sistema. Esses objetos localizam filtros registrados no sistema do usuário ou que representam dispositivos de hardware.
  • do Construtor de Grafos de DVD. Esse objeto cria grafos de filtro para reprodução e navegação de DVD. Ele dá suporte à interfaceIDvdGraphBuilder.

Conexão Inteligente

O termo "Conexão Inteligente" abrange um conjunto de algoritmos que o Gerenciador de Grafos de Filtro usa para criar todo ou parte de um grafo de filtro. Sempre que o Gerenciador de Grafos de Filtro requer filtros adicionais para concluir o grafo, ele faz aproximadamente o seguinte:

  1. Se houver um filtro no momento no grafo, com pelo menos um pino de entrada não conectado, o Gerenciador do Grafo de Filtro tentará usar esse filtro.
  2. Caso contrário, o Gerenciador de Grafos 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 do Grafo de Filtro ficar preso, ele recuará e tentará uma combinação diferente de filtros. Você pode encontrar os detalhes exatos no tópico Intelligent Connect.

criando o de Grafo de Filtro