MMDeviceCreator: instalación y puesta en marcha

sábado, 3 de julio de 2010

Como comenté en mi entrada anterior (Servicio de negociación), he escrito un servicio IceBox que proporciona, a aquellos clientes que lo necesiten, toda la negociación que puedan necesitar para realizar conexiones AVStream.


En este post detallaré como instalar dicho servicio y como ponerlo en marcha. Allá vamos.

Instalación
Para instalarlo, en entornos Debian, solo habrá que tener esta línea en el fichero /etc/apt/sources.list

deb http://babel.esi.uclm.es/gnesis/ unstable main

y realizar lo siguiente:

# aptitude update
# aptitude install libmmdevicecreator

Para el resto de entornos GNU/Linux, libmmdevicecreator.tar.gz: este fichero contiene tanto la librería (fichero .so) como dos ficheros, nombrados "config" y "config_MMDCS", que serán explicados en el siguiente punto.

Puesta en marcha
Como el resto de servicios implementados utilizando las ventajas de IceBox, para lanzarlo solamente hará falta escribir un par de ficheros de configuración: en uno de ellos, que será el que acepte el ejecutable de IceBox, se describirá como debe lanzarse el servicio (nombre de la librería, versión, orden en el caso de lanzarse varios servicios a la vez...). El otro fichero de configuración se le pasará al servicio propiamente dicho, y tendrá las variables que necesite para su ejecución. Estos ficheros se corresponden, respectivamente, con los que encontramos en el tarball.

Para lanzar el servicio, lo primero, deberemos tener la librería en una ubicación bien conocida para el ejecutable de IceBox. En el caso del paquete Debian no habrá ningún problema, pero en el caso del tarball deberemos copiar el fichero .so a /usr/local/lib o bien hacer que la variable de entorno LD_LIBRARY_PATH contenga el directorio dónde se encuentre el fichero.

El fichero "config" tiene tan solo la configuración del "Default Locator" de nuestro entorno y la configuración de carga de la librería:

Ice.Default.Locator=IceGrid/Locator:tcp -h peter -p 4061
IceBox.Service.MMDCS=MMDeviceCreator:createService --Ice.Config=config_MMDCS

Con esa configuración definimos un servicio IceBox llamado "MMDCS", el cual intentará cargar la librería "libMMDeviceCreator" a través de su punto de entrada "createService", pasándole la configuración del fichero config_MMDCS.

Este otro fichero es el que configura realmente el servicio, y además de la configuración del Default Locator, deberá incluir la configuración del endpoint para el MMDeviceCreatorAdapter, el proxy al PropertySetDefFactory, que nos proporciona el servicio de propiedades, y un par de variables Registry.username y Registry.password que contendrán, si los hubiera, el nombre de usuario y la password administrativa del Registry al que estamos conectados.

Para lanzarlo:

$ icebox --Ice.Config=config

Al lanzarlo, obtendremos por la salida en el terminal algo como lo siguiente:

[INFO] [MMDevice Creator] Starting service
[INFO] [MMDevice Creator] PropertySetDefFactory proxy: PropertySetFactory -t @ AutoPropertyService.Adapter
[INFO] Negotiator -t:tcp -h 192.168.1.2 -p 15000

Esa última línea es la que los clientes deberán utiliazr para poder utilizar el servicio. Si se realizara un despliegue a a través de IceGrid, este último proxy sería un objeto bien conocido, por lo que el acceso para los clientes sería más sencillo aún.

En la próxima entrada os contaré como utilizar el primer cliente que hice para este servicio: un sumidero que se activa a través de un applet de escritorio y que, por ahora, podréis probar con una cámara Axis, si es que la tenéis claro :P

Edición: Por recomendación de mi director de Proyecto os doy las instrucciones para descargar desde el repositorio el código fuente:

hg clone http://arco.esi.uclm.es/~josel.segura/pfc

Por si no lo conocéis, el comando "hg" se corresponde al CVS Mercurial. Podéis encontrar información sobre él en http://mercurial.selenic.com/ y en esta recete en Crysol: Mercurial, por favor.

Una vez tengáis el repositorio en vuestra máquina, podréis encontrar todo el código fuente en el directorio software/src. En concreto, el MMDeviceCreator está en software/src/MMDeviceCreator

0 comentarios:

 
Theme by New wp themes | Bloggerized by Dhampire