GNOME Bugzilla – Bug 136392
[v4lsrc] buggy wit qc-usb driver
Last modified: 2004-12-22 21:47:04 UTC
v4l pluggin is buggy with Webcams based in qc-usb driver , Cause pluggin expect at least 2 frames to be queued as minimum : ----- OUTPUT ------ /usr/local/gstreamer/core/bin/gst-launch-0.7 v4lsrc device="/dev/video0" ! sdlvideosink RUNNING pipeline ... /dev/video0 [v4l]: no overlay support ERROR default(32654) v4l-overlay_calls.c(76):gst_v4l_set_overlay:<v4lsrc0> Executing v4l-conf failed. ERROR default(32654) v4l-overlay_calls.c(76):gst_v4l_set_overlay:<v4lsrc0> system error: Conseguido ERROR: from element /pipeline0/v4lsrc0: Executing v4l-conf failed. Additional debug info: v4l-overlay_calls.c(76): gst_v4l_set_overlay: /pipeline0/v4lsrc0: system error: Conseguido Opened device 'Logitech USB Camera' ('/dev/video0') successfully Got 1 buffers ('YUV-4:2:2 (packed)') of size 416 KB Caught interrupt. Execution ended after 479 iterations (sum 44757233000 ns, average 93438899 ns, min 530000 ns, max 1746394000 ns). [root@develop2 qc-usb-0.6.0]# rmmod quickcam [root@develop2 qc-usb-0.6.0]# insmod quickcam Using /lib/modules/2.4.22-1.2174.nptl/kernel/drivers/video/quickcam.o [root@develop2 qc-usb-0.6.0]# /usr/local/gstreamer/core/bin/gst-launch-0.7 v4lsrc device="/dev/video0" ! sdlvideosink RUNNING pipeline ... /dev/video0 [v4l]: no overlay support ERROR default( 799) v4l-overlay_calls.c(76):gst_v4l_set_overlay:<v4lsrc0> Executing v4l-conf failed. ERROR default( 799) v4l-overlay_calls.c(76):gst_v4l_set_overlay:<v4lsrc0> system error: Conseguido ERROR: from element /pipeline0/v4lsrc0: Executing v4l-conf failed. Additional debug info: v4l-overlay_calls.c(76): gst_v4l_set_overlay: /pipeline0/v4lsrc0: system error: Conseguido Opened device 'Logitech USB Camera' ('/dev/video0') successfully ERROR default( 799) v4lsrc_calls.c(192):gst_v4lsrc_capture_init:<v4lsrc0> (null) ERROR default( 799) v4lsrc_calls.c(192):gst_v4lsrc_capture_init:<v4lsrc0> Not enough buffers. We got 1, we want at least 22 ERROR: from element /pipeline0/v4lsrc0: Could not read from resource. Additional debug info: v4lsrc_calls.c(192): gst_v4lsrc_capture_init: /pipeline0/v4lsrc0: Not enough buffers. We got 1, we want at least 2 ERROR: pipeline doesn't want to play. -------------------- #define MIN_BUFFERS_QUEUED 2 (v4lsrc_calls.c" line 36 ) So using the utility that come with qc-usb , qcset : qcset /dev/video0 compat=dblbuf , so it does that v4lsrc->mbuf.frames = 2 , but however didn't work ... --- OUTPUT --- /usr/local/gstreamer/core/bin/gst-launch-0.7 v4lsrc device="/dev/video0" ! sdlvideosink RUNNING pipeline ... /dev/video0 [v4l]: no overlay support ERROR default(32649) v4l-overlay_calls.c(76):gst_v4l_set_overlay:<v4lsrc0> Executing v4l-conf failed. ERROR default(32649) v4l-overlay_calls.c(76):gst_v4l_set_overlay:<v4lsrc0> system error: Conseguido ERROR: from element /pipeline0/v4lsrc0: Executing v4l-conf failed. Additional debug info: v4l-overlay_calls.c(76): gst_v4l_set_overlay: /pipeline0/v4lsrc0: system error: Conseguido Opened device 'Logitech USB Camera' ('/dev/video0') successfully Got 2 buffers ('YUV-4:2:2 (packed)') of size 208 KB ERROR default(32649) v4lsrc_calls.c(358):gst_v4lsrc_requeue_frame:<v4lsrc0> (null) ERROR default(32649) v4lsrc_calls.c(358):gst_v4lsrc_requeue_frame:<v4lsrc0> Invalid state 1 (expected 2), can't requeue ERROR: from element /pipeline0/v4lsrc0: GStreamer developers were too lazy to assign an error code to this error. Please file a bug. Additional debug info: v4lsrc_calls.c(358): gst_v4lsrc_requeue_frame: /pipeline0/v4lsrc0: Invalid state 1 (expected 2), can't requeue Caught interrupt. -------------- But if MIN_BUFFERS_QUEUED is changed to 1 then the pluggin is working :-) Well Ronnald i guess that is a weird way , but allowing to pass the MIN_BUFFERS_QUEUED as a parameter fix the problem.
I've used this before and it worked for me... I'll try again.
Thomas & me fixed this.