Compartir a través de


Administrador de gráficos de filtros

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Filter Graph Manager compila y controla los gráficos de filtro. Este objeto es el componente central de DirectShow. Las aplicaciones lo usan para compilar y controlar gráficos de filtros. El Administrador de gráficos de filtros también controla la sincronización, la notificación de eventos y otros aspectos del control del gráfico de filtros. Cree este objeto llamando a CoCreateInstance.

CLSID

Hay dos CLSID para crear el Administrador de gráficos de filtros:

CLSID Descripción
CLSID_FilterGraph Crea el Administrador de gráficos de filtros en un subproceso de trabajo compartido.
CLSID_FilterGraphNoThread Crea el Administrador de gráficos de filtros en el subproceso de la aplicación.

 

Por lo general, las aplicaciones deben usar CLSID_FilterGraph. Ambos CLSID crean el mismo objeto, pero usan modelos de subprocesos diferentes:

  • CLSID_FilterGraph crea el Administrador de gráficos de filtros en un subproceso de trabajo, compartido por todas las instancias de CLSID_FilterGraph dentro del mismo proceso. El subproceso envía mensajes enviados por filtros y controla la duración de las ventanas creadas por filtros.
  • CLSID_FilterGraphNoThread crea el Administrador de gráficos de filtros en el subproceso de la aplicación. Si usa este CLSID, el subproceso que llama a CoCreateInstance debe tener un bucle de mensajes que envíe mensajes; de lo contrario, pueden producirse interbloqueos. Además, antes de que se cierre el subproceso de aplicación, debe liberar el Administrador de gráficos de filtros y todos los objetos de grafo (como filtros, patillas, relojes de referencia, etc.).

Interfaces

Filter Graph Manager expone las siguientes interfaces:

Objetos DirectShow