GNOME Bugzilla – Bug 523664
[v4l2src] get_caps() does not return the caps it's currently using!
Last modified: 2010-04-29 22:53:44 UTC
v4l2src returns different caps from its get_caps() function every time I call it.. When its called when the pipeline is running, it returns caps that are incompatible with the ones it called setcaps() with. It should at least cache those and return them unioned with whatever else it has. Or maybe the FIXME should be fixed in get_caps().. Small python program that shows the problem with my Logitech Quickcam Fusion (where 15/1 is not an acceptable framerate once the device has been opened): import gst,time pipeline = gst.parse_launch ("v4l2src ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,framerate=(fraction)15/1,width=352, height=288, format=(fourcc)I420 ! identity name=i ! ffmpegcolorspace ! videoscale ! xvimagesink sync=false") pipeline.set_state(gst.STATE_PLAYING); time.sleep(1) i = pipeline.get_by_name("i") print i.get_pad("src").get_caps().to_string() pipeline.set_state(gst.STATE_NULL);
it's videoscale removing framerates from the caps.
From the videoscale source, I don't see where it does that..
I don't understand this bug - can someone enlighten me? Olivier: Is it still an issue? If yes, what's the output you're seeing? With an unhandled framerate I just get EMPTY caps, with an acceptable framerate I just get the same caps over and over again (iSight).
Oh, and some GST_DEBUG output would be nice too if it still exists..
I can't reproduce it with recent git, so I guess it must have been fixed somehow. Possibly in BaseTransform or something.
Great, thanks for confirming.