Compartir a través de


Uso del filtro DirectShow EVR

[El componente descrito en esta página, Enhanced Video Renderer es una característica heredada. Se ha reemplazado por Simple Video Renderer (SVR) que se expone mediante los componentes MediaPlayer y IMFMediaEngine. Para reproducir contenido de vídeo, debe enviar datos a uno de estos componentes y permitirles crear instancias del nuevo representador de vídeo. Estos componentes se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer o las API IMFMediaEngine de nivel inferior para reproducir elementos multimedia de vídeo en Windows en lugar de EVR, 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].

Para crear el filtro de representador de vídeo mejorado (EVR), llame a CoCreateInstance. ClSID es CLSID_EnhancedVideoRenderer, definido en uuids.h. No es necesario llamar a MFStartup o MFShutdownpara usar el filtro EVR.

Para obtener más información sobre el uso del filtro EVR en una aplicación DirectShow, consulte Reproducción de audio y vídeo en DirectShow.

El filtro EVR comienza con un pin de entrada, que corresponde a la secuencia de referencia. Para agregar patillas para substreams, consulte el filtro de la interfaz IEVRFilterConfig y llame a IEVRFilterConfig::SetNumberOfStreams. Llame a este método antes de conectar los patillas de entrada. El pin 0 es siempre la secuencia de referencia. Conecte esta ancla antes que cualquier otra, ya que el formato de la secuencia de referencia puede limitar los formatos de subcorriente disponibles.

Antes de iniciar el gráfico, establezca la ventana de recorte de vídeo y el rectángulo de destino. Para obtener más información, vea Usar los controlesde visualización de vídeo.

A diferencia del representador de mezcla de vídeos (VMR), el EVR no tiene modos operativos (ventanas, sin ventanas, etc.). En concreto:

  • El EVR no admite el modo de ventana. La aplicación debe proporcionar la ventana de recorte.
  • El EVR no tiene un modo sin representación. Para reemplazar el moderador predeterminado, llame a IMFVideoRenderer::InitializeRenderer.
  • El EVR no tiene un modo de mezcla. El EVR siempre crea el mezclador. Si tiene un flujo de entrada, no es necesario llamar a SetNumberOfStreams para forzar al EVR a usar el mezclador.

Interfaces de filtro

El filtro EVR expone las interfaces siguientes. Algunas de estas interfaces se documentan en el SDK de DirectShow. Use QueryInterface para recuperar punteros a estas interfaces:

Interfaces de ancla de entrada

Las anclas de entrada del filtro EVR exponen las interfaces siguientes. Use QueryInterface para recuperar punteros a estas interfaces:

Además, puede usar la interfaz IMFGetService para recuperar la siguiente interfaz:

Reproducción de audio y vídeo en DirectShow

Representador de vídeo mejorado