videooutput
El objeto salida de video le permite configurar y recuperar ajustes no persistentes relacionados con una salida de video (el modo de video en sí se configura con el objeto videomodeconfiguration ).
IDL de videooutput
interface VideoOutputEvent {
attribute String type;
};
callback VideoOutputEventCallback = void (VideoOutputEvent event);
[
constructor(String interfaceName)
] interface VideoOutputConfiguration {
attribute String type;
Promise<Size> getVideoResolution();
Promise<Size> getGraphicsResolution();
Promise<Size> getOutputResolution();
Promise<void> adjustGraphicsColor(ColorProperties);
Promise<EdidIdentity> getEdidIdentity();
Promise<String> getEdid();
Promise<void> setMultiScreenBezel(int xPercentage, int yPercentage);
Promise<void> setBackgroundColor(int color);
Promise<void> setPowerSaveMode(bool enable);
Promise<bool> getPowerSaveMode();
Promise<void> set3dMode(int mode);
Promise<bool> isAttached();
[type == "hdmi"] Promise<OutputStatus> getOutputStatus();
[type == "hdmi"] Promise<void> disableAudio(bool disable);
[type == "hdmi"] Promise<TxHdcpStatus> getTxHdcpStatus();
[type == "hdmi"] Promise<void> forceHdcpOn(bool);
Promise<void> setSyncDomain(String domain)
Promise<void> setMpcdi(String filename);
void addEventListener(String type, VideoOutputEventCallback callback);
void removeEventListener(String type, VideoOutputEventCallback callback);
};
interface EdidIdentity {
attribute String manufacturer;
attribute int product;
attribute int serialNumber;
attribute int weekOfManufacture;
attribute int yearOfManufacture;
attribute String monitorName;
attribute String textString;
attribute String serialNumberString;
attribute bool bt2020RgbSupport;
attribute bool bt2020YccSupport;
attribute bool sdrEotfSupport;
attribute bool hdrEotfSupport;
attribute bool hdrSt2084Support;
};
interface OutputStatus {
attribute bool outputPresent;
attribute bool outputPowered;
attribute bool unstable;
attribute String audioFormat;
attribute int audioSampleRate;
attribute int audioBitsPerSample;
attribute int audioChannelCount;
attribute String eotf;
};
interface Size {
attribute int width;
attribute int height;
};
interface ColorProperties {
attribute int constrast;
attribute int saturation;
attribute int hue;
attribute int brightness;
};Creación de objetos
Para crear un objeto videooutput , primero cargue el módulo brightsign/videooutput usando el método require() . Luego cree una instancia de la clase videooutput con un valor de cadena que especifique la salida de video que se va a configurar (actualmente, los valores aceptados son "HDMI-1", "HDMI-2", "HDMI-3", "HDMI-4" y "vga").
var VideoOutputClass = require("@brightsign/videooutput");
var videoOutputHDMI = new VideoOutputClass("HDMI-1");VideoOutputConfiguration
Utilice esta interfaz para realizar operaciones en la salida de video.
Eventos
Se genera un VideoOutputEvent cuando cambia el estado de conexión en caliente de la salida HDMI® . Tiene una propiedad type:
- tipo: El tipo de evento es hotplugevent
Métodos
getVideoResolution()
Promise<Size> getVideoResolution() Devuelve la resolución actual del plano de video.
getGraphicsResolution()
Promise<Size> getGraphicsResolution() Devuelve la resolución actual del plano gráfico.
getOutputResolution()
Promise<Size> getOutputResolution() Devuelve la resolución actual de salida de video.
En la mayoría de los casos, los valores devueltos por los métodos getVideoResolution(), getGraphicsResolution() y getOutputResolution() serán idénticos. Los valores "GraphicsResolution" y "VideoResolution" diferirán cuando se seleccione un modo de video 4K y no esté habilitado el modo gráfico de resolución completa: el plano gráfico permanece en HD (1920x1080), mientras que el plano de video se expande a 4K (por ejemplo, a 3840x2160). El valor "OutputResolution" diferirá de los otros dos valores cuando la salida de video se escale: por ejemplo, al escalar de HD a 4K, los valores "GraphicsResolution" y "VideoResolution" permanecerán en 1920x1080, mientras que los valores "OutputResolution" indicarán 3840x2160.
adjustGraphicsColor()
Promise<> adjustGraphicsColor(ColorProperties) Ajusta la salida de video y gráficos del reproductor usando las opciones en la instancia Propiedades de color proporcionada.
getEdidIdentity()
Promise<EdidIdentity> getEdidIdentity()Devuelve información EDID de un monitor/televisor compatible como una interfaz EdidIdentity.
getEdid()
Promise<String> getEdid()Devuelve información EDID de un monitor/televisor compatible como una cadena codificada en hexadecimal
setMultiScreenBezel()
Promise<> setMultiScreenBezel(int xPercentage, int yPercentage)Ajusta el tamaño del marco utilizado en los cálculos para pantallas multipantalla, permitiendo a los usuarios compensar el ancho de los marcos de sus pantallas. Los cálculos para los porcentajes son los siguientes:
xPercentage = (ancho_del_bisel_entre_pantallas_activas / ancho_de_pantalla_activa) * 100
yPercentage = (altura_del_bisel_entre_pantallas_activas / altura_de_la_pantalla_activa) * 100
La medida del marco es, por lo tanto, el total de los marcos superior e inferior en el caso de y, o de los marcos 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 el ancho de los marcos, lo que produce una mejor alineación de las imágenes.
setBackgroundColor()
Promise<> setBackgroundColor(int color)Especifica el color de fondo utilizando un valor hexadecimal #rrggbb (8 bits para cada color).
setPowerSaveMode()
Promise<> setPowerSaveMode(bool enable)Deshabilita la salida HDMI y las sincronizaciones para la salida VGA si se pasa verdadero. La ausencia de señal hará que algunos monitores entren en modo de espera.
getPowerSaveMode()
Promise<bool> getPowerSaveMode()Devuelve Verdadero si el modo de ahorro de energía está habilitado en la salida de video.
set3dMode()
Promise<> set3dMode(int mode)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 arriba y abajo
isAttached()
Promise<bool> isAttached()Devuelve verdadero si el conector de video HDMI/VGA está conectado a un dispositivo de salida (es decir, el EDID de la pantalla puede leerse correctamente). Este método siempre devolverá falso si se ha llamado a setPowerSaveMode(true) en la salida.
getOutputStatus()
[type == "hdmi"] Promise<OutputStatus> getOutputStatus()Devuelve Estado de salida que describe el estado actual de la salida de video y se define a continuación.
disableAudio()
[type == "hdmi"] Promise<void> disableAudio(bool disable)Deshabilita la salida de audio. Si se pasa Verdadero, el video continuará saliendo.
getTxHdcpStatus()
[type == "hdmi"] Promise<TxHdcpStatus> getTxHdcpStatus()Devuelve el estado actual de autenticación HDCP de la salida de video.
forceHdcpOn()
[type == "hdmi"] Promise<void> forceHdcpOn(bool)Puede utilizarse para forzar la autenticación HDCP en la salida de video. Incluso sin forzar HDCP, todavía puede haber HDCP en la salida si una entrada HDMI ha solicitado autenticación.
setSyncDomain()
Promise<void> setSyncDomain(String domain)Pasar cualquier cadena habilitará la sincronización Genlock. Para deshabilitar Genlock en el dominio, pase una cadena vacía a este método. La sincronización Genlock bloqueará la sincronización vertical de la salida de video a la referencia del reloj del sistema. Luego, se utiliza PTP para sincronizar el reloj del sistema de múltiples reproductores (por ejemplo, en un muro de video).
setMpcdi()
Promise<void> setMpcdi(String filename)Los usuarios que construyan un archivo MPCDI según el perfil multimedia 2D version1a deben pasar videoOutputHDMI.setMpcdi("SD:/filename.mpcdi") al reproductor para decodificar el archivo y aplicar warp y blend a la salida según los requisitos establecidos en filename.mpcdi (reemplace "filename" con el nombre de su archivo real). Pasar una cadena vacía desactivará warp y blend, y la imagen volverá al formato normal.
Los reproductores Series 4 implementan todos los niveles del perfil multimedia MPCDI 2D (versión 1a).
close()
Promise<void> close()Este método cierra la instancia, evitando que siga consumiendo recursos. Si no se llama, la recolección de basura determina cuándo se destruirá la instancia.
EdidIdentity
Esta interfaz contiene información EDID sobre una pantalla conectada:
- fabricante string
- producto int
- numeroDeSerie int
- weekOfManufacture int
- año de fabricación int
- monitorName string
- cadenaDeTexto string
- serialNumberString string
- bt2020RgbSupport bool
- bt2020YccSupport bool
- sdrEotfSupport bool
- hdrEotfSupport bool
- hdrSt2084Support bool
OutputStatus
Esta interfaz contiene información sobre un dispositivo de pantalla HDMI conectado.
Las entradas outputPresent y outputPowered siempre serán falso si se ha llamado a setPowerSaveMode(true) en la salida.
- outputPresent bool: Una marca que indica si la salida HDMI está conectada a un dispositivo de pantalla o no. Esto se basa en el estado de la línea HDMI HPD. Este valor siempre debe ser verdadero cuando hay un dispositivo conectado; sin embargo, depende de que la pantalla conectada cumpla con esta especificación.
- outputPowered bool: Un indicador que indica si el dispositivo de visualización está encendido (es decir, RX alimentado). Esto se basa en el estado de terminación diferencial TMDS.
- inestable bool: Un indicador que indica si la señal de visualización es inestable o estable
- audioFormat string: El formato de la salida de audio. Un valor "PCM" indica que el reproductor está enviando una salida decodificada.
- audioSampleRate int: La frecuencia de muestreo de audio (en hercios)
- audioBitsPerSample int: El número de bits por muestra de audio
- audioChannelCount int: El número de canales de audio en la salida
- eotf string: La función actual de transferencia electroóptica (EOTF) utilizada por la pantalla. Los siguientes son valores posibles:
- "HDR (GAMMA)"
- "SDR (GAMMA)"
- "SMPTE 2084 (PQ)"
- "Future (BBC/NHK)"
- "unspecified"
Tamaño
Esta interfaz representa una resolución de video.
- ancho int: La altura de la pantalla/plano
- altura int: El ancho de la pantalla/plano
PropiedadesDeColor
Esta interfaz se pasa al método adjustGraphicsColor() . Cada uno de los siguientes parámetros tiene un valor predeterminado de 0 y puede aceptar un rango de valores entre -1000 y 1000.
- contraste int
- saturación int
- matiz int
- brillo int
EstadoTxHdcp
Esta interfaz es devuelta por el método getTxHdcpStatus() .
- estado string: El estado HDCP de la salida HDMI, que puede ser uno de los siguientes valores:
- "no requerido": HDCP no es requerido por el reproductor. HDCP es requerido por el reproductor si el video ha sido decodificado localmente y necesita protección o si el script ha llamado al método forceHdcpOn() . Tenga en cuenta que, incluso si este parámetro indica no requerido, 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 está incompleta.
- "authentication-failed": HDCP ha sido solicitado pero no pudo ser negociado.
Ejemplo
var VideoOutputClass = require("@brightsign/videooutput");
var videoOutputHDMI = new VideoOutputClass("hdmi");
videoOutputHDMI.getOutputStatus().then(
function(data) {
console.log("\nPrint the HDMI output status");
console.log(JSON.stringify(data));
})
.catch(
function(data) {
console.log(JSON.stringify(data));
})