Home UC3M
Home IT

Práctica 5

JMF: animación de imágenes.

OBJETIVOS

En esta sesión usaremos Java Media Framework para crear una animación en formato QuickTime a partir de una colección de imágenes JPEG.

ENUNCIADO

A diferencia de las prácticas anteriores, el esqueleto de esta práctica no hace uso de un Player por defecto de JMF, sino que se construye un pipeline completo haciendo uso de elementos DataSource, Processor y DataSink.

En el esqueleto se os proporciona una clase derivada de PullBufferDataSource que nos permite leer ficheros comprimidos con JPEG. Esta clase se utiliza desde el Processor para obtener bufferes que contienen la información binaria de las imágenes decodificadas y generar el video de salida en formato QuickTime. Finalmente, la salida del Processor se inyecta en un objeto de tipo DataSink para guardar el stream de salida en un fichero.

Vuestro trabajo consiste en completar la implementación de la clase Actions. Dicha clase implementa una serie de métodos clave para la inicialización y el funcionamiento del programa. Los requisitos de cada método los podéis encontrar documentados en la interfaz IActions.

CONFIGURACIÓN DE ECLIPSE

El programa de esta sesión es una aplicación de línea de comandos que requiere una serie de argumentos de entrada. Para configurar Eclipse para que le pase al programa los argumentos al lanzarlo, tenemos que editar la "Run Configuration" asociada a la aplicación.

La manera más sencilla de hacerlo es ejecutar la aplicación una vez (right click en la clase JPGAnimator.java, Run As->Java Application). Esto crea una "Run Configuration" por defecto para esa clase. El programa debería ejecutarse e imprimir por consola una línea indicando los argumentos esperados.

Una vez hecho esto, right click en JPGAnimator, Run As->Run Configurations... Ahí deberíais ver una configuración asociada a JPGAnimator. La abrís y os vais al tab de Arguments. En la cajita que pone Program Arguments podéis meter los argumentos que queráis que se le pasen a la aplicación al arrancar.

 

ERRORES HABITUALES EN LA CONFIGURACIÓN DE ECLIPSE (Linux)

  1. No se ha creado un proyecto para la práctica. Para cada práctica tenéis que crear un proyecto nuevo en vuestro workspace. En este proyecto añadís los .java del esqueleto y desarrolláis vuestra parte.
  2. Se ha creado un proyecto para la práctica, pero tenemos más de un proyecto abierto. Aseguraos de cerrar todos los proyectos de las prácticas anteriores. De lo contrario, las configuraciones de los proyectos interfieren entre sí.
  3. El proyecto asociado a la práctica está configurado en modo compatibilidad Java 1.4. Tiene que ser Java 1.5. (right click en la carpeta de proyecto -> Properties -> Java Compiler). Aseguraos de que se aplica la configuración si la cambiáis.
  4. Estáis usando la máquina virtual de Java 1.4. Tiene que ser la de Java 1.5. En el laboratorio hay instaladas distintas versiones del SDK de Java por requisitos de las distintas asignaturas que se imparten. Vosotros tenéis que usar el JDK 1.5. (Window->Preferences->Java->Installed JRE, ahí teneis que tener una entrada para el jdk 1.5 que podéis encontrar en /usr/local y tiene que estar marcado para que se use por defecto).
  5. No se ha incluido la librería de JMF en el classpath. JMF no forma parte de la distribución estándar de Java. Para poder trabajar con ella, hay que añadirla al classpath. (right click en la carpeta de proyecto -> Properties -> Java Build Path, ahí, en el tab Libraries, añadís jmf.jar como External JAR).
  6. No están configuradas las librerías binarias (.so) de JMF para Linux. Para poder acceder a la mayoría de los codecs de JMF en Linux, son necesarias una serie de librerías dinámicas que no están instaladas en el laboratorio. Son las que están disponibles para bajar en la página de la Práctica 3 (jmf-lib.tgz). Para configurarlas: right click en la carpeta del proyecto -> Run As... -> Run Configurations, y en la configuración de vuestra aplicación, en el tab Environment habría que añadir la variable LD_LIBRARY_PATH y apuntarla al directorio donde tengais las librerías.

 

ENLACES