[Jde-dev] CameraServer y WebCam Philips
Roberto Calvo
rocapal en libresoft.es
Mar Mar 23 19:58:31 CET 2010
Perfect David!!
Como ya no aparece la capabiliti concreta de la logitech (YUV2), la
webcam v4l1 funciona correctamente, sin problemas, y sin necesidad de
añadir el SrcPipeline.
Así me gusta mucho más, lo hacemos muy genérico para que funcione casi
cualquier cámara. Y si no vale con esa conf, cada uno se pica la suya.
Genial!
Thanks David!
El mar, 23-03-2010 a las 09:45 -0400, David Lobato escribió:
> Hola,
>
>
> Acabo de subir cambios en cameraserver para implementar las ideas que
> comentabamos en este hilo.
>
>
> Concretamente, he añadido un parametro SrcPipeline que permite indicar
> un pipeline en el formato de gstreamer (ver gst-launch para ejemplos).
> De modo que si necesitamos optimizar algo con relación al origen del
> flujo de video (camara, video, ...) pues simplemente ponemos el
> pipeline optimo y andando.
>
>
> Dicho parametro es prioritario con respecto al parametro Uri, es
> decir, si se encuentran ambos se usa SrcPipeline.
>
>
> El aspecto del pipeline que tenemos en cameraserver es el que se
> muestra en el gráfico adjunto.
>
>
> Pondré todo esto en le wiki.
>
>
> Rober, he añadido el manejo de v4l:// que no estaba subido. Pruebalo
> cuando tengas un momento, yo no tengo cámara v4l.
>
>
> También me gustaría probar las cámaras fierwire. En teoria el
> protocolo dv:// está soportado, pero no tengo ni idea de que hay que
> poner a continuación y si permite seleccionar la cámara. Se supone que
> es una uri estandar en gnome, pero no he encontrado mucha información
> al respecto. Otra opción es especificar un pipeline usando dv1394src
> como fuente. Si alguien se anima a probar que comente el resultado.
>
>
> David.
>
> 2010/3/21 Roberto Calvo <rocapal en libresoft.es>
>
> 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
>
>
>
> _______________________________________________
> 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/20100323/cc2c1ec4/attachment-0001.pgp
More information about the Jde-developers
mailing list