faceoverlay: Port to GStreamer 1.x
authorFabian Orccon <cfoch.fabian@gmail.com>
Fri, 30 Dec 2016 19:05:30 +0000 (14:05 -0500)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 11 Apr 2017 08:22:01 +0000 (11:22 +0300)
https://bugzilla.gnome.org/show_bug.cgi?id=764011

configure.ac
gst/faceoverlay/gstfaceoverlay.c
gst/meson.build

index 59156e8..f1171dd 100644 (file)
@@ -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)
index 19006f3..c5c8fe0 100644 (file)
@@ -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;
 
index 356a3fa..d07c795 100644 (file)
@@ -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')