Title: La API MHP
1La API MHP
- Amaia Urtasun Garraza
- Leire Urriza Oiz
2Definición de la API MHP
3Definición de la API MHP (I)
- Interfaz entre una aplicación y una
caracterÃstica, función o recurso del MHP - Toda la comunicación entre las aplicaciones y la
plataforma MHP se hace a través de la API
4Definición de la API MHP (II)
- Por debajo de la API
- System Software ? gestión de recursos (escribir
por pantalla, leer del mando a distancia) - Application Manager ? encargado de cargar las
aplicaciones y vigilar su ejecución
5Definición de la API MHP (III)
- La API actúa como frontera entre las aplicaciones
y los elementos (HW y SW) del receptor - La aplicación tiene acceso a través de la API a
los bloques que rodean la lÃnea. subAPIs
- Control de los mandos del decodificador pero
no éste directamente - Control del tunner
- Recibir datos del carrousel
- Acceso al canal interactivo
6Clasificación de las APIs
7Clasificación de las APIs
- La APIs pueden ser clasificadas en varias
categorÃas - Acceso de bajo nivel a MPEG
- Acceso a datos de broadcast
- Control de medios (media control) playback
- Gráficos e interfaces de usuario
- Comunicación con un servidor back-end u otras
aplicaciones - Acceso al HW del receptor o a periféricos como
tarjetas inteligentes (smart cards) para
accesos seguros - Seguridad
8Clasificación de las APIs
- No todas las aplicaciones usarán todas las APIs
pero incluso las aplicaciones más simples usarán
un amplio número de ellas
9API para gestión de recursos (I)
- Los receptores de TV tienen normalmente recursos
escasos disponibles para la aplicación y estos
recursos deben ser compartidos - Entre las aplicaciones que se están ejecutando
- Entre las aplicaciones y el middleware
- La gestión de recursos es una cuestión a tener en
cuenta en - CaracterÃsticas de los receptores
- Diseño de aplicaciones
10API para gestión de recursos (II)
- Los recursos MHP tÃpicos incluyen
- Procesador MPEG
- Dispositivos de entrada y salida
- CPU
- Memoria
- Sistema gráfico
- Los recursos de MHP, accesibles desde una
aplicación, pueden estar contenidos en una serie
de entidades fÃsicas conectadas al terminal MHP.
11API para gestión de recursos (III)
- entidad ? cada una de las piezas independientes
de hardware que forman parte de un cúmulo local
(múltiple) de elementos que, como un todo,
conforman una MHP. - Una entidad es, por ejemplo
- STB
- Video Cassette Recorder (VCR) digital
- Módulo de acceso condicional
12API para gestión de recursos (IV)
- Una entidad contiene una serie de recursos
- Cada recurso provee cierta cantidad de funciones.
13API para eventos de entrada de usuarios (I)
- La mayorÃa de los receptores MHP reciben
entradas de usuario desde un control remoto. - Aunque la entrada desde teclado y ratón pueden
estar disponibles, no se suelen usar porque no es
la idea. Más cómodo con el mando a distancia.
14API para eventos de entrada de usuarios (II)
Key events that may be generated by an MHP receiver. Source TS 101 812 v1.3.1 (MHP 1.0.3 specification). Key events that may be generated by an MHP receiver. Source TS 101 812 v1.3.1 (MHP 1.0.3 specification). Key events that may be generated by an MHP receiver. Source TS 101 812 v1.3.1 (MHP 1.0.3 specification).
Constant name Key Key code (if standardized)
VK_UP up arrow not standardized
VK_DOWN down arrow not standardized
VK_LEFT left arrow not standardized
VK_RIGHT right arrow not standardized
VK_ENTER enter (also known as select or OK) not standardized
VK_0 to VK_9 number keys 48 - 57
VK_TELETEXT teletext key 459
VK_COLORED_KEY_0 first coloured key 403
VK_COLORED_KEY_1 second coloured key 404
VK_COLORED_KEY_2 third coloured key 405
VK_COLORED_KEY_3 fourth coloured key 406
- Los Key code para eventos del teclado están
definidos por la plataforma Java y son distintos
que los Key code para eventos del mando a
distancia. - Estos últimos son únicos disponibles en cualquier
receptor
15API para control de Xlets
- Permite
- Controlar el ciclo de vida (lifecycle ) de las
aplicaciones. - Permite que el gestor de aplicaciones
(Application manager) actúe sobre el ciclo de
vida cambiando su estado - Permite a la aplicación informar al gestor sobre
sus cambios de estado asà como solicitarlos - Dar contexto de ejecución a las aplicaciones
- Tarea imprescindible ? API obligada
Ciclo de vida de una aplicación
16API para comunicación entre Xlets
- Implementa la comunicación de una Xlet con otras
Xlets que se están ejecutando en el sistema. - Permite que tengan funciones comunes y puedan
implementarse de modo client-server, de forma
que esto aumenta la eficiencia en algunos casos. - Presenta un problema a la hora de referenciar
objetos en una Xlet que se encuentran en otra.
El modelo de classloader en Java no nos lo
permite ? MHP nos da un API que lo puede
solucionar.
17API para presentación de texto (I)
- Casi todas las aplicaciones necesitan mostrar
algún tipo de texto en pantalla. - Pensar en cuestiones distintas que para PC
- 3 principales problemas a la hora de mostrar
textos grandes - Dificultad de leer texto en TV debido a la baja
resolución y contraste de la pantalla si
implementamos como para PC. - Elegir tipo de fuente adecuado ? Tiresias
- Elegir el tamaño de fuente adecuado ? El número
máximo de lÃneas en la pantalla debe ser 18.
18API para presentación de texto (II)
- Navegación
- Si el texto es demasiado largo el usuario
necesitará algún medio para moverse por el texto. - Scrollbar usado en PCs no es adecuado para TV. Es
mejor usar saltos entre páginas - Cuidado con que el método para movernos por el
texto no interfiera con el método para navegar
por la aplicación.
19API para gráficos
- Cuestiones a tener en cuenta
- Pixel Aspect Ratio En aplicaciones de vÃdeo y TV
los pÃxeles no son cuadrados y en los gráficos
para PC si ? difÃcil adaptación - Video Aspect Ratio Formato (43) ó (169)
influye en el diseño de la aplicación. El efecto
de los gráficos e imágenes es distinto en ambos
casos. - Translucidez y transparencia
- Espacio de colores Mapear de RGB (usado por
Java) a YUV (usado por la señal de TV) - Window Manager No hay gestor de ventanas. Porque
son demasiado complejos para los receptores MHP.
Las aplicaciones necesitan otro medio para
obtener un área de diseño. - Interfaz con el usuario Diferentes interfaces de
usuario. Si una aplicación está activa, puede que
otra no pueda aparecer por pantalla ? uso de una
nueva interfaz.
20API para vÃdeo y gráficos (I)
- La mayorÃa de los receptores de DTV tienen
limitadas sus capacidades cuando empiezan a
soportar vÃdeos y gráficos. - Un STB no es un PC
- En un PC, vÃdeo y gráficos están administrados
por el SW y eso hace fácil el escalar y
posicionar vÃdeos. Es fácil integrarlos en el
sistema de ventanas y que coexistan fácilmente
con gráficos tan largos como la rapidez de la CPU
permita. - En un STB las cosas son diferentes. Un receptor
MHP posee su propio - Procesador de gráficos
- Demultiplexor y decodificador MPEG
- CPU
- integrados en el mismo chip. Este chip
habitualmente tendrá capacidades gráficas que
permiten el soporte de muchas tareas de propósito
general. Sólo nos interesan aquellas tareas
relacionadas con caracterÃsticas que necesite el
receptor de TV digital. Por eso, los STB tienen
habitualmente subsistemas gráficos especializados
que soportan varios planos gráficos, cada uno
para un tarea especÃfica.
21API para vÃdeo y gráficos (II)
- Tipos de planos en los subsistemas gráficos y de
vÃdeo - Background plane ? muestra un color simple detrás
de todos los demás planos gráficos - Still image plane ? capacidad de mostrar una
imagen estática detrás del vÃdeo decodificado u
otros gráficos - Video plane ? muestra el vÃdeo decodificado.
Algunos procesadores pueden tener más de un plano
de vÃdeo para soportar múltiples video streams o
para soportar picture-in-picture - Graphics plane ? muestra los gráficos de la
aplicación o los subtÃtulos - Cursor plane ? muestra el cursor HW
- No todos los receptores tienen todos los planos y
algunos tienen más. Los receptores modernos
tienen entre 5 y 13 planos en total, dependiendo
de las caracterÃsticas y del coste.
22API para vÃdeo y gráficos (III)
- Los receptores MHP agrupan los planos en 3 capas
- Background layer (una) ? para el color de fondo e
imágenes estáticas también de fondo - Video layer (una o más) ? para mostrar vÃdeos
decodificados - Graphics layer (una o más)? para mostrar gráficos
Background Layer
Video Layer
Graphics Layer
23API para vÃdeo y gráficos (IV)
- El mapeo entre los graphics planes del HW y las
graphics layers de MHP no está estrictamente
definido y por eso, más de un graphic plane
fÃsico puede estar dentro de una graphic layer
simple de MHP. - RecÃprocamente, un sistema que usa software MPEG
puede mapear un graphic plane fÃsico tanto en
la graphic layer como en la video layer en su
implementación del middleware
24API para vÃdeo y gráficos (V)
- Limitaciones entre los distintos graphics
planes - Algunos graphics hardware soportan más colores
y otros sólo un conjunto básico - La forma de los pÃxeles puede ser diferente
- VÃdeo pixeles no son cuadrados
- Graphic pixeles son cuadrados
- Resolución para PC con formato 43 ? 800x600
- Resolución para TV con formato 43 ? 720x625
- Los gráficos pueden no estar perfectamente
alineados con el vÃdeo mostrado. - El video plane impone sus propias limitaciones
- Algunos decodificadores MPEG tienen la limitación
de que el vÃdeo sólo puede ser escalado a un
determinado tamaño. Otros sólo pueden
posicionarse en determinadas áreas
25API para vÃdeo y gráficos (VI)
- Otra limitación, los subtÃtulos. Algunos
dispositivos - Limitan el posicionamiento de éstos
- Limitan los colores disponibles para ellos.
- Reservan una cantidad de pantalla sólo para ellos
y esta sección no puede ser utilizada para otros
propósitos - La interacción entre los diferentes planos
también impone limitaciones - Cambiar la configuración de otro planos puede
afectar al graphics plane. - Ejemplo Aunque la especificación MHP permite que
el background plane contenga tanto un color de
fondo como una imagen estática, algunos graphics
hardware limitan esto. En muchos casos el
hardware decodificador MPEG es necesario para
decodificar la imagen de background y mientras se
está realizando esto, no se puede decodificar el
vÃdeo. Esto causa la interrupción de la
decodificación del vÃdeo. Unas veces esta
interrupción dura hasta que se acaba de
decodificar la imagen de background, mientras que
otros hardware reservan el decodificador MPEG
hasta que dicha imagen se muestre.
26APIs para el control de medios
- Media control APIs
- MHP tiene dos APIs para controlar la forma de
mostrar señales de vÃdeo y elegir qué señales
mostrar al usuario - JMF (Java Media Framework) API ? para controlar
media clips individuales - JavaTV service selection API ? permite a las
aplicaciones cambiar de servicio. Es peligroso y
puede que la aplicación no sobreviva??? - Relacionada tangencialmente Tunning API ?
proporciona un medio a la aplicación para acceder
a otro transport stream
27API para sonido
- Los sonidos son comunes en las aplicaciones.
- 2 medios para incluir el sonido en la aplicación
- Usando JMF API
- A través de la clase org.havi.ui.Hsound ?
proporciona una API simple para reproducir audio
playback pero no ofrece tanto control de medios
como JMF
28API para sincronizar aplicaciones y media (I)
- Puede ser necesario sincronizar el comportamiento
de la aplicación con la acción en pantalla. Xej
subtÃtulos - No podemos usar media time como mecanismo de
sincronización porque no existe una referencia
temporal en la trama MPEG-2 - En vez de eso se usan los DSM-CC stream events,
(marcas que viajan embebidas en secciones
privadas del flujo MPEG-2)
29API para sincronizar aplicaciones y media (II)
- Cada marca consiste en
- Un identificador ? permite que cada stream event
sea identificado unÃvocamente - Una referencia temporal (NPTNormal Play Time) ?
indica en que punto del stream debe disparase el
evento - Esta marca es introducida por el broadcaster
30API para sincronizar aplicaciones y media (III)
- El transport stream también contiene un Object
Carousel que contiene un conjunto de streams
events objects. - streams events objects ? identifica cada evento
con un nombre textual y permite el mapeo de ese
nombre al identificador contenido en el evento
mismo
31API para sincronizar aplicaciones y media (IV)
- Podemos recibir varios Stream Events en el
broadcast stream que se correspondan con un mismo
Stream Event en el Object Carousel
32Java TV service selection API
- Permite cambiar el vÃdeo que está siendo mostrado
pero esto es sólo un efecto lateral de usar esta
API. Por eso hay que ser muy cuidadosos a la hora
de usar esta API porque puede provocar efectos
dramáticos en nuestras aplicaciones - Service selection cambiar de canal.
- En TV analógica ? mostrar diferentes audios y
videos - En TV digital ? mostrar diferentes audios, vÃdeos
y aplicaciones. El nuevo set de aplicaciones
puede no incluir la aplicación actual ? la
aplicación debe finalizar autodestruyéndose - Nota No es necesario cambiar de servicio para
mostrar distintos audios, vÃdeos y aplicaciones.
33API para la información sobre servicio
- Permite a la aplicación acceder a la mayorÃa de
las tablas transportadas en el transport stream - Servicios disponibles
- Hora de inicio
- Hora de final
- A la tabla AIT no se puede acceder utilizando
esta API por razones de seguridad y
funcionalidad. Para acceder a ella se logra a
través de la API para control de Xlets.
34API para filtrado de secciones MPEG-2
- Permite que las aplicaciones puedan acceder a las
secciones privadas del flujo MPEG-2 - Acceso al carrusel
- Acceso a información sobre servicios
35API para el acceso a ficheros
- Una aplicación no puede hacer gran cosa sin
acceder al sistema de ficheros. - En MHP las aplicaciones sólo pueden acceder al
sistema de archivos de broadcast en el que fueron
transmitidas. - También pueden acceder a un sistema de archivos
persistente usado para guardar la configuración y
preferencias de usuario en el receptor MHP
(Acceso a través de Persistent Storage API)
36API para el canal de retorno (I)
- Los perfiles interactive broadcast e internet
access incluyen soporte para usar un canal de
retorno en el receptor MHP para comunicarse con
el mundo exterior. - Tipos de canales de retorno
- PSTN modem
- Cable modem
- ADSL
- GPRS
-
- MHP no se preocupa, lo único que se define en las
especificaciones MHP es que la conexión debe
soportar TCP/IP.
37API para el canal de retorno (II)
- La conexión soporta DNS pero no son necesarios
otro protocolos como HTTP, SMTP o IMAP, que son
implementados por la aplicación. - MHP usa el paquete java.net para conectar con el
mundo exterior con algunas restricciones. - La diferencia entre usar el canal de retorno en
MHP y usar la API java.net es que ésta última
asume una conexión a internet permanente y esto
no es aplicable a un receptor MHP conectado vÃa
PSTN modem ? necesaria session management API,
que se usa también para impedir que aplicaciones
no deseadas por el usuario usen el canal de
retorno sin permiso de éste