diff options
author | Fabian Orccon <cfoch.fabian@gmail.com> | 2016-12-30 14:05:30 -0500 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2017-04-11 11:22:01 +0300 |
commit | 456153cec9006dabc353de78ef7f51aa6b963844 (patch) | |
tree | 39adae811669a266667bb7f53e06a401908256b3 | |
parent | d4797e445577190f861cf932d24014973d6d842a (diff) | |
download | gstreamer-plugins-bad-456153cec9006dabc353de78ef7f51aa6b963844.tar.gz |
faceoverlay: Port to GStreamer 1.x
https://bugzilla.gnome.org/show_bug.cgi?id=764011
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | gst/faceoverlay/gstfaceoverlay.c | 39 | ||||
-rw-r--r-- | gst/meson.build | 3 |
3 files changed, 18 insertions, 29 deletions
diff --git a/configure.ac b/configure.ac index 59156e891..f1171dd45 100644 --- a/configure.ac +++ b/configure.ac @@ -459,11 +459,6 @@ dnl used in examples AG_GST_DEFAULT_ELEMENTS dnl *** plug-ins to include *** -dnl Non ported plugins (non-dependant, then dependant) -dnl Make sure you have a space before and after all plugins -GST_PLUGINS_NONPORTED="faceoverlay" - -AC_SUBST(GST_PLUGINS_NONPORTED) dnl these are all the gst plug-ins, compilable without additional libs AG_GST_CHECK_PLUGIN(accurip) diff --git a/gst/faceoverlay/gstfaceoverlay.c b/gst/faceoverlay/gstfaceoverlay.c index 19006f378..c5c8fe0b8 100644 --- a/gst/faceoverlay/gstfaceoverlay.c +++ b/gst/faceoverlay/gstfaceoverlay.c @@ -50,7 +50,7 @@ * <refsect2> * <title>Example launch line</title> * |[ - * gst-launch autovideosrc ! videoconvert ! faceoverlay location=/path/to/gnome-video-effects/pixmaps/bow.svg x=-5 y=-15 w=0.3 h=0.1 ! videoconvert ! autovideosink + * gst-launch-1.0 autovideosrc ! videoconvert ! faceoverlay location=/path/to/gnome-video-effects/pixmaps/bow.svg x=0.5 y=0.5 w=0.7 h=0.7 ! videoconvert ! autovideosink * ]| * </refsect2> */ @@ -81,16 +81,15 @@ enum static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-raw-rgb; video/x-raw-yuv") - ); + GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{RGB}"))); static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-raw-rgb; video/x-raw-yuv") - ); + GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{BGRA}"))); -GST_BOILERPLATE (GstFaceOverlay, gst_face_overlay, GstBin, GST_TYPE_BIN); +#define gst_face_overlay_parent_class parent_class +G_DEFINE_TYPE (GstFaceOverlay, gst_face_overlay, GST_TYPE_BIN); static void gst_face_overlay_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); @@ -276,21 +275,6 @@ gst_face_overlay_message_handler (GstBin * bin, GstMessage * message) } static void -gst_face_overlay_base_init (gpointer gclass) -{ - GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); - - gst_element_class_set_static_metadata (element_class, - "faceoverlay", - "Filter/Editor/Video", - "Overlays SVG graphics over a detected face in a video stream", - "Laura Lucas Alday <lauralucas@gmail.com>"); - - gst_element_class_add_static_pad_template (element_class, &src_factory); - gst_element_class_add_static_pad_template (element_class, &sink_factory); -} - -static void gst_face_overlay_class_init (GstFaceOverlayClass * klass) { GObjectClass *gobject_class; @@ -325,6 +309,17 @@ gst_face_overlay_class_init (GstFaceOverlayClass * klass) "Specify image height relative to face height.", 0, G_MAXFLOAT, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + gst_element_class_set_static_metadata (gstelement_class, + "faceoverlay", + "Filter/Editor/Video", + "Overlays SVG graphics over a detected face in a video stream", + "Laura Lucas Alday <lauralucas@gmail.com>"); + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&sink_factory)); + gstbin_class->handle_message = GST_DEBUG_FUNCPTR (gst_face_overlay_message_handler); gstelement_class->change_state = @@ -332,7 +327,7 @@ gst_face_overlay_class_init (GstFaceOverlayClass * klass) } static void -gst_face_overlay_init (GstFaceOverlay * filter, GstFaceOverlayClass * gclass) +gst_face_overlay_init (GstFaceOverlay * filter) { GstPadTemplate *tmpl; diff --git a/gst/meson.build b/gst/meson.build index 356a3fa3b..d07c795ce 100644 --- a/gst/meson.build +++ b/gst/meson.build @@ -16,8 +16,7 @@ subdir('compositor') subdir('debugutils') subdir('dvbsuboverlay') subdir('dvdspu') -# did not work -#subdir('faceoverlay') +subdir('faceoverlay') subdir('festival') subdir('fieldanalysis') subdir('freeverb') |