[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