Correo electrónico:
guiller129 AT gmail DOT com
benjamin DOT ginouves AT gmail DOT com
Fecha: 08/12/2012
Tags: Ginga, Ginga-NCL, NCL, Televisión Digital, Ginga-NCL TCP, Ginga-NCL canal de retorno.
El proyecto se basó en la programación de una aplicación en Ginga-NCL con canal de comunicación por Internet a través de una conexión TCP. La aplicación tiene como objetivo complementar las noticias que se están comunicando en un canal de televisión a través del despliegue de los titulares de las noticias ya presentadas, y en caso de ser solicitado por el usuario tener un breve resumen de la noticia que le interesa.
Ginga es el software intermedio del Sistema Brasileño de TV Digital (SBTVD). Está formado por un conjunto de tecnologías estandarizadas e innovaciones. Permite el desarrollo de aplicaciones interactivas para Televisión Digital Terrestre, independientemente de la plataforma del hardware y terminales de acceso.
Se puede dividir Ginga en dos subsistemas: Ginga-J y Ginga-NCL, los que permiten el desarrollo de aplicaciones de diferente forma. Dependerá de la necesidad y las funcionalidades de cada aplicación el lenguaje utilizado, Java para aplicaciones enfocadas a procedimientos y NCL para aplicaciones enfocadas a declaraciones.
http://www.ginga.org.br/
http://www.ginga.org.ar/
http://www.comunidadginga.cl/
Desarrollador por la Pontificia Universidad Católica de Rio de Janeiro PUC-Rio. NCL es una aplicación de XML (eXtensible Markup Language) con facilidades para los aspectos de interactividad, sincronismo, espacio-temporal entre los objetos de medio, adaptabilidad, soporte a múltiplos dispositivos y soporte a la producción de programas interactivos en vivo no-lineares.
Es un lenguaje del tipo basado en la estructura que define una separación bien demarcada entre el contenido y la estructura de una aplicación, permitiendo definir objetos de medio estructurados y relacionados tanto en tiempo y espacio.
http://www.gingancl.org.br/
http://www.lavid.ufpb.br/
Al momento de sintonizar un canal de noticias, no existe la posibilidad de saber qué noticias ya fueron presentadas ni cuales serán mostradas más adelante, estando obligado de ver lo que el canal presente o pasar el rato haciendo zapping entre los diferente canales de noticias. Es por esto, que contar con una interfaz que permita conocer qué noticias ya se han presentado, poder revisar de forma rápida los titulares, y en último caso poder cambiar de canal para conocer las noticias que son de interés.
Actualmente los canales de noticias transmiten las noticias y de forma síncrona, ya que es una transmisión para millones de televidentes y teniendo para su ayuda un banner que indica las últimas noticias. No obstante no da mayor información si el espectador no estuvo desde un comienzo observando las noticias de un determinado canal, pudiendo haberse perdido una transmisión que fuera de su interés.
Actualmente el espectador puede recurrir a recursos externos, como es la Internet para conocer las noticias, pero en los casos en que no se pueda sólo está la opción de hacer zapping entre canales para poder obtener una visión más panorámica y en caso de haberse perdido alguna noticia.
Una aplicación que pueda redimensionar la señal de televisión, para así mientras se ven las noticias pueda mostrar a través de un índice de los titulares de las noticias ya presentadas, y a través de un banner las que serán presentadas a futuro. Los datos de las noticias extraídos desde una conexión a una base de datos o algún sistema que entregue la información que está presentando el canal de noticias.
Al comienzo de la aplicación tendrá un banner corriendo, donde presentará las noticias que van a ser expuestas. Luego de presionar el botón de INFO del control remoto se reducirá la imagen de la transmisión de las noticias para desplegar al costado derecho el título de las noticias ya expuestas y una región para desplegar el resumen de la noticia seleccionada, tan como se observa en la figura nº3.
Para actualizar los datos de las noticias, el programa se conectará a un sitio web y solicitará la lista de noticias requeridas de acuerdo al tiempo transcurrido en la programación, así recibirá sólo las noticias requeridas para la presentación.
Estos datos serán actualizados de forma constante a través de una conexión TCP a un archivo XML con el contenido de las noticias. Para reducir el tiempo que toma el procesamiento de los datos se desarrolló un script PHP para responder sólo con los datos requeridos y posterior despliegue de la información.
La aplicación se encuentra en etapa de desarrollo. La primera versión fue desarrollada en Ginga4windows para el desarrollo rápido de la parte gráfica y eventos de los botones y de los medios asociados a los descriptores y regiones. La cual responde correctamente al evento de botón de información para el cambio de ventana y reducción del tamaño del video, así como la desactivación del banner de información.
La segunda versión se trabajó en la máquina virtual de Ginga para tener acceso a conexiones TCP y poder adquirir datos desde la página web con el contenido de las noticias. En este caso el código dejó de funcionar. Estando en revisión de éste código, pero por falta de tiempo se debió entregar la primera versión junto al informe.
Figura nº5. Pantalla inicial, muestra banner y botón de info.
Figura nº6. Pantalla con información de noticias.
El código de la aplicación fue desarrollado en NCL y para poder correr la aplicación se requiere la máquina virtual de Ginga. Una vez corriendo la máquina virtual se debe copiar a esta el código y se ejecutado de la siguiente forma:
/misc/launcher.sh /misc/ncl30/proyecto/main.ncl
El código puede ser descargado desde aquí.
El desarrollo de este proyecto ayudó a la profundización de los conceptos y a "meter la mano" en códigos más complejos que ayudaron a entender de mejor forma el funcionamiento de Ginga en una transmisión de Televisión Digital Terrestre.
Uno de los problemas que tuvimos que lidiar fue con las versiones de los emuladores y máquina virtual, ya que en el caso de Ginga4Windows no se tuvo disponibilidad de conectividad TCP que se tuvo en la máquina virtual de Ginga. Del mismo modo con la presentación visual, que no se presentaba de igual forma.
En base a lo anterior, una de las mejores lecciones que pudimos aprender, es a la hora de desarrollar aplicaciones es mejor enfocarse al uso en uno de los dos ambientes previos a la implementación final, es decir utilizar sólo uno de los emuladores.
Durante el desarrollo del proyecto nos topamos con algunas dificultades teniendo que volver a rehacer parte del código, pese a esto al final no se pudo enviar una versión totalmente funcional con conexiones TCP, como fue en el caso de la tarea, esto debido a que el tiempo de desarrollo se nos fue en lograr encontrar el problema con la maquina virtual que no logró ejecutar la versión más completa de la aplicación.