/* 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
