cairo: allow per feature registration
authorStéphane Cerveau <scerveau@collabora.com>
Tue, 16 Feb 2021 16:38:46 +0000 (17:38 +0100)
committerStéphane Cerveau <scerveau@collabora.com>
Mon, 29 Mar 2021 10:45:23 +0000 (12:45 +0200)
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

ext/cairo/gstcairo.c
ext/cairo/gstcairooverlay.c
ext/cairo/gstcairooverlay.h

index 5b94387..389ded6 100644 (file)
 #include <string.h>
 #include <math.h>
 
-GST_DEBUG_CATEGORY (cairo_debug);
 
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
-  gst_element_register (plugin, "cairooverlay", GST_RANK_NONE,
-      GST_TYPE_CAIRO_OVERLAY);
-
-  GST_DEBUG_CATEGORY_INIT (cairo_debug, "cairo", 0, "Cairo elements");
-
-  return TRUE;
+  return GST_ELEMENT_REGISTER (cairooverlay, plugin);
 }
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, cairo,
index 217c4c2..789ce27 100644 (file)
 #define TEMPLATE_CAPS GST_VIDEO_CAPS_MAKE("{ xRGB, ARGB, RGB16 }")
 #endif
 
+GST_DEBUG_CATEGORY (cairo_debug);
+
 static GstStaticPadTemplate gst_cairo_overlay_src_template =
 GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
@@ -119,7 +121,9 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     );
 
 G_DEFINE_TYPE (GstCairoOverlay, gst_cairo_overlay, GST_TYPE_BASE_TRANSFORM);
-
+GST_ELEMENT_REGISTER_DEFINE_WITH_CODE (cairooverlay, "cairooverlay",
+    GST_RANK_NONE, GST_TYPE_CAIRO_OVERLAY, GST_DEBUG_CATEGORY_INIT (cairo_debug,
+        "cairo", 0, "Cairo elements"););
 enum
 {
   PROP_0,
index b342c4b..440bead 100644 (file)
@@ -43,6 +43,8 @@ struct _GstCairoOverlay {
   gboolean attach_compo_to_buffer;
 };
 
+GST_ELEMENT_REGISTER_DECLARE (cairooverlay);
+
 G_END_DECLS
 
 #endif /* __GST_CAIRO_OVERLAY_H__ */