[Bug 705079] New: hlsdemux: switch fragments to buffer lists to avoid copies

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Jul 29 07:16:21 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=705079
  GStreamer | gst-plugins-bad | 1.1.2

           Summary: hlsdemux: switch fragments to buffer lists to avoid
                    copies
    Classification: Platform
           Product: GStreamer
           Version: 1.1.2
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: rawoul at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


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

store GstFragment data in a GstBufferList

Since the port to 0.11, buffers downloaded by uridownloader in a fragment are
merged using gst_buffer_append. In theory this is the best way to do it, except
that the maximum number of memory blocks in a single buffer is 16. After that
all the memory blocks are merged to make room for the next append, which can
trigger very big memcpy's while downloading.

Instead switch back to buffer lists like it was done before 0.11. I've added a
gst_fragment_extract function to copy data from the buffer list to a buffer.
This allows merging the buffer list for the playlist or for the decrypt key.

I've also rewritten the decryption process to work in place the buffer list.
Before the single input buffer was decrypted in a new buffer, resulting in
another big memory allocation.

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