Filtro mezclador de superposición
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEnginey captura de audio y 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 captura de audio y vídeo 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.
El filtro Mezclador de superposición es un representador de vídeo diseñado específicamente para la reproducción de DVD y difundir secuencias de vídeo con subtítulos de línea 21. El mezclador de superposición también admite extensiones de puerto de vídeo (VPE), lo que le permite trabajar con descodificadores MPEG-2 de hardware o tuners analógicos de TV que envían vídeo directamente a la tarjeta gráfica, en lugar de sobre el bus PCI.
Nota
El representador de mezcla de vídeos 9 ahora se prefiere sobre el filtro Mezclador de superposición, excepto en escenarios de VPE.
El mezclador de superposición usa DirectDraw para la representación. Requiere una superficie superpuesta en la tarjeta gráfica. La secuencia de vídeo principal debe estar conectada a la patilla 0. Las secuencias secundarias (gráficos de subtítulos o subpicturas de DVD) están conectadas a las patillas 1 y posteriores. El mezclador de superposición ilumina las secuencias secundarias directamente en el suface principal; no mezcla ni mezcla alfa.
El mezclador de superposición usa el representador de vídeo para la administración de ventanas. Video Renderer se conecta al pin de salida del mezclador de superposición.
Este filtro se agrega automáticamente al gráfico de filtros cuando las aplicaciones usan las interfaces de IDvdGraphBuilder y ICaptureGraphBuilder2 para crear el grafo. El Administrador de gráficos de filtros no agregará automáticamente el mezclador de superposición al gráfico.
Nota
En la tabla siguiente, los subtipos multimedia aceptados en el pin de entrada 0 dependen del hardware. El mezclador de superposición no puede determinar si se admite un subtipo determinado hasta que crea la superficie de DirectDraw. Por lo tanto, la única manera de que un filtro ascendente determine si se admite un subtipo es intentar una conexión con ese subtipo.
Etiqueta | Valor |
---|---|
Interfaces de filtro | IAMOverlayFX, IAMVideoDecimationProperties, IBaseFilter, IDDrawExclModeVideo, IKsPropertySet, IMediaPosition, IMediaSeeking, IMixerOCX, IQualProp, IVPNotify, IVPNotify2 |
Tipos de medios de patillas de entrada | Tipo principal: MEDIATYPE_Video Subtipos:
|
Interfaces de patillas de entrada | IAMVideoAccelerator, IKsPin, IKsPropertySet, IMemInputPin, IMixerPinConfig, IMixerPinConfig2, IOverlay (solo pin 0), IPin, IPinConnection, IQualityControl, IVPNotify, IVPNotify2 |
Tipos de medios de anclaje de salida | MEDIATYPE_Video, MEDIASUBTYPE_Overlay |
Interfaces de pin de salida | IMediaPosition, IMediaSeeking, IPin, IQualityControl |
Filtrar CLSID | CLSID_OverlayMixer |
CLSID de página de propiedades | No hay página de propiedades. |
Ejecutable | qdvd.dll |
Merit | MERIT_DO_NOT_USE |
de categoría de filtro | CLSID_LegacyAmFilterCategory |
Observaciones
El mezclador de superposición usa las teclas de color de destino para mezclar superficies de vídeo con superposiciones. Divide la tecla de color y el vídeo secundario en la superficie principal y envía el vídeo principal a la superficie de superposición. A continuación, la tarjeta gráfica compone las dos superficies en su búfer de fotogramas.
Para probar si el controlador de gráficos admite la superposición de hardware, llame a IDirectDraw7::GetCaps. Si el campo dwMaxVisibleOverlays del estructura DDCAPS es mayor que cero, el controlador admite la superposición de hardware.
Las aplicaciones pueden controlar algunos comportamientos en el mezclador de superposición a través de la interfazIMixerPinConfig2. Los desarrolladores de juegos pueden usar overlay Mixer para mostrar vídeo en el modo exclusivo directDraw, como se describe más adelante en esta sección. La filtro de representador de mezcla de vídeos 9 (VMR-9) ahora proporciona una mejor compatibilidad con el vídeo en los juegos, sin embargo. Para obtener más información, vea Using the Video Mixing Renderer.
La siguiente información se proporciona para las ventajas de los desarrolladores de filtros y los desarrolladores de juegos que quieren usar el mezclador de superposición en el modo exclusivo directDraw.
de operaciones internas del mezclador de superposición
El mezclador de superposición expone un pin de entrada para cada flujo entrante. Normalmente, hay tres pines de entrada: pin 0 para datos de vídeo y pines 1 y 2 para los datos de subpicturas de la línea 21 y DVD. Internamente, el mezclador de superposición crea un objeto DirectDraw con una superficie principal que comprende todo el escritorio, además de una superficie de superposición cuyo rectángulo está definido por el tamaño de la secuencia de vídeo en el Pin 0. Si el descodificador no especifica una tecla de color, el mezclador de superposición usa teclas de color predeterminadas: gris oscuro para tarjetas gráficas más recientes y magenta para tarjetas de color anteriores de 256.
Nota
Los resultados no se definen si el descodificador entrega dos secuencias de vídeo secundarias simultáneamente en el mismo lugar en la superficie de superposición. (Esto ocurre a veces con DVDs que contienen subpicture y secuencias de línea 21). El vídeo puede parpadear o mostrar solo una de las secuencias.
En Windows Vista o posterior, el mezclador de superposición deshabilita la composición del Administrador de ventanas de escritorio (DWM) si el controlador de pantalla admite la superposición de hardware. Las aplicaciones deben evitar el uso del filtro Mezclador de superposición; use VMR-9 o enhanced Video Renderer (EVR) en su lugar.
conexión ascendente con el Descodificador de vídeo
Normalmente, las patillas de entrada del mezclador de superposición se conectan a un descodificador de vídeo ascendente. La secuencia de vídeo principal debe conectarse al pin 0. Las secuencias de línea 21 o subpicture se conectan al pin 1 o superior. Si el descodificador es un descodificador de software que usa la CPU del host exclusivamente, la conexión entre el descodificador y el Pin 0 es una conexión IMemInputPin. Si el descodificador usa la aceleración de hardware, la conexión a Pin 0 debe usar el IAMVideoAccelerator inferface. Estos dos tipos de conexiones son mutuamente excluyentes.
Si el descodificador se dibuja directamente en la superficie de superposición, debe usar la interfazIOverlay en el pin 0 e implementar la interfaz IOverlayNotify.
Los filtros que encapsulan un descodificador de hardware y se conectan al mezclador de superposición a través de un puerto de vídeo deben implementar la interfazIVPConfig. El mezclador de superposición implementa la interfaz IVPNotify. Estas dos interfaces permiten al descodificador especificar las superficies de superposición que requiere y habilitan el mezclador de superposición para informar al descodificador de la ubicación de esas superficies en la memoria de vídeo.
El mezclador de superposición también garantiza que el rectángulo de vídeo se escala correctamente. La captura de vídeo implica ciertos problemas con respecto al escalado de la imagen de vista previa y la captura de fotogramas de vídeo intercalados. Si está desarrollando un filtro o un controlador WDM para un dispositivo de captura de vídeo de hardware, consulte las páginas de referencia de IVPConfig y IVPNotify para obtener más información sobre estos temas.
El mezclador de superposición no se usa en escenarios de captura USB o 1394. Se usa en la captura de vídeo a través del bus PCI.
conexión de bajada con el de Video Renderer
El mezclador de superposición tiene un pin de salida que se conecta al filtro de Video Renderer. El representador de vídeo en este caso no representa el vídeo; simplemente administra la ventana de vídeo.
La conexión de pin usa la interfazIOverlay en lugar de la interfaz IMemInputPin. Video Renderer pasa su identificador de ventana a través del mezclador de superposición a DirectDraw, que administra el recorte del rectángulo. Las aplicaciones pueden controlar Video Renderer a través de las interfaces de IVideoWindow y IBasicVideo2 en el Administrador de gráficos de filtros.
modo exclusivo DirectDraw
El modo exclusivo DirectDraw de Overlay Mixer permite a los juegos mostrar vídeo en alguna parte de la pantalla. En este modo, el mezclador de superposición representa el vídeo directamente en una superficie de DirectDraw creada por la aplicación del juego, en lugar de en una ventana proporcionada por video Renderer. Esto permite a los juegos controlar la tecla de color. El mezclador de superposición expone solo un pin de entrada en modo exclusivo directDraw, lo que significa que no se puede realizar ninguna combinación de subpictura de línea 21 o DVD en este modo.
Para usar el mezclador de superposición en modo exclusivo directDraw, cree una instancia del mezclador de superposición y vísela para la interfaz iddrawExclModeVideo antes de compilar el gráfico de filtros. A continuación, llame a IDDrawExclModeVideo::SetDDrawSurface para especificar la superficie de DirectDraw para la representación. Una limitación significativa de este modo es que el juego no obtiene acceso a los bits de vídeo reales. Si usa IDDrawExclModeVideo, la aplicación crea la superficie principal y el mezclador de superposición crea la superficie de superposición.
También puede usar el modo exclusivo DirectDraw para realizar la representación sin ventanas(por ejemplo, en una página web), pero esto no se recomienda, ya que el mezclador de superposición no realiza ninguna combinación en este modo. Esto significa que no se pueden mostrar datos de línea 21 o subpicture.
Temas relacionados