Академический Документы
Профессиональный Документы
Культура Документы
Madrid - Espaa
2014
AGRADECIMIENTOS
estudios de postgrado.
2
DEDICATORIA
3
Tabla de contenido
INTRODUCCIN ................................................................................................................ 7
TELEVISIN DIGITAL TERRESTRE (TDT) ............................................................................. 8
ESTNDARES DE TELEVISIN DIGITAL ........................................................................ 10
ISDB-Tb (Integrated Services Digital Broadcasting - Brazilian Terrestrial version) .... 12
PRINCIPALES CARACTERSTICAS DE ISDB-Tb .......................................................... 13
CARACTERSTICAS TCNICAS ISDB-Tb .................................................................... 14
IPTV (Internet Protocol Television) ................................................................................ 17
Servicios que ofrece IPTV ........................................................................................... 19
Modelo de la televisin IP .......................................................................................... 20
Arquitectura de IPTV .................................................................................................. 21
INTERACTIVIDAD EN TELEVISIN ................................................................................... 22
Avanzar hacia la televisin interactiva. ...................................................................... 23
Interactividad Local .................................................................................................... 24
Interactividad Completa ............................................................................................. 25
LA TELEVISIN HBRIDA .................................................................................................. 26
4
CAPTULO 3 (ESTUDIO DE INTEGRACIN)
CONCLUSIONES............................................................................................................. 106
5
RECOMENDACIONES .................................................................................................... 107
REFERENCIAS ................................................................................................................ 108
GLOSARIO ..................................................................................................................... 112
ANEXO 1........................................................................................................................ 115
ANEXO 2........................................................................................................................ 118
ANEXO 3........................................................................................................................ 124
ANEXO 4........................................................................................................................ 135
6
CAPTULO 1
INTRODUCCIN
7
pueden ser brindados por las estaciones de televisin, por servidores de internet o
por los fabricantes de televisiones o set top boxes, los servicios de entretenimiento
incluye, vdeo bajo demanda (VoD), publicidad interactiva, personalizacin,
votaciones, juegos y redes sociales, as como servicios relacionados con la
programacin, como el texto digital y las guas de programacin electrnica EPG [1].
8
robusta, sin ruidos, sin interferencias, ni doble imagen, perfeccionando de este modo
los contenidos que el espectador est visualizando.
Gestin del
Produccin Empaquetado Transmisin Recepcin Decodificacin
Multiplexor
Canal retorno
Interactividad
9
Adicionalmente, para lograr la prestacin de servicios interactivos, el sistema
de TDT puede dotarse de un canal de retorno que permita la comunicacin en
sentido ascendente (desde el usuario al radiodifusor). A modo de ejemplo, pueden
utilizarse como canal de retorno la red telefnica convencional o la red de telefona
mvil.
10
La televisin digital terrestre est operando mundialmente con cinco
estndares. La plataforma usada en Norteamrica y algunos pases centroamericanos
es ATSC; ISDB-T en Japn y Filipinas. ISDB-Tb (variante del ISDB-T) en Brasil y la
mayora de los pases latinoamericanos: Per, Argentina, Chile, Venezuela, Ecuador,
Costa Rica, Paraguay, Bolivia, Uruguay, Nicaragua y Guatemala, con la excepcin de
Colombia, Guyana, Surinam, Panam, Honduras, El Salvador y Mxico. DTMB en la
Repblica Popular China, Hong Kong y Macao. DVB-T en los pases europeos,
Australia, partes de frica y pases de Amrica Latina: Colombia, y Panam, tambin
algunos pases que utilizan este estndar estn comenzando hacer pruebas y han
adoptado oficialmente DVB-T2, que es un estndar ms robusto que su anterior
versin. El resto del mundo an no se ha decidido [8].
11
BST-COFDM con 13
Emplea modulacin
segmentos de
OFDM, interleaving y
frecuencia DQPSK,
Mpeg-2 cdigos de correccin
ISDB-T Japn 6 MHz MPEG-2 QPSK, 16 QAM Y 64 MPEG-2 TS
ACC de errores.
QAM
Soporta transmisiones
Transmisin
jerrquicas y one-seg
jerrquica.
Poseen un middleware
Brasil, Per,
innovador y
Venezuela,
desarrollado en Brasil
Chile,
H.264 (Ginga)
Argentina,
ISDB-Tb 6 MHz (MPEG-4 HE-AAC BST-COFDM MPEG-2 TS Emplea tecnologas de
Uruguay,
Parte 10) compresin de audio y
Bolivia, Costa
video ms avanzadas
Rica y
que las empleadas en
Ecuador
Japn.
Para mejorar su
TDS-OFDM eficiencia utiliza el
MPEG2,
China, Hong MPEG-4 cdigo pseudo-
6, 7 y 8 H.264
DTMB Kong y Part 3 4QAM, 4QAM-NR, MPEG-2 TS aleatorio de ruido,
MHz (MPEG-4
Macao. BSAC 16QAM, 32QAM, Emplea redes SFN y
Parte 10)
64QAM redes MFN.
A partir del 2000, el gobierno de Brasil a travs de las universidades del pas
desarroll un estudio sobre la televisin digital y las ventajas y retos que conlleva
realizar esta transicin. En noviembre del 2003 se cre el Sistema Brasilero de TV
Digital (SBTVD), actualmente denominado ISDB-Tb (Integrated Services Digital
Broadcasting - Brazilian Terrestrial version), que inici sus servicios comerciales y
pblicos el 2 de diciembre de 2007 en la ciudad de Sao Paulo - Brasil [4]. Se diferencia
bsicamente de la norma japonesa por el uso del cdec MPEG-4 (H.264) para
compresin de vdeo, en lugar de MPEG-2 (Moving Picture Experts Group) usado en
ISDB-T, compresin de audio con HE-AAC (High-Efficiency Advanced Audio Coding),
modulacin en BST-OFDM-TI, presentacin de 30 cuadros por segundo incluso en
dispositivos porttiles, a diferencia de los 15 cuadros por segundo para equipos
mviles en la norma ISDB-T e interaccin utilizando el middleware o software de
soporte de aplicaciones distribuidas o intermediario, desarrollado en Brasil y
12
denominado Ginga, compuesto por los mdulos Ginga-NCL, usado para exhibir
documentos en lenguaje NCL (Nested Context Language) y Ginga-J para aplicaciones
escritas en lenguaje Java. En el caso de la norma original ISDB-T, este software es el
BML (Broadcast Markup Language). Esto ocasiona que los receptores ISDB-T no sean
compatibles con las seales desarrolladas para la norma ISDB-Tb, aunque stos
ltimos si son compatibles con los de la versin original. Adems, es posible utilizar
SBTVD/ISDB-Tb en 6 Mhz, 7 MHz o 8 MHz si es requerido porque el sistema es
totalmente compatible.
13
Adems soporta acceso a Internet como canal de retorno. El acceso a Internet
tambin es provisto en telfonos mviles.
Suministra EPG (Electronic Program Guide) o gua electrnica de programas.
Provee SFN (Single Frequency Network), Red de frecuencia nica, permitiendo el
uso eficiente del espectro radioelctrico, porque para cubrir un rea grande de
cobertura se lo puede hacer con la misma frecuencia.
Puede recibirse con una simple antena interior.
Proporciona robustez a la interferencia multitrayecto, causante de los
denominados "fantasmas" de la televisin analgica y a la interferencia de canal
adyacente de la televisin anloga.
Proporciona mayor inmunidad en la banda UHF a las seales transitorias que
provienen de motores de vehculos y lneas de energa elctrica en ambientes
urbanos.
Permite la recepcin de HDTV en vehculos a velocidades por sobre los 100 km/h.
14
Receptores porttiles (telfonos celulares por ejemplo): 1 segmento.
15
Estreo: MPEG-4 AAC@L2 (AAC Level 2) o MPEG-4 HE-AAC v1@L2 (HE-AAC,
Version 1, Level 2)
Servicio Porttil: MPEG-4 HE-AAC v2@L2 (HE-AAC, Versin 2, Level 2)
para audio estreo.
Adicionalmente, la codificacin de audio debe seguir la norma ISO/IEC 14496-
3:2004 [15].
16
j) Menor potencia media en el transmisor de TV digital en comparacin a la TV
analgica. Para cubrir la misma rea de cobertura se necesita 4 veces menos potencia
en el transmisor digital, como se muestra en la figura 4
17
IPTV es un sistema utilizado para entregar los servicios que la televisin digital
ofrece a los consumidores que son suscriptores registrados para recibir este sistema.
La entrega de TV digital es posible usando el protocolo de Internet sobre una
conexin de banda ancha, por lo general se emplea un administrador de red en lugar
del Internet pblico, con el objetivo de garantizar una buena calidad de los servicios.
18
despliegue de las redes de fibra ptica que fcilmente llegan a los 100 Mbps, se
podra dar servicios de IPTV inclusive con Ultra Alta Definicin en formato (UHDTV
4K) [11].
La capacidad estimada para servicios de IPTV se asume entre 1 y 2 Mbps por
cada canal de definicin estndar (SDTV); 8 - 12 Mbps por cada canal de alta
definicin (HDTV) y ms o menos los 20 Mbps para (UHDTV). Para dos canales
simultneos el ancho de banda bruto resultante es de 2- 4 Mbps para un servicio
bsico o 8-12 Mbps si se incluye un canal HDTV, en ambos casos utilizando tecnologa
MPEG-4 para la codificacin /compresin de la seal de vdeo. A esta capacidad
habra que aadirle el ancho de banda contratado para la conexin de Internet, que
por bajo que sea implica la necesidad de manejar tasas de acceso de muy alta
capacidad [11].
19
informacin, compra de productos, publicidad interactiva, e-Learning, guas
telefnicas , entre otros.
Entre las ventajas de este servicio digital, es que la imagen y el sonido tienen
calidad DVD o superior y se puede acceder a un sinnmero de contenidos digitales.
Adems ofrece interactividad, lo que permite seleccionar lo que deseamos ver y
manejar la programacin como si la estuvisemos viendo grabada, es decir, con las
opciones de pausar, retroceder, paso rpido, etc. [11].
Modelo de la televisin IP
20
por parte del usuario, sino que el servidor entrega los datos de forma continua,
sincronizada y en tiempo real (al mismo tiempo que se enva, se est visualizando el
video con su audio).
Entre las ventajas de este modelo tenemos que la red de distribucin ya est
desplegada y aprovecha al mximo el ancho de banda para conseguir velocidades de
varios Mbps en canal descendente. La desventaja de este sistema es que el
despliegue de este modelo depender de la disponibilidad de equipos en centrales
[11].
Arquitectura de IPTV
21
Fig. 6 Arquitectura genrica de IPTV
INTERACTIVIDAD EN TELEVISIN
22
televisin, mediante el control remoto, esta informacin puede ser imgenes
adicionales al programa original, audio, texto, grficos, etc.
Pero existen otros sistemas que nos permiten interactuar con la televisin por
ejemplo las plataformas de las Smart TV, y el estndar HbbTV.
23
Un servicio de televisin "interactiva" va mucho ms all de ofrecer acceso a
Internet en el televisor, para que tenga xito total el servicio tiene que ser impulsado
por los canales y programas de televisin. Actualmente pesar de la creciente gama de
opciones disponibles, la gran mayora de vdeo observaba en todo el mundo (incluso
en los hogares de banda ancha conectado) sigue siendo de televisin lineal. Hay
muchas razones para esto, pero sobre todo es que este mtodo sigue siendo la forma
ms eficiente para entregar el vdeo a la casa. Y todava atrae a grandes audiencias.
Interactividad Local
24
Fig. 7 Interactividad Local
Interactividad Completa
25
Y en este aspecto la interactividad para los dispositivos mviles tiene una
ventaja ya que tienen el canal de retorno solucionado.
LA TELEVISIN HBRIDA
26
espectadores participar mediante votaciones, trivias, juegos, etc. Todo mediante el
mando a distancia.
Las Smart TV son estndares cerrados donde cada compaa controla los vdeos
y aplicaciones a diferencia de la HbbTv que es una solucin estandarizada para que
los diferentes canales de televisin puedan aadir servicios y aplicaciones, son
sistemas diferentes pero no incompatibles: en una misma televisin podemos tener
Smart TV y HbbTV.
27
Pese a que estos conceptos puedan parecer complejos, usar estas tecnologas
es tan sencillo como apretar un botn y navegar por mens e interfaces que nos
mostrarn los contenidos a nuestra disposicin. Saber si un televisor tiene Smart TV
es sencillo, el propio fabricante se preocupa de aclararlo y de proporcionar cada vez
ms contenidos [22].
28
de Televisin Espaola RTVE, adems otras empresas como Mediaset Espaa y
Telefnica tambin estn prontos de implantar aplicaciones con HbbTv, apostando
por esta nueva forma de ver la televisin y acceder a contenidos varios a travs de un
televisor o descodificador, conectados a Internet permitiendo a los espectadores
acceder a los varios contenidos de cada cadena de televisin o servidores de internet,
incluso a contenido en alta definicin si el ancho de banda disponible es elevado.
29
en la TV, incluyendo otros servicios a la carta y a los sitios de streaming. La caja
incluye conectividad DLNA, Wi-Fi y Ethernet.
30
CAPTULO 2
31
boxes [1]. El consorcio HbbTV, que reagrupa a la radiodifusin digital y las empresas
del sector de Internet, establece un estndar para la entrega de la TV abierta y TV de
banda ancha para el hogar, a travs de una nica interfaz de usuario, la creacin de
una plataforma abierta como una alternativa a las tecnologas de propiedad. Los
productos y servicios que utilizan el estndar HbbTV pueden funcionar sobre
diferentes tecnologas de radiodifusin, como por satlite, por cable o las redes
terrestres.
Los miembros fundadores del consorcio HbbTV junto con un nutrido grupo de
seguidores han desarrollado conjuntamente la especificacin HbbTV la versin 1.1.1
de esta especificacin fue aprobada por el ETSI como ETSI TS 102 796, en junio de
2010. Los miembros fundadores del consorcio estn formados por radiodifusores,
fabricantes de dispositivos de TV y empresas de la comunidad europea, lo que
significa que hay un objetivo comn de crear servicios y que los radiodifusores
puedan ofrecerlos mientras se cumple con las funciones relacionado con el DRM
(Digital Resource Managment) para vdeo bajo demanda.
32
- Organismos de radiodifusin: France Tlvisions, TF1, Canal +, NRJ 12, RTL
Group, Astra, Eutelsat, Abertis Telecom, TDF, ITV, BSkyB.
- Editores de middleware para dispositivos de electrnica de consumo: ANT
Software Ltd, iPlus Technologies, OpenTV, Opera Software, Access, Espial, HTTV,
Icareus, Irdeto, NDS, Kudelski, Viaccess.
- Fabricantes de electrnica de consumo y de componentes de dispositivos:
Philips, Samsung, Sony, LG, Loewe, Sharp, STMicroelectronics, Humax, Haier, Kaoin
Media, TechniSat, TechnoTrend, iPlus Technologies.
- Laboratorios de prueba para dispositivos de electrnica de consumo: Digital TV
Labs.
- Los miembros del consorcio HbbTV del grupo de direccin son: Abertis, Astra,
Ant Software Ltd, Digital TV Labs, European Broadcasting Union, France Tlvisions,
IRT, OpenTV, Opera, Philips, RTL, Samsung, Sony, TF1.
33
Fig. 10 Despliegue de HbbTV en Europa
Aunque no en todos los pases que han adoptado existe el mismo despliegue en
la reunin del foro HbbTV llevado a cabo en Holanda en Marzo del 2014, se detalla
un cuadro (ver tabla 2) con detalle sobre el desarrollo en cada uno de los pases, cabe
mencionar que tambin existen noticias que se estara evaluando el estndar en
pases fuera de la Unin Europea como China, Estados Unidos y Australia. Tambin el
Reino Unido estara en planes de adoptar HBBTV 2.0.
34
NORMAS Y ESPECIFICACIN HBBTV
35
Modifica el CE-HTML, lenguaje para la creacin de pginas de interfaz de
usuario en dispositivos como los televisores.
CEA
APIs de Javascript para servicios bajo demanda.
Conjunto de especificaciones y formatos de imagen de W3C.
Soporte para el control remoto de redes UPnP e Internet.
DVB
Transporte de sealizacin y aplicaciones va DVB.
W3C
Recomendaciones para World Wide Web.
XHTML.
Hojas de estilo CSS 2.1, CSS-TV.
ECMA Script.
Peticiones HTTP y HTTPS con XMLHTTP Request.
Por una parte, CE-HTML define las funciones bsicas del navegador: CE-HTML
se basa en los estndares del W3C Web comunes y especifica un perfil de HTML para
dispositivos de CE (electrnica de consumo). Utiliza XHTML 1.0, DOM 2, CSS TV perfil
1.0, as como Java, y est optimizado para renderizar HTML / JavaScript en pginas
web en los dispositivos de CE, en concreto en las pantallas de televisin. CE-HTML
tambin contiene elementos tales como la definicin de cdigos de las teclas del
mando a distancia.
Por otra parte, Open IPTV Forum perfil del navegador: Esta especificacin ha
sido desarrollada para los sistemas basados en DVB-IPTV, pero el API (JavaScript) que
proporciona tambin se puede aplicar a cualquier hbrido de los sistemas DVB. Estas
API transmiten las funciones de combinar la imagen de TV con pginas HTML, para
sintonizar la televisin DVB o servicios de radio, para agregar eventos a la lista del
temporizador, y para leer los metadatos DVB y otra informacin relacionada con
DVB.
36
Finalmente, la sealizacin y el transporte DVB: La sealizacin de las
aplicaciones es compatible con el estndar DVB. Estas aplicaciones se pueden
ejecutar en el contexto de un televisor o un servicio de radio en un mltiplex DVB. De
una manera muy similar a la norma MHP, esto se hace a travs de la tabla de
sealizacin (AIT) en el correspondiente servicio DVB y se indica en su tabla de mapa
de Programa (PMT). La norma DSM-CC define carruseles de objetos para ofrecer
aplicaciones de difusin. Los carruseles de objetos tambin proporcionan una forma
para que el receptor se sincronice con los puntos especficos en los medios de
comunicacin mediante el uso de "eventos de flujo".
37
cerrado y privado como Google TV y Apple TV, y es que del HbbTV se benefician
todos, desde los fabricantes de televisores a las cadenas de televisin, pasando por
los portales online y los proveedores de comercio electrnico.
Los servicios HbbTV se activan, pulsando el botn rojo del mando a distancia,
las aplicaciones se las puede utilizar con las teclas de navegacin y las teclas de
colores del mando.
38
Pero si bien mucha gente expresa su escepticismo acerca de la nueva solucin
hbrida para la televisin interactiva, argumentando que Internet por s sola ya ofrece
ms funcionalidad que las promesas de futuro de HbbTV, adems de que la rapidez
de evolucin de Internet deja obsoleto cualquier desarrollo con pocos meses de vida,
lo que si es cierto es que para que pueda tener xito, es necesario al menos, como
sucede en este caso, la estrecha colaboracin entre operadores y radiodifusores, ya
que la inversin necesaria y el riesgo asociado son muy elevados para ser acometidos
por un nico agente, as que habr que esperar algn tiempo para ver cmo se
desarrolla y la respuesta de los usuarios a un nuevo canal de comunicacin
interactiva que combina dos de los ya existentes.
Dentro de las aplicaciones se distingue dos categoras: Por una parte estn las
que solo se difunden a travs del canal de banda ancha y no se pueden declarar en la
secuencia de difusin y por otra parte, las que si se declaran en la sealizacin DVB.
Entre las primeras encontramos aplicaciones para redes sociales, juegos, VoD, etc.
mientras que entre las segundas podemos citar la publicidad interactiva o votaciones.
Para empezar, una aplicacin puede arrancar por orden del usuario final, a travs del
mando a distancia. Tambin puede ser por la sealizacin en el servicio de difusin o
bien por otra aplicacin que ya se est ejecutando. Para finalizar, una aplicacin
puede detenerse por orden del propio usuario, por orden del sistema bajo
condiciones de error o mediante la llamada del mtodo que destruye la aplicacin,
entre otros [26].
39
Las aplicaciones HbbTV y sus servicios en general son probados por entidades
como Digital TV Labs, se trata de un laboratorio que ofrece una aplicacin HbbTV
para realizar tests destinada a los desarrolladores, ofreciendo pruebas que verifican
la compatibilidad entre una amplia gama de receptores HbbTV en el mercado. Dichas
pruebas pretenden adems asegurar la QoE (Quality of Experience) ofrecida al
usuario.
40
Certificadora, realiza las pruebas necesarias y comprueba que se cumplan las
especificaciones tcnicas adecuadas por parte de los fabricantes que participan en el
desarrollo de la TDT Hbrida. El espectador podr encontrar una completa gama de
receptores Certificados con el logo TDT Hbrida, que indica que dicho aparato ofrece
la garanta tecnolgica necesaria para ofrecer el servicio, existe un portal donde se
encuentra la lista de estos dispositivos, las marcas homologadas son: Panasonic,
Philips, Sony, LG, Samsung y Televes [31].
Con HbbTV tambin se puede incluir una gua electrnica de programas (EPG)
mucho ms dinmica y amigable que el estndar EPG anterior, esta nueva aplicacin
del EPG incluye fotografas y demostraciones en video.
41
instalado. En Espaa se estima que se terminar el ao con unos 2 millones de TV
conectados a la red, y que habr alrededor de 1 milln de televisores hbridos. De
momento no se dispone de cifras sobre el nmero de receptores con HbbTV en el
mercado.
42
este tipo de televisin es importante que las cadenas pongan contenidos atractivos, y
no slo TVE, sino todas en general". Lo mejor de todo para ellos, como indic Samuel
Fabra, es que "aunque no se renovarn tan rpido como los smartphone, los
televisores actuales no van a tardar 20 aos, como ocurra antes, para ser sustituidos,
por lo que entre todos hay que dar un impulso a la televisin hbrida".
43
ofreciendo algo nuevo". Lo de menos es la tecnologa que va vinculada a este
servicio, "hay que hacer que sta sea invisible, porque la gente tiene que saber que
no debe conocer cosas tecnolgicas para poder acceder al servicio".
MIDDLEWARE GINGA
44
escogido en reconocimiento a la cultura, arte y continua lucha por libertad e igualdad
del pueblo brasileo [41].
45
destacado, lo que no ocurre en otros pases donde ya tienen implantado un Sistema
de TV Digital hace mucho ms tiempo [14].
46
Fig. 12 Arquitectura de la TV Digital, con las tecnologas utilizadas en cada capa
47
La finalidad de la capa del middleware o capa intermedia es ofrecer un servicio
estandarizado para las aplicaciones (capa superior), escondiendo las peculiaridades y
heterogeneidades de las capas inferiores (tecnologas de compresin, de transporte y
de modulacin). El uso del middleware facilita la portabilidad de las aplicaciones,
permitiendo que sean transportadas para cualquier receptor digital (o set top box)
que soporte el middleware adoptado. Esa portabilidad es primordial en sistemas de
TV digital, pues es muy complicado considerar como premisa que todos los
receptores digitales sean exactamente iguales.
48
aplicaciones Ginga pueden utilizar las facilidades de los ambientes de aplicacin
declarativo y de procedimiento.
49
Ginga-NCL y Ginga-J son construidos sobre los servicios ofrecidos por el modulo
del ncleo comn de Ginga (Ginga-Common Core), cuya composicin se muestra en
la figura 15. [14].
50
encabezamiento cerrado, presentan un caso especial donde la aplicacin nativa
puede estar activa por largos periodos concurrentemente con aplicaciones Ginga
[14].
Para las tareas que requieren la programacin algortmica, NCL cuenta con LUA
como su lenguaje de scripting. Para facilitar el desarrollo de aplicaciones Ginga-NCL,
PUC-Rio tambin cre la herramienta Composer, un entorno de creacin dirigido a la
creacin de programas de NCL para la televisin digital interactiva. En esta
herramienta, las abstracciones se definen en los distintos tipos de puntos de vista
que le permiten simular un tipo especfico de la edicin (estructural, temporal,
disposicin y textual). Estas visiones funcionan de forma sincrnica con el fin de
ofrecer un entorno de creacin integrado [41].
Ginga-J (Java)
51
tarde con la especificacin abierta Java DTV, desarrollada por Sun Microsystems,
ahora Oracle Corporation [41].
52
Los pases latinoamericanos tras la adopcin del estndar ISDB-Tb, ya han
comenzado sus planes para hacer la transicin hacia la televisin digital y junto con
ello GINGA actualmente est teniendo un gran desarrollo, principalmente su versin
de GINGA NCL, por ser la que no necesita pagar royalties. En algunos pases como
Brasil y Argentina ya han declarado a GINGA NCL como obligatorio para los equipos
receptores que ingresan a sus mercados, con esto han conseguido dar un impulso
fuerte para el xito de GINGA. En estos pases que actualmente son los pioneros en
aplicaciones interactivas ya existe desarrollo de aplicativos GINGA que son
transmitidos junto con la programacin habitual en los canales de la TDT.
53
hallan interesante el poder interactuar con sus televisiones sin tener que pagar por
ello.
54
CAPTULO 3
55
A continuacin se muestra el cdigo donde se observa que se incluye el enlace
o URL de una aplicacin NCL, para el ejemplo se utiliz la aplicacin HbbTV de la
Televisin Espaola.
Como se puede observar en el cdigo NCL tiene una estructura muy parecida a
HTML pues como ya se mencion est basada en lenguaje de marcas XML. Dentro del
cuerpo se instancia una puerta de entrada (port) que inicializar la aplicacin y se
instancia un objeto hipermedia (media) con las propiedades de alto y ancho para la
resolucin de la pantalla, en nuestro caso se utiliz el 100%, tambin se puede
trabajar con el nmero de pixeles. Y muy importante es incluir la propiedad
(focusIndex) que es la que permite seleccionar el objeto y mostrarlo. Cabe mencionar
que para la manipulacin de objetos hipermedia tambin se lo puede hacer por
medio de Lua que es un lenguaje imperativo complemento de NCL que es solo
declarativo, pero esta sera una integracin ms compleja con el javascript de la
aplicacin HBBTV.
56
Fig. 16 Aplicacin HbbTV de la RTVE en GINGA.
Tambin se realiz pruebas en el Set Top Box de EITV para TDT con el estndar
ISDB-Tb que incluye el middleware GINGA, para conocer las caractersticas del mismo
se incluye la hoja tcnica en el (Anexo 1).
57
middleware GINGA y por ser una implementacin propietaria de EITV no se pudo
obtener mayor detalle sobre la misma.
58
Antes de detallar los navegadores que se han elegido para hacer las pruebas de
compatibilidad con las aplicaciones HbbTV, es importante conocer las comparaciones
y las caractersticas de algunos de ellos, as como tambin los rankins de acuerdo de
los ms usados y populares en la web. A continuacin en la figura 17 se muestra la
utilizacin y la popularidad de los navegadores ms utilizados a todo el mundo [70].
59
Fig 18 Uso de Navegadores en el mundo.
60
Navegador Autor ltima versin Coste Licencia de Motor de
estable (USD) software renderizado
Berkelium Google 11.0.696.57 Gratuito Libre: BSD Blink
Chromium (Descontinuado)
Google Chrome Google 36.0.1985.143 Gratuito Libre: BSD Blink
(Algunas fuentes
cerradas)
Mozilla Firefox Fundacin 28.00 Gratuito Libre: MPL, GNU Gecko
Mozilla GPL, GNU LGNU
Opera Opera 22.0 Gratuito Software no libre Blink
Software
Chromium Google 38.0.2123.1 Gratuito Libre: BSD Blink
Emdedded
Chromium
Framework (CEF)
Iceweasel Debian 24.0 Gratuito Libre: MPL Gecko
Webkit Web Webkit 0.5.0 (Versin de Gratuito Libre: GNU GPL, KHTML
Browser Prueba) GNU LGPL y BSD
Konqueror KDE 4.10.2 Gratuito Libre: GNU GPL KHTML
Tabla 3 Informacin General Bsica sobre los navegadores [70] [71].
Berkelium SI SI SI SI NO
Google Chrome SI SI SI NO NO
Mozilla Firefox SI SI SI SI SI
Opera SI SI SI SI SI
Chromium Emdedded SI SI SI SI NO
Framework (CEF)
Iceweasel SI NO SI NO NO
Webkit Web Browser SI SI SI NO NO
Konqueror SI SI SI SI SI
Tabla 4 Soporte en los Sistemas Operativos [70] [71].
Navegador CCS2.1 Frames Java xHTML XSLT HTTP ECMA DOM2 SSL
Script Script
Berkelium SI SI SI SI SI SI SI ? ?
Google Chrome SI SI SI SI SI SI SI SI SI
Mozilla Firefox SI SI SI SI SI SI SI SI SI
Opera SI SI SI SI SI SI SI SI SI
Chromium Emdedded SI SI SI SI SI SI SI SI SI
Framework (CEF)
Iceweasel SI SI SI SI SI SI SI SI SI
Webkit Web Browser SI SI SI SI NO SI SI SI SI
Konqueror SI SI SI SI NO SI SI SI SI
Tabla 5 Soporte de Tecnologas y Protocolos Web [70] [71].
61
Pero antes de pasar a realizar las evaluaciones a continuacin se detalla
brevemente algunas caractersticas importantes de los navegadores seleccionados
para ser evaluados, tambin se incluye la descripcin del navegador ANT Galio que
utiliza la mayora de dispositivos HbbTV, para poder tener una base y comparar cul
de los navegadores que luego se describen es el ms idneo.
La Plataforma HbbTV de ANT Galio est formada por el poderoso Browser ANT
Galio y un conjunto completo de extensiones HbbTV como se puede observar en la
figura 20, estrechamente integrada para ofrecer la funcionalidad de TV fiable con
experiencias atractivas para el usuario. ANT est a la vanguardia del estndar HbbTV,
que ofrece una solucin llave en mano para las dos versiones 1.1.1 y 1.5 de la
especificacin HbbTV para todos los dispositivos de TV. Esta plataforma se ha
implementado en muchas series de fabricantes de dispositivos, comenzando con los
primeros receptores HbbTV desde diciembre de 2009. Por lo cual proporcionar una
plataforma robusta, flexible y probada, la Plataforma HbbTV ANT Galio permite tanto
a los proveedores de servicios y fabricantes de dispositivos desarrollar y desplegar
aplicaciones HbbTV afines para los servicios de transmisin de TV hbrida de forma
62
rpida y fcil. Al ser una plataforma hbrida rica, no solo es compatible con HbbTV,
sino tambin con una amplia gama de servicios de televisin por internet. Por todas
las caractersticas descritas la Plataforma HbbTV de ANT Galio es el middleware de
eleccin para muchos fabricantes de dispositivos lderes [69].
La Plataforma Galio ANT ofrece soporte para todos los estndares abiertos de
hoy para aplicaciones de televisin, incluyendo HbbTV, OIPF y HTML5. Tambin
proporciona soporte para las API de JavaScript avanzados de ANT para la TV y los
medios de control.
Todas estas APIs proporcionan un enlace entre los elementos de alto nivel de la
interfaz de usuario y el cdigo porttil optimizado nativo, de la Plataforma Galio ANT
para entregar experiencias de televisin adaptados a las caractersticas de
implementacin particulares.
63
de aplicaciones para centrarse en la experiencia del usuario en lugar de la tecnologa
involucrada, con alto nivel de JavaScript API adaptado a conceptos que son familiares
en un televisor o sistema de entretenimiento en el hogar. Todas las aplicaciones y
servicios se desarrollan utilizando tecnologas web familiares para implementar la
interfaz de usuario y funcionalidad de la aplicacin [69].
64
Unicode y soporte de mltiples idiomas internacionales
Concesin de licencias de cdigo fuente disponible
Apto para cualquier CPU 32/64 bits y OS / RTOS
Portable, modular y arquitectura extensible
Algoritmos escalables para CPU y uso eficiente de la memoria
Soporta RGB y YUV frame buffers
Construido para el uso con un control remoto de TV estndar - sin
necesidad de un ratn o un teclado
Amplio soporte para los estndares actuales de televisin, fcil reutilizacin
para otros tipos de productos ms all de HbbTV [69].
Berkelium
Berkelium es una biblioteca con licencia BSD que ofrece un navegador off-
screen (que se puede insertar dentro de otra aplicacin) basado en el cdigo abierto
de Google Chromium web browser. Se aprovecha del renderizado multiproceso de
Chromium para aislar los navegadores de los dems y puede reproducir cualquier
bfer en memoria. El usuario de la biblioteca puede inyectar cdigo javascript de
entrada y en las pginas web para su control, as como escuchar los eventos
generados por la pgina, tales como eventos de navegacin, eventos de secuencia de
carga y eventos de pintura. Berkelium ofrece un pequeo API para embeber un
completo y funcional navegador en cualquier aplicacin [55].
65
Google Chrome
66
El 2 de septiembre de 2008 sali a la luz la primera versin al mercado, siendo
esta una versin beta. Finalmente, el 11 de diciembre de 2008 se lanz una versin
estable al pblico en general. Actualmente el navegador est disponible para los
sistemas operativos de escritorio Microsoft Windows, Mac OS X, Ubuntu, Debian,
Fedora, openSUSE, Chrome OS y en los sistemas operativos mviles Android y iOS
[56].
Mozilla Firefox
Es compatible con varios lenguajes web, incluyendo HTML, XML, XHTML, SVG,
CSS 1, 2 y 3, ECMAScript (JavaScript), DOM, MathML, DTD, XSLT, XPath, e imgenes
PNG con transparencia alfa. Tambin incorpora las normas propuestas por el
WHATWG y es compatible con el elemento HTML Canvas.
67
hechos a partir del cdigo de Firefox. Aproximadamente el 40 % del cdigo de Firefox
est escrito por voluntarios [57].
FireHbbTV plugging
68
El programa est basado en el navegador de Opera, pero corre como una mquina
virtual independiente emulando el comportamiento de un receptor con HbbTV [63].
El navegador web Opera fue creado por la empresa noruega Opera Software.
Usa el motor de renderizado Blink. Los sistemas operativos compatibles con Opera
son Microsoft Windows y Mac OS X. Los usuarios de GNU/Linux y FreeBSD deben
instalar versiones antiguas que tengan el motor Presto. Hay versiones de Opera para
telfonos mviles y tabletas. Los sistemas operativos mviles soportados son
Maemo, BlackBerry, Symbian, Windows Mobile, Android e iOS; as como la
plataforma Java ME. Opera ha sido pionero en originar caractersticas que han sido
posteriormente adoptadas por otros navegadores web, como por ejemplo el Acceso
Rpido (Speed Dial) [64].
69
Chromium Embedded Framework
70
mente. El marco de base incluye C y C + + de programacin de interfaces expuestas a
travs bibliotecas nativas que aslan la aplicacin principal de los detalles de la
implementacin de Chromium y Blink. Proporciona una estrecha integracin entre el
navegador y la aplicacin principal incluyendo soporte para plugins personalizados,
protocolos, objetos de JavaScript y las extensiones de JavaScript. La aplicacin
principal puede cargar opcionalmente control de los recursos, la navegacin, los
mens contextuales, impresin y ms, aprovechando al mismo tiempo el mismo
rendimiento y tecnologas de HTML5 disponibles en el navegador web Google
Chrome [60] y [61].
Las distribuciones binarias, que incluyen todos los archivos necesarios para
construir una aplicacin basada en CEF, estn disponibles en la pgina de descargas
[62], incluye los nuevos cambios, pero puede no estar totalmente probado.
Distribuciones binarias son autnomas y no requiere la descarga de CEF o el cdigo
fuente de Chromium. Los archivos de smbolos de depuracin de las distribuciones
binarias de libcef tambin se pueden descargar desde el enlace anterior.
71
Iceweasel
WebKit es una plataforma para aplicaciones que funciona como base para el
navegador web Safari, Google Chrome, Opera, Epiphany, Maxthon, Midori, QupZilla
entre otros. Est basado originalmente en el motor de renderizado KHTML del
navegador web del proyecto KDE, Konqueror.
72
WebKit est desarrollada en Objective-C y posibilita interactuar con un servidor web
para recuperar y renderizar pginas web, descargar archivos, y administrar plugins.
Webkit incluye dos frameworks de ms bajo nivel: WebCore, un analizador sintctico
y motor de renderizado de HTML basado en KHTML, y JavaScriptCore, un intrprete
de JavaScript basado en KJS. Con los lanzamientos pre-alfa se est incluyendo un
depurador de Javascript llamado Drosera4.
73
modelo es similar a lo que a da de hoy Google Chrome tiene implementado, la
principal diferencia es que en WebKit2 ha construido el modelo de proceso de
separacin directamente en un framework, permitiendo que otros desarrolladores lo
puedan utilizar. Actualmente WebKit2 est disponible para Mac y Windows,
cualquiera que desee portar el cdigo a otro sistema puede hacerlo sin restricciones,
ya que es software libre [66].
74
especficos. Esto permite, por ejemplo, ver un documento de KOffice dentro de
Konqueror, evitando la necesidad de abrir otra aplicacin.
Adems de navegar por directorios y sitios web, Konqueror utiliza los plug-ins
KIO (KDE Input-Output, o sistema de entrada-salida de KDE) para extender sus
capacidades. KIO permite acceder a diferentes protocolos como HTTP o FTP.
Konqueror tambin puede utilizar plug-ins KIO para acceder a archivos ZIP,
comparticiones Samba (Windows) o cualquier otro protocolo imaginable como links
ed2k, Audio CD, ripeando su contenido simplemente arrastrando y soltando.
Konqueror soporta tambin la navegacin por directorios locales, ya sea
mediante la introduccin de la ruta en la barra de direcciones o mediante la seleccin
de iconos en los paneles [68]. Konqueror permite:
Visualizar los contenidos de mltiples directorios en simultneo.
Ordenar los elementos de cada directorio segn criterios preestablecidos (por
fecha, tamao, nombre, tipo, etc.).
Generar previsualizaciones de archivos de texto, documentos HTML,
imgenes y vdeos en el acto.
Mover, copiar, eliminar, crear, ejecutar, visualizar y editar archivos y
directorios desde mens simples.
75
el ENTER.
Berkelium No carga. No se puede No se puede probar. No se puede
probar. probar.
Chrome OK OK OK OK
FireHbbTV OK OK OK OK
pluging Firefox
Firefox No carga. No se puede No se puede probar. No se puede
probar. probar.
Opera HbbTV OK OK OK No funciona (Tiene
Emulator problema con el
plugging de vdeo)
Chromium CEF OK OK OK OK
IceWeasel No carga. No carga. No carga. No carga.
WebKit No carga. No carga. No carga. No carga.
Browser
Konqueror No carga. No carga. No carga. No carga.
Tabla 6 Resultados de la evaluacin de los navegadores con la Aplicacin HbbTV 1.
76
Emulator teclas de problema con el
navegacin. Se plugging de vdeo)
puede acceder
con el mouse.
Chromium CEF OK No funcionan las OK No funciona (Tiene
teclas de problema con el
navegacin. Se plugging de vdeo)
puede acceder
con el mouse y
el ENTER.
IceWeasel OK No funcionan las OK OK
teclas de
navegacin. Se
puede acceder
con el mouse y
el ENTER.
WebKit OK No funcionan las OK No funciona (Tiene
Browser teclas de problema con el
navegacin. Se plugging de vdeo)
puede acceder
con el mouse y
el ENTER.
Konqueror OK No funcionan las OK No funciona (Tiene
teclas de problema con el
navegacin. Se plugging de vdeo)
puede acceder
con el mouse y
el ENTER.
Tabla 7 Resultados de la evaluacin de los navegadores con la Aplicacin HbbTV 2.
77
Chromium CEF OK OK OK OK
IceWeasel OK OK OK OK
WebKit OK OK OK OK
Browser
Konqueror OK OK OK No funciona (Tiene
problema con el
plugging de vdeo)
Tabla 1.8 Resultados de la evaluacin de los navegadores con la Aplicacin HbbTV 3.
El navegador que obtuvo los mejores resultados en las pruebas realizadas con
las diferentes aplicaciones HbbTV fue el Chromium Embedded Framework (CEF)
adems que en el anlisis de sus caractersticas y su cdigo abierto y gratuito lo hace
el ganador entre los navegadores probados, tambin tuvieron buenos resultados los
navegador Iceweasel, Webkit y el Konqueror en ese orden. Por lo cual se concluye
78
que si se quiere reproducir aplicaciones HbbTV dentro del middleware Ginga es
necesario hacer la implementacin del Chromium Embedded como nuevo navegador
de Ginga.
1. Acceso a los cdigos fuente.- Se necesita tener acceso a todo el cdigo abierto de
GINGA donde incluyen libreras, extensiones, funciones, etc. y de igual forma
descargar y tener disponible todos los cdigos binarios precompilados y
cabeceras del Chromium Embedded Framework que se pueden encontrar en la
web [62].
2. Instalacin del software para su compilacin.- El Middleware GINGA
actualmente soporta un build en Windows por medio de Visual Studio [75] y un
build en Linux via autotools [76]. Se puede utilizar cualquiera de los dos segn
con cual se est ms familiarizado aunque se aconseja utilizar el build de
Windows que es el que est ms estable. En este caso se ha escogido el programa
Visual Studio Ultimate 2012.
3. Compilacin de Ginga.- Cabe mencionar que para hacer las pruebas pertinentes y
tener acceso al cdigo fuente de GINGA se ha contactado con los creadores del
sistema de la Pontfice Universidad Catlica de Rio de Janeiro y muy gentilmente
se nos ha brindado la apertura y la ayuda necesaria, as como el acceso a los
cdigos binarios con las dependencias (dll) previamente configuradas. Dentro de
la carpeta que contiene el cdigo fuente de Ginga con todas las dependencias ya
configuradas, se debe abrir el archivo GingaWindowsMonolitic de tipo VC++
Project por medio del Visual Studio, este archivo se encuentra dentro del
79
directorio \ginga\ginga-vs2010-solution\GingaWindowsMonolitic y es el que nos
permitir realizar la compilacin. En la figura 21 se muestra el IDE de Visual
Studio con el proyecto de Ginga cargado, se observa que existe una gran cantidad
de clases, libreras y cdigo C++ en general, por lo que habr que tener
habilidades con este lenguaje para poder hacer los cambios y seguir el proceso de
integracin con xito.
4. Ejecucin de Ginga.- Para comprobar que los archivos descargados con las
dependencias (dll) configuradas previamente estn funcionando sin problema
bajo el sistema operativo que se vaya a utilizar, es necesario invocar una
ejecucin de una aplicacin NCL a travs del terminal (cmd).
El binario final de Ginga se encuentra en la carpeta ginga\ginga-vs2010-
solution\Debug, aqu es donde se debe ubicar desde la ventana del cmd para
invocar una aplicacin de Ginga NCL, para ejecutar la aplicacin se utiliza el
siguiente comando: ginga --ncl <PATH-APP-NCL> --vmode 640x480.
5. Anlisis de las APIs del Chromium Embedded Framework.- Antes de comenzar
con la integracin es indispensable tratar de entender bien las APIs y cmo
utilizar el Chromium Embedded Framework. Para eso se puede tener informacin
en los tutoriales de CEF [60].
80
6. Integracin del Chromium Embedded Framework.- Para esta integracin se debe
tener en cuenta que en el cdigo actual de GINGA ya se encuentra embebido el
navegador Berkelium, por lo que ahora la idea es tratar de analizar cmo estn
funcionando y cules son las extensiones que manejan el Player de HTML y
reemplazarlas por las nuevas extensiones del Chromium. En conclusin tratar de
programar encima las clases del Berkelium ya existentes y sustituir las llamadas
que hace al Berkelium por llamadas al Chromium Embedded Framework.
La que mayor demanda de esfuerzo tendr es la integracin de las APIs que
manipulan el video principal en el Player principalmente porque para lograr eso
se debe acceder a la parte comn del ncleo de Ginga conocido como Ginga-CC
(Common Core) como se mostr en la figura 15.
Haciendo una breve revisin en las cabeceras funciones y cdigos de Ginga
detallo las siguientes clases del Berkelium que ahora ser necesario reprogramar
con las del Chromium Embedded Framework.
./gingacc-player/include/player/BerkeliumHandler.h
./gingacc-player/include/player/BerkeliumPlayer.h
./gingancl/include/gingancl/adapters/application/declarative/xhtml/berkelium/Berkeli
umPlayerAdapter.h
./gingacc-player/src/application/declarative/xhtml/berkelium/BerkeliumHandler.cpp
./gingacc-player/src/application/declarative/xhtml/berkelium/BerkeliumPlayer.cpp
./gingancl/src/adapters/application/declarative/xhtml/berkelium/BerkeliumPlayerAda
pter.cpp
81
CAPTULO 4
Para desarrollar una aplicacin GINGA primero se debe definir el diseo con la
funcionalidad que se le quiere dar a la aplicacin, es decir disear un bosquejo donde
se ubique el rea de presentacin de las imgenes o archivos multimedia, con los
porcentajes o tamao de pixeles que se quiera mostrar en la pantalla, se recomienda
utilizar porcentajes para definir los atributos de las imgenes o regin de video con el
fin de que se acople a la resolucin y tamao de cualquier monitor.
82
dentro de la cabecera head se instancia los atributos region (Dnde se va
mostrar las imgenes?, es decir el rea que ocuparan), descriptor (Cmo se van a
mostrar las imgenes?, es decir es donde se detalla las propiedades de las imgenes,
por ejemplo le daremos un focusIndex a cada una de las imgenes para poder
navegar sobre un men); a continuacin dentro de la cabecera se crea una base de
conectores conectorBase (son los que hacen funcionar a los enlaces o
LinkConectors) para que la aplicacin cumpla con las funciones que se requiera.
Dentro del cuerpo body se instancia los atributos media (Qu imgenes se va
mostrar? es decir se detalla la fuente de las imgenes), el atributo port (es la
puerta de entrada a la aplicacin, la primera imagen que da la cara para acceder a la
aplicacin) y finalmente el atributo Link (Cundo se van a mostrar las imgenes?,
es decir el que nos permitir interactuar con las imgenes estos funcionan segn los
conectores instanciados en la cabecera). A continuacin se muestra el cdigo del
documento NCL principal de la aplicacin, donde se podr observar la estructura con
los atributos y las propiedades mencionadas.
<!--AREA DE DESCRIPTORES-->
<descriptorBase>
<descriptor id="dfondo" region="rgfondo"/>
<descriptor id="dVideo" region="rgVideo"/>
83
<descriptor id="drojo" region="rgrojo"/>
<descriptor id="drojo2" region="rgrojo2"/>
<descriptor id="drg1" region="rg1" focusIndex="1"
moveLeft="4" moveRight="2"/>
<descriptor id="drg2" region="rg2" focusIndex="2"
moveLeft="1" moveRight="3"/>
<descriptor id="drg3" region="rg3" focusIndex="3"
moveLeft="2" moveRight="4"/>
<descriptor id="drg4" region="rg4" focusIndex="4"
moveLeft="3" moveRight="1"/>
<descriptor id="drginfo" region="rginfo"/>
</descriptorBase>
<!--AREA DE CONECTORES-->
<connectorBase>
<causalConnector id="onKeySelectionStartNStopN">
<connectorParam name="keyCode"/>
<simpleCondition role="onSelection"
key="$keyCode"/>
<compoundAction operator="seq">
<simpleAction role="start" max="unbounded"
qualifier="par"/>
<simpleAction role="stop" max="unbounded"
qualifier="par"/>
</compoundAction>
</causalConnector>
<causalConnector id="onKeySelectionSet">
<connectorParam name="keyCode"/>
<connectorParam name="var"/>
<simpleCondition role="onSelection"
key="$keyCode"/>
<simpleAction role="set" value="$var"/>
</causalConnector>
<causalConnector id="onSelectionStartNStopN">
<simpleCondition role="onSelection"/>
<compoundAction operator="seq">
<simpleAction role="start" max="unbounded"
qualifier="par"/>
<simpleAction role="stop" max="unbounded"
qualifier="par"/>
</compoundAction>
</causalConnector>
</connectorBase>
</head>
<body>
<!--AREA DE MEDIAS-->
<media id="fondo" src="media/fondo2.png" descriptor="dfondo"/>
<media id="video" src="media/Hbbtv2.mp4" descriptor="dVideo"><!-
-TOMA AL BROADCAST COMO FUENTE DE VIDEO-->
<property name="bounds"/><!--PERMITE EL
REDIMENSIONAMIENTO-->
</media>
<media id="irojo" src="media/logo_inicio.png"
descriptor="drojo"/>
84
<media id="irojo2" src="media/salir2.png" descriptor="drojo2"/>
<media id="irg1" src="media/opc1.png" descriptor="drg1"/>
<media id="irg2" src="media/opc2.png" descriptor="drg2"/>
<media id="irg3" src="media/opc3.png" descriptor="drg3"/>
<media id="irg4" src="media/opc4.png" descriptor="drg4"/>
<media id="irinfo1" src="media/inf1.png" descriptor="drginfo"/>
<media id="irinfo2" src="media/inf2.png" descriptor="drginfo"/>
<media id="irinfo3" src="media/inf3.png" descriptor="drginfo"/>
<media id="irinfo4" src="media/inf4.png" descriptor="drginfo"/>
<!--PUERTA DE ENTRADA-->
<port id="i1" component="video"/>
<port id="i2" component="irojo"/>
<link xconnector="onKeySelectionStartNStopN">
<bind role="onSelection" component="irojo2" >
<bindParam name="keyCode" value="RED"/>
</bind>
<bind role="stop" component="fondo" />
<bind role="stop" component="irinfo1"/>
<bind role="stop" component="irinfo2"/>
<bind role="stop" component="irinfo3"/>
<bind role="stop" component="irinfo4"/>
<bind role="stop" component="irojo2" />
<bind role="stop" component="irg1" />
<bind role="stop" component="irg2" />
<bind role="stop" component="irg3" />
<bind role="stop" component="irg4" />
<bind role="start" component="irojo" />
</link>
<link xconnector="onKeySelectionSet">
<bind role="onSelection" component="irojo2">
<bindParam name="keyCode" value="RED"/>
</bind>
85
<bind role="set" component="video" interface="bounds">
<bindParam name="var" value="0,0,200%,200%"/>
</bind>
</link>
<link xconnector="onSelectionStartNStopN">
<bind role="onSelection" component="irg1" />
<bind role="start" component="irinfo1" />
<bind role="stop" component="irinfo2" />
<bind role="stop" component="irinfo3" />
<bind role="stop" component="irinfo4" />
</link>
<link xconnector="onSelectionStartNStopN">
<bind role="onSelection" component="irg2" />
<bind role="start" component="irinfo2" />
<bind role="stop" component="irinfo1" />
<bind role="stop" component="irinfo3" />
<bind role="stop" component="irinfo4" />
</link>
<link xconnector="onSelectionStartNStopN">
<bind role="onSelection" component="irg3" />
<bind role="start" component="irinfo3" />
<bind role="stop" component="irinfo1" />
<bind role="stop" component="irinfo2" />
<bind role="stop" component="irinfo4" />
</link>
<link xconnector="onSelectionStartNStopN">
<bind role="onSelection" component="irg4" />
<bind role="start" component="irinfo4" />
<bind role="stop" component="irinfo1" />
<bind role="stop" component="irinfo3" />
<bind role="stop" component="irinfo2" />
</link>
</body>
</ncl>
86
Fig 22 Aplicacin Ginga rodando sobre el Emulador.
87
Fig. 23 Aplicacin Ginga en la TV mediante el STB de EiTV.
88
HTML, existen tambin herramientas propietarias que permiten generar cdigos
HTML como el Dreamweaver y que adems son intrpretes de los cdigos CSS, XML,
JavaScript, PHP, etc. En este caso se ha ocupado el Dreamweaver y el propio editor
de cdigos que tiene el Servidor Web donde se aloja la aplicacin.
Para esta aplicacin se necesita dos archivos CE-HTML, la primera es el cdigo
que se muestra en el siguiente cdigo, este contiene la puerta de entrada a la
aplicacin, para acceder al men principal de la aplicacin se debe presionar el botn
rojo del mando a distancia.
<style>
#rb{
top: 15px;
left: 900px;
position: absolute;
background-repeat: no-repeat;
}
</style>
</head>
<script type="text/javascript">
function mostrarUocultarRetardado(){
setTimeout("mostrarUocultar('botonRojo');",5000);
}
89
vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}
</script>
</body>
90
<script type="text/javascript" src="js/etiquetas.js"></script>
<script type="text/javascript" src="js/fecha.js"></script>
<script type="text/javascript" src="js/fichas.js"></script>
<script type="text/javascript" src="js/hbbtvlib.js"></script>
<script type="text/javascript" src="js/keycodes.js"></script>
<script type="text/javascript" src="js/base.js"></script>
<script type="text/javascript" src="js/navegacion.js"></script>
<script type="text/javascript" src="js/teletexto.js"></script>
<title>DIEGO GATV</title>
</head>
<body onload="startText();">
91
HbbTV para Firefox, denominado FireTV. En la figura 24 se puede observar la interfaz
principal de la aplicacin, que muestra un men con 4 opciones, para acceder a una
de ellas se lo hace con ENTER en el teclado de la PC o con la tecla OK del mando de la
TV, para navegar entre las opciones se lo hace con las teclas de navegacin (flecha
izquierda y flecha derecha).
92
local, netamente informativa, no sera necesario que el receptor est conectado al
internet, pues la aplicacin viaja por el carrusel de datos del Transport Stream y es
descargada en el receptor para que el middleware GINGA muestre la interfaz grfica
de la aplicacin.
En un anlisis anterior se haba buscado hallar una relacin entre los dos
estndares para encontrar alguna manera de integrarles o complementarles, de
hecho se describi tambin los pasos seguidos para lograr una integracin plena de
las aplicaciones HbbTV sobre GINGA, aprovechando que la arquitectura del sistema
GINGA incluye un navegador de HTML. En la tabla 10, se detalla un anlisis
comparativo de las caractersticas y especificaciones principales de los dos
estndares.
93
Plataforma abierta Si Si
Royalties HbbTV actualmente no est GINGA NCL No
bajo las reclamaciones de GINGA JAVA Si
derechos de autor o
patentes [77].
Desarrolladores Consorcio Europeo de las GINGA NCL PUC-Rio de
Industrias de TV. Janeiro
GINGA JAVA UFPB
(Universidad Federal de
Paraba)
Estndar hbrido Si Si
Pases EUROPA (Alemania, Francia, LATINOAMRICA (Brasil, Per,
Espaa, Austria, Polonia, Argentina, Chile, Venezuela,
Blgica, Dinamarca, Ecuador, Costa Rica, Paraguay,
Finlandia, Hungra, Holanda, Bolivia, Uruguay, Nicaragua y
Republica Checa y Suiza) Guatemala)
Lenguaje de CE-HTML, XML, CSS NCL (Nested Context
Programacin Language)
Declarativo
Lenguaje de JavaScript LUA
Programacin JAVA
Imperativo
Interactividad Local No Si
(Sin conexin a
Internet)
Interactividad Si Si
Completa (Con
conexin a Internet)
Despliegue Muy maduro en pases Muy maduro en Brasil y
como Alemania, Francia y Argentina, en el resto de pases
Espaa, en desarrollo en el estn en etapas de pruebas,
resto de Europa. hay que tomar en cuenta que
la TDT en Latinoamrica est
empezando la transicin.
Modo de difusin La puerta de entrada de la La aplicacin integra se
aplicacin se transmite con transmite con la TDT, dentro
la TDT, dentro del carrusel del carrusel de datos definida
de datos definida en la en la Tabla AIT, o se puede
Tabla AIT, o se puede incluir incluir mediante una aplicacin
mediante una aplicacin dentro del receptor HbbTV.
dentro del receptor HbbTV.
TDT que utiliza DVB ISDB-Tb
Funciona sobre IPTV Si Si
Versin nueva a ser HbbTV 2.0 No hay informacin
lanzada
Tabla 10. Comparacin especificaciones HbbTV vs GINGA.
94
Ahora que ya se conoce las caractersticas y especificaciones principales a
continuacin se muestra un anlisis ms profundo en base a la experiencia del
manejo de los dos estndares, en base a los resultados de la aplicacin mostrada en
las dos plataformas y en base al rendimiento sobre los receptores testeados. Para lo
cual se plante mostrar comparaciones cuantitativas y cualitativas tanto del lado del
programador como del lado del usuario.
COMPARACIN CUALITATIVA
95
Accesibilidad.
En este parmetro se evala que tan accesible es la aplicacin para el usuario,
es decir si le llama la atencin y el tiempo que demora en acceder a la misma y
comenzar a interactuar con la misma.
Usabilidad
La usabilidad es muy importante porque para este tipo de aplicaciones el
usuario no recibe un manual o las instrucciones para que pueda utilizar la aplicacin,
por lo que debe ser muy importante el cmo se presenta visualmente, para que el
usuario intuya a utilizarla mediante la correcta utilizacin de los colores y las teclas
de navegacin del mando a distancia.
Impresin General
Este parmetro se basa en cmo le pareci la experiencia de utilizar la
aplicacin e interactuar con las opciones e informacin que recibi el usuario, para
esto hay que tener en cuenta que la aplicacin no debe ser intrusiva por lo que por
ejemplo se debe mantener activo en la TV la programacin que el usuario estaba
asistiendo en la televisin, ya que la TV por lo general no es de uso personal, ms
bien se la suele ver en conjunto, entre amigos, familia, pareja, etc. Y si alguien est
viendo su partido de futbol o su novela preferida, resultara molesto que alguien use
o interacte con la aplicacin. Por esto es indispensable manejar
redimensionamiento de pantalla y que las imgenes sean de alta calidad y vistosas,
atractivas visualmente para el usuario.
Para las dos plataformas se ocup el mismo diseo de la aplicacin, por lo que
en este aspecto ms que tener un resultado comparativo entre los dos plataformas
se obtuvo un resultado cualitativo de la aplicacin en general, ya que para el usuario
resulta transparente la plataforma sobre la cual est corriendo o recibiendo la
aplicacin. Para realizar estas pruebas se utiliz a 15 voluntarios que no tenan
conocimiento sobre estos sistemas a los cuales se le present la aplicacin en la TV y
se les entreg el mando a distancia para que interacten, los parmetros que se
evaluaron son los tres antes mencionados (Accesibilidad, Usabilidad e Impresin
general) calificando con tres niveles (Excelente, Bueno y Malo). En la tabla 11 y en la
figura 26 se muestran los resultados.
96
PARMETRO Excelente Bueno Malo
Accesibilidad 5 7 3
Usabilidad 4 7 4
Impresin
General 8 6 1
Tabla 11. Resultado cualitativo de la aplicacin segn los usuarios
Impresin General
Excelente
Usabilidad
Bueno
Malo
Accesibilidad
Fig. 26. Grfico de los resultados cualitativos de la aplicacin segn los usuarios
97
para lo cual en la tabla 12 se evala varios parmetros desde el punto de vista del
desarrollador de la aplicacin.
98
HTML por ser un lenguaje ms conocido y difundido es ms accesible encontrar
informacin con cursos online o tutoriales gratuitos.
COMPARACIN CUANTITATIVA
Para que exista metodologa cuantitativa se requiere que entre los elementos
del problema de investigacin exista una relacin cuya naturaleza sea representable
por algn modelo numrico. En esta comparacin cuantitativa se trata de encontrar
una relacin del rendimiento de las aplicaciones basadas en el tiempo que demoran
en presentarse al usuario para lo cual es necesario conocer tambin las
caractersticas del procesador y recursos de memoria de los receptores. En los anexos
1 y 2 se muestra las caractersticas de los receptores, en la tabla 13 se observa las
caractersticas de los procesadores tanto del set top box con GINGA como de la TV
con HbbTV.
Recurso Receptor GINGA Receptor HbbTV
Procesador STi 7105 ARM
(CPU 450 MHz) (CPU 800 Mhz)
Memoria 256 Mbytes 512 Mbytes
RAM
Memoria 128 Mbytes 1 Gbyte
Flash
Tabla 13. Comparacin de las caractersticas del procesador de los Receptores
Aplicacin HbbTV
Imagen Imagen Imagen Imagen Imagen Imgenes Imagen de
Tiempo (s) Opc1 Opc2 Opc3 Opc4 Salir Men Principal Entrada
T1 1,41 1,69 1,85 2,39 2,53 63,54 1,50
T2 1,17 1,32 1,46 1,30 1,76 56,33 1,09
T3 5,85 4,06 4,27 5,72 5,67 4,84 0,70
99
T4 4,03 8,47 9,73 6,48 2,30 3,34 1,66
T5 5,75 1,39 5,20 3,31 2,42 25,00 1,22
T6 1,30 6,07 5,89 2,69 3,04 5,48 1,56
T7 4,80 2,79 2,31 1,97 2,81 36,50 1,12
T promedio 3,47 3,68 4,39 3,41 2,93 27,86 1,26
Tabla 14. Tiempos de Carga de la aplicacin HbbTV
Aplicacin GINGA
Imagen Imagen Imagen Imagen Imagen Imgenes Imagen de
Tiempo (s) Opc1 Opc2 Opc3 Opc4 Salir Men Principal Entrada
T1 1,70 1,43 1,33 1,25 0,85 3,88 2,99
T2 1,31 1,26 1,09 1,18 1,22 4,45 3,37
T3 1,40 1,37 1,07 1,10 0,93 4,59 3,71
T4 1,23 1,20 1,16 1,08 0,99 4,40 3,03
T5 1,41 1,16 1,36 1,18 0,94 5,46 3,79
T6 1,30 1,32 1,33 1,11 0,66 3,87 4,02
T7 1,80 1,79 1,12 1,26 1,03 4,19 3,21
T promedio 1,45 1,36 1,21 1,17 0,95 4,41 3,45
Tabla 15. Tiempos de Carga de la aplicacin GINGA
60,00
50,00
40,00
30,00
20,00
10,00
0,00
T1 T2 T3 T4 T5 T6 T7 T promedio
100
Tiempo de reaccin App. GINGA
6,00
5,00
4,00
3,00
2,00
1,00
0,00
T1 T2 T3 T4 T5 T6 T7 T promedio
Imagen Opc1 Imagen Opc2 Imagen Opc3 Imagen Opc4 Imagen Salir Imgenes Men Imagen de
Principal Entrada
101
en un servidor Web, a comparacin que la de GINGA descarga la aplicacin en su
memoria y la procesa internamente sin requerir realizar una conexin web. Para
realizar las pruebas del tiempo de reaccin se busc tener condiciones ptimas es
decir una conexin de banda ancha estable, como se muestra en la figura 30.
Claramente va ser una ventaja que GINGA reproduce la aplicacin como si fuera
una aplicacin local, que a pesar de tener pocos recursos de hardware lo utiliza bien,
la misma aplicacin HbbTV testeada desde una PC s que tiene mucho mejor
rendimiento que la mostrada en el receptor de TV con HbbTV. Aunque viendo desde
el punto de vista del programador y del servidor de aplicaciones interactivas que
emiten en vivo las aplicaciones dentro de su flujo de transporte, es mucho ms
sencillo gestionar desde cualquier acceso remoto y realizar los cambios en caliente,
ya que la aplicacin siempre est accediendo a internet para obtener informacin, en
el caso de GINGA resulta un poco ms complicado ya que la aplicacin debera ser
modificada e insertada nuevamente dentro del carrusel de datos e indicar que tiene
una actualizacin, por lo que nuevamente en el receptor se debera cerrar
totalmente la aplicacin y volver a cargarla.
102
Experiencia Cuantitativa en Base al Programador.
Lneas de
Cdigo
HbbTV;
1489
Fig. 31. Comparativa de las lneas de cdigo de programacin en la aplicacin HbbTV y GINGA
Y tambin cabe mencionar que las lneas de cdigo de GINGA fueron escritas en
un nico archivo.ncl, y que para la creacin de la misma aplicacin fue necesario
ocupar 18 archivos de diferentes extensiones, html, css y js. Una descripcin grfica
de la comparacin se muestra en la figura 32.
Ginga; 1
HbbTV;
18
103
Con estas comparativas cuantitativas se reafirma la aseveracin ya antes
mencionada que para el programador resulta ms rpido y sencillo realizar una
misma aplicacin sobre GINGA que sobre HbbTV.
VENTAJAS Y DESVENTAJAS
104
Francia y Espaa Debe consolidarse masivo en Latinoamrica.
en el mercado lo antes posible. - Aun no se consolida como un
- Necesita tener mayores recursos estndar obligatorio en los receptores
de hardware en los equipos de TDT.
receptores. - Debe existir mejores herramientas
- Est orientado solo para para gestionar los cambios y
aplicaciones de interactividad total, actualizaciones de las aplicaciones
es decir necesita el canal de retorno interactivas que son transmitidas por
para funcionar. el aire en vivo.
105
CAPTULO 5
CONCLUSIONES
106
para la entrada de los equipos receptores, esto sin duda ser un factor de xito y
junto con el desarrollo de aplicaciones llamativas, ser un buen prembulo para
motivar al telespectador a comprar receptores con GINGA y consumir las aplicaciones
interactivas que se transmitan con la TDT o por IPTV.
RECOMENDACIONES
107
REFERENCIAS
108
[21] Hybrid Broadcast Broadband TV. ETSI TS 102 796 V1.1.1, 2010.
http://www.etsi.org/deliver/etsi_ts/102700_102799/102796/01.01.01_60/ts_1027
96v010101p.pdf. Fecha de consulta 12-03-2014.
[22] Internet TV (Web TV /TV hbrida /Smart TV) http://www.tv-
plattform.de/de/dokumente/dokumente-internetatv. Fecha consulta 12-03-2014.
[23] DVB Standards https://www.dvb.org/standards, Fecha de consulta 12-03-2014.
[24] Televisin Interactiva http://en.wikipedia.org/wiki/Interactive_television,
Fecha de consulta 12-03-2014.
[25] Televisin Interactiva, http://es.wikipedia.org/wiki/Televisi%C3%B3n_
interactiva, Fecha de consulta 12-03-2014.
[26] Qu es HbbTV?, http://www.ceskatelevize.cz/hbbtv/, Fecha de consulta 12-03-
2014.
[27] Antecedentes de HbbTV con transmisores codificados, Fecha de consulta 12-
03-2014. http://www.digitalfernsehen.de/HbbTV-bei-codierten-Sendern-Seite-
2.113447.0.html
[28] Llega la Televisin hbrida, Fecha de consulta 12-03-2014.
http://elpais.com/diario/2011/06/18/radiotv/1308348003_850215.html
[29] La televisin conectada: inteligente o hbrida?, Fecha de consulta 12-03-2014.
http://www.ocu.org/tecnologia/television/noticias/television-conectada
[30] Canales y servicios hbridos. http://www.tdthibrida.es/canales.php, Fecha de
consulta 12-03-2014.
[31] Dispositivos de la TDT Hbrida. http://www.tdthibrida.es/dispositivos.php,
Fecha de consulta 12-03-2014.
[32] AEDETI (Asociacin Espaola de TV Digital Interactiva). www.aedeti.com, Fecha
de consulta 12-03-2014.
[33] Ramn Jess Milln, Televisin Digital Terrestre TDT
http://www.ramonmillan.com/tutoriales/tdt.php, Fecha de consulta 12-03-2014.
[34] One-seg TV Digital Mvil http://blog.pucp.edu.pe/item/79299/one-seg-tv-
digital-movil, Fecha de consulta 12-03-2014.
[35] Televisin Digital Terrestre TDT, Fecha de consulta 12-03-2014.
http://wikitel.info/wiki/Televisi%C3%B3n_digital_terreste,
[36] Interactividad.http://www.televisiondigital.es/tecnologias/Interactividad/Pagi
nas/tdt-hibrida.aspx, Fecha de consulta 12-03-2014.
[37] Segunda Generacin DVB-T2 Fecha de consulta 12-03-2014.
https://www.dvb.org/resources/public/factsheets/dvb-t2_factsheet.pdf
[38] Matthew Huntington, Qu es HbbTV, Fecha de consulta 12-03-2014.
http://www.nagra.com/dtv/company/newsroom/headlines/what-is-hbbtv/
[39] Las nuevas tendencias de la Televisin Hbrida, HbbTv
http://www.redestelecom.es/tendencias/reportajes/1050192003003/television-
hibrida-ya-aqui.1.html, Fecha de consulta 12-03-2014.
[40] Estado actual de los estndares de TV Digital en el mundo
http://www.dtvstatus.net/map/map.html, Fecha de consulta 12-03-2014.
[41] Pgina oficial de GINGA http://www.ginga.org.br, Fecha de consulta 12-03-2014.
[42] MERITXELL, Estebanell, Interactividad e Interaccin, Universidad de Girona
Espaa, http://web.udg.edu/pedagogia/images/gretice/INTERACT.pdf,
109
[43] AYMERICH, Laura, Los nuevos formatos de publicidad interactiva en televisin,
Grupo de investigacin consolidado del Departamento de Comunicacin
Audiovisual y Publicidad de la UAB.
[44] ARCINIEGAS, Jos, AMAYA, Juan, URBANO, Franco, CAMPO, Wilmar,
EUSCATEGUI, Robert, GARCA, Alexander, GARCA, Xabiel, EDiTV: Educacin virtual
basado en televisin interactiva para soportar programas a distancia, Universidad
del Cauca Colombia, Universidad Autnoma de Occidente Colombia,
Universidad de Oviedo Espaa.
[45] PRADO, Emili, FRANQUET, Rosa, SOTO, Mara, RIBES, Xavier, FERNNDEZ, David,
Tipologa funcional de la televisin interactiva y de las aplicaciones de interaccin
con el televisor
[46] SIMIONI, Adriano, Un framework para el desenvolvimiento de aplicaciones
interactivas para Televisin Digital, Centro de Ciencias exactas y Tecnolgicas,
Universidad de Vale do Rio dos Sinos.
[47] LAIOLA GUIMARES, Rodrigo, DE RESENDE COSTA, Romualdo, Interactividad y
Sincronizacin en TV Digital, Departamento de Informtica, PUC de Rio.
[48] RIBEIRO, Jean, Middleware Ginga, Departamento de Ingeniera, Universidad
Federal Fluminense, 2010.
[49] ABNT NBR 15606-5 Asociacin Brasilera de Normas Tcnicas Televisin
Digital Terrestre Codificacin de datos y especificaciones de transmisin para
radiodifusin digital Parte 5: Ginga-NCL para receptores porttiles Lenguaje
aplicacin XML para codificacin de aplicaciones Sistema Brasilero de TV Digital
Terrestre, 2008.
[50] ABNT NBR 15606-4 Asociacin Brasilera de Normas Tcnicas Televisin
digital terrestre Codificacin de datos y especificaciones de transmisin para
radiodifusin digital Parte 4: Ginga-J Ambiente para ejecucin de aplicaciones
de procedimiento Sistema Brasilero de TV Digital Terrestre, 2010.
[51] GOMES, Luiz, FERREIRA Rogiro, FERREIRA, Mrcio, Ginga-NCL: El Ambiente
Declarativos del Sistema de TV Digital Brasilera, Departamento de Informtica,
Pontificia Universidad Catlica de Rio de Janeiro, 2009.
[52] LEMOS DE SOUZA, Guido, CUNHA, Luiz, COELHO Carlos, Ginga-J: El Middleware
de Procedimiento del Sistema de TV Digital Brasilera, Departamento de
Informtica, Universidad Federal de Paraba, 2009.
[53] GOMES SOARES, Luiz, JUNQUEIRA BARBOSA, Simone, Programando en NCL
3.0, Editorial Elsevier, Tercera Edicin, 2009.
[54] CARVALHO, Rafael, FERREIRA, Joel, RIBEIRO, Jean, VARANDA, Julia, MUCHALUAT,
Debora, Introduccin a los Lenguajes NCL y Lua: Desarrollando Aplicaciones
Interactivas para TV Digital, Laboratorio MdiaCom, Universidad Federal
Fluminense, 2010.
[55] Pgina oficial de Berkelium Web Browser. http://berkelium.org/
[56] Wikipedia Foundation, Inc., Google Chrome Web Browser,
http://es.wikipedia.org/wiki/Google_Chrome, 2014, Fecha de consulta 12-06-2014.
[57] Wikipedia Foundation, Inc., Mozilla Firefox Web Browser,
http://es.wikipedia.org/wiki/Mozilla_Firefox, 2014, Fecha de consulta 12-06-2014.
[58] HbbTV Firefox plugin. https://addons.mozilla.org/es/firefox/addon/firehbbtv/,
2014, Fecha de consulta 12-06-2014.
110
[59] HbbTV Fire plugin http://tum-iptv.aw.atosorigin.com/firehbbtv/#presentation,
2014, Fecha de consulta 12-06-2014.
[60] Chromium Embedded Framework Project Information
https://code.google.com/p/chromiumembedded/, 2014, Fecha de consulta 12-06-
2014.
[61] Wikipedia Foundation, Inc., Chromium Embedded Framework Web Browser,
http://en.wikipedia.org/wiki/Chromium_Embedded_Framework, 2014, Fecha de
consulta 12-06-2014.
[62] Chromium Embedded Framework download. http://cefbuilds.com/.
[63] Opera HbbTV Emulator software. http://www.operasoftware.com/products/tv-
emulator
[64] Wikipedia Foundation, Inc., Opera Web Browser,
http://es.wikipedia.org/wiki/Opera_(navegador), Fecha de consulta 12-06-2014.
[65] Wikipedia Foundation, Inc., Iceweasel Web Browser,
http://es.wikipedia.org/wiki/Iceweasel, 2014, Fecha de consulta 12-06-2014.
[66] Wikipedia Foundation, Inc., WebKit Web Browser,
http://es.wikipedia.org/wiki/Webkit, 2014, Fecha de consulta 12-06-2014.
[67] Wikipedia Foundation, Inc., Konqueror Web Browser,
http://es.wikipedia.org/wiki/Konqueror, 2014, Fecha de consulta 12-06-2014.
[68] Pgina oficial del navegador Konqueror de KDE http://www.konqueror.org, 2014,
Fecha de consulta 12-06-2014.
[69] Pgina oficial de la plataforma y del navegador ANT Galio,
http://www.antlimited.co.uk/ant_galio_browser.asp?menu=153, 2014, Fecha de
consulta 12-06-2014.
[70] Wikipedia Foundation, Inc., Comparison of web browsers,
http://en.wikipedia.org/wiki/Comparison_of_web_browsers, 2014, Fecha de
consulta 12-06-2014.
[71] Wikipedia Foundation, Inc., Anexo. Comparativa de los navegadores,
http://es.wikipedia.org/wiki/Anexo:Comparativa_de_navegadores_web, 2014,
Fecha de consulta 12-06-2014.
[72] Compare Best Open Source Web Browsers. http://web-
browsers.findthebest.com/saved_search/Best-Open-Source-Web-Browsers, 2014,
Fecha de consulta 12-06-2014.
[73] Show alternatives of web browsers. http://alternativeto.net/software/opera/,
2014, Fecha de consulta 12-06-2014.
[74] Fuentes e informacin sobre la instalacin del plugging de Eclipse NCL,
disponibles en http://laws.deinf.ufma.br/ncleclipse/es:install#.VCJdm_l_uSo.
[75] Visual Studio http://www.visualstudio.com/.
[76] Introduccin y Manuales de la herramienta Autotools sobre Linux
http://www.gnu.org/software/automake/manual/html_node/Autotools-
Introduction.html
[77] Jos Daniel Gambn Tomasi, DESARROLLO DE UN SERVICIO DE TELEVISIN
INTERACTIVA HbbTV SEGN EL ESTNDAR ETSI TS 102 796 v1.1.1 (JUN 2010),
Universidad Politcnica de Cartagena 2012.
[78] Wikipedia Foundation, Inc., Calidad de Experiencia, (QoE, Quality of
Experience), http://es.wikipedia.org/wiki/Calidad_de_experiencia, 2014, Fecha de
consulta 12-06-2014.
111
GLOSARIO
DLNA Digital Living Network Alliance - Alianza para el estilo de vida digital en
red
DSM-CC Digital Storage Media Command and Control - Comando de control del
almacenamiento de medios digitales.
FTTx Fiber to the X (Home, Build, etc.) - Fibra hasta la Casa, Edificio, Etc.
112
GEM Globally Executable MHP - MHP Ejecutable Global.
113
PID Packet Identifier - Identificador do Paquetes.
W3C World Wide Web Consortium - Consorcio del amplio mundo de la red.
114
ANEXO 1
CARACTERSTICAS TCNICAS
Front-End (Tuner + Demodulador):
Frecuencia de Entrada :
UHF: 470MHz(CH14) a 806MHz (CH69)
VHF: 174MHz(CH7) a 216MHz (CH13)
Ancho de Banda: 5.6MHz
Nivel de Seal: -85 dBm la -20 dBm
Seal: Compatible con el sistema ISDB-T
Impedancia de Entrada: 75 Ohms (nominal)
Conexin de entrada/salida: Conector F
Unidad de Procesamiento:
Procesador: STi 7105 (CPU 450 MHz)
Memoria RAM: 256 Mbytes
115
Memoria Flash: 128 Mbytes
Decodificacin de Vdeo:
Estndar: Rec. ITU-T H.264 (MPEG-4 AVC)
Profile: HP@L4.0
Formatos: 480i y 1080i
Frame Rate: 25, 30, 50 y 60MHz
Frecuencia de vdeo: 50 y 60Hz
Decodificacin de Audio:
Estndar: ISO/IEC 14496-3 (MPEG-4 AAC) (SBR)
Profile: AAC@L4 y HE-AAC@L4
Panel Frontal:
Botones: cambio de canales y enciende/apaga (stand-by)
Sensor infrarrojo para el control remoto
Interfaces de comunicacin:
High Speed USB 2.0
Ethernet 100 Mbps (RJ45)
Interfaces de salida:
Salida Digital de Audio y Vdeo (HDMI)
Salida de Vdeo Componente (YPbPr)
Salida de Audio Estreo 1 (D + Y)
Salida de Vdeo Compuesto (CVBS A/V)
Salida de Audio Estreo 2 (D + Y)
Salida de Audio Digital (SPDIF coaxial)
Fuente de Energa:
Tensin de Entrada: 100 ~ 240V AC, 50-60Hz
Consumo: 8W
Dimensiones:
Dimensiones: 37 x 187 x 220 mm
Peso: 960g
Vista trasera:
CARACTERSTICAS ADICIONALES
116
Muestra slo vdeo y audio del canal de difusin;
Carga de aplicativos por aire, va Internet o red local;
Soporte simultneo a canales ISDB-T e IPTV (va UDP y RTP);
Aplicativo grfico (GUI) va Web Server para la instalacin y configuracin de los
aplicativos Ginga (DTVi) y canales IPTV;
Ajuste de la imagen en la pantalla del televisor;
Control del bloqueo de canales por edad, con contrasea;
Compatible con los estndares de colores PAL-M y NTSC;
Bsqueda automtica de canales;
Gua de programacin electrnica (EPG);
Men en portugus, ingls o espaol;
Seleccin de audio.
TEMS INCLUIDOS
1 Convertidor Digital;
1 Manual de instrucciones;
1 Control Remoto;
2 Pilas/bateras AAA;
1 Cable HDMI;
1 Cable RCA.
MS INFORMACIN
117
ANEXO 2
Eco
Clase Energtica :C
EU Etiqueta Ecolgica :Si
Contenido en Mercurio :Diseo Mandos Tctiles
Componentes de Plomo (Directiva RoHS
:Si
incluyendo exenciones)
Fijacin Pared (VESA) :200 x 200 (M6)
Modo Tienda
Etiqueta Digital Demo :Si
Resolution + demo :Si
Active Vision 100Hz demo :Si
Alimentacin
Consumo en Stand-by (W) :0.212
Consumo Mximo EN60065 -(W) :93
Tensin Alimentacin :220-240V 50-60Hz
Consumo energa anual (Media) :96.8272
Consumo EN62087 - Modo Hogar (W) :66.32
Otras Caractersticas
Auto Formato :Si
Modo Hotel :Si
Apagado sin seal :Si
Temporizador :Si
Bloqueo de Pqanel :Si
Audio Descripcin (Slo UK) :Si
Congelacin de Pantalla :Si
Ampliacin de 4 :3 Si
Clonado :Si
Accessorios Incluidos
Bateras Mando a Distancia :R03(AAA) x2
Pedestal incluido :Si
Manual de Instrucciones :Si
Mando a Distancia (Tipo) :CT-90369
Personal-TV
Configuracin Personal de Volumen :Si
Configuracin Personal de Imagen :Si
118
Lista Personal de Favoritos :Si
Configuracin para 4 usuarios :Si
Organizador Personal de Grabaciones :Si
Imagen
Reduccin Digital de Ruido (DNR) :Si
Real Digital Picture :Si
200 Active Motion Rate (AMR) / Ratio
:Si
Refresco Imagen
LED-TV :Si
Resolution Panel :1920 x 1080
Meta Brain :Si
3D Digital Comb Filter :Si
LED Edge :Si
Formato Pantalla :16:9
Contraste Dinmico Ratio :4.000.000:1
3D Colour Management :Si
Sensor Ambiental :Si
Resolution+ :Si
Seleccin Manual de tamao Pantalla :Si
Full HD - Alta Definicin 1080p :Si
Exact Scan Mode :Si
Diagonal pantalla (cm/pulgadas) :81/32
Control Activo de Retroiluminacin :Si
24p Mode : Standard | Smooth Si
Temperatura de Color Seleccionable :Si
Angulo de Visin () :178
Tiempo de Respuesta (G a G) (ms) :505
Brillo (cd/m2) :450
Reduccin de Ruido MPEG :Si
Accessorios Optionales
Adaptador USB WiFi (Dongle) :Si
Sonido
NICAM Stereo :Si
Audyssey EQ :Si
Potencia de Sonido (RMS) W :2 x 10
Dolby Digital Plus :Si
Sound Navi :Si
Dolby Volume :Si
Modos Imagen
119
Pelcula :Si
Comercio :Si
Standard :Si
Juego :Si
Dinmico :Si
AutoView :Si
Conexiones
INSTAPORT :Si
Analogue audio (Cinch) | Audio (mini Sck) :Si ISi
Euroconector :Si
1080p, 1080i, 720p, 720i, 576p, 576i, 480p,
:Si I Si
480i | 24Hz (24p)
Video Componentes :Si
Entrada PC :Si
Version 1.4 | Canal Retorno Audio | HDMI
Canal Ethernet| Mejora de Contenido Audio | :Si , Si , - , Si
3D
Nmero de USB :2
HDMI :4
USB :Si
Salida de Audio Digital :Si
REGZA-Link (HDMI-CEC) :Si
LAN :Si
Euroconector(RGB | S-Video | AV) :Si
Video Compuesto :Si
Auricular :Si
Ajustes Experto
3D Colour Management :Si
Copiado a todas las Entradas :Si
Ajustes Gamma :Si
Preajustes : Hollywood Mode 1 & 2 (Modo Da/Noche) Si
601/709 Seleccin Decodificado de Color :Si
Plantilla Universal de Ajuste Integrada :Si
Filtro RGB :Si
HDMI Informacion :Si
Ajuste de Escala de Grises :Si
Dimensiones
Fondo con Pedestal (mm) :258
Peso con Pedestal (kg) :12.1
120
Fondo sin Pedestal (mm) :35.8
Peso sin Pedestal (kg) :8.9
Altura Embalaje (mm) :560
Ancho Embalaje (mm) :1060
Fondo Embalaje (mm) :95
Altura con Pedestal (mm) :526
Ancho (mm) :752
Altura sin Pedestal (mm) :473
Peso Embalaje (kg) :13.25
Caractersticas Interactivas
Memoria de Pginas TXT :500
Teletexto :Si
Gua Electrnica de Programacin de 8 das :Si
Memorizacin de Canales Favoritos :Si
Now and Next Informacin :Si
Caractersticas USB
Audio (USB) :MP3, MP4
:AVCHD, AVCHD Lite, mts, m2ts, H.264,
Vdeo (USB) MPEG2-PS, mpg, mpeg, MPEG2, MP4, mp4,
m4v
Foto (USB) :JPEG
Sintonizacin
H.264 :Si
Interfaz Comn+ (CI+) :Si
Auto Set-up :Si
Analgico :Si
TDT :Si
NTSC Video-Playback :Si
Sintonizador DVB Cable (HD) :Si
TV Standards :PAL I/BG/DK; SECAM BG/DK/L, NTSC BG 4.43
Nmero de Canales :ATV (100) , DTV (9999)
Smart-TV
DLNA DMP :Si
Compatible Windows 7 :Si
WiFi Protected Setup (WPS) :Si
Wireless Ready (con Llave WIFI Toshiba
:Si
opcional)
HbbTV :Si
Aplicacin Regza para Telfonos Mviles :Si
121
DLNA :Si
Toshiba Media Controller compatible :Si
Toshiba Places :Si
DLNA DMR :Si
You Tube :Si
Procesador
Procesador : ARM (CPU 800 Mhz)
RAM DDR :500 MByte
Memoria Flash :1 GByte
122
123
ANEXO 3.
function startAll(){
hbbtvlib_initialize();
hbbtvlib_show();
applicationIsVisible = true;
registerKeyEventListener();
initApp();
}// JavaScript Document
function initApp() {
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.show();
app.activate();
} catch (e) {
// ignore
}
setKeyset(0x1+0x2+0x4+0x8+0x10);
}
function setKeyset(mask) {
// for HbbTV 0.5:
try {
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.value = mask;
} catch (e) {
// ignore
}
try {
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.setValue(mask);
} catch (e) {
// ignore
}
// for HbbTV 1.0:
124
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.privateData.keyset.setValue(mask);
app.privateData.keyset.value = mask;
} catch (e) {
// ignore
}
}
function registerKeyEventListener() {
document.addEventListener("keydown", function(e) {
if (handleKeyCode(e.keyCode)) {
e.preventDefault();
}
}, false);
}
function menuInit() {
opts = document.getElementById('indice').getElementsByTagName('li');
menuSelect(0);
}
function menuSelect(i) {
if (i<=0) {
i = 0;
} else if (i>=opts.length) {
i = opts.length-1;
}
selected = i;
var scroll = Math.max(0, Math.min(opts.length-13, selected-6));
for (i=0; i<opts.length; i++) {
opts[i].style.display = (i>=scroll && i<scroll+13) ? 'block' : 'none';
opts[i].className = selected==i ? 'lisel' : '';
}
}
function setInstr(txt) {
document.getElementById('instr').innerHTML = txt;
}
125
botonesindex.js Funcin que carga el Link del botn rojo.
126
* Convenience function that removes the broadcast video from your application.
*
* function hbbtvlib_current_service()
* Returns the DVB service ID.
*/
/**
* The last error occured in hbbtvlib. If one of the functions returns false,
* the error can be retrieved via this property.
*/
var hbbtvlib_lastError = "no error";
/**
* @return true if OIPF functions are available
*/
function hbbtvlib_initialize() {
try {
int_createOipfObjs();
/**
* This function does everything HbbTV requires an application to do
* when it wants to get visible.
*
* @return
*/
function hbbtvlib_show() {
try {
int_app.show();
if (typeof int_app.activate != "undefined") int_app.activate();
if (typeof int_app.activateInput != "undefined") int_app.activateInput();
int_keyset.setValue(int_ksVisible);
return true;
} catch (e) {
hbbtvlib_lastError = e;
return false;
}
}
/**
* This function does everything HbbTV requires an application to do
* when it wants to transition to the hidden state.
127
*
* @return
*/
function hbbtvlib_hide() {
try {
if (int_bc_video) int_bc_video.style.visibility = "visible";
int_app.hide();
int_keyset.setValue(int_ksHidden);
return true;
} catch (e) {
hbbtvlib_lastError = e;
return false;
}
}
/**
* Overrides the default keysets.
* Default is RED for hidden state, all for visible state.
*
* @param visibleSet a keyset bitmask
* @param hiddenSet a keyset bitmask
* @return
*/
function hbbtvlib_setKeysets(visibleSet, hiddenSet) {
if (typeof visibleSet == "Number") int_ksVisible = visibleSet;
if (typeof hiddenSet == "Number") int_ksHidden = hiddenSet;
};
/**
* Starts a new application and destroys this application.
*
* @param dvbUrl including organization and application ids
* @param httpUrl a fallback URL
*
* @return false
*/
function hbbtvlib_createApp(dvbUrl, httpUrl) {
if (int_app) {
try {
if (dvbUrl && int_app.createApplication(dvbUrl, false)) {
int_app.destroyApplication();
return true;
}
hbbtvlib_lastError = "Failed to launch dvb URL: " + dvbUrl;
} catch (e) {
hbbtvlib_lastError = e;
}
try {
if (httpUrl && int_app.createApplication(httpUrl, false)) {
int_app.destroyApplication();
return true;
}
hbbtvlib_lastError = "Failed to launch http URL: " + httpUrl;
} catch (e) {
hbbtvlib_lastError = e;
}
128
return false;
} else if (httpUrl) {
document.location.href = httpUrl;
}
hbbtvlib_lastError = "OIPF application manager not available";
return false;
};
/**
* Destroys this application.
*
* @param fallBackUrl
* @return
*/
function hbbtvlib_closeApp(fallBackUrl) {
if (int_app) {
try {
int_app.destroyApplication();
} catch (e) {
hbbtvlib_lastError = e;
}
} else if (fallBackUrl) {
document.location.href = fallBackUrl;
} else {
window.close();
}
return false;
};
/**
* Handle OIPF DAE Broadcast video
*/
var int_bc_video = null;
var int_bc_container = null;
var int_currentChannel = null;
/**
* Creates and initializes a broadcast video inside the element
* identified by the containerId. If no bc video can be included
* the dummy picture is added instead of the bc.
*
* @param parentId the id of the HTML container where the video/broadcast object will be added
* @param objId id which shall be set for the video/broadcast object
* @param dummyPic an optional picture to be shown if video/broadcast can not be added
*
*/
function hbbtvlib_init_broadcast (parentId, objId, dummyPic) {
try {
int_bc_container = document.getElementById(parentId);
if (!int_bc_container) return false;
129
// window.setTimeout(function () {
try {
if (typeof (int_bc_video.bindToCurrentChannel) != 'undefined') {
int_bc_video.onChannelChangeSucceeded = function (channel)
{
int_currentChannel = channel;
};
int_bc_video.onChannelChangeError = function (channel, errorState)
{
int_vb_onError(objId, dummyPic);
};
int_bc_video.bindToCurrentChannel();
} else if (dummyPic) {
hbbtvlib_lastError = "video/broadcast object not supported";
int_bc_container.innerHTML = '<img id="'+ objId + '" src="' + dummyPic + '" alt="TV Bild" />';
}
} catch (ex) {
hbbtvlib_lastError = ex;
int_vb_onError(objId, dummyPic);
}
// }
// , 1000);
return true;
} catch (e) {
hbbtvlib_lastError = e;
int_vb_onError(objId, dummyPic);
}
return false;
};
/**
* Releases the video/broadcast object and removes the object from the DOM.
*/
function hbbtvlib_release_broadcast () {
try {
if (int_bc_video && typeof (int_bc_video.release) != "undefined") {
int_bc_video.release();
int_bc_video = null;
}
if (int_bc_container) {
int_bc_container.innerHTML = "";
int_bc_container = null;
}
130
int_currentChannel = null;
} catch (e) {
hbbtvlib_lastError = e;
}
};
/**
* Requires hbbtvlib_init_broadcast
*
* @return the DVB service id of the current presented service or -1
*/
function hbbtvlib_current_service () {
try {
return int_bc_video.currentChannel.sid;
} catch (e) {
hbbtvlib_lastError = e;
}
return -1;
};
/**
* Tunes to a DVB service identified by the DVB Triplet. The application may
* get killed due to the application life cycle, i.e. if it is not signalled
* with their application ID on the tuned service.
*
* @param onid the original network id
* @param tsid the transport stream id
* @param sid the service id
*
* @return false if there is no video broadcast object available or there is no
* channel found for this triplet
*/
function hbbtvlib_tuneTo(onid, tsid, sid) {
try {
var chLst = int_bc_video.getChannelConfig().channelList;
if (ch == null) {
hbbtvlib_lastError = "Tuning failed, no channel object found for given DVB triplet.";
return false;
}
int_bc_video.setChannel(ch, false);
return true;
}catch (e) {
hbbtvlib_lastError = "Tuning failed due to " + e;
}
return false;
};
/*
131
* Library internal (private) properties and functions.
*/
/**
* Array of OIPF DAE embedded objects. Access Key is the mime-type without "application/".
*/
var int_objs = new Array();
var int_objTypes = {
appMan: "oipfApplicationManager",
config: "oipfConfiguration"
};
/**
* OIPF DAE Application object
* - to show/hide the application
* - create or destroy applications
* - providing the keyset object
*/
var int_app = null;
/**
* The OIPF keyset object used to request keys from terminal.
*
* Usually this is the RED button in hidden mode, and up to all
* available keys in visible mode.
*/
var int_keyset = null;
/**
* Internal function to create OIPF embedded objects,
* like ApplicationManager etc., if not already existing.
*/
function int_createOipfObjs() {
if (int_objs.length) return;
// Look for existing objects
var objects = document.getElementsByTagName("object");
for (var i=0; i<objects.length; i++) {
var sType = objects.item(i).getAttribute("type");
//alert(sType);
for (var eType in int_objTypes) {
if (sType == "application/" + int_objTypes[eType]) {
int_objs[int_objTypes[eType]] = objects.item(i);
}
}
}
};
/**
* Retrieves the keyset object for HbbTV 1.1.1 and 0.5 implementations.
*
* Sets default keysets for hidden and visible modes.
*/
132
function int_initKeysetObj () {
// try HbbTV 1.1.1
try {
int_keyset = int_app.privateData.keyset;
hbbtvlib_lastError = "privateData";
} catch (e) {
int_keyset = null;
// try HbbTV 0.5
try {
var tmp = int_objs[int_objTypes.config].keyset;
tmp.setValue = function (val) {
this.value = val;
};
int_keyset = tmp;
hbbtvlib_lastError = "oipfConfig";
} catch (e) {
int_keyset = null;
}
}
if (int_keyset) {
// set default key sets
if (!int_ksHidden) int_ksHidden = int_keyset.RED;
if (!int_ksVisible) int_ksVisible = 0x33F; // color + nav + vcr + numeric + alpha
}
keycode.js Librera de HbbTV que escucha cuando una tecla fue presionada.
if (typeof(KeyEvent)!='undefined') {
if (typeof(KeyEvent.VK_LEFT)!='undefined') {
var VK_LEFT = KeyEvent.VK_LEFT;
var VK_UP = KeyEvent.VK_UP;
var VK_RIGHT = KeyEvent.VK_RIGHT;
var VK_DOWN = KeyEvent.VK_DOWN;
}
if (typeof(KeyEvent.VK_ENTER)!='undefined') {
var VK_ENTER = KeyEvent.VK_ENTER;
}
if (typeof(KeyEvent.VK_RED)!='undefined') {
var VK_RED = KeyEvent.VK_RED;
var VK_GREEN = KeyEvent.VK_GREEN;
var VK_YELLOW = KeyEvent.VK_YELLOW;
var VK_BLUE = KeyEvent.VK_BLUE;
}
if (typeof(KeyEvent.VK_PLAY)!='undefined') {
var VK_PLAY = KeyEvent.VK_PLAY;
var VK_PAUSE = KeyEvent.VK_PAUSE;
var VK_STOP = KeyEvent.VK_STOP;
}
if (typeof(KeyEvent.VK_FAST_FWD)!='undefined') {
var VK_FAST_FWD = KeyEvent.VK_FAST_FWD;
var VK_REWIND = KeyEvent.VK_REWIND;
}
133
if (typeof(KeyEvent.VK_BACK)!='undefined') {
var VK_BACK = KeyEvent.VK_BACK;
}
if (typeof(KeyEvent.VK_0)!='undefined') {
var VK_0 = KeyEvent.VK_0;
var VK_1 = KeyEvent.VK_1;
var VK_2 = KeyEvent.VK_2;
var VK_3 = KeyEvent.VK_3;
var VK_4 = KeyEvent.VK_4;
var VK_5 = KeyEvent.VK_5;
var VK_6 = KeyEvent.VK_6;
var VK_7 = KeyEvent.VK_7;
var VK_8 = KeyEvent.VK_8;
var VK_9 = KeyEvent.VK_9;
}
}
if (typeof(VK_LEFT)=='undefined') {
var VK_LEFT = 0x25;
var VK_UP = 0x26;
var VK_RIGHT = 0x27;
var VK_DOWN = 0x28;
}
if (typeof(VK_ENTER)=='undefined') {
var VK_ENTER = 0x0d;
}
if (typeof(VK_RED)=='undefined') {
var VK_RED = 0x74;
var VK_GREEN = 0x75;
var VK_YELLOW = 0x76;
var VK_BLUE = 0x77;
}
if (typeof(VK_PLAY)=='undefined') {
var VK_PLAY = 0x50;
var VK_PAUSE = 0x51;
var VK_STOP = 0x53;
}
if (typeof(VK_FAST_FWD)=='undefined') {
var VK_FAST_FWD = 0x46;
var VK_REWIND = 0x52;
}
if (typeof(VK_BACK)=='undefined') {
var VK_BACK = 0xa6;
}
if (typeof(VK_0)=='undefined') {
var VK_0 = 0x30;
var VK_1 = 0x31;
var VK_2 = 0x32;
var VK_3 = 0x33;
var VK_4 = 0x34;
var VK_5 = 0x35;
var VK_6 = 0x36;
var VK_7 = 0x37;
var VK_8 = 0x38;
var VK_9 = 0x39;
}
134
ANEXO 4
teletexto.js Funcin que llama a todos los mtodos necesarios para inicializar la
aplicacin
/* Funcin que llama a todos los mtodos necesarios para inicializar el teletexto*/
function startText(){
updateDateTimeString();//actualiza la fecha y la hora
actualizarEtiquetas();//actualiza las categoras del men
cargarPaginas();//prepara la cadena de pginas disponibles en el teletexto
updatePreview("Teletexto/html_generados/100.xml");//carga la primera pgina
hbbtvlib_initialize();//inicializa las funciones del OIPF
hbbtvlib_show();//muestra la aplicacin
aplicacionEsVisible = true;
registerKeyEventListener();//activa un "escuchador" de teclas pulsadas, que captura el cdigo
de la tecla que se puls en el mando y la enva a otra funcin
inicAplicacion();//inicializa la aplicacin con los mtodos del objeto OIPF Application Manager
}
135
} catch (e) {
// se ignoran las excepciones
}
}
/* Funcin que activa un "escuchador" de teclas pulsadas. Captura el cdigo de la tecla que se puls en
el mando y la env-a a otra funcin */
function registerKeyEventListener() {
document.addEventListener("keydown", function(e) {
if (handleKeyCode(e.keyCode)) {
e.preventDefault();
}
}, false);
}
136
}
}
/* Funcin que activa un "escuchador" de teclas pulsadas. Captura el cdigo de la tecla que se puls en
el mando y la env-a a otra funcin */
function registerKeyEventListener() {
document.addEventListener("keydown", function(e) {
if (handleKeyCode(e.keyCode)) {
e.preventDefault();
}
}, false);
}
/* Funcin que inicializa el foco */
function menuInic() {
opts = document.getElementById('column').getElementsByTagName('a');//array que contiene
las distintas opciones del menu lateral
menuSeleccionar(0);//la primera opcin viene seleccionada por defecto
}
/* Funcin que enmascara las pulsaciones, es decir, prepara una mscara para ignorar ciertas
pulsaciones */
function setKeyset(mask) {
// para HbbTV 0.5:
try {
137
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.value = mask;
} catch (e) {
// se ignoran las excepciones
}
try {
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.setValue(mask);
} catch (e) {
// se ignoran las excepciones
}
// para HbbTV 1.0:
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.privateData.keyset.setValue(mask);
app.privateData.keyset.value = mask;
} catch (e) {
// se ignoran las excepciones
}
}
/* Funcin que activa un "escuchador" de teclas pulsadas. Captura el cdigo de la tecla que se puls en
el mando y la env-a a otra funcin */
function registerKeyEventListener() {
document.addEventListener("keydown", function(e) {
if (handleKeyCode(e.keyCode)) {
e.preventDefault();
}
}, false);
}
138
navegacion.js Contiene las funciones que cargan las opciones de navegacin sobre
la aplicacin.
/* Funcin que permite almacenar en el array pginas todas las pginas disponibles */
function cargarPaginas(){
req = new XMLHttpRequest();
req.onreadystatechange = function() {
if (req.readyState!=4 || req.status!=200) return;
paginas = req.responseText.split('#'); //las pginas estn separadas por '#'
req.onreadystatechange = null;
req = null;
};
req.open('GET', 'paginas.php');
req.send(null);
}
var textopacity = 0;
var animtimer = false;
/* Funcin que fija el tipo de la ficha que se est mostrando. Las fichas pueden ser 'i'-ndice o 'c'-
contenido */
function fijarTipo (t){
tipoFicha = t;
}
try {
var tStyle = aplicacionEsVisible? "hidden":"visible";
var todo = document.getElementById("todo");
aplicacionEsVisible= !aplicacionEsVisible;
if (aplicacionEsVisible) {
hbbtvlib_show();
} else {
if (!hbbtvlib_hide()) window.close();
}
} catch (e) {
//alert("Cambiar visibilidad de la aplicacin: " + e);
}
}
/* Funcin que sirve para navegar el teletexto cuando el foco est en las fichas. Si es una pgina de
ndice, que contiene
139
enlaces, la funcin navega por los enlaces. Tambin sirve para avanzar por las pginas de contenido y
retroceder. */
function navegarPagina(dir) {
if(dir == 'left') { // si la direccin es hacia arriba
if ( tipoFicha == 'i'){ // si es una pgina de ndice
if ( enlaceSelected == 0 ){ // si est en el primer enlace
retrocederPagina(); // se retrocede una pgina
}
if ( enlaceSelected > 0 ){ // si se est en cualquier otro enlace
enlaceSelected -= 1;
enlaceSeleccionar(enlaceSelected); // se selecciona el enlace superior
}
if (tipoFicha == 'c'){ // si es una pgina de contenidos
retrocederPagina(); //se retrocede una pgina
}
}
if(dir == 'right') { //si la direccin es hacia abajo
if (tipoFicha == 'i'){// si es una pgina de ndice
if ( enlaceSelected >=
document.getElementById('enlaces').getElementsByTagName('li').length - 1){
avanzarPagina(); // si el enlace que estaba seleccionado es el ltimo,
se avanza una pgina
}
if ( enlaceSelected <
document.getElementById('enlaces').getElementsByTagName('li').length - 1 ){
enlaceSelected += 1;
enlaceSeleccionar(enlaceSelected); // si se est en cualquier otro
enlace se selecciona el enlace inferior
}
if (tipoFicha == 'c'){ // si es una pgina de contenido
avanzarPagina() // se avanza una pgina
}
}
return true;
}
140
index--;//aumenta la cuenta
}
}
}
var enlaceSeleccionado = n;
var scroll = Math.max(0, Math.min(enlaces.length-6, enlaceSeleccionado-4));
var i = 0;
for (i=0; i<enlaces.length; i++) {
enlaces[i].style.display = (i>=scroll && i<scroll+6) ? 'inline-table' : 'none';//para ir
mostrando los enlaces que no "caben" en la pgina
}
}
141
} return true;
}
else if (kc==VK_ENTER) {//accede a la opcin seleccionada, es como RIGHT
if ( focus == 'lateral') {
var page = opts[selected].getAttribute("pagina");
var link = 'Teletexto/html_generados/' + page + '.xml';
updatePreview(link);
var i
for (i = 0; i < opts.length; i++){
if ( i == selected){
opts[i].setAttribute('selected','si');
} else {
opts[i].setAttribute('selected','no');
}
}
}
else if ( focus == 'centro' && tipoFicha == 'i'){
var link = 'Teletexto/html_generados/' + cadenaEnlaces[enlaceSelected] +
'.xml';
updatePreview(link);
}return true;
}else if (kc==VK_RED) {//oculta y muestra el teletexto
document.location.href = '../diego/iniciorojo.htm';
return true;
}
return false;
}
etiquetas.js Funcin que obtiene las diferentes opciones del men mediante una
peticin XMLHttpRequest
etiquetasReq.onreadystatechange =
function () {
handleEtiquetasXML(etiquetasReq);
};
etiquetasReq.open("GET", progUrl);
etiquetasReq.setRequestHeader("Cache-Control", "no-cache");
etiquetasReq.send(null);
} catch (e) {
alert(e);
}
}
142
var elementos = xml.getElementsByTagName("elemento");//array
que contiene todas las opciones
document.getElementById("indice").innerHTML = '';
} catch (e) {
//alert(e);
}
}
}
}
keycode.js Librera de HbbTV que escucha cuando una tecla fue presionada.
function createDateTimeString(date) {
var dateStr = "";
var temp = date.getDate();
dateStr += ((temp < 10) ? "0" + temp : temp) + ".";
temp = date.getMonth() + 1;
dateStr += ((temp < 10) ? "0" + temp : temp) + ".";
dateStr += date.getFullYear() + ", ";
temp = date.getHours();
dateStr += ((temp < 10) ? "0" + temp : temp) + ":";
temp = date.getMinutes();
dateStr += ((temp < 10) ? "0" + temp : temp);
return dateStr;
}
function updateDateTimeString() {
document.getElementById("fecha").innerHTML = createDateTimeString(new Date());
}
fichas.js Funcin que obtiene la imagen que se desea mostrar en formato XML
143
function updatePreview(url) {
try {
var progUrl = url;
if (previewReq != null) previewReq.abort();
previewReq.onreadystatechange =
function () {
handlePreviewXML(previewReq);
};
previewReq.open("GET", progUrl);
previewReq.setRequestHeader("Cache-Control", "no-cache");
previewReq.send(null);
} catch (e) {
alert(e);
}
}
144
document.getElementById("cuerpo").style.height = '0px';
document.getElementById("texto").style.height = '0px';
document.getElementById("texto").innerHTML = '';
document.getElementById("texto").innerHTML += '<div
id="enlaces"></div>';
for( j=0; j<enlaces.length; j++){
var texto =
enlaces[j].getElementsByTagName("texto");
var pagina =
enlaces[j].getElementsByTagName("pagina");
document.getElementById("enlaces").innerHTML
+= '<li selected="no" page=' + pagina[0].firstChild.nodeValue + '>' + texto[0].firstChild.nodeValue +
'</li>';
}
var links =
document.getElementById("enlaces").getElementsByTagName("li");
var k;
for ( k=6; k < links.length; k++){
links[k].style.display = 'none';
}
}
if(imagen.length != 0){
document.getElementById("foto").innerHTML = '<img
src="Teletexto/'+imagen[0].firstChild.nodeValue+'"/>';
document.getElementById("foto").style.width = '0px';
document.getElementById("texto").style.width = '0px';
} else {
document.getElementById("foto").innerHTML = '';
document.getElementById("foto").style.width = '0px';
document.getElementById("texto").style.width = '0px';
}
} catch (e) {
//alert(e);
}
}
}
}
teletexto.css Contiene la hoja de estilo con los atributos de los elementos del
archivo html principal.
body{
background-image: url(../imagenes/fondo1.png);
background-repeat: no-repeat;
background-size: 100%,100%;
width: 1920px;
height: 1080px;
display: block;
}
#todo{
background-color: transparent;
background-repeat: no-repeat;
145
background-size: 100%,100%;
width: 1366px;
height: 768px;
}
img{
height: 500px;
width: 480px;
}
#contenedor{
background-color: transparent;
width: 60%;
height: 5%;
position: absolute;
top: 0%;
left: 0%;
}
#video1{
background-color: transparent;
width: 50%;
height: 50%;
position: absolute;
top: 20%;
left: 10%;
}
#lateral{
/*background-color: #DFF2E3;*/
float: left;
width: 0px;
}
#lateral .relleno{
height: 0px;
width: 0px;
}
#pagina{
color: transparent;
}
#indice{
background-color: transparent;
width: 100%;
height: 100%;
position: absolute;
top: 80%;
left: 10%;
}
#indice li {
margin: 0% 0% 0% 1%;
padding: 1% 1% 1% 0%;
color: transparent;
height: 15%;
width: 20%;
background-image: transparent;
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: center;
}
li[selected=si]{
146
background-color: #DFF2E3;
}
li[focused=si]{
background-color: #69BF80;
}
#contenido{
background-color: transparent;
float: right;
}
#titular{
color: transparent;
}
#fecha{
color: transparent;
}
#contenido .categoria {
background-color: transparent;
color: transparent;
}
#contenido .cuerpo {
background-color: transparent;
color: transparent;
}
#contenido .foto{
float: right;
}
#texto{
color: transparent;
}
#pie .rojo {
background-image: url(../imagenes/salir2.png);
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: left bottom;
position: absolute;
width: 9%;
height: 13%;
bottom: 4%;
left: 1%;
}
#pie .opc1 {
background-image: url(../imagenes/opc1.png);
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: left bottom;
position: absolute;
width: 19%;
height: 14%;
bottom: 4%;
left: 12%;
147
}
#pie .opc2 {
background-image: url(../imagenes/opc2.png);
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: left bottom;
position: absolute;
width: 19%;
height: 14%;
bottom: 4%;
left: 34%;
}
#pie .opc3 {
background-image: url(../imagenes/opc3.png);
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: left bottom;
position: absolute;
width: 19%;
height: 14%;
bottom: 4%;
left: 56%;
}
#pie .opc4 {
background-image: url(../imagenes/opc4.png);
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: left bottom;
position: absolute;
width: 19%;
height: 14%;
bottom: 4%;
left: 78%;
}
148
<texto>OPCION4</texto>
<pagina>400</pagina>
</elemento>
</xml>
149