SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
DESARROLLO DE APLICACIONES JAVA EN PLAYSTATION:
APLICACIONES EN DISCO PARA USOS ATÍPICOS
TOMÁS GARCÍA-MERÁS
¿APLICACIONES JAVA EN PLAYSTATION?
UNA JVM EN CADA REPRODUCTOR DE BLU-RAY
 Cada reproductor de Blu-Ray (lo que incluye las
video consolas Sony PlayStation 3 y PlayStation
4) incorpora una MáquinaVirtual Java que
permite la ejecución de aplicaciones con
características únicas:
 El almacenamiento local del disco (entre 25 y
50GB) permite incluir una enorme cantidad de
recursos en la aplicación para su uso sin necesidad
de Internet.
 Acceso a audio y video de alta calidad:
 Video alta definición: 1920 x 1080.
 Audio de muy alta calidad y multicanal (5.1, 7.1).
 Capacidad de acceso a Internet.
 La interacción con el usuario puede hacerse de la
forma más sencilla posible: Un mando a distancia.
¿POR QUÉ DESARROLLAR APLICACIONES JAVA EN BLU-RAY?
¡LOS ENTORNOS EDUCATIVOS!
 Las aplicaciones Blu-Ray son ideales para los sistemas de educación asistida, tanto presencial como a distancia,
pero… ¿Quién necesita un Blu-Ray pudiendo tener un ordenador o una tableta con conexión a Internet?
 No todo el mundo tiene un PC o tableta por alumno
y una escuela con conexión a Internet.
 Las características del Blu-Ray son únicas para la
educación en entornos con pocos recursos:
 Reproductor por debajo de los 100 USD.
 Funciona incluso en televisiones antiguas (CRT).
 Distribución de contenidos sin internet y de muy bajo
coste (hasta 50 GB por disco).
 Interacción sencilla con mando a distancia.
 Internet es opcional, pero por supuesto, posible.
¿POR QUÉ DESARROLLAR APLICACIONES JAVA EN BLU-RAY?
¡LOS ENTORNOS EDUCATIVOS!
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/thies-ictd10.pdf
¿POR QUÉ DESARROLLAR APLICACIONES JAVA EN BLU-RAY?
 No solo la educación en entornos sin
recursos…
 Valor añadido en películas Blu-Ray:
 ¿Aprender idiomas con cada película? Imagina,
acceso al audio, video y subtítulos de nuestra
película favorita en una aplicación Java con
acceso a Internet… El video-método de
aprendizaje con videos de la revista SpeakUp
llevado al siglo XXI.
 Mini-juegos, contenidos interactivo, etc.
 Foros, redes sociales… ¿Qué tal conectar con
Facebook desde la misma tele en la que estás
reproduciendo la película sin cambiar de
aplicación?
¿POR QUÉ DESARROLLAR APLICACIONES JAVA EN BLU-RAY?
UN BUEN EJEMPLO: JUEGOS DEL HAMBRE
https://www.youtube.com/watch?v=x8ZFIzbcNGE
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
JAVA
 Las máquinas virtuales Java de los reproductores Blu-Ray se ajustan al perfil PBP de CDC de JME de Java:
 JRE 1.4 (1.5 en el mejor de los casos):
 API antiguo, sin enumerados, genéricos, etc.
 No tenemos el API JSE completo, solo las clases
fundamentales del lenguaje:
 Olvidémonos, por ejemplo de Swing o AWT.
 API adicionales para funcionalidades específicas.
 DAVIC, HAVi, el propio API BD-J, etc.
 Y quizás el aspecto que más condiciona los
desarrollos… ¿Quién ha codificado la JVM que
hay dentro del reproductor?
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
GEMY MHP (I)
Personal Java (JME PBP)
Multimedia Home Platform (MHP) – Global Executable MHP (GEM)
HAVi DAVIC
BD-J
JavaTV
DVB
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY (III)
GEMY MHP (II)
 Java PBP (java.*, javax.*)
 Lenguaje base, incluyendo el objeto Graphics2D de AWT, que será la base para cualquier funcionalidad gráfica
en pantalla.
 JavaTV (javax.tv.*)
 Es el API que define el modelo de aplicaciones Java para Blu-Ray, empezando por los Xlets.
 HAVi (org.havi.*)
 Un estándar para UI en pantalla, creado inicialmente para la comunicación y manejo entre aparatos de
electrónica de consumo interconectados por FireWire (el equivalente del actual HDMI CEC). En las
aplicaciones Blu-Ray se usa únicamente como base de los objetos en pantalla.
 DAVIC (org.davic.*)
 Nunca llegué a entender la utilidad práctica de este API.
 DVB (org.dvb.*)
 API varios de utilidad, desde la captura de las pulsaciones en el mando a distancia hasta la gestión de
aplicaciones multi-Xlet.
 BD-J (org.bluray.*)
 Control JMF para audio, video y subtítulos, almacenamiento persistente, acceso a los recursos del disco, etc.
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
XLETS (I)
 Un Xlet es el equivalente Java TV a los Applets en JSE, pequeñas
