/* vim: set filetype=c: */ % ClassName GstVideoFilter % TYPE_CLASS_NAME GST_TYPE_VIDEO_FILTER % pads srcpad-template-video sinkpad-template-video % pkg-config gstreamer-video-1.0 % includes #include #include % prototypes static gboolean gst_replace_start (GstBaseTransform * trans); static gboolean gst_replace_stop (GstBaseTransform * trans); static gboolean gst_replace_set_info (GstVideoFilter * filter, GstCaps * incaps, GstVideoInfo * in_info, GstCaps * outcaps, GstVideoInfo * out_info); static GstFlowReturn gst_replace_transform_frame (GstVideoFilter * filter, GstVideoFrame * inframe, GstVideoFrame * outframe); static GstFlowReturn gst_replace_transform_frame_ip (GstVideoFilter * filter, GstVideoFrame * frame); % declare-class GstBaseTransformClass *base_transform_class = GST_BASE_TRANSFORM_CLASS (klass); GstVideoFilterClass *video_filter_class = GST_VIDEO_FILTER_CLASS (klass); % set-methods base_transform_class->start = GST_DEBUG_FUNCPTR (gst_replace_start); base_transform_class->stop = GST_DEBUG_FUNCPTR (gst_replace_stop); video_filter_class->set_info = GST_DEBUG_FUNCPTR (gst_replace_set_info); video_filter_class->transform_frame = GST_DEBUG_FUNCPTR (gst_replace_transform_frame); video_filter_class->transform_frame_ip = GST_DEBUG_FUNCPTR (gst_replace_transform_frame_ip); % methods static gboolean gst_replace_start (GstBaseTransform * trans) { GstReplace *replace = GST_REPLACE (trans); GST_DEBUG_OBJECT (replace, "start"); return TRUE; } static gboolean gst_replace_stop (GstBaseTransform * trans) { GstReplace *replace = GST_REPLACE (trans); GST_DEBUG_OBJECT (replace, "stop"); return TRUE; } static gboolean gst_replace_set_info (GstVideoFilter * filter, GstCaps * incaps, GstVideoInfo * in_info, GstCaps * outcaps, GstVideoInfo * out_info) { GstReplace *replace = GST_REPLACE (filter); GST_DEBUG_OBJECT (replace, "set_info"); return TRUE; } /* transform */ static GstFlowReturn gst_replace_transform_frame (GstVideoFilter * filter, GstVideoFrame * inframe, GstVideoFrame * outframe) { GstReplace *replace = GST_REPLACE (filter); GST_DEBUG_OBJECT (replace, "transform_frame"); return GST_FLOW_OK; } static GstFlowReturn gst_replace_transform_frame_ip (GstVideoFilter * filter, GstVideoFrame * frame) { GstReplace *replace = GST_REPLACE (filter); GST_DEBUG_OBJECT (replace, "transform_frame_ip"); return GST_FLOW_OK; } % end