GNOME Bugzilla – Bug 141481
[v4l2src] cupid probes v4l device with v4l1 calls when v4l2src source is chosen
Last modified: 2011-01-24 11:40:54 UTC
if i choose a v4l2src as videosrc, it would still probe /dev/video0 with v4l_calls.c (v4lsrc element, not v4l2src) on launch, gst-recorder would tell me nicely : ERROR default( 9557) v4l_calls.c(147):gst_v4l_open:<test> (null) ERROR default( 9557) v4l_calls.c(147):gst_v4l_open:<test> Device opened, but wrong type (0xab) i don't know if it's related but in gst-player/libs/gst/player/gstmediaplay.c, i see : } else if (g_str_has_prefix (location, "v4l://")) { datasrc = gst_element_factory_make ("v4lsrc", "source"); so, gst-player doesn't seem to know about v4l2src
That's the probing part, it does that on startup (for video and audio sources - because after startup they might be in use because they were selected). So even though you selected v4l2src, it will probe each and any source (including v4lsrc), so that you have the option of selecting v4lsrc as your video source if your device supports that. I don't think this is a bug, this is intended behaviour... Does anything misbehave? Does anything go wrong?
yes, after that, i have : leroutier@leroutier58 leroutier $ gst-recorder ERROR default( 9897) v4l_calls.c(147):gst_v4l_open:<test> (null) ERROR default( 9897) v4l_calls.c(147):gst_v4l_open:<test> Device opened, but wrong type (0xab) Opened device 'BT878 video (Hauppauge (bt878))' ('/dev/video0') successfully ERROR default( 9897) v4l2-overlay_calls.c(135):gst_v4l2_enable_overlay:<video-source-0> (null) ERROR default( 9897) v4l2-overlay_calls.c(135):gst_v4l2_enable_overlay:<video-source-0> Failed to enable overlay display: Argument invalide so, it failed to enable overlay and nothing displays note that : gst-launch v4lsrc device=/dev/video0 | ffmpegcolorspace ! xvimagesink gst-launch v4l2src device=/dev/video0 | ffmpegcolorspace ! xvimagesink both work (display image correctly once i have set norm and frequency by launching tvtime then closing it)
Stephane, that's probably a different bug. As far as I can see from the code, probing takes place *before* the device is started for actual capture. So the probing and the overlay do not interface. The overlay might not work indeed. Can you retry? I recently re-wrote that code. You need 'Load "v4l"' in the Modules section of your xorg.conf.
grep v4l /etc/X11/xorg.conf Load "v4l" unfortunatly, it proves difficult to retest it actually. i had a bt878 v4l2 device. but i changed it, got v4l2 emulation (from my DVB card) but it doesn't work (v4l2 emul) if i don't use the hardware MPEG decoder of the card. only output i got from it now is : ERROR (0x806de70 - 307077:03:21.936095000) v4l( 2839) v4l_calls.c(192):gst_v4l_open:<test> Device opened, but wrong type (0x29) => you told me it was MJPEG caps probing ERROR (0x806de70 - 307077:03:22.030729000) v4l( 2839) v4lsrc_calls.c(498):gst_v4lsrc_try_capture:<test> Error queueing our try-out buffer: Périphérique ou ressource occupé => must be because it can't send anything because the DVB is not set to use hardware decoder
Cupid development has been stalled and it has been unmaintained for a few years now. You may use 'Cheese' for similar functionality. Maintainers don't have future development plan so i am closing bugs as WONTFIX. Please feel free to reopen the bugs in future if anyone takes the responsibility for active development.