aplicaciones que se ejecutan empotradas en un entorno ajeno (en este
caso, en el contexto de la reproducción de un disco de video Blu-Ray),
con un ciclo de vida muy parecido:
 initXlet, startXlet, pauseXlet, destroyXlet
 Los Xlets se definen en varios API (javax.tv.xlet y
javax.microedition.xlet), además de que otros API también
presentes definen clases de aplicación (como los Havlet de HAVi), pero
Blu-Ray solo ejecuta los de Java TV.
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
XLETS (II)
EJEMPLO PRÁCTICO DE XLET MÍNIMO EJECUTADO EN OSMOSYS SDK
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
XLETS (III)
EJEMPLO PRÁCTICO DE XLET MÍNIMO EJECUTADO EN OSMOSYS SDK
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
XLETS (IV)
 Notas adicionales sobre aplicaciones GEM / JavaTV “genéricas”:
 HAVi no es un API práctico para elementos de interfaz gráfico, pero… ¿Hay alternativas?
 Sin Swing ni AWT, necesitamos crearnos nuestra propia biblioteca de elementos de interfaz.
 Hay que poner un especial énfasis en la facilidad de uso de las aplicaciones:
 Leer en pantalla es molesto, por la pantalla y las distancias, hay que cuidar los tamaños y las
tipografías (probad “Tiresias”), pero sobre todo reducir los textos al mínimo.
 La interacción normalmente se hace con un mando a distancia, conviene apoyarse en las teclas de
color, los cursores y el OK. Conviene reforzar las acciones del usuario con efectos sonoros y
visuales.
 El reproductor puede no estar conectado a Internet, hay que permitir la operación sin red.
 Etc.
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
XLETS (V)
Ejemplos de aplicaciones MHP
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
BD-J (I)
BD-J
Application
BD-J
Application
BD-J
Application
BD-J
Application
BD-J Module
Application
Manager
Application
Cache
Resources
(available to BD-J applications)
BD-J
API
JVM
El subsistema BD-J tiene acceso al
audio, video y otros tipos de datos
en el disco BD-ROM, y estos datos
pueden ser tratados directamente
por las aplicaciones.
BD-J tiene adicionalmente acceso a:
 Almacenamiento local.
 Red.
 Puede descargar recursos, pero
nunca código.
Fuente: Sony Pictures
BD-J Application
Media
Control
Application
Cache
TCP/IP
Graphics, Audio
User
Interaction
Storage
Control
Title
Information
Disc Control
disc
BD-J
API
Local
Storage
NETWORK
Filesystem
Media
Decoder
Demux
Disc CPS
+
Audio and Video
Output
Remote control, keyboard,
mouse input
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
BD-J (II)
Fuente: Sony Pictures
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
BD-J (III)
 BD-J es un sistema diseñado principalmente para crear menús
“avanzados” en las películas BluRay, pero no es el único:
 Existen dos modos (que pueden coexistir en cierta forma) de programación
BluRay, el “Modo Película” (Movie Mode) y el “Modo BD-J” (BD-J Mode).
 El “Modo Película” es una evolución del lenguaje de scripting presente en los
