videorate: don't leak previous buffer when shutting down
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 6 Dec 2011 21:57:32 +0000 (21:57 +0000)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 6 Dec 2011 21:57:32 +0000 (21:57 +0000)
Implement stop vfunc after port to basetransform, so we
can clean up properly. Fixes make elements/videorate.valgrind

gst/videorate/gstvideorate.c

index 98fc92e..e4ba16c 100644 (file)
@@ -147,6 +147,7 @@ static GstFlowReturn gst_video_rate_transform_ip (GstBaseTransform * trans,
     GstBuffer * buf);
 
 static gboolean gst_video_rate_start (GstBaseTransform * trans);
+static gboolean gst_video_rate_stop (GstBaseTransform * trans);
 
 
 static void gst_video_rate_set_property (GObject * object,
@@ -195,6 +196,7 @@ gst_video_rate_class_init (GstVideoRateClass * klass)
       GST_DEBUG_FUNCPTR (gst_video_rate_prepare_output_buffer);
   base_class->event = GST_DEBUG_FUNCPTR (gst_video_rate_event);
   base_class->start = GST_DEBUG_FUNCPTR (gst_video_rate_start);
+  base_class->stop = GST_DEBUG_FUNCPTR (gst_video_rate_stop);
   base_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_video_rate_fixate_caps);
   base_class->query = GST_DEBUG_FUNCPTR (gst_video_rate_query);
 
@@ -1175,6 +1177,13 @@ gst_video_rate_start (GstBaseTransform * trans)
   return TRUE;
 }
 
+static gboolean
+gst_video_rate_stop (GstBaseTransform * trans)
+{
+  gst_video_rate_reset (GST_VIDEO_RATE (trans));
+  return TRUE;
+}
+
 static void
 gst_video_rate_set_property (GObject * object,
     guint prop_id, const GValue * value, GParamSpec * pspec)