audioaggregator: fix buffer leak

If the pad was still owning a buffer when being destroyed it was leaked.

Fix a leak with the test_flush_start_flush_stop test.

https://bugzilla.gnome.org/show_bug.cgi?id=766663
This commit is contained in:
Guillaume Desmottes 2016-05-19 11:16:37 +03:00 committed by Sebastian Dröge
parent fe159a6847
commit 937a42247a

View file

@ -78,13 +78,25 @@ static gboolean
gst_audio_aggregator_pad_flush_pad (GstAggregatorPad * aggpad,
GstAggregator * aggregator);
static void
gst_audio_aggregator_pad_finalize (GObject * object)
{
GstAudioAggregatorPad *pad = (GstAudioAggregatorPad *) object;
gst_buffer_replace (&pad->priv->buffer, NULL);
G_OBJECT_CLASS (gst_audio_aggregator_pad_parent_class)->finalize (object);
}
static void
gst_audio_aggregator_pad_class_init (GstAudioAggregatorPadClass * klass)
{
GObjectClass *gobject_class = (GObjectClass *) klass;
GstAggregatorPadClass *aggpadclass = (GstAggregatorPadClass *) klass;
g_type_class_add_private (klass, sizeof (GstAudioAggregatorPadPrivate));
gobject_class->finalize = gst_audio_aggregator_pad_finalize;
aggpadclass->flush = GST_DEBUG_FUNCPTR (gst_audio_aggregator_pad_flush_pad);
}