summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>2010-09-03 20:27:31 -0300
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>2010-09-08 17:15:50 -0300
commitdcb97354bf2035e8ee234ab5e9e39b0964247924 (patch)
treeecc5129cca07a4b0e08b375235e15a320084504d /ext
parent4c03c980ceaf8738f9b4f11485bb328157fcc239 (diff)
downloadgstreamer-plugins-bad-dcb97354bf2035e8ee234ab5e9e39b0964247924.tar.gz
opencvbasetrans: Use GstVideoFilter as the base class
Port from GstBaseTransform to GstVideoFilter as the base class.
Diffstat (limited to 'ext')
-rw-r--r--ext/opencv/Makefile.am20
-rw-r--r--ext/opencv/basicfilters/Makefile.am7
-rw-r--r--ext/opencv/basicfilters/gstcvdilate.c12
-rw-r--r--ext/opencv/basicfilters/gstcvdilateerode.c6
-rw-r--r--ext/opencv/basicfilters/gstcvdilateerode.h6
-rw-r--r--ext/opencv/basicfilters/gstcvequalizehist.c10
-rw-r--r--ext/opencv/basicfilters/gstcvequalizehist.h6
-rw-r--r--ext/opencv/basicfilters/gstcverode.c12
-rw-r--r--ext/opencv/basicfilters/gstcvlaplace.c16
-rw-r--r--ext/opencv/basicfilters/gstcvlaplace.h6
-rw-r--r--ext/opencv/basicfilters/gstcvsmooth.c16
-rw-r--r--ext/opencv/basicfilters/gstcvsmooth.h6
-rw-r--r--ext/opencv/basicfilters/gstcvsobel.c12
-rw-r--r--ext/opencv/basicfilters/gstcvsobel.h6
-rw-r--r--ext/opencv/gstopencvvideofilter.c (renamed from ext/opencv/gstopencvbasetrans.c)129
-rw-r--r--ext/opencv/gstopencvvideofilter.h (renamed from ext/opencv/gstopencvbasetrans.h)65
16 files changed, 160 insertions, 175 deletions
diff --git a/ext/opencv/Makefile.am b/ext/opencv/Makefile.am
index 7b5fa9cd2..0d226c332 100644
--- a/ext/opencv/Makefile.am
+++ b/ext/opencv/Makefile.am
@@ -5,11 +5,12 @@ SUBDIRS = basicfilters edgedetect faceblur facedetect pyramidsegment templatemat
plugin_LTLIBRARIES = libgstopencv.la
# sources used to compile this plug-in
-libgstopencv_la_SOURCES = gstopencv.c gstopencvbasetrans.c gstopencvutils.c
+libgstopencv_la_SOURCES = gstopencv.c gstopencvvideofilter.c gstopencvutils.c
# flags used to compile this facedetect
# add other _CFLAGS and _LIBS as needed
libgstopencv_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(OPENCV_CFLAGS) \
+ $(GSTPB_BASE_CFLAGS) \
-I${top_srcdir}/src \
-I${top_srcdir}/ext/opencv/basicfilters \
-I${top_srcdir}/ext/opencv/edgedetect \
@@ -20,13 +21,14 @@ libgstopencv_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(OPENCV_CFLAGS) \
-I${top_srcdir}/ext/opencv/textwrite
libgstopencv_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) $(OPENCV_LIBS) \
- $(top_builddir)/ext/opencv/basicfilters/libgstbasicfilters.la \
- $(top_builddir)/ext/opencv/edgedetect/libgstedgedetect.la \
- $(top_builddir)/ext/opencv/faceblur/libgstfaceblur.la \
- $(top_builddir)/ext/opencv/facedetect/libgstfacedetect.la \
- $(top_builddir)/ext/opencv/pyramidsegment/libgstpyramidsegment.la \
- $(top_builddir)/ext/opencv/templatematch/libgsttemplatematch.la \
- $(top_builddir)/ext/opencv/textwrite/libgsttextwrite.la
+ $(GSTPB_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \
+ $(top_builddir)/ext/opencv/basicfilters/libgstbasicfilters.la \
+ $(top_builddir)/ext/opencv/edgedetect/libgstedgedetect.la \
+ $(top_builddir)/ext/opencv/faceblur/libgstfaceblur.la \
+ $(top_builddir)/ext/opencv/facedetect/libgstfacedetect.la \
+ $(top_builddir)/ext/opencv/pyramidsegment/libgstpyramidsegment.la \
+ $(top_builddir)/ext/opencv/templatematch/libgsttemplatematch.la \
+ $(top_builddir)/ext/opencv/textwrite/libgsttextwrite.la
libgstopencv_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
@@ -40,4 +42,4 @@ libgstopencv_la_DEPENDENCIES = \
$(top_builddir)/ext/opencv/textwrite/libgsttextwrite.la
# headers we need but don't want installed
-noinst_HEADERS = gstopencvbasetrans.h gstopencvutils.h
+noinst_HEADERS = gstopencvvideofilter.h gstopencvutils.h
diff --git a/ext/opencv/basicfilters/Makefile.am b/ext/opencv/basicfilters/Makefile.am
index 45a5dc41e..52a0ba9a7 100644
--- a/ext/opencv/basicfilters/Makefile.am
+++ b/ext/opencv/basicfilters/Makefile.am
@@ -11,8 +11,11 @@ libgstbasicfilters_la_SOURCES = gstcvsmooth.c \
# flags used to compile this pyramidsegment
# add other _CFLAGS and _LIBS as needed
-libgstbasicfilters_la_CFLAGS = $(GST_CFLAGS) $(OPENCV_CFLAGS) -I..
-libgstbasicfilters_la_LIBADD = $(GST_LIBS) $(OPENCV_LIBS)
+libgstbasicfilters_la_CFLAGS = $(GST_CFLAGS) $(OPENCV_CFLAGS) -I.. \
+ $(GST_BASE_CFLAGS) $(GSTPB_BASE_CFLAGS)
+libgstbasicfilters_la_LIBADD = $(GST_LIBS) $(OPENCV_LIBS) \
+ $(GST_BASE_LIBS) $(GSTPB_BASE_LIBS) \
+ -lgstvideo-$(GST_MAJORMINOR)
libgstbasicfilters_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
# headers we need but don't want installed
diff --git a/ext/opencv/basicfilters/gstcvdilate.c b/ext/opencv/basicfilters/gstcvdilate.c
index 6170fcd0b..e03627b64 100644
--- a/ext/opencv/basicfilters/gstcvdilate.c
+++ b/ext/opencv/basicfilters/gstcvdilate.c
@@ -55,9 +55,9 @@ GST_DEBUG_CATEGORY_STATIC (gst_cv_dilate_debug);
GST_BOILERPLATE (GstCvDilate, gst_cv_dilate, GstCvDilateErode,
GST_TYPE_CV_DILATE_ERODE);
-static GstFlowReturn gst_cv_dilate_transform_ip (GstOpencvBaseTransform *
+static GstFlowReturn gst_cv_dilate_transform_ip (GstOpencvVideoFilter *
filter, GstBuffer * buf, IplImage * img);
-static GstFlowReturn gst_cv_dilate_transform (GstOpencvBaseTransform * filter,
+static GstFlowReturn gst_cv_dilate_transform (GstOpencvVideoFilter * filter,
GstBuffer * buf, IplImage * img, GstBuffer * outbuf, IplImage * outimg);
/* GObject vmethod implementations */
@@ -77,9 +77,9 @@ gst_cv_dilate_base_init (gpointer gclass)
static void
gst_cv_dilate_class_init (GstCvDilateClass * klass)
{
- GstOpencvBaseTransformClass *gstopencvbasefilter_class;
+ GstOpencvVideoFilterClass *gstopencvbasefilter_class;
- gstopencvbasefilter_class = (GstOpencvBaseTransformClass *) klass;
+ gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass;
parent_class = g_type_class_peek_parent (klass);
@@ -98,7 +98,7 @@ gst_cv_dilate_init (GstCvDilate * filter, GstCvDilateClass * gclass)
}
static GstFlowReturn
-gst_cv_dilate_transform (GstOpencvBaseTransform * base, GstBuffer * buf,
+gst_cv_dilate_transform (GstOpencvVideoFilter * base, GstBuffer * buf,
IplImage * img, GstBuffer * outbuf, IplImage * outimg)
{
GstCvDilateErode *filter = GST_CV_DILATE_ERODE (base);
@@ -110,7 +110,7 @@ gst_cv_dilate_transform (GstOpencvBaseTransform * base, GstBuffer * buf,
}
static GstFlowReturn
-gst_cv_dilate_transform_ip (GstOpencvBaseTransform * base, GstBuffer * buf,
+gst_cv_dilate_transform_ip (GstOpencvVideoFilter * base, GstBuffer * buf,
IplImage * img)
{
GstCvDilateErode *filter = GST_CV_DILATE_ERODE (base);
diff --git a/ext/opencv/basicfilters/gstcvdilateerode.c b/ext/opencv/basicfilters/gstcvdilateerode.c
index 4f99ea905..2275d2ab6 100644
--- a/ext/opencv/basicfilters/gstcvdilateerode.c
+++ b/ext/opencv/basicfilters/gstcvdilateerode.c
@@ -118,7 +118,7 @@ gst_cv_dilate_erode_get_type (void)
(GInstanceInitFunc) gst_cv_dilate_erode_init,
};
- _type = g_type_register_static (GST_TYPE_OPENCV_BASE_TRANSFORM,
+ _type = g_type_register_static (GST_TYPE_OPENCV_VIDEO_FILTER,
"GstCvDilateErode", &opencv_dilate_erode_info,
G_TYPE_FLAG_ABSTRACT);
/*
@@ -156,12 +156,12 @@ static void
gst_cv_dilate_erode_class_init (GstCvDilateErodeClass * klass)
{
GObjectClass *gobject_class;
- GstOpencvBaseTransformClass *gstopencvbasefilter_class;
+ GstOpencvVideoFilterClass *gstopencvbasefilter_class;
GstElementClass *gstelement_class;
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
- gstopencvbasefilter_class = (GstOpencvBaseTransformClass *) klass;
+ gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass;
parent_class = g_type_class_peek_parent (klass);
diff --git a/ext/opencv/basicfilters/gstcvdilateerode.h b/ext/opencv/basicfilters/gstcvdilateerode.h
index 4db07d7e1..26190b535 100644
--- a/ext/opencv/basicfilters/gstcvdilateerode.h
+++ b/ext/opencv/basicfilters/gstcvdilateerode.h
@@ -46,7 +46,7 @@
#include <gst/gst.h>
#include <cv.h>
-#include <gstopencvbasetrans.h>
+#include <gstopencvvideofilter.h>
G_BEGIN_DECLS
@@ -67,14 +67,14 @@ typedef struct _GstCvDilateErodeClass GstCvDilateErodeClass;
struct _GstCvDilateErode
{
- GstOpencvBaseTransform element;
+ GstOpencvVideoFilter element;
gint iterations;
};
struct _GstCvDilateErodeClass
{
- GstOpencvBaseTransformClass parent_class;
+ GstOpencvVideoFilterClass parent_class;
};
GType gst_cv_dilate_erode_get_type (void);
diff --git a/ext/opencv/basicfilters/gstcvequalizehist.c b/ext/opencv/basicfilters/gstcvequalizehist.c
index f891e5e78..553734aa8 100644
--- a/ext/opencv/basicfilters/gstcvequalizehist.c
+++ b/ext/opencv/basicfilters/gstcvequalizehist.c
@@ -63,10 +63,10 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
GST_STATIC_CAPS ("video/x-raw-gray, depth=(int)8, bpp=(int)8"));
GST_BOILERPLATE (GstCvEqualizeHist, gst_cv_equalize_hist,
- GstOpencvBaseTransform, GST_TYPE_OPENCV_BASE_TRANSFORM);
+ GstOpencvVideoFilter, GST_TYPE_OPENCV_VIDEO_FILTER);
static GstFlowReturn gst_cv_equalize_hist_transform (
- GstOpencvBaseTransform * filter, GstBuffer * buf, IplImage * img,
+ GstOpencvVideoFilter * filter, GstBuffer * buf, IplImage * img,
GstBuffer * outbuf, IplImage * outimg);
/* Clean up */
@@ -99,10 +99,10 @@ static void
gst_cv_equalize_hist_class_init (GstCvEqualizeHistClass * klass)
{
GObjectClass *gobject_class;
- GstOpencvBaseTransformClass *gstopencvbasefilter_class;
+ GstOpencvVideoFilterClass *gstopencvbasefilter_class;
gobject_class = (GObjectClass *) klass;
- gstopencvbasefilter_class = (GstOpencvBaseTransformClass *) klass;
+ gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass;
parent_class = g_type_class_peek_parent (klass);
gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_cv_equalize_hist_finalize);
@@ -117,7 +117,7 @@ gst_cv_equalize_hist_init (GstCvEqualizeHist * filter,
}
static GstFlowReturn
-gst_cv_equalize_hist_transform (GstOpencvBaseTransform * base,
+gst_cv_equalize_hist_transform (GstOpencvVideoFilter * base,
GstBuffer * buf, IplImage * img, GstBuffer * outbuf, IplImage * outimg)
{
cvEqualizeHist (img, outimg);
diff --git a/ext/opencv/basicfilters/gstcvequalizehist.h b/ext/opencv/basicfilters/gstcvequalizehist.h
index fe22981ef..74a3aab3f 100644
--- a/ext/opencv/basicfilters/gstcvequalizehist.h
+++ b/ext/opencv/basicfilters/gstcvequalizehist.h
@@ -46,7 +46,7 @@
#include <gst/gst.h>
#include <cv.h>
-#include <gstopencvbasetrans.h>
+#include <gstopencvvideofilter.h>
G_BEGIN_DECLS
@@ -67,12 +67,12 @@ typedef struct _GstCvEqualizeHistClass GstCvEqualizeHistClass;
struct _GstCvEqualizeHist
{
- GstOpencvBaseTransform element;
+ GstOpencvVideoFilter element;
};
struct _GstCvEqualizeHistClass
{
- GstOpencvBaseTransformClass parent_class;
+ GstOpencvVideoFilterClass parent_class;
};
GType gst_cv_equalize_hist_get_type (void);
diff --git a/ext/opencv/basicfilters/gstcverode.c b/ext/opencv/basicfilters/gstcverode.c
index 5478af4b7..2a0cb36af 100644
--- a/ext/opencv/basicfilters/gstcverode.c
+++ b/ext/opencv/basicfilters/gstcverode.c
@@ -55,9 +55,9 @@ GST_DEBUG_CATEGORY_STATIC (gst_cv_erode_debug);
GST_BOILERPLATE (GstCvErode, gst_cv_erode, GstCvDilateErode,
GST_TYPE_CV_DILATE_ERODE);
-static GstFlowReturn gst_cv_erode_transform_ip (GstOpencvBaseTransform *
+static GstFlowReturn gst_cv_erode_transform_ip (GstOpencvVideoFilter *
filter, GstBuffer * buf, IplImage * img);
-static GstFlowReturn gst_cv_erode_transform (GstOpencvBaseTransform * filter,
+static GstFlowReturn gst_cv_erode_transform (GstOpencvVideoFilter * filter,
GstBuffer * buf, IplImage * img, GstBuffer * outbuf, IplImage * outimg);
/* GObject vmethod implementations */
@@ -77,9 +77,9 @@ gst_cv_erode_base_init (gpointer gclass)
static void
gst_cv_erode_class_init (GstCvErodeClass * klass)
{
- GstOpencvBaseTransformClass *gstopencvbasefilter_class;
+ GstOpencvVideoFilterClass *gstopencvbasefilter_class;
- gstopencvbasefilter_class = (GstOpencvBaseTransformClass *) klass;
+ gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass;
parent_class = g_type_class_peek_parent (klass);
@@ -98,7 +98,7 @@ gst_cv_erode_init (GstCvErode * filter, GstCvErodeClass * gclass)
}
static GstFlowReturn
-gst_cv_erode_transform (GstOpencvBaseTransform * base, GstBuffer * buf,
+gst_cv_erode_transform (GstOpencvVideoFilter * base, GstBuffer * buf,
IplImage * img, GstBuffer * outbuf, IplImage * outimg)
{
GstCvDilateErode *filter = GST_CV_DILATE_ERODE (base);
@@ -110,7 +110,7 @@ gst_cv_erode_transform (GstOpencvBaseTransform * base, GstBuffer * buf,
}
static GstFlowReturn
-gst_cv_erode_transform_ip (GstOpencvBaseTransform * base, GstBuffer * buf,
+gst_cv_erode_transform_ip (GstOpencvVideoFilter * base, GstBuffer * buf,
IplImage * img)
{
GstCvDilateErode *filter = GST_CV_DILATE_ERODE (base);
diff --git a/ext/opencv/basicfilters/gstcvlaplace.c b/ext/opencv/basicfilters/gstcvlaplace.c
index 31cb4da54..f52842871 100644
--- a/ext/opencv/basicfilters/gstcvlaplace.c
+++ b/ext/opencv/basicfilters/gstcvlaplace.c
@@ -79,8 +79,8 @@ enum
#define DEFAULT_APERTURE_SIZE 3
-GST_BOILERPLATE (GstCvLaplace, gst_cv_laplace, GstOpencvBaseTransform,
- GST_TYPE_OPENCV_BASE_TRANSFORM);
+GST_BOILERPLATE (GstCvLaplace, gst_cv_laplace, GstOpencvVideoFilter,
+ GST_TYPE_OPENCV_VIDEO_FILTER);
static void gst_cv_laplace_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
@@ -90,10 +90,10 @@ static void gst_cv_laplace_get_property (GObject * object, guint prop_id,
static GstCaps *gst_cv_laplace_transform_caps (GstBaseTransform * trans,
GstPadDirection dir, GstCaps * caps);
-static GstFlowReturn gst_cv_laplace_transform (GstOpencvBaseTransform * filter,
+static GstFlowReturn gst_cv_laplace_transform (GstOpencvVideoFilter * filter,
GstBuffer * buf, IplImage * img, GstBuffer * outbuf, IplImage * outimg);
-static gboolean gst_cv_laplace_cv_set_caps (GstOpencvBaseTransform * trans,
+static gboolean gst_cv_laplace_cv_set_caps (GstOpencvVideoFilter * trans,
gint in_width, gint in_height, gint in_depth, gint in_channels,
gint out_width, gint out_height, gint out_depth, gint out_channels);
@@ -134,13 +134,13 @@ gst_cv_laplace_class_init (GstCvLaplaceClass * klass)
{
GObjectClass *gobject_class;
GstBaseTransformClass *gstbasetransform_class;
- GstOpencvBaseTransformClass *gstopencvbasefilter_class;
+ GstOpencvVideoFilterClass *gstopencvbasefilter_class;
GstElementClass *gstelement_class;
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
gstbasetransform_class = (GstBaseTransformClass *) klass;
- gstopencvbasefilter_class = (GstOpencvBaseTransformClass *) klass;
+ gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass;
parent_class = g_type_class_peek_parent (klass);
@@ -168,7 +168,7 @@ gst_cv_laplace_init (GstCvLaplace * filter, GstCvLaplaceClass * gclass)
}
static gboolean
-gst_cv_laplace_cv_set_caps (GstOpencvBaseTransform * trans, gint in_width,
+gst_cv_laplace_cv_set_caps (GstOpencvVideoFilter * trans, gint in_width,
gint in_height, gint in_depth, gint in_channels, gint out_width,
gint out_height, gint out_depth, gint out_channels)
{
@@ -273,7 +273,7 @@ gst_cv_laplace_get_property (GObject * object, guint prop_id,
}
static GstFlowReturn
-gst_cv_laplace_transform (GstOpencvBaseTransform * base, GstBuffer * buf,
+gst_cv_laplace_transform (GstOpencvVideoFilter * base, GstBuffer * buf,
IplImage * img, GstBuffer * outbuf, IplImage * outimg)
{
GstCvLaplace *filter = GST_CV_LAPLACE (base);
diff --git a/ext/opencv/basicfilters/gstcvlaplace.h b/ext/opencv/basicfilters/gstcvlaplace.h
index 74fe3d786..4fcc104ef 100644
--- a/ext/opencv/basicfilters/gstcvlaplace.h
+++ b/ext/opencv/basicfilters/gstcvlaplace.h
@@ -46,7 +46,7 @@
#include <gst/gst.h>
#include <cv.h>
-#include <gstopencvbasetrans.h>
+#include <gstopencvvideofilter.h>
G_BEGIN_DECLS
@@ -67,7 +67,7 @@ typedef struct _GstCvLaplaceClass GstCvLaplaceClass;
struct _GstCvLaplace
{
- GstOpencvBaseTransform element;
+ GstOpencvVideoFilter element;
gint aperture_size;
@@ -76,7 +76,7 @@ struct _GstCvLaplace
struct _GstCvLaplaceClass
{
- GstOpencvBaseTransformClass parent_class;
+ GstOpencvVideoFilterClass parent_class;
};
GType gst_cv_laplace_get_type (void);
diff --git a/ext/opencv/basicfilters/gstcvsmooth.c b/ext/opencv/basicfilters/gstcvsmooth.c
index d4228f1d7..46d880dc6 100644
--- a/ext/opencv/basicfilters/gstcvsmooth.c
+++ b/ext/opencv/basicfilters/gstcvsmooth.c
@@ -119,17 +119,17 @@ gst_cv_smooth_type_get_type (void)
#define DEFAULT_PARAM3 0.0
#define DEFAULT_PARAM4 0.0
-GST_BOILERPLATE (GstCvSmooth, gst_cv_smooth, GstOpencvBaseTransform,
- GST_TYPE_OPENCV_BASE_TRANSFORM);
+GST_BOILERPLATE (GstCvSmooth, gst_cv_smooth, GstOpencvVideoFilter,
+ GST_TYPE_OPENCV_VIDEO_FILTER);
static void gst_cv_smooth_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
static void gst_cv_smooth_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
-static GstFlowReturn gst_cv_smooth_transform_ip (GstOpencvBaseTransform *
+static GstFlowReturn gst_cv_smooth_transform_ip (GstOpencvVideoFilter *
filter, GstBuffer * buf, IplImage * img);
-static GstFlowReturn gst_cv_smooth_transform (GstOpencvBaseTransform * filter,
+static GstFlowReturn gst_cv_smooth_transform (GstOpencvVideoFilter * filter,
GstBuffer * buf, IplImage * img, GstBuffer * outbuf, IplImage * outimg);
/* Clean up */
@@ -164,12 +164,12 @@ static void
gst_cv_smooth_class_init (GstCvSmoothClass * klass)
{
GObjectClass *gobject_class;
- GstOpencvBaseTransformClass *gstopencvbasefilter_class;
+ GstOpencvVideoFilterClass *gstopencvbasefilter_class;
GstElementClass *gstelement_class;
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
- gstopencvbasefilter_class = (GstOpencvBaseTransformClass *) klass;
+ gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass;
parent_class = g_type_class_peek_parent (klass);
@@ -328,7 +328,7 @@ gst_cv_smooth_get_property (GObject * object, guint prop_id,
}
static GstFlowReturn
-gst_cv_smooth_transform (GstOpencvBaseTransform * base, GstBuffer * buf,
+gst_cv_smooth_transform (GstOpencvVideoFilter * base, GstBuffer * buf,
IplImage * img, GstBuffer * outbuf, IplImage * outimg)
{
GstCvSmooth *filter = GST_CV_SMOOTH (base);
@@ -340,7 +340,7 @@ gst_cv_smooth_transform (GstOpencvBaseTransform * base, GstBuffer * buf,
}
static GstFlowReturn
-gst_cv_smooth_transform_ip (GstOpencvBaseTransform * base, GstBuffer * buf,
+gst_cv_smooth_transform_ip (GstOpencvVideoFilter * base, GstBuffer * buf,
IplImage * img)
{
GstCvSmooth *filter = GST_CV_SMOOTH (base);
diff --git a/ext/opencv/basicfilters/gstcvsmooth.h b/ext/opencv/basicfilters/gstcvsmooth.h
index 448b4b047..b8608eea0 100644
--- a/ext/opencv/basicfilters/gstcvsmooth.h
+++ b/ext/opencv/basicfilters/gstcvsmooth.h
@@ -46,7 +46,7 @@
#include <gst/gst.h>
#include <cv.h>
-#include <gstopencvbasetrans.h>
+#include <gstopencvvideofilter.h>
G_BEGIN_DECLS
@@ -67,7 +67,7 @@ typedef struct _GstCvSmoothClass GstCvSmoothClass;
struct _GstCvSmooth
{
- GstOpencvBaseTransform element;
+ GstOpencvVideoFilter element;
gint type;
@@ -79,7 +79,7 @@ struct _GstCvSmooth
struct _GstCvSmoothClass
{
- GstOpencvBaseTransformClass parent_class;
+ GstOpencvVideoFilterClass parent_class;
};
GType gst_cv_smooth_get_type (void);
diff --git a/ext/opencv/basicfilters/gstcvsobel.c b/ext/opencv/basicfilters/gstcvsobel.c
index dcbf01bcb..eaeeeb804 100644
--- a/ext/opencv/basicfilters/gstcvsobel.c
+++ b/ext/opencv/basicfilters/gstcvsobel.c
@@ -83,8 +83,8 @@ enum
#define DEFAULT_Y_ORDER 0
#define DEFAULT_APERTURE_SIZE 3
-GST_BOILERPLATE (GstCvSobel, gst_cv_sobel, GstOpencvBaseTransform,
- GST_TYPE_OPENCV_BASE_TRANSFORM);
+GST_BOILERPLATE (GstCvSobel, gst_cv_sobel, GstOpencvVideoFilter,
+ GST_TYPE_OPENCV_VIDEO_FILTER);
static void gst_cv_sobel_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
@@ -94,7 +94,7 @@ static void gst_cv_sobel_get_property (GObject * object, guint prop_id,
static GstCaps *gst_cv_sobel_transform_caps (GstBaseTransform * trans,
GstPadDirection dir, GstCaps * caps);
-static GstFlowReturn gst_cv_sobel_transform (GstOpencvBaseTransform * filter,
+static GstFlowReturn gst_cv_sobel_transform (GstOpencvVideoFilter * filter,
GstBuffer * buf, IplImage * img, GstBuffer * outbuf, IplImage * outimg);
/* Clean up */
@@ -129,13 +129,13 @@ gst_cv_sobel_class_init (GstCvSobelClass * klass)
{
GObjectClass *gobject_class;
GstBaseTransformClass *gstbasetransform_class;
- GstOpencvBaseTransformClass *gstopencvbasefilter_class;
+ GstOpencvVideoFilterClass *gstopencvbasefilter_class;
GstElementClass *gstelement_class;
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
gstbasetransform_class = (GstBaseTransformClass *) klass;
- gstopencvbasefilter_class = (GstOpencvBaseTransformClass *) klass;
+ gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass;
parent_class = g_type_class_peek_parent (klass);
@@ -260,7 +260,7 @@ gst_cv_sobel_get_property (GObject * object, guint prop_id,
}
static GstFlowReturn
-gst_cv_sobel_transform (GstOpencvBaseTransform * base, GstBuffer * buf,
+gst_cv_sobel_transform (GstOpencvVideoFilter * base, GstBuffer * buf,
IplImage * img, GstBuffer * outbuf, IplImage * outimg)
{
GstCvSobel *filter = GST_CV_SOBEL (base);
diff --git a/ext/opencv/basicfilters/gstcvsobel.h b/ext/opencv/basicfilters/gstcvsobel.h
index d9effd658..65fe65a81 100644
--- a/ext/opencv/basicfilters/gstcvsobel.h
+++ b/ext/opencv/basicfilters/gstcvsobel.h
@@ -46,7 +46,7 @@
#include <gst/gst.h>
#include <cv.h>
-#include <gstopencvbasetrans.h>
+#include <gstopencvvideofilter.h>
G_BEGIN_DECLS
@@ -67,7 +67,7 @@ typedef struct _GstCvSobelClass GstCvSobelClass;
struct _GstCvSobel
{
- GstOpencvBaseTransform element;
+ GstOpencvVideoFilter element;
gint x_order;
gint y_order;
@@ -76,7 +76,7 @@ struct _GstCvSobel
struct _GstCvSobelClass
{
- GstOpencvBaseTransformClass parent_class;
+ GstOpencvVideoFilterClass parent_class;
};
GType gst_cv_sobel_get_type (void);
diff --git a/ext/opencv/gstopencvbasetrans.c b/ext/opencv/gstopencvvideofilter.c
index f47a5dd63..ed7065697 100644
--- a/ext/opencv/gstopencvbasetrans.c
+++ b/ext/opencv/gstopencvvideofilter.c
@@ -49,11 +49,11 @@
#include <gst/gst.h>
-#include "gstopencvbasetrans.h"
+#include "gstopencvvideofilter.h"
#include "gstopencvutils.h"
-GST_DEBUG_CATEGORY_STATIC (gst_opencv_base_transform_debug);
-#define GST_CAT_DEFAULT gst_opencv_base_transform_debug
+GST_DEBUG_CATEGORY_STATIC (gst_opencv_video_filter_debug);
+#define GST_CAT_DEFAULT gst_opencv_video_filter_debug
/* Filter signals and args */
enum
@@ -69,47 +69,45 @@ enum
static GstElementClass *parent_class = NULL;
-static void gst_opencv_base_transform_class_init (GstOpencvBaseTransformClass *
+static void gst_opencv_video_filter_class_init (GstOpencvVideoFilterClass *
klass);
-static void gst_opencv_base_transform_init (GstOpencvBaseTransform * trans,
- GstOpencvBaseTransformClass * klass);
-static void gst_opencv_base_transform_base_init (gpointer gclass);
+static void gst_opencv_video_filter_init (GstOpencvVideoFilter * trans,
+ GstOpencvVideoFilterClass * klass);
+static void gst_opencv_video_filter_base_init (gpointer gclass);
-static gboolean gst_opencv_base_transform_set_caps (GstBaseTransform * trans,
+static gboolean gst_opencv_video_filter_set_caps (GstBaseTransform * trans,
GstCaps * incaps, GstCaps * outcaps);
-static GstFlowReturn gst_opencv_base_transform_transform_ip (GstBaseTransform *
+static GstFlowReturn gst_opencv_video_filter_transform_ip (GstBaseTransform *
trans, GstBuffer * buf);
-static GstFlowReturn gst_opencv_base_transform_transform (GstBaseTransform *
+static GstFlowReturn gst_opencv_video_filter_transform (GstBaseTransform *
trans, GstBuffer * inbuf, GstBuffer * outbuf);
-static gboolean gst_opencv_base_transform_get_unit_size (GstBaseTransform *
- trans, GstCaps * caps, guint * size);
-static void gst_opencv_base_transform_set_property (GObject * object,
+static void gst_opencv_video_filter_set_property (GObject * object,
guint prop_id, const GValue * value, GParamSpec * pspec);
-static void gst_opencv_base_transform_get_property (GObject * object,
+static void gst_opencv_video_filter_get_property (GObject * object,
guint prop_id, GValue * value, GParamSpec * pspec);
GType
-gst_opencv_base_transform_get_type (void)
+gst_opencv_video_filter_get_type (void)
{
static volatile gsize opencv_base_transform_type = 0;
if (g_once_init_enter (&opencv_base_transform_type)) {
GType _type;
static const GTypeInfo opencv_base_transform_info = {
- sizeof (GstOpencvBaseTransformClass),
- (GBaseInitFunc) gst_opencv_base_transform_base_init,
+ sizeof (GstOpencvVideoFilterClass),
+ (GBaseInitFunc) gst_opencv_video_filter_base_init,
NULL,
- (GClassInitFunc) gst_opencv_base_transform_class_init,
+ (GClassInitFunc) gst_opencv_video_filter_class_init,
NULL,
NULL,
- sizeof (GstOpencvBaseTransform),
+ sizeof (GstOpencvVideoFilter),
0,
- (GInstanceInitFunc) gst_opencv_base_transform_init,
+ (GInstanceInitFunc) gst_opencv_video_filter_init,
};
- _type = g_type_register_static (GST_TYPE_BASE_TRANSFORM,
- "GstOpencvBaseTransform", &opencv_base_transform_info,
+ _type = g_type_register_static (GST_TYPE_VIDEO_FILTER,
+ "GstOpencvVideoFilter", &opencv_base_transform_info,
G_TYPE_FLAG_ABSTRACT);
g_once_init_leave (&opencv_base_transform_type, _type);
}
@@ -118,9 +116,9 @@ gst_opencv_base_transform_get_type (void)
/* Clean up */
static void
-gst_opencv_base_transform_finalize (GObject * obj)
+gst_opencv_video_filter_finalize (GObject * obj)
{
- GstOpencvBaseTransform *transform = GST_OPENCV_BASE_TRANSFORM (obj);
+ GstOpencvVideoFilter *transform = GST_OPENCV_VIDEO_FILTER (obj);
if (transform->cvImage)
cvReleaseImage (&transform->cvImage);
@@ -130,12 +128,12 @@ gst_opencv_base_transform_finalize (GObject * obj)
/* GObject vmethod implementations */
static void
-gst_opencv_base_transform_base_init (gpointer gclass)
+gst_opencv_video_filter_base_init (gpointer gclass)
{
}
static void
-gst_opencv_base_transform_class_init (GstOpencvBaseTransformClass * klass)
+gst_opencv_video_filter_class_init (GstOpencvVideoFilterClass * klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
@@ -146,35 +144,34 @@ gst_opencv_base_transform_class_init (GstOpencvBaseTransformClass * klass)
basetrans_class = (GstBaseTransformClass *) klass;
parent_class = g_type_class_peek_parent (klass);
- GST_DEBUG_CATEGORY_INIT (gst_opencv_base_transform_debug,
+ GST_DEBUG_CATEGORY_INIT (gst_opencv_video_filter_debug,
"opencvbasetransform", 0, "opencvbasetransform element");
gobject_class->finalize =
- GST_DEBUG_FUNCPTR (gst_opencv_base_transform_finalize);
- gobject_class->set_property = gst_opencv_base_transform_set_property;
- gobject_class->get_property = gst_opencv_base_transform_get_property;
-
- basetrans_class->transform = gst_opencv_base_transform_transform;
- basetrans_class->transform_ip = gst_opencv_base_transform_transform_ip;
- basetrans_class->set_caps = gst_opencv_base_transform_set_caps;
- basetrans_class->get_unit_size = gst_opencv_base_transform_get_unit_size;
+ GST_DEBUG_FUNCPTR (gst_opencv_video_filter_finalize);
+ gobject_class->set_property = gst_opencv_video_filter_set_property;
+ gobject_class->get_property = gst_opencv_video_filter_get_property;
+
+ basetrans_class->transform = gst_opencv_video_filter_transform;
+ basetrans_class->transform_ip = gst_opencv_video_filter_transform_ip;
+ basetrans_class->set_caps = gst_opencv_video_filter_set_caps;
}
static void
-gst_opencv_base_transform_init (GstOpencvBaseTransform * transform,
- GstOpencvBaseTransformClass * bclass)
+gst_opencv_video_filter_init (GstOpencvVideoFilter * transform,
+ GstOpencvVideoFilterClass * bclass)
{
}
static GstFlowReturn
-gst_opencv_base_transform_transform (GstBaseTransform * trans,
+gst_opencv_video_filter_transform (GstBaseTransform * trans,
GstBuffer * inbuf, GstBuffer * outbuf)
{
- GstOpencvBaseTransform *transform;
- GstOpencvBaseTransformClass *fclass;
+ GstOpencvVideoFilter *transform;
+ GstOpencvVideoFilterClass *fclass;
- transform = GST_OPENCV_BASE_TRANSFORM (trans);
- fclass = GST_OPENCV_BASE_TRANSFORM_GET_CLASS (transform);
+ transform = GST_OPENCV_VIDEO_FILTER (trans);
+ fclass = GST_OPENCV_VIDEO_FILTER_GET_CLASS (transform);
g_return_val_if_fail (fclass->cv_trans_func != NULL, GST_FLOW_ERROR);
g_return_val_if_fail (transform->cvImage != NULL, GST_FLOW_ERROR);
@@ -187,34 +184,35 @@ gst_opencv_base_transform_transform (GstBaseTransform * trans,
}
static GstFlowReturn
-gst_opencv_base_transform_transform_ip (GstBaseTransform * trans,
+gst_opencv_video_filter_transform_ip (GstBaseTransform * trans,
GstBuffer * buffer)
{
- GstOpencvBaseTransform *transform;
- GstOpencvBaseTransformClass *fclass;
+ GstOpencvVideoFilter *transform;
+ GstOpencvVideoFilterClass *fclass;
- transform = GST_OPENCV_BASE_TRANSFORM (trans);
- fclass = GST_OPENCV_BASE_TRANSFORM_GET_CLASS (transform);
+ transform = GST_OPENCV_VIDEO_FILTER (trans);
+ fclass = GST_OPENCV_VIDEO_FILTER_GET_CLASS (transform);
g_return_val_if_fail (fclass->cv_trans_ip_func != NULL, GST_FLOW_ERROR);
g_return_val_if_fail (transform->cvImage != NULL, GST_FLOW_ERROR);
+ /* TODO this is not always needed and should be solved at BaseTransform
+ * level */
buffer = gst_buffer_make_writable (buffer);
transform->cvImage->imageData = (char *) GST_BUFFER_DATA (buffer);
-
/* FIXME how to release buffer? */
return fclass->cv_trans_ip_func (transform, buffer, transform->cvImage);
}
static gboolean
-gst_opencv_base_transform_set_caps (GstBaseTransform * trans, GstCaps * incaps,
+gst_opencv_video_filter_set_caps (GstBaseTransform * trans, GstCaps * incaps,
GstCaps * outcaps)
{
- GstOpencvBaseTransform *transform = GST_OPENCV_BASE_TRANSFORM (trans);
- GstOpencvBaseTransformClass *klass =
- GST_OPENCV_BASE_TRANSFORM_GET_CLASS (transform);
+ GstOpencvVideoFilter *transform = GST_OPENCV_VIDEO_FILTER (trans);
+ GstOpencvVideoFilterClass *klass =
+ GST_OPENCV_VIDEO_FILTER_GET_CLASS (transform);
gint in_width, in_height;
gint in_depth, in_channels;
gint out_width, out_height;
@@ -239,7 +237,7 @@ gst_opencv_base_transform_set_caps (GstBaseTransform * trans, GstCaps * incaps,
}
if (klass->cv_set_caps) {
- if (!klass->cv_set_caps(transform, in_width, in_height, in_depth,
+ if (!klass->cv_set_caps (transform, in_width, in_height, in_depth,
in_channels, out_width, out_height, out_depth, out_channels))
return FALSE;
}
@@ -262,27 +260,8 @@ gst_opencv_base_transform_set_caps (GstBaseTransform * trans, GstCaps * incaps,
return TRUE;
}
-static gboolean
-gst_opencv_base_transform_get_unit_size (GstBaseTransform * trans,
- GstCaps * caps, guint * size)
-{
- gint width, height;
- gint bpp;
- GstStructure *structure;
-
- structure = gst_caps_get_structure (caps, 0);
-
- if (!gst_structure_get_int (structure, "width", &width) ||
- !gst_structure_get_int (structure, "height", &height) ||
- !gst_structure_get_int (structure, "bpp", &bpp)) {
- return FALSE;
- }
- *size = width * height * bpp / 8;
- return TRUE;
-}
-
static void
-gst_opencv_base_transform_set_property (GObject * object, guint prop_id,
+gst_opencv_video_filter_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
switch (prop_id) {
@@ -293,7 +272,7 @@ gst_opencv_base_transform_set_property (GObject * object, guint prop_id,
}
static void
-gst_opencv_base_transform_get_property (GObject * object, guint prop_id,
+gst_opencv_video_filter_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
switch (prop_id) {
@@ -304,7 +283,7 @@ gst_opencv_base_transform_get_property (GObject * object, guint prop_id,
}
void
-gst_opencv_base_transform_set_in_place (GstOpencvBaseTransform * transform,
+gst_opencv_video_filter_set_in_place (GstOpencvVideoFilter * transform,
gboolean ip)
{
transform->in_place = ip;
diff --git a/ext/opencv/gstopencvbasetrans.h b/ext/opencv/gstopencvvideofilter.h
index 5ab3ddbac..0222a3040 100644
--- a/ext/opencv/gstopencvbasetrans.h
+++ b/ext/opencv/gstopencvvideofilter.h
@@ -41,44 +41,45 @@
* Boston, MA 02111-1307, USA.
*/
-#ifndef __GST_OPENCV_BASE_TRANSFORM_H__
-#define __GST_OPENCV_BASE_TRANSFORM_H__
+#ifndef __GST_OPENCV_VIDEO_FILTER_H__
+#define __GST_OPENCV_VIDEO_FILTER_H__
#include <gst/gst.h>
-#include <gst/base/gstbasetransform.h>
+#include <gst/video/gstvideofilter.h>
#include <cv.h>
G_BEGIN_DECLS
/* #defines don't like whitespacey bits */
-#define GST_TYPE_OPENCV_BASE_TRANSFORM \
- (gst_opencv_base_transform_get_type())
-#define GST_OPENCV_BASE_TRANSFORM(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OPENCV_BASE_TRANSFORM,GstOpencvBaseTransform))
-#define GST_OPENCV_BASE_TRANSFORM_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OPENCV_BASE_TRANSFORM,GstOpencvBaseTransformClass))
-#define GST_IS_OPENCV_BASE_TRANSFORM(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OPENCV_BASE_TRANSFORM))
-#define GST_IS_OPENCV_BASE_TRANSFORM_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OPENCV_BASE_TRANSFORM))
-#define GST_OPENCV_BASE_TRANSFORM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_OPENCV_BASE_TRANSFORM,GstOpencvBaseTransformClass))
+#define GST_TYPE_OPENCV_VIDEO_FILTER \
+ (gst_opencv_video_filter_get_type())
+#define GST_OPENCV_VIDEO_FILTER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OPENCV_VIDEO_FILTER,GstOpencvVideoFilter))
+#define GST_OPENCV_VIDEO_FILTER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OPENCV_VIDEO_FILTER,GstOpencvVideoFilterClass))
+#define GST_IS_OPENCV_VIDEO_FILTER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OPENCV_VIDEO_FILTER))
+#define GST_IS_OPENCV_VIDEO_FILTER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OPENCV_VIDEO_FILTER))
+#define GST_OPENCV_VIDEO_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_OPENCV_VIDEO_FILTER,GstOpencvVideoFilterClass))
+#define GST_OPENCV_VIDEO_FILTER_CAST(obj) ((GstOpencvVideoFilter *) (obj))
-typedef struct _GstOpencvBaseTransform GstOpencvBaseTransform;
-typedef struct _GstOpencvBaseTransformClass GstOpencvBaseTransformClass;
+typedef struct _GstOpencvVideoFilter GstOpencvVideoFilter;
+typedef struct _GstOpencvVideoFilterClass GstOpencvVideoFilterClass;
-typedef GstFlowReturn (*GstOpencvBaseTransformTransformIPFunc)
- (GstOpencvBaseTransform * transform, GstBuffer * buffer, IplImage * img);
-typedef GstFlowReturn (*GstOpencvBaseTransformTransformFunc)
- (GstOpencvBaseTransform * transform, GstBuffer * buffer, IplImage * img,
+typedef GstFlowReturn (*GstOpencvVideoFilterTransformIPFunc)
+ (GstOpencvVideoFilter * transform, GstBuffer * buffer, IplImage * img);
+typedef GstFlowReturn (*GstOpencvVideoFilterTransformFunc)
+ (GstOpencvVideoFilter * transform, GstBuffer * buffer, IplImage * img,
GstBuffer * outbuf, IplImage * outimg);
-typedef gboolean (*GstOpencvBaseTransformSetCaps)
- (GstOpencvBaseTransform * transform, gint in_width, gint in_height,
+typedef gboolean (*GstOpencvVideoFilterSetCaps)
+ (GstOpencvVideoFilter * transform, gint in_width, gint in_height,
gint in_depth, gint in_channels, gint out_width, gint out_height,
gint out_depth, gint out_channels);
-struct _GstOpencvBaseTransform
+struct _GstOpencvVideoFilter
{
- GstBaseTransform trans;
+ GstVideoFilter trans;
gboolean in_place;
@@ -86,20 +87,20 @@ struct _GstOpencvBaseTransform
IplImage *out_cvImage;
};
-struct _GstOpencvBaseTransformClass
+struct _GstOpencvVideoFilterClass
{
- GstBaseTransformClass parent_class;
+ GstVideoFilterClass parent_class;
- GstOpencvBaseTransformTransformFunc cv_trans_func;
- GstOpencvBaseTransformTransformIPFunc cv_trans_ip_func;
+ GstOpencvVideoFilterTransformFunc cv_trans_func;
+ GstOpencvVideoFilterTransformIPFunc cv_trans_ip_func;
- GstOpencvBaseTransformSetCaps cv_set_caps;
+ GstOpencvVideoFilterSetCaps cv_set_caps;
};
-GType gst_opencv_base_transform_get_type (void);
+GType gst_opencv_video_filter_get_type (void);
-void gst_opencv_base_transform_set_in_place (GstOpencvBaseTransform * transform,
+void gst_opencv_video_filter_set_in_place (GstOpencvVideoFilter * transform,
gboolean ip);
G_END_DECLS
-#endif /* __GST_OPENCV_BASE_TRANSFORM_H__ */
+#endif /* __GST_OPENCV_VIDEO_FILTER_H__ */