replaygain: fix taglist leak in rganalysis
authorTim-Philipp Müller <tim@centricular.net>
Mon, 2 Sep 2013 22:00:29 +0000 (23:00 +0100)
committerTim-Philipp Müller <tim@centricular.net>
Mon, 2 Sep 2013 22:00:29 +0000 (23:00 +0100)
And add some FIXMEs.

gst/replaygain/gstrganalysis.c

index e38d4d6..3e87953 100644 (file)
@@ -532,6 +532,7 @@ gst_rg_analysis_stop (GstBaseTransform * base)
   return TRUE;
 }
 
+/* FIXME: handle global vs. stream-tags? */
 static void
 gst_rg_analysis_handle_tags (GstRgAnalysis * filter,
     const GstTagList * tag_list)
@@ -632,9 +633,10 @@ gst_rg_analysis_handle_eos (GstRgAnalysis * filter)
       GST_LOG_OBJECT (filter, "posting tag list with results");
       gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND,
           GST_TAG_REFERENCE_LEVEL, filter->reference_level, NULL);
-      /* This steals our reference to the list: */
-      gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (GST_BASE_TRANSFORM
-              (filter)), gst_event_new_tag (gst_tag_list_ref (tag_list)));
+      /* This takes ownership of our reference to the list */
+      gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (filter),
+          gst_event_new_tag (tag_list));
+      tag_list = NULL;
     }
   }
 
@@ -653,6 +655,7 @@ gst_rg_analysis_handle_eos (GstRgAnalysis * filter)
     g_object_notify (G_OBJECT (filter), "num-tracks");
 }
 
+/* FIXME: return tag list (lists?) based on input tags.. */
 static gboolean
 gst_rg_analysis_track_result (GstRgAnalysis * filter, GstTagList ** tag_list)
 {