Compartilhar via


Filtro do Mixer de Sobreposição

[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 filtro Do Mixer de Sobreposição é um renderizador de vídeo projetado especificamente para reprodução de DVD e transmissão de fluxos de vídeo com legendas fechadas de linha 21. O Mixer de Sobreposição também dá suporte a VPEs (Extensões de Porta de Vídeo), permitindo que ele funcione com decodificadores MPEG-2 de hardware ou sintonizadores de TV analógicos que enviam vídeo diretamente para a placa gráfica, em vez de sobre o barramento PCI.

Nota

O Renderizador de Combinação de Vídeo 9 agora é preferencial em vez do filtro do Mixer de Sobreposição, exceto em cenários de VPE.

 

O Mixer de Sobreposição usa DirectDraw para renderização. Ele requer uma superfície de sobreposição na placa gráfica. O fluxo de vídeo primário deve ser conectado ao pino 0. Fluxos secundários (elementos gráficos de legenda fechada ou subpicturas de DVD) são conectados a pinos 1 e superiores. O Mixer de Sobreposição corta os fluxos secundários diretamente no suface primário; ele não os mistura ou os mistura alfa.

O Mixer de Sobreposição usa o Renderizador de Vídeo para gerenciamento de janelas. O Renderizador de Vídeo conecta-se ao pino de saída do Mixer de Sobreposição.

Esse filtro é adicionado ao grafo de filtro automaticamente quando os aplicativos usam as interfaces IDvdGraphBuilder e ICaptureGraphBuilder2 para criar o grafo. O Gerenciador de Grafo de Filtro não adicionará automaticamente o Mixer de Sobreposição ao grafo.

Nota

Na tabela a seguir, os subtipos de mídia aceitos no pino de entrada 0 dependem do hardware. O Mixer de Sobreposição não pode determinar se um subtipo específico tem suporte até criar a superfície directDraw. Portanto, a única maneira de um filtro upstream determinar se há suporte para um subtipo é tentar uma conexão com esse subtipo.

 

Etiqueta Valor
Interfaces de filtro IAMOverlayFX, IAMVideoDecimationProperties, IBaseFilter, IDDrawExclModeVideo, IKsPropertySetIMediaPosition, IMediaSeeking, IMixerOCX, IQualProp, IVPNotify, IVPNotify2
Tipos de mídia de pino de entrada Tipo principal: MEDIATYPE_Video
Subtipos:
  • MEDIASUBTYPE_Overlay (fixar somente 0)
  • Formatos DE YUV do DirectDraw (somente fixar 0)
  • Formatos de Aceleração de Vídeo do DirectDraw (somente fixar 0)
  • Formatos RGB do DirectDraw (todos os pinos de entrada)
Tipos de formato:
  • Format_VIDEOINFO
  • Format_VIDEOINFO2
Interfaces de pin de entrada IAMVideoAccelerator, IKsPin, IKsPropertySet, IMemInputPin, IMixerPinConfig, Ide IOverlay(somente pin 0), IPin, IPinConnection, IQualityControl, IVPNotify, IVPNotify2
Tipos de mídia de pino de saída MEDIATYPE_Video, MEDIASUBTYPE_Overlay
Interfaces de pino de saída IMediaPosition, IMediaSeeking, IPin, IQualityControl
Filtrar CLSID CLSID_OverlayMixer
CLSID da página de propriedades Nenhuma página de propriedades.
Executável qdvd.dll
de Mérito MERIT_DO_NOT_USE
de categoria de filtro de CLSID_LegacyAmFilterCategory

 

Observações

O Mixer de Sobreposição usa a chave de cores de destino para misturar superfícies de vídeo com sobreposições. Ele corta a chave de cor e o vídeo secundário para a superfície primária e envia o vídeo primário para a superfície de sobreposição. A placa gráfica, em seguida, compõe as duas superfícies em seu buffer de quadros.

Para testar se o driver gráfico dá suporte à sobreposição de hardware, chame IDirectDraw7::GetCaps. Se o dwMaxVisibleOverlays campo na estrutura de DDCAPS for maior que zero, o driver dará suporte à sobreposição de hardware.

Os aplicativos podem controlar alguns comportamentos no Mixer de Sobreposição por meio da interfaceIMixerPinConfig2. Os desenvolvedores de jogos podem usar o Mixer de Sobreposição para exibir vídeo no Modo Exclusivo do DirectDraw, conforme descrito mais adiante nesta seção. No entanto, o VMR- 9 (Filtro do Renderizador de Combinação de Vídeo) 9 (VMR-9) oferece melhor suporte para vídeos em jogos. Para obter mais informações, consulte Usando o renderizador de combinação de vídeo.

As informações a seguir são fornecidas para o benefício de desenvolvedores de filtro e desenvolvedores de jogos que desejam usar o Mixer de Sobreposição no Modo Exclusivo DirectDraw.

de Operações Internas do Mixer de Sobreposição

O Mixer de Sobreposição expõe um pino de entrada para cada fluxo de entrada. Normalmente, há três pinos de entrada: fixar 0 para dados de vídeo e fixar 1 e 2 para dados de subpictura de DVD e linha 21. Internamente, o Mixer de Sobreposição cria um objeto DirectDraw com uma superfície primária que compreende toda a área de trabalho, além de uma superfície de sobreposição cujo retângulo é definido pelo tamanho do fluxo de vídeo no Pin 0. Se o decodificador não especificar uma chave de cor, o Mixer de Sobreposição usará as chaves de cores padrão: cinza escuro para cartões gráficos mais recentes e magenta para cartões de 256 cores mais antigos.

Nota

Os resultados serão indefinidos se o decodificador fornecer dois fluxos de vídeo secundários simultaneamente no mesmo lugar na superfície de sobreposição. (Às vezes, isso ocorre com DVDs que contêm subpictura e fluxos de linha 21.) O vídeo pode piscar ou exibir apenas um dos fluxos.

 

No Windows Vista ou posterior, o Mixer de Sobreposição desabilita a composição do DWM (Gerenciador de Janelas da Área de Trabalho) se o driver de exibição der suporte à sobreposição de hardware. Os aplicativos devem evitar o uso do filtro do Mixer de Sobreposição; use a VMR-9 ou o EVR (Renderizador de Vídeo Avançado).

conexão upstream com o decodificador de vídeo

Normalmente, os pinos de entrada do Mixer de Sobreposição se conectam a um decodificador de vídeo upstream. O fluxo de vídeo primário deve se conectar ao pino 0. Os fluxos de linha 21 ou subpictura se conectam ao pino 1 ou superior. Se o decodificador for um decodificador de software que usa exclusivamente a CPU do host, a conexão entre o decodificador e o Pin 0 será uma conexão IMemInputPin. Se o decodificador usar aceleração de hardware, a conexão com o Pin 0 deverá usar a inferência IAMVideoAccelerator. Esses dois tipos de conexões são mutuamente exclusivos.

Se o decodificador se desenhar diretamente na superfície de sobreposição, ele deverá usar a interfaceIOverlayno pino 0 e implementar a interface deIOverlayNotify.

Os filtros que encapsulam um decodificador de hardware e se conectam ao Mixer de Sobreposição por meio de uma porta de vídeo devem implementar a interface IVPConfig. O Mixer de Sobreposição implementa a interface IVPNotify. Essas duas interfaces permitem que o decodificador especifique as superfícies de sobreposição necessárias e permitem que o Mixer de Sobreposição informe o decodificador do local dessas superfícies na memória de vídeo.

O Mixer de Sobreposição também garante que o retângulo de vídeo seja dimensionado corretamente. A captura de vídeo envolve determinados problemas em relação ao dimensionamento da imagem de visualização e à captura de quadros de vídeo intercalados. Se você estiver desenvolvendo um filtro ou driver WDM para um dispositivo de captura de vídeo de hardware, consulte oIVPConfige páginas de referência do IVPNotify para obter mais informações sobre esses tópicos.

O Mixer de Sobreposição não é usado em cenários de captura de USB ou 1394. Ele é usado na captura de vídeo no barramento PCI.

conexão downstream com o renderizador de vídeo

O Mixer de Sobreposição tem um pino de saída que se conecta ao filtro do Renderizador de Vídeo. O Renderizador de Vídeo, nesse caso, não renderiza o vídeo; ele simplesmente gerencia a janela de vídeo.

A conexão de pino usa a interface deIOverlayem vez da interfaceIMemInputPin. O Renderizador de Vídeo passa o identificador de janela por meio do Mixer de Sobreposição para DirectDraw, que gerencia o recorte de retângulo. Os aplicativos podem controlar o Renderizador de Vídeo por meio das interfacesIVideoWindow eIBasicVideo2 no Gerenciador de Grafo de Filtro.

de Modo Exclusivo do DirectDraw

O modo exclusivo DirectDraw do Mixer de Sobreposição permite que os jogos exibam vídeo em alguma parte da tela. Nesse modo, o Mixer de Sobreposição renderiza o vídeo diretamente para uma superfície DirectDraw criada pelo aplicativo do jogo, em vez de para uma janela fornecida pelo Renderizador de Vídeo. Isso permite que os jogos controlem a chave de cores. O Mixer de Sobreposição expõe apenas um pino de entrada no modo exclusivo DirectDraw, o que significa que nenhuma mistura de subpictura de Linha 21 ou DVD pode ser executada nesse modo.

Para usar o Mixer de Sobreposição no modo exclusivo DirectDraw, crie uma instância do Mixer de Sobreposição e consulte-a para a interface deIDDrawExclModeVideoantes de criar o grafo de filtro. Em seguida, chame IDDrawExclModeVideo::SetDDrawSurface para especificar a superfície DirectDraw para renderização. Uma limitação significativa desse modo é que o jogo não obtém acesso aos bits de vídeo reais. Se você usar IDDrawExclModeVideo, seu aplicativo criará a superfície primária e o Mixer de Sobreposição criará a superfície de sobreposição.

Você também pode usar o modo exclusivo DirectDraw para executar a renderização sem janelas, por exemplo, em uma página da Web, mas isso não é recomendado, pois o Mixer de Sobreposição não executa nenhuma combinação nesse modo. Isso significa que nenhum dado de linha 21 ou subpictura pode ser exibido.

de Filtros do DirectShow