[gstreamer-bugs] [Bug 402393] New: oggmux leaks when unref'd without state change

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Tue Jan 30 01:34:31 PST 2007


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=402393

  GStreamer | gst-plugins-base | Ver: HEAD CVS

           Summary: oggmux leaks when unref'd without state change
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: doclivingston at gmail.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


GstOggMux leaks some memory when it is finalised without ever having it's state
changed but a sink pad was added. An example of this happening is when
gnome-media's audio profile code creates a pipeline, just to see if it can.

gst_ogg_mux_request_new_pad() is called to create the new pad, but
gst_ogg_mux_release_pad() is never called and gst_ogg_mux_clear_collectpads()
isn't run because of the lack of downward state change.




Valgrind output:

==18548== 4,096 bytes in 1 blocks are definitely lost in loss record 21 of 28
==18548==    at 0x4021380: malloc (vg_replace_malloc.c:149)
==18548==    by 0x46CC56A: ogg_stream_init (in /usr/lib/libogg.so.0.5.3)
==18548==    by 0x4B77D42: gst_ogg_mux_request_new_pad (gstoggmux.c:417)
==18548==    by 0x409F4CA: gst_element_request_compatible_pad (gstutils.c:793)
==18548==    by 0x409F698: gst_element_get_compatible_pad (gstutils.c:967)
==18548==    by 0x40A026A: gst_element_link_pads (gstutils.c:1469)
==18548==    by 0x40A0CBC: gst_element_link_pads_filtered (gstutils.c:1660)
==18548==    by 0x40B5EEB: _gst_parse_launch (grammar.y:406)
==18548==    by 0x40A9847: gst_parse_launch (gstparse.c:159)
==18548==    by 0x80485CC: main (in
/home/doc/programming/sources/gst-plugins-base/ext/ogg/foo)
==18548== 
==18548== 
==18548== 8,192 bytes in 1 blocks are definitely lost in loss record 24 of 28
==18548==    at 0x4021380: malloc (vg_replace_malloc.c:149)
==18548==    by 0x46CC57B: ogg_stream_init (in /usr/lib/libogg.so.0.5.3)
==18548==    by 0x4B77D42: gst_ogg_mux_request_new_pad (gstoggmux.c:417)
==18548==    by 0x409F4CA: gst_element_request_compatible_pad (gstutils.c:793)
==18548==    by 0x409F698: gst_element_get_compatible_pad (gstutils.c:967)
==18548==    by 0x40A026A: gst_element_link_pads (gstutils.c:1469)
==18548==    by 0x40A0CBC: gst_element_link_pads_filtered (gstutils.c:1660)
==18548==    by 0x40B5EEB: _gst_parse_launch (grammar.y:406)
==18548==    by 0x40A9847: gst_parse_launch (gstparse.c:159)
==18548==    by 0x80485CC: main (in
/home/doc/programming/sources/gst-plugins-base/ext/ogg/foo)
==18548== 
==18548== 
==18548== 16,384 bytes in 1 blocks are definitely lost in loss record 25 of 28
==18548==    at 0x4021380: malloc (vg_replace_malloc.c:149)
==18548==    by 0x46CC555: ogg_stream_init (in /usr/lib/libogg.so.0.5.3)
==18548==    by 0x4B77D42: gst_ogg_mux_request_new_pad (gstoggmux.c:417)
==18548==    by 0x409F4CA: gst_element_request_compatible_pad (gstutils.c:793)
==18548==    by 0x409F698: gst_element_get_compatible_pad (gstutils.c:967)
==18548==    by 0x40A026A: gst_element_link_pads (gstutils.c:1469)
==18548==    by 0x40A0CBC: gst_element_link_pads_filtered (gstutils.c:1660)
==18548==    by 0x40B5EEB: _gst_parse_launch (grammar.y:406)
==18548==    by 0x40A9847: gst_parse_launch (gstparse.c:159)
==18548==    by 0x80485CC: main (in
/home/doc/programming/sources/gst-plugins-base/ext/ogg/foo)


from the following program:

#include <gst/gst.h>

int main()
{
        GstElement *p;

        gst_init (NULL, NULL);

        p = gst_parse_launch ("fakesrc ! audioconvert ! vorbisenc ! oggmux !
fakesink", NULL);
        g_object_unref (p);

        gst_deinit ();
}


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email




More information about the Gstreamer-bugs mailing list