roVideoMode
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 (consulte la sección "roVideoMode" de la Guía de migración de BrightScript a JavaScript para conocer los métodos equivalentes).
Creación del objeto: El objeto roVideoMode se crea sin parámetros.
El objeto roVideoMode genera objetos de evento roHdmiInputChanged y roHdmiOutputChanged cada vez que cambia el estado de conexión en caliente de la entrada o salida HDMI®. El sistema generará un evento roHdmiEdidChanged cuando 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:
- 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
- auto que 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 para comprender cómo funcionan las coordenadas de pantalla x/y con la resolución de salida.
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:
Para configurar un video wall 1x2 con compensación de bisel, introduzca:
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.
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 para obtener una lista de los modos de video compatibles. Este método también acepta "auto" como parámetro de modo, o "custom", que utilizará el modo configurado mediante SetCustomModeline.
El valor booleano puede devolver verdadero o falso, o no devolver el control al llamador de BrightScript en absoluto. 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.
- 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:
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.
Los siguientes parámetros opcionales pueden añadirse a la cadena:
- <resolution>:<color_space>:<depth>bit: Establece el perfil de video 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 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)/
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). 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.
GetBestMode(connector As String) As String
Devuelve el modo de video 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:
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 string: Una descripción del modo de video (puede encontrar una lista completa de modos en esta página)
- ancho int: El ancho de la salida de video
- altura int: La altura de la salida de video
- graphicsPlaneWidth int: El ancho del plano gráfico
- graphicsPlaneHeight int: La altura del plano gráfico
- velocidad de fotogramas int: La velocidad de fotogramas de la salida de video
- entrelazado boolean: Un indicador que señala si la salida de video es entrelazada (verdadero) o progresiva (falso)
- sobreescaneo boolean: Un indicador que señala si la salida de video está usando una configuración de overscan o no
- espacio de color string: El espacio de color de la señal de video ("rgb", "yuv420" o "yuv422")
- profundidad del color string: La profundidad de color de la señal de video ("8bit", "10bit" o "12bit")
- dropframe boolean: Un indicador que señala si el código de tiempo del video utiliza drop frames
- preferido boolean: 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 string: El modo de video actual (por ejemplo, "3840x2160x60p")
- profundidad del color string: La profundidad de color actual ("8bit", "10bit" o "12bit")
- espacio de color string: El espacio de color actual ("rgb", "yuv420" o "yuv422")
- preferido string: 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() 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 a continuación para obtener más información sobre cómo asignar reproductores de video a decodificadores en HTML o BrightScript.
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
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 string: El nombre del sistema del decodificador
- nombre_amigable string: El nombre del decodificador como se especificó al llamar a SetDecoderMode()
- max_decode_size string: 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 string: La resolución máxima del decodificador que se especifica al llamar a SetDecoderMode()
- modo string: El modo actual del decodificador, que puede ser "Regular" o "Mosaic"
- usage_count int: El número de videos que actualmente está decodificando el decodificador
- max_usage int: 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 string: 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 o .bmp . La captura de pantalla se configura pasando un arreglo asociativo de parámetros al método:
- archivo string: 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 int: El ancho del archivo de imagen.
- altura int: La altura del archivo de imagen.
Las dimensiones predeterminadas del archivo de imagen son 640x480.
- tipo de archivo string: 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 int: 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 int: 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 una vez que el archivo haya terminado de escribirse.
- rotación int: 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.
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.
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.
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, teletipos de desplazamiento, 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 int: El valor del ancho de la imagen
- altura int: El valor de la altura de la imagen
- ignorar int: Un indicador que especifica si el límite de tamaño de imagen está habilitado (0) o deshabilitado (1)
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.
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 int: 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 int: La frecuencia máxima de muestreo de audio PCM compatible en Hz (por ejemplo, la frecuencia de muestreo predeterminada es 48000)
- MaxChannelCount int: 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 int: Un indicador que especifica si AC-3 no es compatible (0) o sí es compatible (1)
- Habilitar EAC3 int: Un indicador que especifica si E-AC-3 no es compatible (0) o sí es compatible (1)
- EnableTrueHDMlp int: Un indicador que especifica si TrueHD MLP no es compatible (0) o sí es compatible (1)
- EnableDTS int: Un indicador que especifica si DTS no es compatible (0) o sí es compatible (1)
- EnableDTSHD int: Un indicador que especifica si DTS-HD no es compatible (0) o sí es compatible (1)
- BloquearAudioAlRelojDeVideo int: 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 string: 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:
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 string: La cadena del proveedor
- spd_description string: La cadena de descripción
Este método devuelve una matriz asociativa, que puede contener un único parámetro:
- reinicio_requerido boolean: 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 boolean: Un indicador que indica si la salida HDMI está conectada a un dispositivo de pantalla
- output_powered boolean: Un indicador que indica si el dispositivo de pantalla está encendido (es decir, RX encendido)
- EOTF string: 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 int: El número de bits por muestra de audio
- audio_format string: El formato de la salida de audio. Un valor "PCM" indica que el reproductor está enviando salida decodificada.
- audio_channel_count int: El número de canales de audio en la salida
- audio_sample_rate int: La frecuencia de muestreo de audio (en hercios)
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 boolean: Un indicador que indica si hay una fuente de entrada HDMI presente
- ancho int: El ancho del video de origen
- altura int: La altura del video fuente
- entrelazado boolean: Un indicador que señala si la fuente de video está entrelazada
- frame_rate float: La velocidad de fotogramas del video fuente
- reloj de píxeles float: La tasa del reloj de píxeles del video fuente (en MHz)
- espacio de color string: El espacio de color del video fuente
- audio_type string: La codificación de audio del video fuente
- audio_sampling_rate int: 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.
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.
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:
- 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 cuando 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:
SetMpcdi(parameters As roAssociativeArray) As Boolean
Habilita MPCDI usando los parámetros proporcionados. Consulte esta página 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 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 .
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.
- Probar HDMI: Si HDMI está conectado, use el modo de mayor resolución (según lo informado por el monitor) que el reproductor admita.
- Usar de forma predeterminada 640x480x60p.
- 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 (establecido mediante los métodos ToFront() y ToBack()) con el orden z del decodificador (establecido mediante el método roVideoMode.SetDecoderMode() ).
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() . 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() que contenga el parámetro decoder:[friendly_name]:
Para seleccionar un decodificador para video HTML, incluya la propiedad decoder:[friendly_name] con el atributo hwz:
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.