---
title: roVideoMode
slug: develop/es/rovideomode
docTags: 
createdAt: 2025-03-11T07:07:18.733Z
---

Este objeto le permite configurar la resolución y otros ajustes de salida de video. La misma resolución de video se aplica a todas las salidas de video en un reproductor BrightSign. El video o las imágenes que posteriormente se decodifiquen y muestren se escalarán (mediante el escalador de hardware) a esta resolución de salida si es necesario. El equivalente en JavaScript es [videomodeconfiguration](docId\:ctnlTBmJ0-cs5tbIiYOTf) (consulte la sección "roVideoMode" de la [Guía de migración de BrightScript a JavaScript](docId\:imtBD2LffaORoXierGC2a) para conocer los métodos equivalentes).

Creación del objeto: El objeto *roVideoMode&#x20;*&#x73;e crea sin parámetros.

:::BlockQuote
CreateObject("roVideoMode")
:::

El objeto *roVideoMode&#x20;*&#x67;enera objetos de evento *roHdmiInputChanged&#x20;*&#x79; *roHdmiOutputChanged&#x20;*&#x63;ada vez que cambia el estado de conexión en caliente de la entrada o salida HDMI®. El sistema generará un evento *roHdmiEdidChanged&#x20;*&#x63;uando se conecte en caliente un cable HDMI y cambie la información EDID.

# ifVideoMode

### GetScreenModes()

Devuelve un roArray que contiene un roAssociativeArray que describe cada salida disponible en el hardware de su reproductor y cómo están configuradas esas salidas. Este método se implementó a partir de BOS 9.0.15.

Al llamar a `GetScreenModes()`, confirme que las posiciones del arreglo HDMI sean válidas para que no use accidentalmente un arreglo indefinido. Por ejemplo, si llama a `GetScreenModes()` en un reproductor de cuatro salidas que solo tiene una pantalla conectada, no obtendrá un retorno válido en las otras salidas.

Los miembros son:&#x20;

- `nombre`: En la plataforma XC, los valores posibles son HDMI-1, HDMI-2, HDMI-3 o HDMI-4.  La cantidad de elementos del arreglo depende de la cantidad 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 los ajustes en esa entrada dentro del roAssociativeArray (el orden de las salidas HDMI no es importante).
- `modo_video`: El videomode puede ser:
  - Un videomode de formato BrightSign conocido (por ejemplo, *1920x1080x60p)*
  - Un modeline completo como se describe en [Apply a Custom Resolution](docId:58VplQM4sGH_VgqVs4Frs)&#x20;
  - *auto&#x20;*&#x71;ue difiere ligeramente de plataformas anteriores. *auto* no se recomienda cuando se usan múltiples salidas porque las posiciones del lienzo son fijas y, si una pantalla utiliza una resolución inesperada, no se posicionará correctamente en el lienzo.
- `display_x` y `display_y`: La posición de la pantalla dentro del lienzo general. El origen (0,0) es la esquina superior izquierda y cada pantalla puede posicionarse en relación con él. Esto permite dejar espacios en el lienzo entre pantallas para la compensación del bisel.
- `transformar`: Una de las rotaciones normal, 90, 180 o 270. Cada pantalla puede rotarse de forma independiente. 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 todo el video y los gráficos rotados.
- `habilitado`: Indica si la pantalla está habilitada para salida. Para desactivar una salida, configure `habilitado = false`. No es necesario configurar ningún otro campo.

Si no desea cambiar la configuración existente de la pantalla, no introduzca un valor para esos ajustes.

### SetScreenModes (ScreenConfigList configs)

Toma el mismo formato como argumento que devuelve `GetScreenModes()`. De forma predeterminada, una sola pantalla está habilitada. El reproductor utiliza gráficos de resolución completa si cualquiera de los videomodes configurados mediante `SetScreenModes` usa el modificador `:fullres`. BrightSign Author siempre configura `:fullres` en todos los videomodes para el XC5. Consulte [roVideoMode](docId\:f0DvNrbDpvGOzlRVB29gd) para comprender cómo funcionan las coordenadas de pantalla x/y con la resolución de salida.

:::hint{type="info"}
Llamar a `SetScreenModes()` para cambiar la configuración HDMI de la pantalla hará que el reproductor se reinicie cuando realice ese cambio.
:::

Este método se implementó a partir de BOS 9.0 y versiones posteriores.

Para configurar dos pantallas, introduzca:

:::BlockQuote
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=1080
sm\[1].enabled = true

vm.SetScreenModes(sm)
:::

Para configurar un video wall 1x2 con compensación de bisel, introduzca:

:::BlockQuote
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    ' Compensación de bisel de 20 píxeles
sm\[1].enabled=true

sm\[2].enabled=false
sm\[3].enabled=false

vm.SetScreenModes(sm)
:::

En este caso, el lienzo resultante será de 1920x2180, y el video y los gráficos de pantalla completa se mostrarán en todas las salidas.

:::hint{type="info"}
Para calcular el tamaño del bisel de una pantalla en píxeles a partir de milímetros, debe multiplicar el ancho/alto de la pantalla en píxeles por el tamaño del bisel en milímetros y luego dividirlo por el ancho/alto de la pantalla en milímetros. Puede agregar esta área de bisel al ancho y alto del wall para obtener la resolución total ajustada al bisel.
:::

### GetPerformanceMetrics

Este método devuelve los valores de GPU medidos más recientes, máximos y promedio.

### SetMode(mode As String) As Boolean

Establece el modo de salida de video. Consulte [esta página](docId\:QpML112mBhEK7LBDGUxnv) para obtener una lista de los modos de video compatibles. Este método también acepta ["auto"](docId\:f0DvNrbDpvGOzlRVB29gd) como parámetro de modo, o "custom", que utilizará el modo configurado mediante SetCustomModeline.&#x20;

