Partilhar via


Componentes Graph-Building

[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 DirectShow fornece vários componentes que podem ser usados para criar gráficos de filtro. Estes incluem o seguinte:

  • Filter Graph Manager. Este objeto controla o gráfico de filtro. Ele suporta o IGraphBuilder, IMediaControle interfaces de IMediaEventEx, entre outros. Todos os aplicativos DirectShow usam esse objeto em algum momento, embora em alguns casos outro objeto crie o Gerenciador de Gráfico de Filtro para o aplicativo.
  • Capture Graph Builder. Este objeto fornece métodos adicionais para a criação de gráficos de filtro. Ele foi originalmente projetado para construir gráficos que executam captura de vídeo (daí o nome), mas é útil para muitos outros tipos de gráfico de filtro personalizado. Ele suporta o ICaptureGraphBuilder2 interface.
  • Mapeador de Filtros e System Device Enumerator. Esses objetos localizam filtros que estão registrados no sistema do usuário ou que representam dispositivos de hardware.
  • DVD Graph Builder. Este objeto cria gráficos de filtro para reprodução e navegação de DVD. Ele suporta o IDvdGraphBuilder interface.

Ligação Inteligente

O termo "Intelligent Connect" abrange um conjunto de algoritmos que o Filter Graph Manager usa para construir todo ou parte de um gráfico de filtro. Sempre que o Filter Graph Manager requer filtros adicionais para completar o gráfico, ele faz aproximadamente o seguinte:

  1. Se houver um filtro atualmente no gráfico, com pelo menos um pino de entrada desconectado, o Gerenciador de gráficos de filtro tentará usar esse filtro.
  2. Caso contrário, o Gerenciador de Gráfico de Filtro procurará no Registro filtros que possam 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 para completar o gráfico. O Gerenciador de Gráficos de Filtros 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 descodificadores também têm um elevado mérito. Os filtros para fins especiais têm baixo mérito.

Se o Gerenciador de Gráficos de Filtros ficar preso, ele voltará atrás e tentará uma combinação diferente de filtros. Você pode encontrar os detalhes exatos no tópico Intelligent Connect.

Construindo o gráfico de filtro