[Bug 724481] New: bufferpool: Doesn't reset buffers when releasing them to the pool

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sun Feb 16 05:19:12 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=724481
  GStreamer | gstreamer (core) | git

           Summary: bufferpool: Doesn't reset buffers when releasing them
                    to the pool
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: slomo at coaxion.net
         QAContact: gstreamer-bugs at lists.freedesktop.org
                CC: wim.taymans at gmail.com
     GNOME version: ---


gst-launch-1.0 videotestsrc num-buffers=2 ! y4menc ! fakesink


This gives lots of errors about zero-sized buffers. Happens because
videotestsrc uses its own video buffer pool, y4menc steals the memory of these
buffers and unrefs them. Then GstBufferPool just releases them back to the
queue, and next time a buffer is acquired we get a buffer without any memory in
videotestsrc.

Not sure how to fix that properly. First of all, how do we detect that a buffer
is invalid now? It might have different memory than before, or none at all, or
the allocation metas could've changed, or the buffer is still the same but the
memory is *also* shared with another buffer (and thus not writable), or ...

Then, what to do with such buffers? Just unref and forget them instead of
putting back to the queue? That's going to cause problems as the memory could
still be in another buffer and maybe we're not able to allocate a new buffer
until that memory is released again. Or the buffer pool really needs to get the
memory back for proper tracking of memories (meaning we actually have a memory
pool that claims to be a buffer pool...).

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