Compartir a través de


Modo de ventana de VMR (compatibilidad)

[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.

VmR está diseñado para ser compatible con todas las aplicaciones directShow existentes. Cuando se usa con una aplicación existente, VMR funciona en modo de ventana con una sola secuencia de vídeo, también denominada modo de compatibilidad. Este modo se proporciona porque VMR-7 es el representador predeterminado en Windows XP y, por tanto, se usa automáticamente en llamadas a métodos intelligent Connect como IGraphBuilder::RenderFile. Si la aplicación usa Intelligent Connect y solo requiere funcionalidades de representación básicas, no necesita ningún código especial para representarse correctamente con VMR-7 en Windows XP.

VmR-9 también se ejecuta en modo de ventana o compatibilidad de forma predeterminada. Sin embargo, VMR-9 nunca es el representador de vídeo predeterminado. Para usar VMR-9 en una aplicación, debe agregarlo explícitamente al gráfico de filtro. Por ese motivo, y como el modo sin ventana proporciona una mejor funcionalidad que el modo de ventana, no hay ninguna ventaja particular de usar VMR-9 en modo de ventana/compatibilidad.

Uso de VMR-7 en modo de ventana/compatibilidad

No se requiere ninguna programación especial para configurar o controlar VMR-7 en modo de ventana/compatibilidad. Basta con compilar el gráfico de filtros mediante las llamadas estándar de creación de grafos y VMR-7 tendrá como valor predeterminado este modo.

En el modo de compatibilidad o ventana, VMR-7 crea su propia ventana para mostrar el vídeo. Para ello, carga el componente Administrador de ventanas, que expone las interfaces IVideoWindow e IBasicVideo . La aplicación puede consultar el Administrador de gráficos de filtros para estas interfaces, exactamente igual que lo haría con el filtro antiguo de Video Renderer. Para obtener más información, vea Uso del modo con ventanas.

En la ilustración siguiente se muestra VMR-7 en modo de compatibilidad o ventana.

vmr en modo de compatibilidad

Para garantizar el nivel máximo de compatibilidad, la ventana de vídeo tiene el mismo nombre de clase que el creado por el filtro antiguo de Video Renderer y la mayoría del código del administrador de ventanas del representador de vídeo antiguo sigue siendo utilizado por vmr. En el modo de compatibilidad o ventana, VMR no consume más recursos del sistema que el representador de vídeo antiguo. Puesto que VMR-7 solo tiene un flujo de entrada en modo de ventana/compatibilidad, no carga sus componentes mezcladores o compositores.

De forma predeterminada, VMR amplía la imagen para rellenar la ventana de vídeo. Para conservar la relación de aspecto del origen, llame al método IVMRAspectRatioControl::SetAspectRatioMode con la marca VMR_ARMODE_LETTER_BOX.

Nota:

Las aplicaciones MFC que colocan la ventana de vídeo en una ventana secundaria deben definir un controlador de mensajes WM_ERASEBKGND vacío o el área de visualización de vídeo no se volverá a pintar correctamente.

 

Uso de VMR-7 en modo de compatibilidad o ventana con varias secuencias

En el modo de compatibilidad o ventana, VMR-7 crea un único pin de entrada de forma predeterminada y deshabilita el modo de mezcla. Para habilitar el modo de combinación, debe configurar el VMR antes de conectarlo. Para obtener más información, consulte VMR with Multiple Streams (Mixing Mode). En el modo de mezcla, VMR carga los componentes de mezcla y compositor, que requieren más recursos del sistema.

Uso de VMR-9 en modo de ventana

Dado que VMR-9 no es el representador predeterminado, no tiene un modo de compatibilidad como tal. En su lugar, el valor predeterminado de VMR-9 es el modo con ventanas con cuatro patillas de entrada. Puede usar este modo para mezclar hasta cuatro secuencias de vídeo. Si necesita mezclar un mayor número de secuencias, debe configurarla como se describe en VMR con varias secuencias (modo de mezcla). De lo contrario, VMR-9 en modo de ventana se comporta exactamente igual que VMR-7 en modo de compatibilidad o ventana.