[Bug 701543] v4l2: call VIDIOC_REQBUFS with count = 0 in pool_finalize

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jun 4 01:53:50 PDT 2013


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

Wim Taymans <wim.taymans> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
                 CC|                            |wim.taymans at gmail.com
         Resolution|                            |FIXED
   Target Milestone|HEAD                        |1.1.1

--- Comment #1 from Wim Taymans <wim.taymans at gmail.com> 2013-06-04 08:53:45 UTC ---
commit 3417a791acdd364c86974552550f853a9c56f5b9
Author: Michael Olbrich <m.olbrich at pengutronix.de>
Date:   Mon Jun 3 17:07:10 2013 +0200

    v4l2: call VIDIOC_REQBUFS with count = 0 in pool_finalize

    Without this the following sequence fails:

    - set_caps()
      - object_stop() (does nothing)
      - set_format() -> VIDIOC_S_FMT
    - set_config() -> VIDIOC_REQBUFS with count = N
    - set_caps()
      - object_stop()
        - pool_finalize()
      - set_format() -> VIDIOC_S_FMT => EBUSY

    Usually the pool is started after set_config(), in which case object_stop()
    will result in a pool_stop and therefore VIDIOC_REQBUFS with count = 0 but
    that is not guaranteed.
    Also calling VIDIOC_REQBUFS with count = 0 in pool_finalize() if necessary
    fixes this problem.

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701543

-- 
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