[Bug 786175] New: glupload/glsink: Missing draining support

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Aug 11 20:08:02 UTC 2017


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

            Bug ID: 786175
           Summary: glupload/glsink: Missing draining support
    Classification: Platform
           Product: GStreamer
           Version: 1.13.x
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: nicolas at ndufresne.ca
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

V4L2 in it's archaism requires that all buffers produced are returned before
the driver can re-allocate buffers (renegotiate the frame size). This problem
is solved by draining (returning back) all buffers when an allocation or drain
query passes buy. This has been implemented properly in kmssink. The following
pipeline currently fails on the first renegotiation:

  gst-launch-1.0 v4l2src io-mode=dmabuf ! glimagesink

This work is not trivial and may require few iteration. My plan is to move the
EGLImage cache inside the glupload object (needed anyway as the current cache
with qdata is not thread safe). This will also clearing the cache when an
allocation query, or a drain query is received.

That will help, but won't be sufficient, as the glupload element simply attach
the imported buffer to a new buffer (it's half pass-through). We'll need to
make sure that it runs in return a downstream allocation query. glvideoconvert
would need to do the same when running asynchronously (sync fence) and finally
the sinks themself need to copy their render buffer for potential redraws
during the process. I think all this should be condition (e.g. sink can check
if the render buffer has a parent buffer).

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