DVD-Video, mientras que el modo BD-J nos ofrece una JVM y un API para
programación avanzada (al menos comparándolo con el “Modo Película”.
 Para la creación de menús, se recomienda el “Modo BD-J”, relegándose el “Modo
Película” a escenarios de transición desde producciones en DVD-Video.
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
BD-J (IV)
 Características básicas de BD-J:
 Imágenes en color de 32 bits con
transparencias.
 “Alpha blending”.
 Múltiples aplicaciones.
 Control completo de la reproducción de
audio y video.
Graphics Plane size 1920x1080/1280x720/720x480/720x576
Color Full Color RGB 24 bit color + 8 bit alpha
Compression JPEG and PNG
Presentation planes 1 plane
Presentation Plane name Java Plane
Main usage Interactivity
Animation Effects Special Frame Accurate Animation class
 Animaciones a velocidad estable.
 Impresión de textos en pantalla.
 Mezclado interactivo de audio.
 Impresión de imágenes sobre el video.
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
BD-J (V)
 Características básicas de BD-J: Planos
 Las aplicaciones BD-J se muestran en
pantalla en una disposición de “planos
superpuestos”:
 BD-J Java: Lo controlamos a través del
Graphics2D de AWT.
 Plano de presentación (para
subtítulos).
 Plano de video.
 Plano de fondo (exclusivo para BD-J).
Background Still plane
1920x1080x16-bit YUV
Video plane
1920x1080x16-bit YUV
Presentation Graphics plane
1920x1080x8-bit index + CLUT
BD-J Java
Graphics Plane
1920x1080x32-bit(RGBα)
Background Still plane
1920x1080x16-bit YUV
Video plane
1920x1080x16-bit YUV
Presentation Graphics plane
1920x1080x8-bit index + CLUT
BD-J Java
Graphics Plane
1920x1080x32-bit(RGBα)
Fuente: Sony Pictures
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
MONTANDO EL ENTORNO DE DESARROLLO (I)
 Necesitaremos las clases Java del entorno de ejecución para compilar:
 Solicitar los “BD-J JavaDocStubs” a la Blu-Ray Disc Association:
 “BD-ROM_Part3-2_v3.4_javadoc_080623-src-stubs.jar”.
 Encontrar “Stubs for Packaged Media Target (GEM 1.0.3)” de MHP:
 “mug226-gem_packaged_media.zip”.
 Los JAR de “Javadoc API Reference Documentation for Blu-ray Disc Application Development”:
 Java TV API (JSR 927):“jtv111.zip”.
 Java Secure Socket Extension (JSSE) 1.0.3 for CDC 1.0.2: “jsse103.zip”.
 Foundation Profile (FP) and Connected Device Configuration (CDC), v1.0b: “fp10b.zip”.
 Personal Basis Profile (PBP) v1.0b: “pbp10b.zip”
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
MONTANDO EL ENTORNO DE DESARROLLO (II)
 Y la forma rápida… Compra el software reproductor de Blu-Ray para
Windows “CyberLink PowerDVD” y busca los JAR del JRE BD-J en su
directorio de instalación:
 C:Program Files (x86)CyberLinkPowerDVD16CommonNavFilter
 “BDJ.jar” y “BDJP1.jar”: Toda la pila GEM + BD-J (dos versiones distintas).
 “lib*.jar”: El entorno de ejecución JME CDC PBP (incluyendo JAAS, JSSE-CDC y JCE).
 “btclasses.zip”: El “Boot Classpath” en tiempo de ejecución (no hace falta para compilar).
 Con estas clases y un JDK 1.4, monta un “Build Path” en Eclipse (o el CLASSPATH +
BOOTCLASSPATH en JDK en línea de comandos).
Nota: Los JAR están igualmente en la versión de evaluación de “CyberLink PowerDVD” y funcionan sin problemas tras
expirar el periodo de evaluación, pero es un software asequible, merece la pena adquirirlo y ser mínimamente honesto.
EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY
CREACIÓN DEL DISCO
 Antes de continuar…Vamos a cotillear un poco lo que se ve al
descompilar las aplicaciones BD-J de una película comercial.
 IronMan 1
 Aplicaciones creadas principalmente con Sony
BluPrint.
 Buena parte está ofuscado, pero hay
componentes base sin ofuscación (botones,
menús, etc.).
 Piratas del Caribe 2
 Aplicación creada con el software de autoría
de Panasonic.
 Sin ofuscar.
EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY
CREACIÓN DEL DISCO
 Para ejecutar una aplicación BD-J, típicamente tendremos que crear toda
la estructura de un disco Blu-Ray (el que podemos ver en cualquier
película Blu-Ray).
 ¿Cómo es la estructura de un disco Blu-Ray?
EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY
CREACIÓN DEL DISCO
 La creación del disco excede las competencias “habituales” de un equipo
de programación.
 Para iniciarse, lo mejor es empezar con un disco pre-creado.
 https://java.net/projects/hdcookbook/downloads
 Hay software de sobra para crear discos de BD-Video:
 Nero Burning ROM.
 Etc.
EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY
DEPURACIÓN DE APLICACIONES EN HARDWARE REAL
 Sony Computer Entertainment (SCE, y más concretamente, su
filial europea, SCEE) dispone de hardware específico para la
depuración de aplicaciones Java en PlayStation (de aplicación a
cualquier aplicación BD-J para Blu-Ray):
 Actualmente sobre PlayStation 4, anteriormente en PlayStation 3.
 Distintas capacidades, pero quizás las más importantes sean:
 Posibilidad de ejecutar contenido en disco duro.
 Acceso a la consola Java.
 Acceso limitado a integrantes del programa específico de desarrollo
Java en PlayStation.
 Hay que solicitar acceso y firmar un sinfín de documentos legales y
acuerdos de confidencialidad.
 Este programa no vale para otros desarrollos en PlayStation (juegos, etc.).
EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY
DEPURACIÓN DE APLICACIONES EN HARDWARE REAL
 Demostración de la depuración de aplicaciones
BD-J en equipo Sony “DS3 for AV”.
EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY
DEPURACIÓN DE APLICACIONES EN HARDWARE REAL
 Consideraciones finales:
 El mercado de reproductores Blu-Ray es muy heterogéneo, y vamos a
encontrarnos con JVM muy distintas, con bugs peculiares, con capacidades
hardware muy distintas… Pero es fundamental que nuestra aplicación funciona
adecuadamente en todos.
 Conviene contar con un reproductor que establezcamos como “hardware mínimo”.
 Conviene tener una batería de reproductores para pruebas, controlando al menos las
principales marcas (Sony, Samsung, Philips, etc.).
 Conviene que las pruebas finales del disco se externalicen a un laboratorio
externo (por ejemplo el “Panasonic FormatVerification Laboratory”).
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY
BIBLIOGRAFÍA
 “Programming HD-DVD and Blu-Ray Disc”
(ISBN: 978-0071496704, McGraw Hill).
 Un extraordinario libro sobre Java en BluRay
escrito por Bill Foote (antiguo empleado de Sun
Microsystems) en el que se repasan las
capacidades de la tecnología, se describe el API y
además se acompaña de un proyecto de software
libre para ayudar a los desarrolladores de BD-J:
 https://java.net/projects/hdcookbook
DESARROLLANDO APLICACIONES JAVA EN BLU-RAY (XX)
SOFTWARE COMPLEMENTARIO
 “Blu-Print”, de Sony Creative
Software.
 Software profesional para la autoría de
discos BluRay de video, incluyendo la
integración de programas DB-J.
 Soporte de las últimas mejoras de BD-
J (3D, ejecución en segundo plano,
etc.).
 Muy caro. No lo distribuyen “a
cualquiera”. http://www.sonycreativesoftware.com/es/bluprint
¡MUCHAS GRACIAS!
Tomás García-Merás Capote
clawgrip@hotmail.com
tomas.garciameras@atos.net

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Unidad1 de sony vega 12
Unidad1 de  sony vega 12Unidad1 de  sony vega 12
Unidad1 de sony vega 12
 
Tutorial sony vegas.pdf
Tutorial sony vegas.pdfTutorial sony vegas.pdf
Tutorial sony vegas.pdf
 
Las formas de edición de un vídeo
Las  formas de edición de un vídeoLas  formas de edición de un vídeo
Las formas de edición de un vídeo
 
Edición de Video - Sony Vegas Pro
Edición de Video - Sony Vegas Pro Edición de Video - Sony Vegas Pro
Edición de Video - Sony Vegas Pro
 
Adobe premiere
Adobe premiereAdobe premiere
Adobe premiere
 
Edicion de video
Edicion de videoEdicion de video
Edicion de video
 
Combinar photoshop con premier
Combinar photoshop con premierCombinar photoshop con premier
Combinar photoshop con premier
 
Adobe Premiere Pro
Adobe Premiere ProAdobe Premiere Pro
Adobe Premiere Pro
 
Editor de Video
Editor de VideoEditor de Video
Editor de Video
 
Programas Para La Edición De Video
Programas Para La Edición De VideoProgramas Para La Edición De Video
Programas Para La Edición De Video
 
Edicion De Video
Edicion De VideoEdicion De Video
Edicion De Video
 
Editores de vídeo
Editores de vídeoEditores de vídeo
Editores de vídeo
 
Adobe premiere
Adobe premiereAdobe premiere
Adobe premiere
 
Clase 7 tecno 1-2019
Clase 7 tecno 1-2019Clase 7 tecno 1-2019
Clase 7 tecno 1-2019
 
Clase 6 tecno 1-2018
Clase 6 tecno 1-2018Clase 6 tecno 1-2018
Clase 6 tecno 1-2018
 
Sony vegas
Sony vegasSony vegas
Sony vegas
 
Edición DE Video
Edición DE Video Edición DE Video
Edición DE Video
 
Fundamentos Video Digital
Fundamentos Video DigitalFundamentos Video Digital
Fundamentos Video Digital
 
Movie maker
Movie makerMovie maker
Movie maker
 

Similar a Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos

Similar a Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos (20)

Multimedia
MultimediaMultimedia
Multimedia
 
Multimedia
MultimediaMultimedia
Multimedia
 
Herramientas para la edición de video
Herramientas para la edición de videoHerramientas para la edición de video
Herramientas para la edición de video
 
Software Educativo Organizar Recursos1
Software Educativo Organizar Recursos1Software Educativo Organizar Recursos1
Software Educativo Organizar Recursos1
 
Clase 8 tecno i-periodismo 2015
Clase 8  tecno i-periodismo 2015Clase 8  tecno i-periodismo 2015
Clase 8 tecno i-periodismo 2015
 
Clase 8 tecno i-comunicación 2015
Clase 8  tecno i-comunicación 2015Clase 8  tecno i-comunicación 2015
Clase 8 tecno i-comunicación 2015
 
After effects
After effectsAfter effects
After effects
 
Flashvs pp
Flashvs ppFlashvs pp
Flashvs pp
 
Romina izquierdo 2 b2
Romina izquierdo 2 b2Romina izquierdo 2 b2
Romina izquierdo 2 b2
 
Presentacion Trabajo1
Presentacion Trabajo1Presentacion Trabajo1
Presentacion Trabajo1
 
Trabajo igles
Trabajo iglesTrabajo igles
Trabajo igles
 
Clase 8 tecno i-comunicacion 2016
Clase 8  tecno i-comunicacion 2016Clase 8  tecno i-comunicacion 2016
Clase 8 tecno i-comunicacion 2016
 
Informatica Temario
Informatica TemarioInformatica Temario
Informatica Temario
 
Informatica Musica
Informatica MusicaInformatica Musica
Informatica Musica
 
Clase 8 tecno i-periodismo 2016
Clase 8  tecno i-periodismo 2016Clase 8  tecno i-periodismo 2016
Clase 8 tecno i-periodismo 2016
 
Consulta videos
Consulta videosConsulta videos
Consulta videos
 
05 Multimedia. Introduccion. Video. Anexo
05 Multimedia. Introduccion. Video. Anexo05 Multimedia. Introduccion. Video. Anexo
05 Multimedia. Introduccion. Video. Anexo
 
Programas para crear video nia
Programas para crear video niaProgramas para crear video nia
Programas para crear video nia
 
XXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX
 
gestores de imagen y plataformas de video
gestores de imagen y plataformas de videogestores de imagen y plataformas de video
gestores de imagen y plataformas de video
 

Más de Tomás García-Merás

NWC10 - Retos digitales derivados del COVID-19
NWC10 - Retos digitales derivados del COVID-19NWC10 - Retos digitales derivados del COVID-19
NWC10 - Retos digitales derivados del COVID-19Tomás García-Merás
 
Hacking hardware en sistemas empotrados: De la preservación a la seguridad
Hacking hardware en sistemas empotrados: De la preservación a la seguridadHacking hardware en sistemas empotrados: De la preservación a la seguridad
Hacking hardware en sistemas empotrados: De la preservación a la seguridadTomás García-Merás
 
Blockchain vs. Firma electrónica en sector público
Blockchain vs. Firma electrónica en sector públicoBlockchain vs. Firma electrónica en sector público
Blockchain vs. Firma electrónica en sector públicoTomás García-Merás
 
T3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
T3chfest 2019 - Modelos de confianza técnico-jurídica en BlockchainT3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
T3chfest 2019 - Modelos de confianza técnico-jurídica en BlockchainTomás García-Merás
 
Confidencialidad de los datos en la cadena de bloques
Confidencialidad de los datos en la cadena de bloquesConfidencialidad de los datos en la cadena de bloques
Confidencialidad de los datos en la cadena de bloquesTomás García-Merás
 
CyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas
CyberCamp 2018 - La autenticación con certificados en las Sedes ElectrónicasCyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas
CyberCamp 2018 - La autenticación con certificados en las Sedes ElectrónicasTomás García-Merás
 
Mitos y realidades de la confianza en Blockchain
Mitos y realidades de la confianza en BlockchainMitos y realidades de la confianza en Blockchain
Mitos y realidades de la confianza en BlockchainTomás García-Merás
 
Asegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLAsegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLTomás García-Merás
 
2016 04 --curso_portafirmas_movil_v3
2016 04 --curso_portafirmas_movil_v32016 04 --curso_portafirmas_movil_v3
2016 04 --curso_portafirmas_movil_v3Tomás García-Merás
 
2016 04 --curso_novedades_auto_firma
2016 04 --curso_novedades_auto_firma2016 04 --curso_novedades_auto_firma
2016 04 --curso_novedades_auto_firmaTomás García-Merás
 
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de serviciosCl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de serviciosTomás García-Merás
 
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con AndroidProgramación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con AndroidTomás García-Merás
 
2015 10 - Curso Cliente @firma INAP día 1
2015 10 - Curso Cliente @firma INAP día 12015 10 - Curso Cliente @firma INAP día 1
2015 10 - Curso Cliente @firma INAP día 1Tomás García-Merás
 
2015 10 - Curso Cliente @firma INAP día 3
2015 10 - Curso Cliente @firma INAP día 32015 10 - Curso Cliente @firma INAP día 3
2015 10 - Curso Cliente @firma INAP día 3Tomás García-Merás
 
2015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 22015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 2Tomás García-Merás
 
Alternativas a los Applets de Java para la realización de firmas electrónicas...
Alternativas a los Applets de Java para la realización de firmas electrónicas...Alternativas a los Applets de Java para la realización de firmas electrónicas...
Alternativas a los Applets de Java para la realización de firmas electrónicas...Tomás García-Merás
 
Presentación firma electrónica Codemotion 2014
Presentación firma electrónica Codemotion 2014Presentación firma electrónica Codemotion 2014
Presentación firma electrónica Codemotion 2014Tomás García-Merás
 
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...Tomás García-Merás
 

Más de Tomás García-Merás (20)

NWC10 - Retos digitales derivados del COVID-19
NWC10 - Retos digitales derivados del COVID-19NWC10 - Retos digitales derivados del COVID-19
NWC10 - Retos digitales derivados del COVID-19
 
Hacking hardware en sistemas empotrados: De la preservación a la seguridad
Hacking hardware en sistemas empotrados: De la preservación a la seguridadHacking hardware en sistemas empotrados: De la preservación a la seguridad
Hacking hardware en sistemas empotrados: De la preservación a la seguridad
 
Blockchain vs. Firma electrónica en sector público
Blockchain vs. Firma electrónica en sector públicoBlockchain vs. Firma electrónica en sector público
Blockchain vs. Firma electrónica en sector público
 
T3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
T3chfest 2019 - Modelos de confianza técnico-jurídica en BlockchainT3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
T3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
 
Confidencialidad de los datos en la cadena de bloques
Confidencialidad de los datos en la cadena de bloquesConfidencialidad de los datos en la cadena de bloques
Confidencialidad de los datos en la cadena de bloques
 
CyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas
CyberCamp 2018 - La autenticación con certificados en las Sedes ElectrónicasCyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas
CyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas
 
Mitos y realidades de la confianza en Blockchain
Mitos y realidades de la confianza en BlockchainMitos y realidades de la confianza en Blockchain
Mitos y realidades de la confianza en Blockchain
 
Madres Digitales 2017
Madres Digitales 2017Madres Digitales 2017
Madres Digitales 2017
 
Asegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLAsegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSL
 
2016 04 --curso_portafirmas_movil_v3
2016 04 --curso_portafirmas_movil_v32016 04 --curso_portafirmas_movil_v3
2016 04 --curso_portafirmas_movil_v3
 
2016 04 --curso_cliente_movil_v3
2016 04 --curso_cliente_movil_v32016 04 --curso_cliente_movil_v3
2016 04 --curso_cliente_movil_v3
 
2016 04 --curso_novedades_auto_firma
2016 04 --curso_novedades_auto_firma2016 04 --curso_novedades_auto_firma
2016 04 --curso_novedades_auto_firma
 
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de serviciosCl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
 
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con AndroidProgramación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
 
2015 10 - Curso Cliente @firma INAP día 1
2015 10 - Curso Cliente @firma INAP día 12015 10 - Curso Cliente @firma INAP día 1
2015 10 - Curso Cliente @firma INAP día 1
 
2015 10 - Curso Cliente @firma INAP día 3
2015 10 - Curso Cliente @firma INAP día 32015 10 - Curso Cliente @firma INAP día 3
2015 10 - Curso Cliente @firma INAP día 3
 
2015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 22015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 2
 
Alternativas a los Applets de Java para la realización de firmas electrónicas...
Alternativas a los Applets de Java para la realización de firmas electrónicas...Alternativas a los Applets de Java para la realización de firmas electrónicas...
Alternativas a los Applets de Java para la realización de firmas electrónicas...
 
Presentación firma electrónica Codemotion 2014
Presentación firma electrónica Codemotion 2014Presentación firma electrónica Codemotion 2014
Presentación firma electrónica Codemotion 2014
 
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
 

Último

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Luis Olivera
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 

Último (20)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 

Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos

  • 1. DESARROLLO DE APLICACIONES JAVA EN PLAYSTATION: APLICACIONES EN DISCO PARA USOS ATÍPICOS TOMÁS GARCÍA-MERÁS
  • 2. ¿APLICACIONES JAVA EN PLAYSTATION? UNA JVM EN CADA REPRODUCTOR DE BLU-RAY  Cada reproductor de Blu-Ray (lo que incluye las video consolas Sony PlayStation 3 y PlayStation 4) incorpora una MáquinaVirtual Java que permite la ejecución de aplicaciones con características únicas:  El almacenamiento local del disco (entre 25 y 50GB) permite incluir una enorme cantidad de recursos en la aplicación para su uso sin necesidad de Internet.  Acceso a audio y video de alta calidad:  Video alta definición: 1920 x 1080.  Audio de muy alta calidad y multicanal (5.1, 7.1).  Capacidad de acceso a Internet.  La interacción con el usuario puede hacerse de la forma más sencilla posible: Un mando a distancia.
  • 3. ¿POR QUÉ DESARROLLAR APLICACIONES JAVA EN BLU-RAY? ¡LOS ENTORNOS EDUCATIVOS!  Las aplicaciones Blu-Ray son ideales para los sistemas de educación asistida, tanto presencial como a distancia, pero… ¿Quién necesita un Blu-Ray pudiendo tener un ordenador o una tableta con conexión a Internet?  No todo el mundo tiene un PC o tableta por alumno y una escuela con conexión a Internet.  Las características del Blu-Ray son únicas para la educación en entornos con pocos recursos:  Reproductor por debajo de los 100 USD.  Funciona incluso en televisiones antiguas (CRT).  Distribución de contenidos sin internet y de muy bajo coste (hasta 50 GB por disco).  Interacción sencilla con mando a distancia.  Internet es opcional, pero por supuesto, posible.
  • 4. ¿POR QUÉ DESARROLLAR APLICACIONES JAVA EN BLU-RAY? ¡LOS ENTORNOS EDUCATIVOS! https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/thies-ictd10.pdf
  • 5. ¿POR QUÉ DESARROLLAR APLICACIONES JAVA EN BLU-RAY?  No solo la educación en entornos sin recursos…  Valor añadido en películas Blu-Ray:  ¿Aprender idiomas con cada película? Imagina, acceso al audio, video y subtítulos de nuestra película favorita en una aplicación Java con acceso a Internet… El video-método de aprendizaje con videos de la revista SpeakUp llevado al siglo XXI.  Mini-juegos, contenidos interactivo, etc.  Foros, redes sociales… ¿Qué tal conectar con Facebook desde la misma tele en la que estás reproduciendo la película sin cambiar de aplicación?
  • 6. ¿POR QUÉ DESARROLLAR APLICACIONES JAVA EN BLU-RAY? UN BUEN EJEMPLO: JUEGOS DEL HAMBRE https://www.youtube.com/watch?v=x8ZFIzbcNGE
  • 7. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY JAVA  Las máquinas virtuales Java de los reproductores Blu-Ray se ajustan al perfil PBP de CDC de JME de Java:  JRE 1.4 (1.5 en el mejor de los casos):  API antiguo, sin enumerados, genéricos, etc.  No tenemos el API JSE completo, solo las clases fundamentales del lenguaje:  Olvidémonos, por ejemplo de Swing o AWT.  API adicionales para funcionalidades específicas.  DAVIC, HAVi, el propio API BD-J, etc.  Y quizás el aspecto que más condiciona los desarrollos… ¿Quién ha codificado la JVM que hay dentro del reproductor?
  • 8. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY GEMY MHP (I) Personal Java (JME PBP) Multimedia Home Platform (MHP) – Global Executable MHP (GEM) HAVi DAVIC BD-J JavaTV DVB
  • 9. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY (III) GEMY MHP (II)  Java PBP (java.*, javax.*)  Lenguaje base, incluyendo el objeto Graphics2D de AWT, que será la base para cualquier funcionalidad gráfica en pantalla.  JavaTV (javax.tv.*)  Es el API que define el modelo de aplicaciones Java para Blu-Ray, empezando por los Xlets.  HAVi (org.havi.*)  Un estándar para UI en pantalla, creado inicialmente para la comunicación y manejo entre aparatos de electrónica de consumo interconectados por FireWire (el equivalente del actual HDMI CEC). En las aplicaciones Blu-Ray se usa únicamente como base de los objetos en pantalla.  DAVIC (org.davic.*)  Nunca llegué a entender la utilidad práctica de este API.  DVB (org.dvb.*)  API varios de utilidad, desde la captura de las pulsaciones en el mando a distancia hasta la gestión de aplicaciones multi-Xlet.  BD-J (org.bluray.*)  Control JMF para audio, video y subtítulos, almacenamiento persistente, acceso a los recursos del disco, etc.
  • 10. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY XLETS (I)  Un Xlet es el equivalente Java TV a los Applets en JSE, pequeñas aplicaciones que se ejecutan empotradas en un entorno ajeno (en este caso, en el contexto de la reproducción de un disco de video Blu-Ray), con un ciclo de vida muy parecido:  initXlet, startXlet, pauseXlet, destroyXlet  Los Xlets se definen en varios API (javax.tv.xlet y javax.microedition.xlet), además de que otros API también presentes definen clases de aplicación (como los Havlet de HAVi), pero Blu-Ray solo ejecuta los de Java TV.
  • 11. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY XLETS (II) EJEMPLO PRÁCTICO DE XLET MÍNIMO EJECUTADO EN OSMOSYS SDK
  • 12. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY XLETS (III) EJEMPLO PRÁCTICO DE XLET MÍNIMO EJECUTADO EN OSMOSYS SDK
  • 13. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY XLETS (IV)  Notas adicionales sobre aplicaciones GEM / JavaTV “genéricas”:  HAVi no es un API práctico para elementos de interfaz gráfico, pero… ¿Hay alternativas?  Sin Swing ni AWT, necesitamos crearnos nuestra propia biblioteca de elementos de interfaz.  Hay que poner un especial énfasis en la facilidad de uso de las aplicaciones:  Leer en pantalla es molesto, por la pantalla y las distancias, hay que cuidar los tamaños y las tipografías (probad “Tiresias”), pero sobre todo reducir los textos al mínimo.  La interacción normalmente se hace con un mando a distancia, conviene apoyarse en las teclas de color, los cursores y el OK. Conviene reforzar las acciones del usuario con efectos sonoros y visuales.  El reproductor puede no estar conectado a Internet, hay que permitir la operación sin red.  Etc.
  • 14. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY XLETS (V) Ejemplos de aplicaciones MHP
  • 15. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY BD-J (I) BD-J Application BD-J Application BD-J Application BD-J Application BD-J Module Application Manager Application Cache Resources (available to BD-J applications) BD-J API JVM El subsistema BD-J tiene acceso al audio, video y otros tipos de datos en el disco BD-ROM, y estos datos pueden ser tratados directamente por las aplicaciones. BD-J tiene adicionalmente acceso a:  Almacenamiento local.  Red.  Puede descargar recursos, pero nunca código. Fuente: Sony Pictures
  • 16. BD-J Application Media Control Application Cache TCP/IP Graphics, Audio User Interaction Storage Control Title Information Disc Control disc BD-J API Local Storage NETWORK Filesystem Media Decoder Demux Disc CPS + Audio and Video Output Remote control, keyboard, mouse input DESARROLLANDO APLICACIONES JAVA EN BLU-RAY BD-J (II) Fuente: Sony Pictures
  • 17. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY BD-J (III)  BD-J es un sistema diseñado principalmente para crear menús “avanzados” en las películas BluRay, pero no es el único:  Existen dos modos (que pueden coexistir en cierta forma) de programación BluRay, el “Modo Película” (Movie Mode) y el “Modo BD-J” (BD-J Mode).  El “Modo Película” es una evolución del lenguaje de scripting presente en los DVD-Video, mientras que el modo BD-J nos ofrece una JVM y un API para programación avanzada (al menos comparándolo con el “Modo Película”.  Para la creación de menús, se recomienda el “Modo BD-J”, relegándose el “Modo Película” a escenarios de transición desde producciones en DVD-Video.
  • 18. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY BD-J (IV)  Características básicas de BD-J:  Imágenes en color de 32 bits con transparencias.  “Alpha blending”.  Múltiples aplicaciones.  Control completo de la reproducción de audio y video. Graphics Plane size 1920x1080/1280x720/720x480/720x576 Color Full Color RGB 24 bit color + 8 bit alpha Compression JPEG and PNG Presentation planes 1 plane Presentation Plane name Java Plane Main usage Interactivity Animation Effects Special Frame Accurate Animation class  Animaciones a velocidad estable.  Impresión de textos en pantalla.  Mezclado interactivo de audio.  Impresión de imágenes sobre el video.
  • 19. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY BD-J (V)  Características básicas de BD-J: Planos  Las aplicaciones BD-J se muestran en pantalla en una disposición de “planos superpuestos”:  BD-J Java: Lo controlamos a través del Graphics2D de AWT.  Plano de presentación (para subtítulos).  Plano de video.  Plano de fondo (exclusivo para BD-J). Background Still plane 1920x1080x16-bit YUV Video plane 1920x1080x16-bit YUV Presentation Graphics plane 1920x1080x8-bit index + CLUT BD-J Java Graphics Plane 1920x1080x32-bit(RGBα) Background Still plane 1920x1080x16-bit YUV Video plane 1920x1080x16-bit YUV Presentation Graphics plane 1920x1080x8-bit index + CLUT BD-J Java Graphics Plane 1920x1080x32-bit(RGBα) Fuente: Sony Pictures
  • 20. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY MONTANDO EL ENTORNO DE DESARROLLO (I)  Necesitaremos las clases Java del entorno de ejecución para compilar:  Solicitar los “BD-J JavaDocStubs” a la Blu-Ray Disc Association:  “BD-ROM_Part3-2_v3.4_javadoc_080623-src-stubs.jar”.  Encontrar “Stubs for Packaged Media Target (GEM 1.0.3)” de MHP:  “mug226-gem_packaged_media.zip”.  Los JAR de “Javadoc API Reference Documentation for Blu-ray Disc Application Development”:  Java TV API (JSR 927):“jtv111.zip”.  Java Secure Socket Extension (JSSE) 1.0.3 for CDC 1.0.2: “jsse103.zip”.  Foundation Profile (FP) and Connected Device Configuration (CDC), v1.0b: “fp10b.zip”.  Personal Basis Profile (PBP) v1.0b: “pbp10b.zip”
  • 21. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY MONTANDO EL ENTORNO DE DESARROLLO (II)  Y la forma rápida… Compra el software reproductor de Blu-Ray para Windows “CyberLink PowerDVD” y busca los JAR del JRE BD-J en su directorio de instalación:  C:Program Files (x86)CyberLinkPowerDVD16CommonNavFilter  “BDJ.jar” y “BDJP1.jar”: Toda la pila GEM + BD-J (dos versiones distintas).  “lib*.jar”: El entorno de ejecución JME CDC PBP (incluyendo JAAS, JSSE-CDC y JCE).  “btclasses.zip”: El “Boot Classpath” en tiempo de ejecución (no hace falta para compilar).  Con estas clases y un JDK 1.4, monta un “Build Path” en Eclipse (o el CLASSPATH + BOOTCLASSPATH en JDK en línea de comandos). Nota: Los JAR están igualmente en la versión de evaluación de “CyberLink PowerDVD” y funcionan sin problemas tras expirar el periodo de evaluación, pero es un software asequible, merece la pena adquirirlo y ser mínimamente honesto.
  • 22. EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY CREACIÓN DEL DISCO  Antes de continuar…Vamos a cotillear un poco lo que se ve al descompilar las aplicaciones BD-J de una película comercial.  IronMan 1  Aplicaciones creadas principalmente con Sony BluPrint.  Buena parte está ofuscado, pero hay componentes base sin ofuscación (botones, menús, etc.).  Piratas del Caribe 2  Aplicación creada con el software de autoría de Panasonic.  Sin ofuscar.
  • 23. EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY CREACIÓN DEL DISCO  Para ejecutar una aplicación BD-J, típicamente tendremos que crear toda la estructura de un disco Blu-Ray (el que podemos ver en cualquier película Blu-Ray).  ¿Cómo es la estructura de un disco Blu-Ray?
  • 24. EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY CREACIÓN DEL DISCO  La creación del disco excede las competencias “habituales” de un equipo de programación.  Para iniciarse, lo mejor es empezar con un disco pre-creado.  https://java.net/projects/hdcookbook/downloads  Hay software de sobra para crear discos de BD-Video:  Nero Burning ROM.  Etc.
  • 25. EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY DEPURACIÓN DE APLICACIONES EN HARDWARE REAL  Sony Computer Entertainment (SCE, y más concretamente, su filial europea, SCEE) dispone de hardware específico para la depuración de aplicaciones Java en PlayStation (de aplicación a cualquier aplicación BD-J para Blu-Ray):  Actualmente sobre PlayStation 4, anteriormente en PlayStation 3.  Distintas capacidades, pero quizás las más importantes sean:  Posibilidad de ejecutar contenido en disco duro.  Acceso a la consola Java.  Acceso limitado a integrantes del programa específico de desarrollo Java en PlayStation.  Hay que solicitar acceso y firmar un sinfín de documentos legales y acuerdos de confidencialidad.  Este programa no vale para otros desarrollos en PlayStation (juegos, etc.).
  • 26. EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY DEPURACIÓN DE APLICACIONES EN HARDWARE REAL  Demostración de la depuración de aplicaciones BD-J en equipo Sony “DS3 for AV”.
  • 27. EJECUTARY DEPURAR APLICACIONES JAVA EN BLU-RAY DEPURACIÓN DE APLICACIONES EN HARDWARE REAL  Consideraciones finales:  El mercado de reproductores Blu-Ray es muy heterogéneo, y vamos a encontrarnos con JVM muy distintas, con bugs peculiares, con capacidades hardware muy distintas… Pero es fundamental que nuestra aplicación funciona adecuadamente en todos.  Conviene contar con un reproductor que establezcamos como “hardware mínimo”.  Conviene tener una batería de reproductores para pruebas, controlando al menos las principales marcas (Sony, Samsung, Philips, etc.).  Conviene que las pruebas finales del disco se externalicen a un laboratorio externo (por ejemplo el “Panasonic FormatVerification Laboratory”).
  • 28. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY BIBLIOGRAFÍA  “Programming HD-DVD and Blu-Ray Disc” (ISBN: 978-0071496704, McGraw Hill).  Un extraordinario libro sobre Java en BluRay escrito por Bill Foote (antiguo empleado de Sun Microsystems) en el que se repasan las capacidades de la tecnología, se describe el API y además se acompaña de un proyecto de software libre para ayudar a los desarrolladores de BD-J:  https://java.net/projects/hdcookbook
  • 29. DESARROLLANDO APLICACIONES JAVA EN BLU-RAY (XX) SOFTWARE COMPLEMENTARIO  “Blu-Print”, de Sony Creative Software.  Software profesional para la autoría de discos BluRay de video, incluyendo la integración de programas DB-J.  Soporte de las últimas mejoras de BD- J (3D, ejecución en segundo plano, etc.).  Muy caro. No lo distribuyen “a cualquiera”. http://www.sonycreativesoftware.com/es/bluprint
  • 30. ¡MUCHAS GRACIAS! Tomás García-Merás Capote clawgrip@hotmail.com tomas.garciameras@atos.net