[Bug 685209] New: gst_v4l2_object_get_nearest_size VIDIOC_G_FMT bug

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Oct 1 05:44:44 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=685209
  GStreamer | gst-plugins-good | git

           Summary: gst_v4l2_object_get_nearest_size VIDIOC_G_FMT bug
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: diogoluvizon at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=225484)
 View: https://bugzilla.gnome.org/attachment.cgi?id=225484
 Review: https://bugzilla.gnome.org/review?bug=685209&attachment=225484

This patch corrects the bug setting the v4l2object->type to prevfmt.type before
the G_FMT ioctl.

The function gst_v4l2_object_get_nearest_size tries to find the nearest frame
size and it does it using the TRY_FMT ioctl. If the TRY_FMT is not implemented
in the device it uses S_FMT. But, S_FMT has the side effect of changing the
device's operation mode. So the first thing that
gst_v4l2_object_get_nearest_size does is to do a G_FMT to save the previous
format so it can restore it latter (after the S_FMT call).

It saves the format in a variable called prevfmt. But it forgets to set the
type of the format, so G_FMT Always fails.

If TRY_FMT is not implemented,  gst_v4l2_object_get_nearest_size will
use S_FMT and will change the device's operation mode, since it failed to
save the previous format it will be unable to restore it.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list