[Bug 790087] New: videodecoder: performance regression with libav decoders

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Nov 8 19:03:56 UTC 2017


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

            Bug ID: 790087
           Summary: videodecoder: performance regression with libav
                    decoders
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: rawoul at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Commit ae8d0cf3acfa (videodecoder: Make sure we have an actually writable
buffer when modifying metadata) introduces a performance regression when using
libav based decoders with a downstream pool.

More specifically, in the following use case the buffer copy is actually not
shallow, the whole memory is copied:

gst-launch-1.0 <source> ! avdec_xxx ! waylandsink

In this case waylandsink allocates a buffer pool with SHM memory (fd
allocator), but the data is copied on the call to gst_buffer_make_writable() in
the offending commit. This also prevents reuse of the wl_buffer objects, since
those are now attached on a transient buffer and not on the buffer from the
pool.

I think the only way to fix this properly would be to remove the reference on
the buffer that libav has, however I can't find where this reference is kept
and used. Any idea ?

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