Beispiel #1
0
static GstFlowReturn
gst_video_filter2_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
{
  GstVideoFilter2 *video_filter2 = GST_VIDEO_FILTER2 (trans);
  GstVideoFilter2Class *klass =
      GST_VIDEO_FILTER2_CLASS (G_OBJECT_GET_CLASS (trans));
  int i;
  GstFlowReturn ret;

  for (i = 0; klass->functions[i].format != GST_VIDEO_FORMAT_UNKNOWN; i++) {
    if (klass->functions[i].format == video_filter2->format) {
      ret = klass->functions[i].filter_ip (video_filter2, buf, 0,
          video_filter2->height);
      return ret;
    }
  }

  return GST_FLOW_ERROR;
}
static void
gst_scene_change_class_init (GstSceneChangeClass * klass)
{
  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
  GstBaseTransformClass *base_transform_class =
      GST_BASE_TRANSFORM_CLASS (klass);
  GstVideoFilter2Class *video_filter2_class = GST_VIDEO_FILTER2_CLASS (klass);

  gobject_class->set_property = gst_scene_change_set_property;
  gobject_class->get_property = gst_scene_change_get_property;
  gobject_class->dispose = gst_scene_change_dispose;
  gobject_class->finalize = gst_scene_change_finalize;
  base_transform_class->start = GST_DEBUG_FUNCPTR (gst_scene_change_start);
  base_transform_class->stop = GST_DEBUG_FUNCPTR (gst_scene_change_stop);
  video_filter2_class->prefilter =
      GST_DEBUG_FUNCPTR (gst_scene_change_prefilter);

  gst_video_filter2_class_add_functions (video_filter2_class,
      gst_scene_change_filter_functions);

}