[Bug 784932] New: basesink: buffer leaks if preroll failed

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Jul 14 02:53:50 UTC 2017


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

            Bug ID: 784932
           Summary: basesink: buffer leaks if preroll failed
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: major
          Priority: Normal
         Component: gstreamer (core)
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: shangchieh at realtek.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Created attachment 355564
  --> https://bugzilla.gnome.org/attachment.cgi?id=355564&action=edit
[PATCH] basesink: fix buffer leaks if preroll failed

In gst_base_sink_chain_unlocked, it is supposed to unref the obj when it's
done.
When 'gst_base_sink_do_preroll' returns error and goes to 'preroll_failed', the
object is not unreferenced.

Problem:
video freeze after "pause -> 1/2 FF -> resume -> pause -> 1/2 FF ..."
repeatedly

--- a/libs/gst/base/gstbasesink.c
+++ b/libs/gst/base/gstbasesink.c
@@ -3657,6 +3657,7 @@ dropped:
 preroll_failed:
   {
     GST_DEBUG_OBJECT (basesink, "preroll failed: %s", gst_flow_get_name
(ret));
+    gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
     return ret;
   }
 }

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