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:
parent
fe159a6847
commit
937a42247a
@ -78,13 +78,25 @@ static gboolean
|
|||||||
gst_audio_aggregator_pad_flush_pad (GstAggregatorPad * aggpad,
|
gst_audio_aggregator_pad_flush_pad (GstAggregatorPad * aggpad,
|
||||||
GstAggregator * aggregator);
|
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
|
static void
|
||||||
gst_audio_aggregator_pad_class_init (GstAudioAggregatorPadClass * klass)
|
gst_audio_aggregator_pad_class_init (GstAudioAggregatorPadClass * klass)
|
||||||
{
|
{
|
||||||
|
GObjectClass *gobject_class = (GObjectClass *) klass;
|
||||||
GstAggregatorPadClass *aggpadclass = (GstAggregatorPadClass *) klass;
|
GstAggregatorPadClass *aggpadclass = (GstAggregatorPadClass *) klass;
|
||||||
|
|
||||||
g_type_class_add_private (klass, sizeof (GstAudioAggregatorPadPrivate));
|
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);
|
aggpadclass->flush = GST_DEBUG_FUNCPTR (gst_audio_aggregator_pad_flush_pad);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user