E<font color="#0C121D">l valor booleano </font><font color="#0C121D">puede devolver </font>`verdadero` o `falso`<font color="#0C121D">, o no devolver el control al llamador de BrightScript en absoluto</font>. Cuando se requiere un cambio de modo real (por ejemplo: 640x480x60p -> 1920x1080x60p), se producirá un reinicio de la aplicación en los reproductores Series 5 o 6, y un reinicio completo en los reproductores Series 3 o 4. Los cambios en la frecuencia de actualización (por ejemplo, 1920x1080x30p -> 1920x1080x60p) provocan un reinicio de la aplicación en los reproductores Series 5 y 6, pero no en los reproductores Series 3 y 4, donde no se produce ningún reinicio de la aplicación ni del reproductor si el cambio de modo se limita únicamente a cambiar la frecuencia de actualización.&#x20;

- SetMode devuelve `falso` y el control vuelve al llamador de BrightScript para realizar cualquier acción necesaria en los siguientes escenarios:
  - Se pasa una cadena de modo no válida/no compatible (por ejemplo, un nombre de modo malformado)
  - Se solicita un modo que no es compatible con las restricciones del reproductor/salida actuales
  - Se utiliza una opción de modo que requiere una configuración no disponible (por ejemplo, `personalizado` sin una temporización personalizada válida configurada)
- SetMode devuelve `verdadero` si no se realiza ninguna acción porque el modo ya está configurado en el modo solicitado. Si el script establece el modo en la misma cadena devuelta por `GetMode()`, la llamada volverá al script e imprimirá el resultado. El siguiente bloque de código es un ejemplo que provocará el reinicio de la aplicación:

:::CodeblockTabs{indent="1"}
```none
Sub Main()
	videoMode = CreateObject("roVideoMode")
	currentMode = videoMode.GetMode()
	print "current mode: "; currentMode
	print "setting mode to current mode: "; currentMode
	result = videoMode.SetMode(currentMode)
	print "SetMode returned: "; result
End Sub
```
:::

- Si el modo es un cambio de modo genuino, la aplicación BrightSign se detendrá, el modo de video cambiará y la aplicación se reiniciará. El control no llegará a la línea `print "SetMode returned: "; result`. &#x20;

Los siguientes parámetros opcionales pueden añadirse a la cadena:

- `<resolution>:<color_space>:<depth>bit`: Establece el [perfil de video](docId\:iqN3Si7i3oTm20ccgRPoX) para la salida HDMI. BrightSign admite los siguientes modificadores de espacio de color:
  - 420 (4:2:0 YUV)
  - 422 (4:2:2 YUV, solo para 12 bits y solo para modos 4K)
  - 444 (4:4:4 YUV)
  - rgb (RGB, siempre implícitamente 4:4:4)
  - Por ejemplo, para generar 4Kp60 en el espacio de color 420 (4:2:0 YUV) con una profundidad de 10 bits, pasaría la siguiente cadena: `"3840x2160x60p:420:10bit"`
- `<resolution>:preferred`: Habilita la configuración del modo de video preferido. Esto indica al reproductor que solo use el modo de video si el EDID de la pantalla indica que es compatible. De lo contrario, la salida usará de forma predeterminada el modo "auto". Si no se detecta ningún EDID durante el arranque, el reproductor emitirá el modo de video preferido. Si posteriormente ocurre un evento de hotplug HDMI, el reproductor realizará nuevamente la comprobación del modo de video preferido. La marca `:preferred` actualmente ignora la configuración del perfil de video (es decir, el espacio de color y la profundidad de bits).
- `<resolution>:fullres`: Habilita gráficos de resolución completa. Esto indica al reproductor que haga coincidir el plano gráfico con el modo de video; de lo contrario, los modos de video superiores a 1920x1200 escalarán el plano gráfico para que coincida con la salida de video. Consulte [Full-Resolution Graphics](docId\:TJNw230KCx6i9tNihfCvD) para obtener más detalles y una lista de modos/modelos compatibles. Si el modo `fullres` se usa con aplicaciones HTML que requieren un uso intensivo de gráficos, recomendamos habilitar también la configuración `gfxmemlarge`.
- `<resolution>:gfxmemlarge`: Habilita la configuración de memoria gráfica grande para los modelos XTx44 y XTx43 (a expensas de la memoria de propósito general). Esta configuración requiere un reinicio para surtir efecto.
- `<resolution>:gfxmemdefault`: Restablece la configuración de memoria gráfica a los valores predeterminados. Esta configuración requiere un reinicio para surtir efecto.
- `<resolution>:dbv`: Habilita Dolby Vision en la salida de video (solo XTx44). Solo hay un decodificador de video disponible cuando Dolby Vision está habilitado.
- `<resolución>:rgb:<rango>`: Establece el espacio de color en RGB. El parámetro opcional `<rango>` puede ser uno de los siguientes valores:
  - `auto`: La configuración predeterminada. A través de HDMI, el reproductor emitirá RGB Full para modos VESA y RGB Limited para modos TV. A través de DVI, el reproductor emitirá RGB Full para todos los modos.
  - `fullrange`: La configuración RGB Full (0-255)
  - `limitedrange`: La configuración RGB Limited (16-235)/

:::hint{type="info"}
El hardware BrightSign tiene un filtro de paso bajo antialiasing de video que se configura automáticamente.
:::

### SetCustomModeline(roString modeline) As roBool

Configura el modo de video personalizado con el modeline proporcionado (consulte [Apply a Custom Resolution](docId:58VplQM4sGH_VgqVs4Frs)). El modo de video personalizado puede seleccionarse luego usando SetMode.

### GetModeForNextBoot() As String

Devuelve el modo de video de destino del dispositivo la próxima vez que se reinicie. El valor devuelto se especifica con el método `SetModeForNextBoot()`.

### SetModeForNextBoot(mode as String)

Establece el modo de video de destino del reproductor, que surtirá efecto la próxima vez que el reproductor se reinicie.&#x20;

### GetBestMode(connector As String) As String

