entrada de video
El objeto entrada de video le permite recuperar información sobre la entrada HDMI® y configurar ajustes EDID para ella.
IDL de videoinput
callback VideoInputEventCallback = void (VideoInputEvent event);
interface VideoInputConfiguration {
VideoInputConfig defaultConfig();
Promise<VideoInputConfig> getConfig();
Promise<Status> applyConfig(VideoInputConfig config);
Promise<HdmiInputStatus> getStatus();
void addEventListener(String type, VideoOutputEventCallback callback);
void removeEventListener(String type, VideoOutputEventCallback callback);
};
interface VideoInputConfig {
attribute bool enableAc3;
attribute bool enableEac3;
attribute bool enableTrueHdMlp;
attribute bool enableDts;
attribute bool enableDtsHd;
attribute int maxSampleRate;
attribute int maxChannelCount;
attribute String lockAudioTo;
attribute bool disableHdcpRepeater;
attribute bool disableYuvColor;
};
interface Status {
attribute bool rebootRequired;
};
interface HdmiInputStatus {
attribute bool devicePresent;
attribute int width;
attribute int height;
attribute bool interlaced;
attribute float frameRate;
attribute float pixelClock;
attribute String colorSpace;
attribute String audioType;
attribute int audioSamplingRate;
};Creación de objetos
Para crear un objeto videoinput, primero cargue brightsign/videoinputmodule usando el método require(). Luego cree una instancia de la clase videoinput.
var VideoInputClass = require("@brightsign/videoinput");
var vi = new VideoInputClass();VideoInputConfiguration
Use esta interfaz para recuperar y modificar datos de entrada de video.
Eventos
Se genera un VideoInputEvent cuando cambia el estado de conexión en caliente de la entrada HDMI® . Tiene una propiedad de tipo:
- tipo: El tipo de evento es hdmiinputchange
Métodos
defaultConfig()
VideoInputConfig defaultConfig() Devuelve inmediatamente una interfaz VideoInputConfig que contiene valores predeterminados de informes EDID para la entrada HDMI.
getConfig()
Promise <VideoInputConfig> getConfig() Devuelve una interfaz VideoInputConfig que contiene la configuración actual de informes EDID para la entrada HDMI.
applyConfig()
Promise <Status> applyConfig(VideoInputConfig config) Configura los informes 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. Este método devuelve una promesa que contiene una interfaz Status que indica si se requiere un reinicio para que los ajustes de informes EDID especificados surtan efecto.
getStatus()
Promise <HdmiInputStatus> getStatus() Devuelve el estado actual de la entrada HDMI.
close()
Promise <void> close() Este método apaga la instancia, evitando que siga consumiendo recursos. Si no se llama, la recolección de basura determina cuándo se destruirá la instancia.
VideoInputConfig
Esta interfaz contiene datos de configuración relacionados con la entrada de video.
- enableAc3 bool: Una marca que especifica si AC-3 es compatible
- enableEac3 bool: Una marca que especifica si E-AC-3 es compatible
- enableTrueHdMlp bool: Una marca que especifica si TrueHD MLP es compatible
- enableDts bool: Una marca que especifica si DTS es compatible
- enableDtsHd bool: Un indicador que especifica si DTS-HD es compatible
- maxSampleRate int: La frecuencia máxima de muestreo de audio PCM compatible en Hz (p. ej., la frecuencia de muestreo predeterminada es 48000)
- maxChannelCount int: La cantidad de canales PCM anunciados a través de EDID. El valor predeterminado es 2, lo que permite la 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 m axChannelCount .
- 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.
- bloquearAudioA string: Si el reloj de frecuencia de muestreo de audio está sincronizado con el reloj de video ("video") o el reloj de audio ("audio") de la señal HDMI entrante. La determinación también puede dejarse al software del sistema ("auto").
- disableHdcpRepeater bool: Deshabilita la funcionalidad de repetidor HDCP. Si se establece en verdadero, el dispositivo fuente conectado a la entrada HDMI verá el dispositivo como no compatible con HDCP y degradará el video que envía o dejará de enviarlo por completo.
- disableYuvColor bool: Modifica el EDID que el reproductor envía a los dispositivos conectados a la entrada HDMI. Si se establece en verdadero, anunciará que solo es compatible con modos de video RGB y no con modos YUV.
Estado
Esta interfaz es devuelta por el método applyConfig().
- rebootRequired bool: Un indicador que indica si se requiere reiniciar para que el cambio en la configuración de EDID surta efecto.
HDMIInputStatus
Esta interfaz contiene información sobre la fuente de video conectada a la entrada HDMI:
- devicePresent bool: Si hay una fuente de entrada HDMI presente (verdadero) o no (falso)
- ancho int: El ancho del video fuente
- altura int: La altura del video fuente
- entrelazado bool: Un indicador que indica si la fuente de video es entrelazada
- frecuencia de cuadros float: La velocidad de fotogramas del video fuente
- pixelClock float: La frecuencia de reloj de píxeles del video fuente (en MHz)
- colorSpace string: El espacio de color del video fuente, que puede ser uno de los siguientes: "RGB", "YCbCr420", "YCbCr422", "YCbCr444"
- audioType string: La codificación de audio del video fuente, que puede ser "PCM" o "Comprimido"
- audioSamplingRate int: La frecuencia de muestreo de audio del video de origen (en Hz)
Ejemplo
var VideoInputClass = require("@brightsign/videoinput");
var vi = new VideoInputClass();
var inputConfig = {};
inputConfig.enableAc3 = true;
vi.applyConfig(inputConfig).then(
function(data) {
if (data.rebootRequired === true) {
system.reboot();
} else {
console.log("Reboot not required.")
}
})
.catch(
function(data) {
console.log(JSON.stringify(data));
});
vi.getConfig().then(
function(data) {
console.log("***Current Config***");
console.log(JSON.stringify(data));
})
.catch(
function(data) {
console.log(JSON.stringify(data));
});