/* vim: set filetype=c: */ % ClassName GstAudioFilter % TYPE_CLASS_NAME GST_TYPE_AUDIO_FILTER % pads sinkpad-simple srcpad-simple % pkg-config gstreamer-audio-0.10 % includes #include % 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; } static gboolean gst_replace_stop (GstBaseTransform * trans) { /* GstReplace *replace = GST_REPLACE (trans); */ /* finalize processing */ return TRUE; } % end