Devuelve el [modo de video](docId\:QpML112mBhEK7LBDGUxnv) más alto para este reproductor que la pantalla puede admitir mediante EDID. El conector de video puede especificarse como `"hdmi"` o `"vga"` (estos valores distinguen entre mayúsculas y minúsculas). Si la pantalla no devuelve un valor de resolución mediante EDID (o si no hay ninguna pantalla conectada), este método devuelve una cadena vacía.

### GetMode() As String

Devuelve el modo de video actual del dispositivo, que se especifica usando el método `SetMode()` .

### GetFailureReason() As String

Devuelve información adicional cuando una función miembro devuelve `falso`.

### GetAvailableModes() As Array 

Devuelve todos los modos de video admitidos por el reproductor como una matriz de entradas. Cada entrada es una matriz asociativa con los siguientes valores:

:::hint{type="info"}
En los modos 4K, el plano gráfico puede ser más pequeño que el plano y la salida de video. En estos casos, el plano gráfico debe coincidir con el plano/salida de video.
:::

- `videomodo` <font color="#704ae0">string</font>: Una descripción del modo de video (puede encontrar una lista completa de modos en [esta página](docId\:QpML112mBhEK7LBDGUxnv))
- `ancho` <font color="#704ae0">int</font>: El ancho de la salida de video
- `altura` <font color="#704ae0">int</font>: La altura de la salida de video
- `graphicsPlaneWidth` <font color="#704ae0">int</font>: El ancho del plano gráfico 
- `graphicsPlaneHeight` <font color="#704ae0">int</font>: La altura del plano gráfico
- `velocidad de fotogramas` <font color="#704ae0">int</font>: La velocidad de fotogramas de la salida de video
- `entrelazado` <font color="#704ae0">boolean</font>: Un indicador que señala si la salida de video es entrelazada (`verdadero`) o progresiva (`falso`)
- `sobreescaneo` <font color="#704ae0">boolean</font>: Un indicador que señala si la salida de video está usando una configuración de overscan o no
- `espacio de color` <font color="#704ae0">string</font>: El espacio de color de la señal de video ("rgb", "yuv420" o "yuv422")
- `profundidad del color` <font color="#704ae0">string</font>: La profundidad de color de la señal de video ("8bit", "10bit" o "12bit")
- `dropframe` <font color="#704ae0">boolean</font>: Un indicador que señala si el código de tiempo del video utiliza drop frames 
- `preferido` <font color="#704ae0">boolean</font>: Un indicador que señala si el modo de video es el modo preferido, que se configura mediante el método `SetMode()` 

### GetActiveMode() As AssociativeArray

Devuelve información sobre el modo de video actual como un arreglo asociativo:

- `videomodo` <font color="#704ae0">string</font>: El modo de video actual (por ejemplo, "3840x2160x60p")
- `profundidad del color` <font color="#704ae0">string</font>: La profundidad de color actual ("8bit", "10bit" o "12bit")
- `espacio de color` <font color="#704ae0">string</font>: El espacio de color actual ("rgb", "yuv420" o "yuv422")
- `preferido` <font color="#704ae0">string</font>: Una cadena "true" o "false" que indica si el modo de video actual es el modo preferido, que se establece mediante el método SetMode().

### GetConfiguredMode() As AssociativeArray

Devuelve información sobre el modo de video configurado mediante el método `SetMode()` . Este método devuelve un *roAssociativeArray*; consulte la entrada [GetAvailableModes()](docId\:f0DvNrbDpvGOzlRVB29gd) para obtener más detalles sobre los valores devueltos. Si el modo de video está configurado en `"auto"`, este método devolverá Invalid.

### GetFPS() As Integer

Devuelve la velocidad de fotogramas actual de la salida de video.

### SetDecoderMode(decoder As String, timeslice\_mode As String, z\_order As Integer, friendly\_name As String, enable\_mosaic\_deinterlacer As Boolean) As Boolean 

Configura un decodificador de video para el modo estándar o el modo Mosaic. En el modo estándar, se utiliza un único decodificador para reproducir un solo video; en el modo Mosaic, el decodificador puede utilizarse para decodificar múltiples videos de diferentes fuentes locales o remotas. Consulte la sección [Selección de decodificadores](docId\:f0DvNrbDpvGOzlRVB29gd) a continuación para obtener más información sobre cómo asignar reproductores de video a decodificadores en HTML o BrightScript.

:::hint{type="info"}
Los reproductores Series 5 no necesitan el modo Mosaic para decodificar múltiples videos si los videos tienen un recuento bajo de píxeles y no contienen más píxeles totales de los que la canalización de video Series 5 puede procesar.
:::

- `decodificador`: El decodificador de video que se utilizará (la disponibilidad del decodificador varía según el modelo).
  - "4K": El decodificador 4K principal (solo modelos XTx44)
  - "4K2": El decodificador 4K secundario (solo modelos XTx44)
  - "4K": El único decodificador 4K (solo modelos HDx24, XTx43, 4Kx42, XDx34, XDx33 y HDx24)
  - "HD1": El decodificador HD principal
  - "HD2": El decodificador HD secundario
- `timeslice_mode`: La resolución máxima que aceptará el decodificador (a velocidades de cuadro de hasta 60p). Si esta resolución es igual al límite máximo de resolución del decodificador, el decodificador utilizará el modo estándar, no el modo Mosaic.
  - "4K": 3840x2160
  - "HD": 1920x1080
  - "SD": 720x576
  - "CIF": 352x288
  - "QCIF": 176x144

:::hint{type="danger"}
Actualmente, escalar videos en modo Mosaic provoca una degradación severa del rendimiento.
:::

