[Jde-dev] CameraServer y WebCam Philips
Roberto Calvo
rocapal en libresoft.es
Dom Mar 21 14:40:15 CET 2010
No hago causa, mientras esté el parámetro me vale :-) Ya tendremos
tiempo de cambiarlo si no nos gusta donde lo pongamos.
Así que como tu veas David.
El sáb, 20-03-2010 a las 09:22 -0400, David Lobato escribió:
> A mi me parece, que el formato va ligado a la fuente y me parece que
> tiene mas sentido ponerlo en la propia uri.
>
>
> Independientemente del lugar, si ponemos el formato con un string que
> nosotros definimos habrá que parsealo y encontrar el equivalente con
> gstreamer. A priori, yo iría con el que usa gstreamer, salvo que
> resulte que no hay funciones para parsearlo y tengamos que hacerlas
> nosotros.
>
>
>
>
>
> 2010/3/20 Roberto Calvo <rocapal en libresoft.es>
>
> Y que te parece si ponemos lo siguiente, siguiendo con el
> estilo que
> hiciste del fichero de conf
>
> CameraSrv.Camera.0.Uri=v4l2:///dev/video0
>
> CameraSrv.Camera.0.Uri.Format=I420
>
> ¿Cómo lo ves?
>
> El vie, 19-03-2010 a las 10:15 -0400, David Lobato escribió:
>
> > Dado que el parametro está relacionado concretamente con las
> cámaras
> > yo lo pondría como opción al especificar una uri que empiece
> con v4l o
> > v4l2.
> >
> >
> > Además dado que está ligado a gstreamer usaría el formato
> que ellos
> > usan para especificar capabilities de video( algo así
> > video/x-raw-yuv,width=320,height=240,...) cuando las
> indicas desde
> > linea de comandos. No estoy seguro, pero supongo que la
> librería tiene
> > funciones para transformar un string en caps y viceversa.
> Habría que
> > buscarlo.
> >
> >
> > Así la manera de especificar que una cámara concreta debe
> sacar los
> > frames con un formato indicado sería:
> >
> >
> > CameraSrv.Camera.0.Uri=v4l2:///dev/video0?formato
> >
> >
> > He puesto ? por analogia con las url, pero vamos podemos
> poner otra
> > cosa si os parece mejor.
> >
> >
> > Cómo lo véis?
> >
> >
> > David.
> >
> > 2010/3/18 JoseMaria <jmplaza en gsyc.es>
> > Idem. Lo veo bien como parámetro opcional, de modo
> que si no
> > se pone
> > nada el componente CameraServer lo hace lo mejor que
> puede por
> > defecto.
> > Muchas aplicaciones usarán justo el componente así,
> sin saber
> > muchos
> > detalles de las cámaras que tiene debajo.
> >
> > Pero si para cierta cámara viene mejor tal o cual
> combinación,
> > es muy
> > útil que se pueda especificar vía fichero de
> configuración y
> > saltarse el
> > "por defecto" para que la captura se ajuste mejor a
> las
> > características
> > especiales de tal o cual cámara o los requisitos de
> tal o cual
> > aplicación.
> >
> > JoseMaria
> >
> > On Mon, 2010-03-15 at 14:35 +0100, Roberto Calvo
> wrote:
> > > El lun, 15-03-2010 a las 09:18 -0400, David Lobato
> escribió:
> > > > No veo tan claro que la solución sea añadir otro
> > parámetro. Esto nos
> > > > obliga a caracterizar cada una de las cámaras
> que queramos
> > conectar y
> > > > apañar el código para cada cámara. Una cosa es
> que
> > soportemos
> > > > diferentes formatos de salida (RGB888, YUY2,...)
> > estandarizados para
> > > > que el que reciba al otro lado sepa a que
> atenerse, y otra
> > es que haya
> > > > que controlar al milímetro que entra y que sale.
> A mi
> > parecer deja de
> > > > hacer simple el uso del componente.
> > >
> > > Podemos ponerlo como parámetro opcional en el
> fichero de
> > conf. No
> > > siempre es necesario utilizarlo, pero hay veces
> que viene
> > bien para no
> > > tener que compilar código. Un parámetro opcional
> lo veo
> > bastante bien.
> > >
> > > >
> > > >
> > > > Como solución para ir tirando lo acepto, pero
> creo que
> > tenemos que
> > > > investigar un poco mas sobre gstreamer para ver
> como
> > detectar las
> > > > "capabilities" que da la cámara con código (99%
> seguro de
> > que se
> > > > puede) y seleccionar aquella que mejor se adapte
> a la que
> > se espera
> > > > como salida (en principio con no cambiar de
> espacio de
> > colores seria
> > > > suficiente).
> > >
> > > Totalmente de acuerdo, si con gst-launch es capaz
> de
> > negociarlo, desde
> > > C++ también se puede hacer.
> > >
> > > Aún así, veo muy bueno y versátil disponer de este
> parámetro
> > opcional en
> > > el fichero de configuración, ya que nos permite
> modificar el
> > > comportamiento de cameraserver sin necesidad de
> cambiar
> > código. Aunque
> > > nos de gstreamer las "capabilities", dejaría la
> opción de
> > detallarle en
> > > el fichero de conf el formato que queremos.
> > >
> > > Cada cámara y cada linux es un mundo, por lo que
> creo que
> > nos vendrá muy
> > > bien disponer del máximo detalle en los ficheros
> de conf.
> > Eso si, con
> > > parámetros opcionales, que podamos arrancar un
> cameraserver
> > con las
> > > mínimas líneas de conf tambien es importante.
> > >
> > > un saludo!
> > >
> > > >
> > > >
> > > > En cuanto al vloopback funcionando con todo,
> enhorabuena!
> > Los números
> > > > pintan bastante bien.
> > > >
> > > >
> > > > David.
> > > >
> > > > 2010/3/15 JoseMaria <jmplaza en gsyc.es>
> > > > Estupendo!!
> > > >
> > > > Sip, habría que añadir al fichero de
> configuración
> > ese nuevo
> > > > parámetro.
> > > >
> > > > David está preparando la descripción en
> el manual
> > 5.0 de
> > > > cameraServer,
> > > > cameraViewer, etc. Buen sitio para
> comentar cómo
> > se usan estos
> > > > componentes, cómo se configuran,
> brevemente cómo
> > están hechos
> > > > por
> > > > dentro, etc. A ver si esta semana
> conseguimos
> > cerrar una
> > > > descripción
> > > > buena en el manual de ellos, que ya
> somos
> > bastantes los que
> > > > estamos
> > > > usándolos.
> > > >
> > > > Ánimo,
> > > >
> > > > JoseMaria
> > > >
> > > > On Sun, 2010-03-14 at 23:18 +0100,
> Roberto Calvo
> > wrote:
> > > > > Al fin he conseguido hacerlo
> funcionar. La
> > solución, como no
> > > > soporta
> > > > > YUY2, es mirar que formato soporta, y
> lo que he
> > encontrado
> > > > es que esta
> > > > > cámara soporte I420
> > > > > Label FOURCC in Hex
> Bits per
> > pixel
> > > > Description
> > > > > I420 0x30323449
> 12
> > > > 8 bit Y plane followed by 8 bit 2x2
> subsampled
> > U and V
> > > > planes.
> > > > >
> > > > > Más info en [1]
> > > > >
> > > > > Por lo que el código, lo único que
> cambia es lo
> > siguiente:
> > > > >
> > > > > v4l2caps = gst_caps_new_simple
> > ("video/x-raw-yuv",
> > > > >
> "format",
> > > > GST_TYPE_FOURCC,
> > > > >
> > > > GST_MAKE_FOURCC('I','4','2','0'),
> > > > >
> NULL);
> > > > >
> > > > >
> > > > > David, quizás deberíamos añadir al
> fichero de
> > conf de camera
> > > > server este
> > > > > parámetro (formato en el que queremos
> recoger la
> > imagen de
> > > > la cámara,
> > > > > para optimizar el proceso como has
> dicho), y
> > añadirlo al que
> > > > ya tenemos,
> > > > > que es formato que ofrece el servidor.
> ¿Te
> > parece?
> > > > >
> > > > > Por cierto, funciona todo bien ya
> sobre el
> > módulo vloopback,
> > > > que ya era
> > > > > hora :-))
> > > > >
> > > > > Algunos datos interesantes probados en
> la
> > miniITX (1.5Ghz)
> > > > >
> > > > > CameraServer + Vloopback = ~ 5% de CPU
> > > > > CameraServer + Vloopback + ffmpeg
> grabando = ~
> > 20% de CPU
> > > > >
> > > > > un saludete!
> > > > >
> > > > > [1] http://www.fourcc.org/yuv.php
> > > > >
> > > > >
> > > > > El dom, 14-03-2010 a las 22:05 +0100,
> Roberto
> > Calvo
> > > > escribió:
> > > > > > Thanks por la explicación!!, ahora
> lo voy
> > teniendo más
> > > > claro.
> > > > > >
> > > > > > Lo primero que he hecho es ejecutar
> el comando
> > desde
> > > > consola, para ver
> > > > > > si es capaz de negociar gstreamer
> con esta
> > cámara. Y si es
> > > > capaz, ya que
> > > > > > termina por mostrar la imagen y
> negociar con
> > los
> > > > siguientes parámetros:
> > > > > >
> > > > >
> > > >
> >
> > /GstPipeline:pipeline0/GstXImageSink:ximagesink0.GstPad:sink:
> > > > > > caps = video/x-raw-rgb,
> bpp=(int)16,
> > depth=(int)16,
> > > > endianness=(int)1234,
> > > > > > red_mask=(int)63488,
> green_mask=(int)2016,
> > > > blue_mask=(int)31, width=(int)320,
> > > > > > height=(int)240,
> framerate=(fraction)15/2,
> > > > pixel-aspect-ratio=(fraction)1/1
> > > > > >
> > > > > >
> > > > > > He modificado el código para la
> parte donde se
> > generar los
> > > > pipelines, en
> > > > > > el caso que conectamos un
> dispositivo v4l2
> > (descomentado
> > > > la parte de
> > > > > > v4l2caps y caps, también he probado
> sólo
> > dejando caps);
> > > > > >
> > > > > >
> > > > > > else if
> (config_.uri.find("v4l://") ==
> > 0){/*handle v4l2
> > > > source*/
> > > > > > std::string dev =
> > config_.uri.substr(6);/*after
> > > > v4l2://*/
> > > > > > source =
> > > >
> gst_element_factory_make("v4lsrc","source");
> > > > > >
> > > >
> >
> g_object_set(G_OBJECT(source),"device",dev.c_str(),NULL);
> > > > > > sink =
> > gst_element_factory_make("appsink","sink");
> > > > > >
> > g_object_set(G_OBJECT(sink),"drop",1,NULL);
> > > > > >
> > g_object_set(G_OBJECT(sink),"max-buffers",16,NULL);
> > > > > >
> > > > > > videocolor =
> > > >
> >
> gst_element_factory_make("ffmpegcolorspace","videocolor");
> > > > > >
> > > >
> >
> gst_bin_add_many(GST_BIN(pipeline),source,videocolor,sink,NULL);
> > > > > >
> > > >
> >
> //gst_element_link_filtered(source,videocolor,v4l2caps);
> > > > > >
> > //gst_element_link_filtered(videocolor,sink,caps);
> > > > > > }
> > > > > >
> > > > > >
> > > > > > Después de estar un rato negociando,
> sale el
> > siguiente
> > > > mensaje.
> > > > > >
> > > > > > info: Starting thread for camera:
> cameraA
> > > > > > error: Error: Error en el flujo de
> datos
> > interno.
> > > > > >
> > > > > >
> > > > > > Sigo probado configuraciones, a ver
> que puede
> > estar
> > > > pasando ....
> > > > > >
> > > > > > El sáb, 13-03-2010 a las 17:10
> -0500, David
> > Lobato
> > > > escribió:
> > > > > > > Hola,
> > > > > > >
> > > > > > >
> > > > > > > El error "Could not negociate
> format" sale
> > cuando alguno
> > > > de los
> > > > > > > componentes del pipeline no puede
> funcionar
> > en el
> > > > formato que le
> > > > > > > estamos pidiendo.
> > > > > > >
> > > > > > >
> > > > > > > El pipeline que hay para v4l2 está
> bastante
> > optimizado
> > > > para a las
> > > > > > > cámaras logitech, ya que es la que
> tengo mas
> > a mano.
> > > > Para que funcione
> > > > > > > con otras cámaras tenemos que
> hacer un poco
> > mas
> > > > genérico. Lo que
> > > > > > > tenemos ahora es:
> > > > > > >
> > > > > > >
> > > > > > > camara -----> ffmpegcolorspaces
> ------>
> > appsink
> > > > > > > |
> > |
> > > > > > > v4l2caps
> > caps
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Gstreamer es capaz de negociar el
> formato de
> > los datos
> > > > que cada
> > > > > > > componente intercambia entre si,
> pero
> > también te deja
> > > > especificar
> > > > > > > dicho formato con lo que se
> denominan
> > "capabilities" que
> > > > vienen a ser
> > > > > > > una descripción del formato.
> > > > > > >
> > > > > > >
> > > > > > > Así en nuestro pipeline tenemos un
> > componente camara, el
> > > > componente
> > > > > > > ffmpegcolorspaces que es capaz de
> traducir
> > de un espacio
> > > > de color a
> > > > > > > otro y el componente appsink, que
> es un
> > buffer que
> > > > almacena los frames
> > > > > > > hasta que se los pedimos. Además,
> "caps"
> > seleccionan el
> > > > formato que
> > > > > > > hemos configurado en el fichero
> cfg, de modo
> > que los
> > > > frames que
> > > > > > > appsink nos da van en el formato
> que
> > queremos (YUY2,
> > > > RGB888, GRAY8 por
> > > > > > > el momento).
> > > > > > >
> > > > > > >
> > > > > > > Para el caso concreto de las
> cámaras
> > logitech, estas son
> > > > capaces de
> > > > > > > generar datos en yuy2 (YUV422) y
> jpeg de
> > forma nativa
> > > > sin ninguna
> > > > > > > transformación software. Pero por
> alguna
> > razón que
> > > > desconozco cuando
> > > > > > > montas el pipeline con los
> elementos
> > comentados (sin
> > > > contar v4l2caps)
> > > > > > > el formato que negocia la cámara
> con
> > ffmpegcolorspaces
> > > > no es ninguno
> > > > > > > de los nativos por lo que se hace
> una
> > conversión extra
> > > > (ver ejecución
> > > > > > > al final del mail). Para evitar
> esto añadí
> > al pipeline
> > > > "v4l2caps" que
> > > > > > > fijan el formato a YUY2 eliminando
> la
> > conversión extra.
> > > > > > >
> > > > > > >
> > > > > > > Esto se hace concretamente aquí:
> > > > > > >
> >
> st_element_link_filtered(source,videocolor,v4l2caps);
> > > > > > >
> > > > > > >
> > > > > > > El problema viene cuando pones una
> cámara
> > que no puede
> > > > generar dicho
> > > > > > > formato, como parece ser el
> problema de la
> > philips. Así,
> > > > creo que la
> > > > > > > solución es simplemente quitar
> v4l2caps y
> > dejar que se
> > > > negocie el
> > > > > > > formato, a costa de que no sea el
> mas
> > optimo, pero
> > > > ganando el soporte
> > > > > > > de mas cámaras.
> > > > > > >
> > > > > > >
> > > > > > > También cabe la posibilidad de que
> haya
> > alguna manera
> > > > mejor de
> > > > > > > hacerlo, que yo de momento no he
> > descubierto. En cuanto
> > > > tenga mas
> > > > > > > tiempo, me gustaría descubrir un
> poco mas de
> > gstreamer,
> > > > que parece
> > > > > > > bastante interesante y potente
> para lo que
> > buscamos.
> > > > > > >
> > > > > > >
> > > > > > > Espero haber aclarado el asunto.
> > > > > > >
> > > > > > >
> > > > > > > Un saludo,
> > > > > > > David.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Ejecución que muestra la
> negociación camara
> > > > ffmpegcolorspaces:
> > > > > > >
> > > > > > >
> > > > > > > gst-launch-0.10 -v v4l2src
> > device=/dev/video2 !
> > > > ffmpegcolorspace !
> > > > > > >
> video/x-raw-rgb,width=320,height=240 !
> > ximagesink
> > > > > > >
> > > > > > >
> > > > > > > (gst-launch-0.10:2960):
> GLib-WARNING **:
> > g_set_prgname()
> > > > called
> > > > > > > multiple times
> > > > > > > Setting pipeline to PAUSED ...
> > > > > > > Xlib: extension "Generic Event
> Extension"
> > missing on
> > > > display
> > > > > > > "localhost:10.0".
> > > > > >
> >
> > /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src:
> > > > caps =
> > > > > > > video/x-raw-yuv,
> format=(fourcc)I420,
> > width=(int)320,
> > > > height=(int)240,
> > > > > > > framerate=(fraction)30/1,
> > > > pixel-aspect-ratio=(fraction)1/1
> > > > > > > Pipeline is live and does not need
> > PREROLL ...
> > > > > > > Setting pipeline to PLAYING ...
> > > > > > > New clock: GstSystemClock
> > > > > >
> > > >
> >
> > /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:src:
> > > > caps =
> > > > > > > video/x-raw-rgb, bpp=(int)32,
> depth=(int)24,
> > > > endianness=(int)4321,
> > > > > > > red_mask=(int)65280,
> > green_mask=(int)16711680,
> > > > > > > blue_mask=(int)-16777216,
> width=(int)320,
> > > > height=(int)240,
> > > > > > > framerate=(fraction)30/1,
> > > > pixel-aspect-ratio=(fraction)1/1
> > > > > >
> > > >
> >
> > /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:sink:
> > > > caps =
> > > > > > > video/x-raw-yuv,
> format=(fourcc)I420,
> > width=(int)320,
> > > > height=(int)240,
> > > > > > > framerate=(fraction)30/1,
> > > > pixel-aspect-ratio=(fraction)1/1
> > > > > >
> > > >
> >
> > /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src:
> > > > caps =
> > > > > > > video/x-raw-rgb, bpp=(int)32,
> depth=(int)24,
> > > > endianness=(int)4321,
> > > > > > > red_mask=(int)65280,
> > green_mask=(int)16711680,
> > > > > > > blue_mask=(int)-16777216,
> width=(int)320,
> > > > height=(int)240,
> > > > > > > framerate=(fraction)30/1,
> > > > pixel-aspect-ratio=(fraction)1/1
> > > > > >
> > > >
> >
> > /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps =
> > > > > > > video/x-raw-rgb, bpp=(int)32,
> depth=(int)24,
> > > > endianness=(int)4321,
> > > > > > > red_mask=(int)65280,
> > green_mask=(int)16711680,
> > > > > > > blue_mask=(int)-16777216,
> width=(int)320,
> > > > height=(int)240,
> > > > > > > framerate=(fraction)30/1,
> > > > pixel-aspect-ratio=(fraction)1/1
> > > > > >
> > > >
> >
> > /GstPipeline:pipeline0/GstXImageSink:ximagesink0.GstPad:sink: caps =
> > > > > > > video/x-raw-rgb, bpp=(int)32,
> depth=(int)24,
> > > > endianness=(int)4321,
> > > > > > > red_mask=(int)65280,
> > green_mask=(int)16711680,
> > > > > > > blue_mask=(int)-16777216,
> width=(int)320,
> > > > height=(int)240,
> > > > > > > framerate=(fraction)30/1,
> > > > pixel-aspect-ratio=(fraction)1/1
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > 2010/3/13 Roberto Calvo
> > <rocapal en libresoft.es>
> > > > > > >
> > > > > > > Buenas,
> > > > > > >
> > > > > > > Al arrancar el
> CameraServer contra
> > la webcam
> > > > Philips V4l , me
> > > > > > > da este error:
> > > > > > >
> > > > > > > error: Error: Could not
> negotiate
> > format
> > > > > > >
> > > > > > > Y en el dmesg sale esto
> (parece que
> > no consigue
> > > > poner los fps
> > > > > > > adecuados).
> > > > > > >
> > > > > > > [14566.456664] pwc: Failed
> to set
> > video mode
> > > > SIF en 1 fps; return
> > > > > > > code = -22
> > > > > > > [14566.613554] pwc: Failed
> to set
> > video mode
> > > > SIF en 2 fps; return
> > > > > > > code = -22
> > > > > > > [14566.766625] pwc: Failed
> to set
> > video mode
> > > > SIF en 3 fps; return
> > > > > > > code = -22
> > > > > > > [14566.927300] pwc: Failed
> to set
> > video mode
> > > > SIF en 4 fps; return
> > > > > > > code = -22
> > > > > > > [14571.280324] pwc: Failed
> to set
> > video mode
> > > > SIF en 31 fps;
> > > > > > > return code = -22
> > > > > > >
> > > > > > > David, añadí la opción
> para v4l al
> > cameraserver:
> > > > > > >
> > > > > > > else if
> (config_.uri.find("v4l://")
> > ==
> > > > 0){/*handle v4l2
> > > > > > > source*/
> > > > > > > std::string dev =
> > > > config_.uri.substr(6);/*after v4l2://*/
> > > > > > > source =
> > > >
> gst_element_factory_make("v4lsrc","source");
> > > > > > >
> > > >
> >
> g_object_set(G_OBJECT(source),"device",dev.c_str(),NULL);
> > > > > > > sink =
> > > >
> gst_element_factory_make("appsink","sink");
> > > > > > >
> > g_object_set(G_OBJECT(sink),"drop",1,NULL);
> > > > > > >
> > > >
> > g_object_set(G_OBJECT(sink),"max-buffers",16,NULL);
> > > > > > >
> > > > > > > videocolor =
> > > > > > >
> > > >
> >
> gst_element_factory_make("ffmpegcolorspace","videocolor");
> > > > > > >
> > > > > > >
> > > >
> >
> gst_bin_add_many(GST_BIN(pipeline),source,videocolor,sink,NULL);
> > > > > > >
> > > >
> >
> gst_element_link_filtered(source,videocolor,v4l2caps);
> > > > > > >
> > > >
> gst_element_link_filtered(videocolor,sink,caps);
> > > > > > > }
> > > > > > >
> > > > > > > ¿Ves que puede estar
> pasando?
> > > > > > >
> > > > > > > un saludete!
> > > > > > >
> > > > > > > --
> > > > > > > Roberto Calvo Palomino
> |
> > Libre
> > > > Software Engineering
> > > > > > > Lab (GSyC)
> > > > > > > Tel: (+34) 91 488 85 23
> |
> > Universidad
> > > > Rey Juan Carlos
> > > > > > > rocapal en libresoft.es
> |
> > Edif.
> > > > Departamental II -
> > > > > > > Despacho 116
> > > > > > > http://libresoft.es/
> |
> > c/Tulipán s/n
> > > > 28933 Móstoles
> > > > > > > (Madrid)
> > > > > > >
> > > > > > > GPG-KEY:
> > http://gsyc.es/~rocapal/rocapal.gpg
> > > > > > >
> > > > > > >
> > > > > > >
> > _______________________________________________
> > > > > > > Jde-developers mailing list
> > > > > > > Jde-developers en gsyc.es
> > > > > > >
> > > >
> >
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
> > > > > >
> > > > > >
> > _______________________________________________
> > > > > > Jde-developers mailing list
> > > > > > Jde-developers en gsyc.es
> > > > > >
> > > >
> >
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
> > > > >
> > > > >
> _______________________________________________
> > > > > Jde-developers mailing list
> > > > > Jde-developers en gsyc.es
> > > > >
> > > >
> >
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > http://gsyc.es/jmplaza
> > > > Universidad Rey Juan Carlos
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > Jde-developers mailing list
> > > > Jde-developers en gsyc.es
> > > >
> >
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
> > >
> >
> >
> > --
> > http://gsyc.es/jmplaza
> > Universidad Rey Juan Carlos
> >
> >
> >
> >
> >
>
>
> --
>
> Roberto Calvo Palomino | Libre Software Engineering
> Lab (GSyC)
> Tel: (+34) 91 488 85 23 | Universidad Rey Juan Carlos
> rocapal en libresoft.es | Edif. Departamental II -
> Despacho 116
> http://libresoft.es/ | c/Tulipán s/n 28933 Móstoles
> (Madrid)
>
> GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
>
>
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
--
Roberto Calvo Palomino | Libre Software Engineering Lab (GSyC)
Tel: (+34) 91 488 85 23 | Universidad Rey Juan Carlos
rocapal en libresoft.es | Edif. Departamental II - Despacho 116
http://libresoft.es/ | c/Tulipán s/n 28933 Móstoles (Madrid)
GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
------------ prxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : no disponible
Tipo : application/pgp-signature
Tamaño : 198 bytes
Descripción: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada
digitalmente
Url : http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20100321/67759993/attachment-0001.pgp
More information about the Jde-developers
mailing list