Compartir a través de


Modo con ventana VMR (compatibilidad)

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

VMR está diseñado para ser compatible con todas las aplicaciones de DirectShow existentes. Cuando se usa con una aplicación existente, VMR funciona en modo con ventanas con una única 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 de Intelligent Connect como IGraphBuilder::RenderFile. Si la aplicación usa Intelligent Connect y solo requiere funcionalidades básicas de representación, 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 filtros. Por ese motivo, y dado que 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 o compatibilidad. Simplemente compile 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 modo de ventana/compatibilidad, VMR-7 crea su propia ventana para mostrar el vídeo. Para ello, carga el componente Administrador de ventanas, que expone las interfaces de IVideoWindow y 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 Using Windowed Mode.

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

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 de Video Renderer antiguo y la mayoría del código del Administrador de ventanas del representador de vídeo antiguo sigue siendo utilizado por vmr. En modo de ventana/compatibilidad, VMR no consume más recursos del sistema que el antiguo Representador de vídeo. 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.

 

usar VMR-7 en modo de ventana/compatibilidad con varias secuencias

En modo de ventana/compatibilidad, 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 VMR antes de conectarlo. Para obtener más información, consulte VMR con varias secuencias (modo de mezcla). En el modo de mezcla, VMR carga los componentes de mezcla y compositor, que requieren más recursos del sistema.

Usar VMR-9 en modo ventana

Dado que VMR-9 no es el representador predeterminado, no tiene un modo de compatibilidad como tal. En su lugar, vmR-9 tiene como valor predeterminado 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 flujos, debe configurarlo como se describe en VMR con varios flujos (modo de mezcla). De lo contrario, VMR-9 en modo de ventana se comporta exactamente igual que VMR-7 en modo de ventana/compatibilidad.