- `z_order`: El orden z de la ventana de video (en modo estándar) o grupo de ventanas de video (en modo Mosaic). Un entero positivo posiciona la(s) ventana(s) de video delante del plano gráfico, mientras que un entero negativo posiciona el(los) video(s) detrás del plano gráfico. Si hay dos decodificadores de video en uso, la(s) ventana(s) de video del decodificador con el valor de `z_order` más alto se posicionarán al frente. El orden z del plano gráfico puede modificarse con el método roVideoMode.SetGraphicsZOrder(), y el orden z del decodificador de video puede modificarse con los métodos roVideoPlayer.ToFront()/ToBack().
- `nombre_amigable`: Un nombre legible para humanos para hacer referencia al decodificador en HTML y scripts
- `activar_desentrelazador_mosaico`: Un valor Boolean que indica si los videos en modo Mosaic pueden ser entrelazados o no. Habilitar el desentrelazador permitirá reproducir videos entrelazados en modo Mosaic, pero también reducirá la cantidad de videos en modo Mosaic que pueden decodificarse simultáneamente.

### GetDecoderModes() As roArray

Devuelve un arreglo de arreglos asociativos, cada uno correspondiente a un único decodificador. Cada arreglo asociativo contiene las siguientes entradas:

- `decoder_name` <font color="#704ae0">string</font>: El nombre del sistema del decodificador
- `nombre_amigable` <font color="#704ae0">string</font>: El nombre del decodificador como se especificó al llamar a `SetDecoderMode()`
- `max_decode_size` <font color="#704ae0">string</font>: La resolución máxima del decodificador, según la configuración del software del sistema. Este valor puede ser "4K" o "HD"
- `configured_decode_size` <font color="#704ae0">string</font>: La resolución máxima del decodificador que se especifica al llamar a `SetDecoderMode()`
- `modo` <font color="#704ae0">string</font>: El modo actual del decodificador, que puede ser "Regular" o "Mosaic"
- `usage_count` <font color="#704ae0">int</font>: El número de videos que actualmente está decodificando el decodificador
- `max_usage` <font color="#704ae0">int</font>: El número máximo de videos que el decodificador puede decodificar simultáneamente. Los límites óptimos de `max_usage` se describen a continuación; el límite puede ser menor dependiendo de varios factores, incluidos el entrelazado y la velocidad de cuadro.
  - Decodificador 4K:
    - 1 video 4K
    - 2 videos HD
    - 4 videos SD
    - 8 videos CIF
    - 10 videos QCIF
  - Decodificador HD:
    - 0 videos 4K
    - 1 video HD
    - 3 videos SD
    - 4 videos CIF
    - 5 videos QCIF
- `mosaic_mode_interlace` <font color="#704ae0">string</font>: El modo actual de desentrelazado del decodificador, que puede ser "Enabled" o "Disabled". Este valor se especifica al llamar a `SetDecoderMode()`.

### Set3dMode(mode As Integer) As Boolean

Establece el modo de salida de video 3D, que se especifica pasando uno de los siguientes parámetros:

- 0: Video mono estándar (predeterminado)
- 1: Video estéreo lado a lado
- 2: Video estéreo superior e inferior

### Screenshot(parameters As roAssociativeArray) As Boolean

Captura una captura de pantalla de las capas de video y gráficos como un archivo *.jpeg&#x20;*&#x6F; *.bmp&#x20;*&#x20;. La captura de pantalla se configura pasando un arreglo asociativo de parámetros al método:

- `archivo` <font color="#704ae0">string</font>: El nombre y la ruta del archivo de imagen que se guardará (por ejemplo, "SD:/myscreenshots/screen.jpg"). Si el directorio especificado no existe, la captura de pantalla fallará.
- `ancho` <font color="#704ae0">int</font>: El ancho del archivo de imagen.
- `altura` <font color="#704ae0">int</font>: La altura del archivo de imagen.

:::hint{type="info"}
Las dimensiones predeterminadas del archivo de imagen son 640x480.
:::

- `tipo de archivo` <font color="#704ae0">string</font>: Una cadena que determina si la imagen es de tipo de archivo "JPEG" o "BMP". Tenga en cuenta que la extensión de archivo (".jpg" o ".bmp") no se agrega al nombre de archivo de forma predeterminada y, si es necesario, debe incluirse en la cadena `archivo`.
- `calidad` <font color="#704ae0">int</font>: El valor de calidad de imagen (entre 0 y 100) de la captura de pantalla. Este parámetro se establece en 50 de forma predeterminada.
- `asincrónico` <font color="#704ae0">int</font>: Una bandera que determina si la captura de pantalla debe realizarse de forma síncrona o asíncrona. Si se establece en 0, la función devuelve `verdadero` después de que el archivo de imagen haya terminado de escribirse correctamente. Si se establece en 1, la función devolverá `verdadero` antes de guardar el archivo, luego devolverá un evento *roScreenShotComplete&#x20;*&#x75;na vez que el archivo haya terminado de escribirse.
- `rotación` <font color="#704ae0">int</font>: La rotación de la imagen de la captura de pantalla (en grados). El valor predeterminado es 0. Los valores aceptados son 0, 90, 180 y 270.

### GetResX() As Integer

Devuelve el ancho actual del plano de gráficos.

### GetResY() As Integer

Devuelve la altura actual del plano de gráficos.

### GetVideoResX() As Integer

Devuelve el ancho actual del plano de video.

### GetVideoResY() As Integer

Devuelve la altura actual del plano de video.

### GetOutputResX() As Integer

Devuelve el ancho de la pantalla para el modo de video actual.

### GetOutputResY() As Integer

Devuelve la altura de la pantalla para el modo de video actual.

:::hint{type="info"}
El sistema de coordenadas para la colocación de contenido en pantalla se basa en el plano de gráficos. En la mayoría de los casos, los valores devueltos por `GetResX()/GetResY()`, `GetVideoResX()/GetVideoResY()`, y `GetOutputResX()/GetOutputResY()` serán idénticos.

&#x20;Los valores "GetRes" y "GetVideoRes" a veces diferirán al usar modos 4K si el plano de gráficos (es decir, "GetRes") permanece en 1920x1080, mientras que el plano de video (es decir, "VideoRes") se expande (por ejemplo, a 3840x2160). El valor "OutputRes" diferirá de los otros dos valores cuando la salida de video se amplíe: por ejemplo, al ampliar de HD a 4K, los valores "GetRes" y "GetVideoRes" permanecerán en 1920x1080, mientras que los valores "OutputRes" indicarán 3840x2160. Para saber dónde está dibujando en esta escala relativa, consulte al reproductor el tamaño del gráfico, ya que no siempre es el mismo tamaño que la resolución de salida.
:::

