gstreamer/tools/element-templates/basetransform
David Schleef f790fcbfa6 element-maker: Update somewhat for 1.0
Only converted basetransform for the moment.  It's probably easier
to write templates from scratch from the documentation.
2013-02-06 12:43:45 -08:00

233 lines
6.7 KiB
C

/* vim: set filetype=c: */
% ClassName
GstBaseTransform
% TYPE_CLASS_NAME
GST_TYPE_BASE_TRANSFORM
% pads
sinkpad-simple srcpad-simple
% pkg-config
gstreamer-base-1.0
% pads
sinkpad-simple srcpad-simple
% includes
#include <gst/base/gstbasetransform.h>
% prototypes
static GstCaps *gst_replace_transform_caps (GstBaseTransform *trans,
GstPadDirection direction, GstCaps *caps, GstCaps *filter);
static GstCaps *
gst_replace_fixate_caps (GstBaseTransform * trans,
GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
static gboolean gst_replace_accept_caps (GstBaseTransform *trans,
GstPadDirection direction, GstCaps *caps);
static gboolean gst_replace_set_caps (GstBaseTransform *trans, GstCaps *incaps,
GstCaps *outcaps);
static gboolean gst_replace_query (GstBaseTransform *trans, GstPadDirection direction,
GstQuery *query);
static gboolean gst_replace_decide_allocation (GstBaseTransform *trans,
GstQuery *query);
static gboolean gst_replace_filter_meta (GstBaseTransform *trans, GstQuery *query,
GType api, const GstStructure *params);
static gboolean gst_replace_propose_allocation (GstBaseTransform *trans,
GstQuery *decide_query, GstQuery *query);
static gboolean gst_replace_transform_size (GstBaseTransform * trans,
GstPadDirection direction,
GstCaps * caps, gsize size, GstCaps * othercaps, gsize * othersize);
static gboolean gst_replace_get_unit_size (GstBaseTransform * trans,
GstCaps * caps, gsize * size);
static gboolean gst_replace_start (GstBaseTransform * trans);
static gboolean gst_replace_stop (GstBaseTransform * trans);
static gboolean gst_replace_sink_event (GstBaseTransform * trans,
GstEvent * event);
static gboolean gst_replace_src_event (GstBaseTransform * trans,
GstEvent * event);
static GstFlowReturn gst_replace_prepare_output_buffer (
GstBaseTransform * trans, GstBuffer *input, GstBuffer **outbuf);
static gboolean gst_replace_copy_metadata (GstBaseTransform *trans,
GstBuffer *input, GstBuffer *outbuf);
static gboolean gst_replace_transform_meta (GstBaseTransform *trans,
GstBuffer *outbuf, GstMeta *meta, GstBuffer *inbuf);
static void
gst_replace_before_transform (GstBaseTransform * trans, GstBuffer * buffer);
static GstFlowReturn
gst_replace_transform (GstBaseTransform * trans, GstBuffer * inbuf,
GstBuffer * outbuf);
static GstFlowReturn
gst_replace_transform_ip (GstBaseTransform * trans, GstBuffer * buf);
% declare-class
GstBaseTransformClass *base_transform_class = GST_BASE_TRANSFORM_CLASS (klass);
% set-methods
base_transform_class->transform_caps = GST_DEBUG_FUNCPTR (gst_replace_transform_caps);
base_transform_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_replace_fixate_caps);
base_transform_class->accept_caps = GST_DEBUG_FUNCPTR (gst_replace_accept_caps);
base_transform_class->set_caps = GST_DEBUG_FUNCPTR (gst_replace_set_caps);
base_transform_class->query = GST_DEBUG_FUNCPTR (gst_replace_query);
base_transform_class->decide_allocation = GST_DEBUG_FUNCPTR (gst_replace_decide_allocation);
base_transform_class->filter_meta = GST_DEBUG_FUNCPTR (gst_replace_filter_meta);
base_transform_class->propose_allocation = GST_DEBUG_FUNCPTR (gst_replace_propose_allocation);
base_transform_class->transform_size = GST_DEBUG_FUNCPTR (gst_replace_transform_size);
base_transform_class->get_unit_size = GST_DEBUG_FUNCPTR (gst_replace_get_unit_size);
base_transform_class->start = GST_DEBUG_FUNCPTR (gst_replace_start);
base_transform_class->stop = GST_DEBUG_FUNCPTR (gst_replace_stop);
base_transform_class->sink_event = GST_DEBUG_FUNCPTR (gst_replace_sink_event);
base_transform_class->src_event = GST_DEBUG_FUNCPTR (gst_replace_src_event);
base_transform_class->prepare_output_buffer = GST_DEBUG_FUNCPTR (gst_replace_prepare_output_buffer);
base_transform_class->copy_metadata = GST_DEBUG_FUNCPTR (gst_replace_copy_metadata);
base_transform_class->transform_meta = GST_DEBUG_FUNCPTR (gst_replace_transform_meta);
base_transform_class->before_transform = GST_DEBUG_FUNCPTR (gst_replace_before_transform);
base_transform_class->transform = GST_DEBUG_FUNCPTR (gst_replace_transform);
base_transform_class->transform_ip = GST_DEBUG_FUNCPTR (gst_replace_transform_ip);
% methods
static GstCaps *
gst_replace_transform_caps (GstBaseTransform *trans,
GstPadDirection direction, GstCaps *caps, GstCaps *filter)
{
return NULL;
}
static GstCaps *
gst_replace_fixate_caps (GstBaseTransform * trans,
GstPadDirection direction, GstCaps * caps, GstCaps * othercaps)
{
return NULL;
}
static gboolean
gst_replace_accept_caps (GstBaseTransform *trans,
GstPadDirection direction, GstCaps *caps)
{
return TRUE;
}
static gboolean
gst_replace_set_caps (GstBaseTransform * trans, GstCaps * incaps,
GstCaps * outcaps)
{
return FALSE;
}
static gboolean
gst_replace_query (GstBaseTransform *trans, GstPadDirection direction,
GstQuery *query)
{
return TRUE;
}
static gboolean
gst_replace_decide_allocation (GstBaseTransform *trans, GstQuery *query)
{
return TRUE;
}
static gboolean
gst_replace_filter_meta (GstBaseTransform *trans, GstQuery *query,
GType api, const GstStructure *params)
{
return TRUE;
}
static gboolean
gst_replace_propose_allocation (GstBaseTransform *trans,
GstQuery *decide_query, GstQuery *query)
{
return TRUE;
}
static gboolean
gst_replace_transform_size (GstBaseTransform * trans,
GstPadDirection direction,
GstCaps * caps, gsize size, GstCaps * othercaps, gsize * othersize)
{
return FALSE;
}
static gboolean
gst_replace_get_unit_size (GstBaseTransform * trans, GstCaps * caps,
gsize * size)
{
return FALSE;
}
static gboolean
gst_replace_start (GstBaseTransform * trans)
{
return FALSE;
}
static gboolean
gst_replace_stop (GstBaseTransform * trans)
{
return FALSE;
}
static gboolean
gst_replace_sink_event (GstBaseTransform * trans, GstEvent * event)
{
return FALSE;
}
static gboolean
gst_replace_src_event (GstBaseTransform * trans, GstEvent * event)
{
return FALSE;
}
static GstFlowReturn
gst_replace_prepare_output_buffer (GstBaseTransform * trans,
GstBuffer * input, GstBuffer ** buf)
{
return GST_FLOW_ERROR;
}
static gboolean
gst_replace_copy_metadata (GstBaseTransform *trans,
GstBuffer *input, GstBuffer *outbuf)
{
return TRUE;
}
static gboolean
gst_replace_transform_meta (GstBaseTransform *trans,
GstBuffer *outbuf, GstMeta *meta, GstBuffer *inbuf)
{
return TRUE;
}
static void
gst_replace_before_transform (GstBaseTransform * trans, GstBuffer * buffer)
{
}
static GstFlowReturn
gst_replace_transform (GstBaseTransform * trans, GstBuffer * inbuf,
GstBuffer * outbuf)
{
return GST_FLOW_ERROR;
}
static GstFlowReturn
gst_replace_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
{
return GST_FLOW_ERROR;
}
% end