element-templates: improve the audiofilter template
authorStefan Kost <ensonic@users.sf.net>
Wed, 27 Apr 2011 13:56:09 +0000 (16:56 +0300)
committerStefan Kost <ensonic@users.sf.net>
Wed, 18 May 2011 07:31:38 +0000 (10:31 +0300)
Add comments. Add start/stop methods. Add (commented) instance casts at the
begin of the method. Make transform_ip returning FLOW_OK by default.

tools/element-templates/audiofilter

index cf10fc1..5e7ea37 100644 (file)
@@ -12,27 +12,56 @@ gstreamer-audio-0.10
 % prototypes
 static gboolean
 gst_replace_setup (GstAudioFilter * filter, GstRingBufferSpec * format);
+static gboolean
+gst_replace_start (GstBaseTransform * trans);
 static GstFlowReturn
 gst_replace_transform_ip (GstBaseTransform * trans, GstBuffer * buf);
+static gboolean
+gst_replace_stop (GstBaseTransform * trans);
 % declare-class
   GstAudioFilterClass *audio_filter_class = GST_AUDIO_FILTER_CLASS (klass);
   GstBaseTransformClass *base_transform_class = GST_BASE_TRANSFORM_CLASS (klass);
 % set-methods
   audio_filter_class->setup = GST_DEBUG_FUNCPTR (gst_replace_setup);
+  base_transform_class->start = GST_DEBUG_FUNCPTR (gst_replace_start);
   base_transform_class->transform_ip = GST_DEBUG_FUNCPTR (gst_replace_transform_ip);
+  base_transform_class->stop = GST_DEBUG_FUNCPTR (gst_replace_stop);
 % methods
 
 static gboolean
 gst_replace_setup (GstAudioFilter * filter, GstRingBufferSpec * format)
 {
+  /* GstReplace *replace = GST_REPLACE (filter); */
+
+  /* handle audio format changes */
+  return TRUE;
+}
+
+static gboolean
+gst_replace_start (GstBaseTransform * trans)
+{
+  /* GstReplace *replace = GST_REPLACE (trans); */
+
+  /* initialize processing */
   return TRUE;
 }
 
 static GstFlowReturn
 gst_replace_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
 {
+  /* GstReplace *replace = GST_REPLACE (trans); */
+
+  /* process the audio data in the buffer in-place */
+  return GST_FLOW_OK;
+}
 
-  return GST_FLOW_ERROR;
+static gboolean
+gst_replace_stop (GstBaseTransform * trans)
+{
+  /* GstReplace *replace = GST_REPLACE (trans); */
+
+  /* finalize processing */
+  return TRUE;
 }
 
 % end