### GetSafeX() As Integer

Devuelve la coordenada horizontal para la esquina superior izquierda del "área segura". Para los modos que generalmente se muestran sin sobreexploración, este valor será cero.

### GetSafeY() As Integer

Devuelve la coordenada vertical de la esquina superior izquierda del "área segura". Para los modos que generalmente se muestran sin overscan, esto será cero.

### GetSafeWidth() As Integer

Devuelve el ancho del "área segura". Para los modos que generalmente se muestran sin overscan, esto devolverá el mismo valor que *GetResX*.

### GetSafeHeight() As Integer

Devuelve la altura del "área segura". Para los modos que generalmente se muestran sin overscan, esto devolverá el mismo valor que *GetResY*.

:::hint{type="info"}
Puede encontrar más información sobre las áreas seguras aquí:

- [Área segura](http://en.wikipedia.org/wiki/Safe_area)&#x20;
- [Overscan](http://en.wikipedia.org/wiki/Overscan_amounts)&#x20;
:::

### SetGraphicsZOrder(order As String) As Boolean 

Especifica el orden del plano gráfico (que incluye todos los elementos gráficos) en relación con los planos de video. Este método acepta tres parámetros:

- `"frente"`: Coloca el plano gráfico delante de los planos de video.
- `"medio"`: Coloca el plano gráfico entre dos planos de video. Esta opción solo es aplicable a modelos que tienen dos decodificadores de video (por ejemplo, XTx44, XDx34).
- `"atrás"`: Coloca el plano gráfico detrás de los planos de video.

Si el reproductor está renderizando dos videos, las opciones `frente` y `atrás` siempre colocarán el plano gráfico delante o detrás de ambos planos de video. Para determinar el orden z de los planos de video en relación entre sí, use los métodos `ToFront()` y `ToBack()` proporcionados por el objeto *roVideoPlayer*  . La siguiente tabla muestra todas las posibles disposiciones del orden z de video y gráficos que pueden especificarse usando el método `SetGraphicsZOrder()` y llamando a los métodos `ToFront()`  y `ToBack()` en una instancia "Video1" de *roVideoPlayer*.

| **SetGraphicsZOrder()** | **frente** | **frente** | **medio** | **medio** | **atrás** | **atrás** |
| ----------------------- | ---------- | ---------- | --------- | --------- | --------- | --------- |
| ToFront()/ToBack()      | ToFront()  | ToBack()   | ToFront() | ToBack()  | ToFront() | ToBack()  |
| Orden Z                 | Gráficos   | Gráficos   | Video1    | Video2    | Video1    | Video2    |
|                         | Video1     | Video2     | Gráficos  | Gráficos  | Video2    | Video1    |
|                         | Video2     | Video1     | Video2    | Video1    | Gráficos  | Gráficos  |

### PauseGraphics(timeout\_in\_ms As Integer) As Boolean

Suspende las actualizaciones del compositor de gráficos durante el número especificado de milisegundos (o hasta que se llame al método ResumeGraphics()), hasta un intervalo máximo de 10 segundos. Mientras el compositor de gráficos está en pausa, no se actualizarán los elementos visuales (excepto [video HWZ](docId\:PdYtB1wooQwKYvCD5fJmS), [teletipos de desplazamiento](docId:2PWSmk6GFbdKC8rtFzKfj), y texturas Chromium fuera de pantalla). Use este método para combinar operaciones `Show()`, `Ocultar()`, `Raise()`, `Lower()`, y `SetRectangle()` en una única actualización v-sync.

### ResumeGraphics() As Boolean

Reanuda el compositor de gráficos si se ha pausado con el método `PauseGraphics()` .

### SetImageSizeThreshold(parameters As roAssociativeArray) As Boolean 

Cambia el tamaño máximo permitido para las imágenes. Los tamaños de las imágenes se miden en bytes utilizando la siguiente fórmula: `image_width * image_height * 4`.

El límite predeterminado de tamaño de imagen es 35389440 bytes (equivalente a 3840x2160x32bpp) para los modelos XTx44, XTx43, XDx34, XDx33 y 4Kx42, y 2621440 bytes (equivalente a 2048x1280x32bpp) para otros modelos. Mostrar imágenes más grandes que el valor predeterminado puede agotar la memoria gráfica y provocar un bloqueo, por lo que recomendamos probar exhaustivamente un script que utilice este método antes de implementarlo en un entorno de producción. Este método acepta una matriz asociativa con los siguientes parámetros:

- `ancho` <font color="#704ae0">int</font>: El valor del ancho de la imagen
- `altura` <font color="#704ae0">int</font>: El valor de la altura de la imagen
- `ignorar` <font color="#704ae0">int</font>: Un indicador que especifica si el límite de tamaño de imagen está habilitado (0) o deshabilitado (1)

:::hint{type="success"}
También puede aumentar el ancho/alto máximo predeterminado reduciendo el valor de bpp (por ejemplo, se permite usar 3840x1280x16bpp en reproductores sin capacidad 4K); sin embargo, este método no es aplicable a páginas HTML porque Chromium siempre decodifica imágenes a RGBA 8888.
:::

### AdjustGraphicsColor(parameters As roAssociativeArray) As Boolean

Ajusta la salida de video y gráficos del reproductor utilizando los siguientes parámetros, que pueden pasarse al método como una matriz asociativa: "brightness", "hue", "contrast", "saturation". Cada parámetro tiene un valor predeterminado de 0 y puede aceptar un rango de valores entre -1000 y 1000.

### ConfigureHdmiInput(parameters As roAssociativeArray) As Boolean

Configura el informe EDID para la entrada HDMI. De forma predeterminada, el EDID de entrada incluye modos de video de la pantalla conectada a la salida HDMI, algunos modos de video compatibles con el reproductor y compatibilidad con audio PCM de hasta 48kHz; no informa códecs multimedia propietarios que puedan ser decodificados por el dispositivo conectado a la salida HDMI, por lo que puede usar este método para anunciar dicha compatibilidad si está disponible en el endpoint. El uso de este método para cambiar la configuración predeterminada provocará un reinicio del reproductor.

:::hint{type="info"}
El valor de retorno booleano de este método no sigue las convenciones habituales para los métodos BrightScript. En cambio, un valor de retorno de `falso` significa que *o bien* los parámetros proporcionados eran inválidos y la llamada al método ha fallado *o* que los parámetros fueron aceptados pero no se realizó ningún cambio en la configuración HDMI. Conceptualmente, este método devolvería `verdadero` para indicar que la configuración HDMI ha cambiado, pero en la práctica el reproductor siempre se reinicia en esta situación, por lo que el script nunca verá un valor de retorno true. La persona que llama puede determinar si la operación efectivamente tuvo éxito inspeccionando el resultado de `GetLastFailureReason()`.
:::

La matriz asociativa pasada puede contener los siguientes parámetros:

- `MaxHdcpVersion` <font color="#704ae0">int</font>: La versión máxima compatible de HDCP anunciada por la entrada HDMI. El valor predeterminado es 2, lo que indica compatibilidad con HDCP 2.2. También puede establecerse en 1, lo que limita la compatibilidad anunciada a HDCP 1.4. Los reproductores BrightSign Series 4 y 5 admiten HDCP versión 1.4.
- `MaxSampleRate` <font color="#704ae0">int</font>: La frecuencia máxima de muestreo de audio PCM compatible en Hz (por ejemplo, la frecuencia de muestreo predeterminada es 48000)
- `MaxChannelCount` <font color="#704ae0">int</font>: La cantidad de canales PCM anunciados mediante EDID. El valor predeterminado es 2, lo que permite mezcla estéreo. Aumentar este valor a 6 permite que la fuente envíe PCM multicanal. Si AC-3 o E-AC-3 están habilitados en el reproductor, el audio multicanal es compatible independientemente de la configuración de MaxChannelCount. 
- `Habilitar AC3` <font color="#704ae0">int</font>: Un indicador que especifica si AC-3 no es compatible (0) o sí es compatible (1)
- `Habilitar EAC3` <font color="#704ae0">int</font>: Un indicador que especifica si E-AC-3 no es compatible (0) o sí es compatible (1)
- `EnableTrueHDMlp` <font color="#704ae0">int</font>: Un indicador que especifica si TrueHD MLP no es compatible (0) o sí es compatible (1)
- `EnableDTS` <font color="#704ae0">int</font>: Un indicador que especifica si DTS no es compatible (0) o sí es compatible (1)
- `EnableDTSHD` <font color="#704ae0">int</font>: Un indicador que especifica si DTS-HD no es compatible (0) o sí es compatible (1)
- `BloquearAudioAlRelojDeVideo` <font color="#704ae0">int</font>: Un indicador que especifica si el reloj de frecuencia de muestreo de audio está bloqueado al reloj de audio (0) o al reloj de video (1) de la señal HDMI entrante.
- `EdidFilename` <font color="#704ae0">string</font>: Permite pasar un nombre de archivo EDID válido a la entrada HDMI (si el nombre de archivo no es válido, será rechazado y aparecerá un error en el registro). En el ejemplo a continuación, la entrada HDMI se configurará con el EDID de edid.bin durante el arranque:

:::BlockQuote
vm=CreateObject("roVideoMode")
vm.ConfigureHdmiInput(\{EdidFilename:"sd:/edid.bin"})
:::

### SetHdmiMetadata(parameters As roAssociativeArray) As roAssociativeArray

Configura las cadenas que se enviarán en los metadatos HDMI. Este método acepta una matriz asociativa con los siguientes parámetros:

- `spd_vendor` <font color="#704ae0">string</font>: La cadena del proveedor
- `spd_description` <font color="#704ae0">string</font>: La cadena de descripción

Este método devuelve una matriz asociativa, que puede contener un único parámetro:

- `reinicio_requerido` <font color="#704ae0">boolean</font>: Un indicador que indica si el reproductor debe reiniciarse para que los cambios de metadatos surtan efecto

### GetHdmiOutputStatus() As roAssociativeArray

Devuelve una matriz asociativa de valores booleanos y enteros si una salida HDMI está actualmente conectada a un dispositivo de pantalla. Este método devolverá Invalid si la salida HDMI no está actualmente conectada a un dispositivo de pantalla. La matriz asociativa contiene los siguientes parámetros:

- `salida_presente` <font color="#704ae0">boolean</font>: Un indicador que indica si la salida HDMI está conectada a un dispositivo de pantalla
- `output_powered` <font color="#704ae0">boolean</font>: Un indicador que indica si el dispositivo de pantalla está encendido (es decir, RX encendido)
- `EOTF` <font color="#704ae0">string</font>: Una cadena que indica la función de transferencia electroóptica (EOTF) actual utilizada por la pantalla. Los siguientes son valores posibles:
  - `"HDR (GAMMA)"`
  - `"SDR (GAMMA)"`
  - `"SMPTE 2084 (PQ)"`
  - `"HLG"`
  - `"sin especificar"`
- `audio_bits_per_sample` <font color="#704ae0">int</font>: El número de bits por muestra de audio
- `audio_format` <font color="#704ae0">string</font>: El formato de la salida de audio. Un valor "PCM" indica que el reproductor está enviando salida decodificada.
- `audio_channel_count` <font color="#704ae0">int</font>: El número de canales de audio en la salida
- `audio_sample_rate` <font color="#704ae0">int</font>: La frecuencia de muestreo de audio (en hercios)

:::hint{type="info"}
Si se está reproduciendo un video HDR, los siguientes valores se recuperarán del archivo de video: "max\_cll", "max\_fall", "red\_primary\_x", "red\_primary\_y", "green\_primary\_x", "green\_primary\_y", "blue\_primary\_x", "blue\_primary\_y", "white\_point\_x", "white\_point\_y", "min\_mastering\_luminance", "max\_mastering\_luminance".
:::

### GetHdmiInputStatus() As roAssociativeArray

Devuelve una matriz asociativa de valores booleanos y enteros si una entrada HDMI está actualmente conectada al dispositivo. Este método devolverá Invalid si actualmente no hay una fuente de entrada HDMI. La matriz asociativa contiene los siguientes parámetros:

- `device_present` <font color="#704ae0">boolean</font>: Un indicador que indica si hay una fuente de entrada HDMI presente
- `ancho` <font color="#704ae0">int</font>: El ancho del video de origen
- `altura` <font color="#704ae0">int</font>: La altura del video fuente
- `entrelazado` <font color="#704ae0">boolean</font>: Un indicador que señala si la fuente de video está entrelazada
- `frame_rate` <font color="#704ae0">float</font>: La velocidad de fotogramas del video fuente
- `reloj de píxeles` <font color="#704ae0">float</font>: La tasa del reloj de píxeles del video fuente (en MHz)
- `espacio de color` <font color="#704ae0">string</font>: El espacio de color del video fuente
- `audio_type` <font color="#704ae0">string</font>: La codificación de audio del video fuente
- `audio_sampling_rate` <font color="#704ae0">int</font>: La frecuencia de muestreo de audio del video fuente (en Hz)

### GetCompositorCrc() As Integer

Devuelve el CRC de las señales Y y Cb como un único entero.

### GetTxHdcpStatus() As roAssociativeArray

Devuelve un arreglo asociativo que indica el estado actual de HDCP de la salida HDMI. Actualmente, el arreglo asociativo contiene una única clave etiquetada como state, que puede tener los siguientes valores:

- `"no requerido"`: HDCP no es requerido por el reproductor. HDCP es requerido por el reproductor si el video se ha decodificado localmente y necesita protección o si el script ha llamado al método `forceHdcpOn()` . Tenga en cuenta que, incluso si se devuelve el valor "not-required", HDCP aún podría estar activo en modo passthrough si una fuente HDMI ascendente (es decir, un dispositivo conectado al puerto de entrada HDMI del reproductor) lo ha solicitado.
- `"autenticado"`: HDCP ha sido habilitado y negociado correctamente.
- `"autenticación en curso"`: HDCP ha sido habilitado, pero la autenticación no se ha completado.
- `"autenticación fallida"`: Se ha solicitado HDCP, pero no pudo negociarse.

### ForceHdcpOn(force As Boolean) As Boolean

Fuerza la autenticación HDCP en la salida HDMI si se pasa `Verdadero`. Pasar `Falso` a este método evitará intentos de autenticación forzada con eventos posteriores de hotplug. Este método devolverá `Falso` si el reproductor no admite HDCP o si `ForceHdcpOn()` ya ha sido llamado con el mismo valor.

### DisableHdcpRepeater(disable As Boolean) As Boolean

Impide que la autenticación HDCP tenga lugar en la entrada HDMI si se pasa `Verdadero`. La fuente HDMI tratará al reproductor como cualquier otro receptor HDMI no autenticado por HDCP. Este método devuelve `Falso` si el estado HDCP no pudo cambiarse, lo que indica que no hay entrada HDMI en el reproductor o que HDCP ya ha sido deshabilitado.

### SetBackgroundColor(color As Integer) As Boolean

Especifica el color de fondo utilizando un valor hexadecimal `#rrggbb` (8 bits para cada color). Los códigos hexadecimales como #ffffff causarán un error de autorun, por lo que debe usar el decimal del código hexadecimal (por ejemplo, el decimal de #ffffff es 16777215). Puede obtener este valor desde un sitio web conversor de hexadecimal a decimal: [Colores Hexadecimales / Decimales](https://www.mathsisfun.com/hexadecimal-decimal-colors.html).

### SetPowerSaveMode(video\_connector As String, power\_save\_mode As Boolean) As Boolean

El parámetro power\_save\_mode deshabilita la salida HDMI, las sincronizaciones para la salida VGA y la salida DAC para video por componentes. La ausencia de una señal hará que algunos monitores entren en modo de espera.&#x20;

El parámetro opcional video\_connector admite especificar diferentes salidas HDMI y solo debe utilizarse con reproductores de múltiples salidas.

### IsAttached(connector As String) As Boolean

Devuelve `Verdadero` si el conector de video especificado está conectado a un dispositivo de salida (es decir, el EDID de la pantalla puede leerse correctamente). Este método puede recibir los siguientes parámetros (tenga en cuenta que distinguen entre mayúsculas y minúsculas):

- `"hdmi"`
- `"vga"`

### HdmiAudioDisable(disable As Boolean) As Boolean

Deshabilita la salida de audio si es True. Este método está configurado en False de forma predeterminada.

### SetMultiscreenBezel(x\_pct As Integer, y\_pct As Integer) As Boolean

Ajusta el tamaño del bisel utilizado en los cálculos para pantallas multipantalla, lo que permite a los usuarios compensar el ancho de los biseles de sus pantallas. Los cálculos para los porcentajes son los siguientes:

`x_percentage = (ancho_del_bisel_entre_pantallas_activas / ancho_de_la_pantalla_activa) * 100`

`y_percentage = (altura_del_bisel_entre_pantallas_activas / altura_de_la_pantalla_activa) * 100`

La medición del bisel es, por lo tanto, el total de los biseles superior e inferior en el caso de y, o de los biseles izquierdo y derecho en el caso de x. Cuando este valor se establece correctamente, las imágenes distribuidas en múltiples pantallas tienen en cuenta los anchos de los biseles, lo que produce una mejor alineación de las imágenes.

### SaveEdids(filename As String) As Boolean

Guarda la información EDID de las pantallas conectadas mediante HDMI y/o VGA. Los campos EDID se guardan secuencialmente como binarios sin procesar en el archivo especificado. Los conjuntos EDID son de 2 kb cada uno, lo que da como resultado un tamaño máximo de archivo de 4 kb. Este método devuelve True cuando se realiza correctamente y False si falla.

### GetEdidIdentity(video\_connector As Object) As roAssociativeArray

Devuelve un arreglo asociativo con información EDID de un monitor/televisor compatible. `conector_de_video` puede ser una cadena o un valor booleano:&#x20;

- Pase `Verdadero` para especificar EDID mediante HDMI
- Pase una cadena para especificar el puerto HDMI del cual obtener la información EDID
- Pase `Falso` para especificar EDID mediante VGA

Estos son los posibles parámetros devueltos en el arreglo asociativo:

- `serial_number_string`
- `año_de_fabricación`
- `monitor_name`
- `fabricante`
- `cadena_de_texto`
- `número_de_serie`
- `producto`
- `semana_de_fabricación`
- unstable

El sistema generará un evento *roHdmiEdidChanged&#x20;*&#x63;uando se conecte en caliente un cable HDMI y cambie la información EDID. Llamar a `GetEdidIdentity(true)` en este punto recupera la nueva información EDID.

**Ejemplo de uso**

Especifique el puerto HDMI del que desea obtener el EDID. Por ejemplo:&#x20;

:::BlockQuote
GetEdidIdentity(“HDMI-2”)
:::

### SetMpcdi(parameters As roAssociativeArray) As Boolean

Habilita MPCDI usando los parámetros proporcionados. Consulte [esta página](docId\:W9QxxBdGzv8_kjUzeUHDU) para obtener más información sobre cómo configurar MPCDI en reproductores BrightSign.

### SetSyncDomain(domain As String) As Boolean

Habilita la sincronización Genlock en el dominio *roSyncManager&#x20;*&#x20;especificado. Para deshabilitar Genlock en el dominio, pase una cadena vacía a este método. Para volver a configurar una sincronización Genlock activa, llame a `SetSyncDomain()` nuevamente usando el nombre de dominio de la nueva instancia o de la instancia editada de *roSyncManager&#x20;*.

# ifMessagePort

### SetPort(port As Object) As Void

Publica eventos en el puerto de mensajes adjunto

# ifUserData

### SetUserData(user\_data As Object)

Establece los datos del usuario que se devolverán cuando se generen eventos.

### GetUserData() As Object

Devuelve los datos del usuario que se configuraron previamente mediante `SetUserData()`. Devolverá Invalid si no se ha configurado ningún dato.

# Modo de video "Auto"

Si el modo de video está configurado como "auto", los reproductores BrightSign usarán el siguiente algoritmo para determinar el mejor modo de video según el hardware conectado, a menos que sean reproductores XD5 o HD5. “Auto” en esos reproductores se establecerá en la mejor resolución general que pueda manejar cualquier tipo y combinación de contenido para estas plataformas, no la resolución más alta. Por ejemplo, la configuración “auto” en un XD5 o HD5 se establecerá en HD, no en 4K.&#x20;

1. Probar HDMI: Si HDMI está conectado, use el modo de mayor resolución (según lo informado por el monitor) que el reproductor admita.
2. Usar de forma predeterminada 640x480x60p.
3. Si ocurre un evento de conexión en caliente HDMI en cualquier momento, vuelva a comprobar el EDID del monitor para determinar si el modo de mayor resolución ha cambiado. Si ha cambiado, reinicie el reproductor y use el nuevo modo de video.

# Selección de decodificadores para reproducción

El software del sistema selecciona qué decodificador de video usar según la resolución detectada del archivo de video. En el modo estándar, intentará seleccionar el decodificador que tenga la resolución máxima compatible más cercana (es decir, 1920x1080 para el decodificador HD y 3840x2160 para el decodificador 4K), sin exceder esa resolución máxima. Si se ha configurado un decodificador para el modo Mosaic, hará coincidir la resolución del video con el `timeslice_mode` en su lugar. Si ambos decodificadores admiten la misma resolución máxima, puede seleccionar un decodificador haciendo coincidir el orden z de la instancia de *roVideoPlayer&#x20;*(establecido mediante los métodos `ToFront()` y `ToBack()`) con el orden z del decodificador (establecido mediante el método *roVideoMode.SetDecoderMode()&#x20;*).

:::hint{type="info"}
Los reproductores Series 5 no necesitan el modo Mosaic para decodificar múltiples videos si los videos tienen un bajo recuento de píxeles y no contienen más píxeles totales de los que la canalización de video Series 5 puede procesar.
:::

También puede seleccionar el decodificador manualmente. Primero, configure el/los decodificador(es) usando el método *roVideoMode.SetDecoderMode()&#x20;*. Luego, use el `nombre_amigable` especificado al llamar al método para designar un decodificador que se utilizará para la reproducción de video.

Para seleccionar un decodificador en BrightScript, pase un arreglo asociativo al método *roVideoPlayer.PlayFile()&#x20;*&#x20;que contenga el parámetro `decoder:[friendly_name]`:

:::BlockQuote
PlayFile(\{filename:"text\_1.mov", decoder:"main-video"})
:::

Para seleccionar un decodificador para video HTML, incluya la propiedad `decoder:[friendly_name]` con el atributo `hwz`:

:::BlockQuote
\<video hwz="decoder\:main-video;"> \</video>
\<video hwz="decoder\:sd-video;"> \</video>
:::

El `max_usage` de un decodificador determina cuántos reproductores de video pueden asignarse al decodificador usando el algoritmo del software del sistema descrito anteriormente; los reproductores de video que superen el límite de `max_usage` pueden asignarse a otro decodificador o no mostrarse en absoluto. Por otro lado, si asigna manualmente reproductores de video usando el `nombre_amigable` del decodificador, puede asignar más reproductores de video al decodificador que el límite de `max_usage`, pero esto puede causar un comportamiento impredecible en la visualización de video.
