[gst-devel] Crash in v4l2src when device is busy
Alexey Chernov
4ernov at gmail.com
Thu Sep 2 22:29:46 CEST 2010
Thanks for response and suggestion. Posted a bug here:
https://bugzilla.gnome.org/show_bug.cgi?id=628640
On Wednesday 01 September 2010 13:20:11 you wrote:
> On 27.08.2010 10:24, 4ernov wrote:
> > Hello,
> >
> > I've faced some strange behavior of v4l2src when capture device is
> > busy and I try to set it to READY state. The program crashes in some
> > of GStreamer routines with the following error message:
> >
> > ERROR! Error: Device '/dev/video0' cannot capture at 640x480
> > DEBUG Error: gstv4l2object.c(1920): gst_v4l2_object_set_format ():
> > /GstPipeline:camera/GstV4l2Src:v4l2src0:
> > Call to S_FMT failed for YUYV @ 640x480: Device or resource busy
>
> please file a bug with the backtrace and standalone test app attached.
>
> thanks
> Stefan
>
> > Backtrace is like this:
> >
> > #1 0x02581e1e in gst_v4l2src_create (src=0x8353000, buf=0xb50fd1cc)
> > at gstv4l2src.c:914
> > #2 0x025c3765 in gst_push_src_create (bsrc=0x8353000,
> > offset=18446744073709551615, length=4096, ret=0xb50fd1cc) at
> > gstpushsrc.c:117
> > #3 0x025b0881 in gst_base_src_get_range (src=<value optimised out>,
> > offset=18446744073709551615, length=4096, buf=0xb50fd1cc) at
> > gstbasesrc.c:2081
> > #4 0x025b3327 in gst_base_src_loop (pad=0x8354010) at gstbasesrc.c:2334
> > #5 0x0024ed6b in gst_task_func (task=0x83bd0c0) at gsttask.c:238
> > #6 0x00250377 in default_func (tdata=0x809b7c0, pool=0x8076810) at
> > gsttaskpool.c:70
> >
> > My code is just plain as in tutorial I think:
> > GstElement *v4l2src, *deinterlace, *videoscale, *tee,
> >
> > *ffmpegcolorspace, *queue, *xvideoscale, *ximagesink;
> >
> > GstBus* bus;
> >
> > GstCaps* caps = gst_caps_new_simple ("video/x-raw-yuv", "width",
> >
> > G_TYPE_INT, 400,
> >
> > "height",
> >
> > G_TYPE_INT, 300, NULL);
> >
> > /* Create gstreamer elements */
> >
> > _pipeline = gst_pipeline_new("camera");
> >
> > v4l2src = gst_element_factory_make("v4l2src", NULL);
> >
> > deinterlace = gst_element_factory_make("deinterlace", NULL);
> >
> > videoscale = gst_element_factory_make("videoscale", NULL);
> >
> > tee = gst_element_factory_make("tee", NULL);
> >
> > queue = gst_element_factory_make("queue", NULL);
> >
> > xvideoscale = gst_element_factory_make("videoscale", NULL);
> >
> > ffmpegcolorspace = gst_element_factory_make("ffmpegcolorspace",
> > NULL);
> >
> > ximagesink = gst_element_factory_make("ximagesink", NULL);
> >
> > if (!_pipeline || !v4l2src || !videoscale || !tee || !queue ||
> >
> > !ffmpegcolorspace || !xvideoscale || !ximagesink)
> >
> > {
> >
> > qDebug()<<"Elements could not be created. Exiting.";
> >
> > }
> >
> > gst_bin_add_many (GST_BIN (_pipeline), v4l2src, deinterlace,
> >
> > videoscale, tee, queue, ffmpegcolorspace, xvideoscale, ximagesink,
> > NULL);
> >
> > gst_element_link_many(v4l2src, deinterlace, videoscale, NULL);
> >
> > gst_element_link_filtered(videoscale, tee, caps);
> >
> > gst_caps_unref(caps);
> >
> >
> > gst_element_link_many(tee, queue, ffmpegcolorspace, xvideoscale,
> >
> > ximagesink, NULL);
> >
> > g_object_set(G_OBJECT (ximagesink), "force-aspect-ratio", true,
> > NULL);
> >
> > g_object_set(G_OBJECT (deinterlace), "mode", 0, NULL);
> >
> > if (_winid)
> > {
> >
> > gst_x_overlay_set_xwindow_id ((GstXOverlay*)ximagesink, _winid);
> >
> > }
> >
> > bus = gst_pipeline_get_bus (GST_PIPELINE (_pipeline));
> > gst_bus_add_watch (bus, bus_call, this);
> > gst_object_unref (bus);
> >
> > /* Set the pipeline to "playing" state*/
> >
> > // gst_element_set_state (_pipeline, GST_STATE_READY);
> >
> > /* Iterate */
> > g_print ("Running...\n");
> >
> > g_object_set(G_OBJECT (_v4l2src), "device", str.c_str(), NULL);
> >
> > gst_element_set_state (_pipeline, GST_STATE_READY);
> >
> > Is it a bug and so I should post it or perhaps I did something unsafe?
> >
> > -------------------------------------------------------------------------
> > ----- Sell apps to millions through the Intel(R) Atom(Tm) Developer
> > Program Be part of this innovative community and reach millions of
> > netbook users worldwide. Take advantage of special opportunities to
> > increase revenue and speed time-to-market. Join now, and jumpstart your
> > future.
> > http://p.sf.net/sfu/intel-atom-d2d
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list