[gstreamer-bugs] [Bug 407369] [v4l2src] Wrong way of EIO error handling

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Tue Feb 13 03:33:32 PST 2007


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=407369

  GStreamer | gst-plugins-good | Ver: HEAD CVS





------- Comment #2 from Andrey Plotnikov  2007-02-13 11:31 UTC -------
In my case I have situation when periodically VIDEOC_QBUF call in EIO error
processing block is unsuccessful. I mean this code:

195       GST_DEBUG_OBJECT (v4l2src, "reenqueing buffer");
196       if (ioctl (v4l2src->v4l2object->video_fd, VIDIOC_QBUF, &buffer) < 0)
{
197         GST_WARNING_OBJECT (v4l2src,
198             "Error queueing buffer on device %s. system error: %s",
199             v4l2src->v4l2object->videodev, g_strerror (errno));
200       }


During debugging I found out that after each such occasion the number of active
buffers decreases.

Before, in this situation v4l2src element sent error message. Old code:

qbuf_failed:     
 {       
  GST_ELEMENT_ERROR (v4l2src, RESOURCE, WRITE,   
    (_("Could not exchange data with device '%s'."),     
       v4l2src->v4l2object->videodev),   
    ("Error queueing buffer on device %s. system error: %s",     
       v4l2src->v4l2object->videodev, g_strerror (errno)));      
  return -1;     
 } 

Now error which rises during reenqueing buffer is skipped and it leads to 
total application crash during the time.


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email




More information about the Gstreamer-bugs mailing list