Modo de video multipantalla
Los reproductores BrightSign XC2055, XC4055 y XT2145 tienen múltiples salidas de video independientes. Esta página describe cómo configurar estas salidas con las APIs de BrightSign.
APIs relevantes
Para múltiples salidas, la API relevante es roVideoMode SetScreenModes y la correspondiente GetScreenModes (para reproductores con una sola salida, la API principal es roVideoMode SetMode).
GetScreenModes devuelve un roArray de roAssociativeArray que describen cada salida disponible en la plataforma y cómo están configuradas. Los miembros del roAssociativeArray son:
- nombre: En la plataforma XC, los valores posibles son HDMI-1, HDMI-2, HDMI-3, o HDMI-4. El número de elementos del array depende del número de salidas:
- El XC2055 tiene dos salidas, HDMI-1 y HDMI-2
- El XC4055 tiene cuatro salidas, HDMI-1, HDMI-2, HDMI-3 y HDMI-4
- El nombre indica al sistema qué salida está asociada con el resto de la configuración en esa entrada dentro del roAssociativeArray (el orden de las salidas HDMI no es importante).
- video_mode: El videomode puede ser
- Un videomode de formato BrightSign conocido (por ejemplo, 1920x1080x60p)
- Un modeline completo como se describe aquí.
- auto que difiere ligeramente de las plataformas anteriores. auto no se recomienda al usar múltiples salidas porque las posiciones del canvas son fijas y, si una pantalla usa una resolución inesperada, no se posicionará correctamente en el canvas.
- display_x y display_y: La posición de la pantalla dentro del canvas general. El origen 0,0 es la esquina superior izquierda y cada pantalla puede posicionarse de forma relativa a este. Esto permite compensar los biseles, ya que se pueden dejar espacios en el canvas entre pantallas.
- transformar: normal, 90, 180 o 270. Cada pantalla puede rotarse independientemente. Cuando una pantalla se rota, rota todo el contenido, incluido el video. Si una sola pantalla está configurada en 1920x1080x60p y 90 entonces la pantalla se ejecuta en modo vertical y todo el firmware se ejecutará como si la pantalla estuviera configurada en 1080x1920x60p con el video y los gráficos rotados.
- habilitado: Si la pantalla está habilitada para salida. Para desactivar una salida, establezca habilitado = falso. No es necesario establecer otros campos.
Si no desea cambiar la configuración existente de la pantalla, no introduzca un valor para esas configuraciones.
Las velocidades de fotogramas en todas las pantallas deben coincidir exactamente para garantizar una sincronización precisa.
Plugins de Videomode
Los plugins de videomode le permiten establecer modos de video personalizados para múltiples pantallas. Esta función se ha actualizado para admitir múltiples pantallas en BrightSign Author versión 1.13.0 y posteriores, y BrightAuthor Classic versión 5.0.1.1 y posteriores. Debe hacer coincidir el modo gráfico que establezca al crear la presentación. Consulte aquí para obtener más información.
Ejemplo
SetScreenModes toma el argumento que GetScreenModes devuelve. Para configurar un muro de video 1x2 con compensación de bisel:
vm=CreateObject("roVideoMode")
sm = vm.GetScreenModes()
sm[0].video_mode="1920x1080x60p"
sm[0].transform = "normal"
sm[0].display_x=0
sm[0].display_y=0
sm[0].enabled=true
sm[1].video_mode="1920x1080x60p"
sm[1].transform = "normal"
sm[1].display_x=0
sm[1].display_y=1100 ' Bezel compensation of 20 pixels
sm[1].enabled=true
sm[2].enabled=false
sm[3].enabled=false
vm.SetScreenModes(sm)En este caso, el canvas resultante será 1920x2180 y el video y los gráficos en pantalla completa se mostrarán en todo el canvas.
Si una pantalla está habilitada, pero no está conectada, entonces se utiliza el tamaño correcto para la pantalla faltante para que el tamaño y la forma del lienzo permanezcan constantes. Obviamente, esto no es posible con el modo auto ya que el tamaño de la pantalla es desconocido y, por lo tanto, nuevamente se desaconseja el uso del modo auto con múltiples salidas.
Tenga en cuenta que si un script llama a SetMode en un reproductor capaz de múltiples salidas de pantalla, entonces efectivamente llama a SetScreenModes con solo la primera pantalla habilitada y una transformación de normal.
Para depuración interna, la entrada del registro .bs/vms es donde se almacena la configuración de la pantalla como una cadena JSON. Para el ejemplo anterior, se ve así:
{"HDMI-1":{"mode":"1920x1080x60p","transform":"normal","x":0,"y":0},"HDMI-2":{"mode":"1920x1080x60p","transform":"normal","x":0,"y":1100}}Eso se convierte en un archivo de inicialización que se almacena en memoria. Actualmente, ese formato se ve así:
[core]
require-input=false
idle-time=0
[shell]
panel-location=""
panel-position=none
background-color=0xff000000
animation=none
close-animation=none
[output]
name=HDMI-A-1
mode=148.5 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
force-on=true
transform=normal
x_position=0
y_position=0
[output]
name=HDMI-A-2
mode=148.5 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
force-on=true
transform=normal
x_position=0
y_position=1100
[output]
name=HDMI-A-3
mode=off
force-on=false
transform=normal
x_position=0
y_position=0
[output]
name=HDMI-A-4
mode=off
force-on=false
transform=normal
x_position=0
y_position=0Tenga en cuenta que el modo de estilo BrightSign se pasa a nuestro compositor como una modeline completa.