qt: hotfix: allow per feature registration
authorStéphane Cerveau <scerveau@collabora.com>
Tue, 30 Mar 2021 07:45:45 +0000 (09:45 +0200)
committerStéphane Cerveau <scerveau@collabora.com>
Tue, 30 Mar 2021 08:09:00 +0000 (10:09 +0200)
Fixes #869

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/925>

ext/qt/gstqtelement.cc
ext/qt/gstqtelements.h
ext/qt/gstqtoverlay.cc
ext/qt/gstqtsink.cc
ext/qt/gstqtsrc.cc

index ad91f4f..d8eafb7 100644 (file)
@@ -26,7 +26,7 @@
 #include "qtitem.h"
 #include <QtQml/QQmlApplicationEngine>
 
-gboolean
+void
 qt5_element_init (GstPlugin * plugin)
 {
   static gsize res = FALSE;
@@ -35,5 +35,4 @@ qt5_element_init (GstPlugin * plugin)
     qmlRegisterType<QtGLVideoItem> ("org.freedesktop.gstreamer.GLVideoItem", 1, 0, "GstGLVideoItem");
     g_once_init_leave (&res, TRUE);
   }
-  return res;
 }
index 0c35d33..cd09ca0 100644 (file)
@@ -24,7 +24,7 @@
 
 G_BEGIN_DECLS
 
-gboolean qt5_element_init (GstPlugin * plugin);
+void qt5_element_init (GstPlugin * plugin);
 
 GST_ELEMENT_REGISTER_DECLARE (qmlglsink);
 GST_ELEMENT_REGISTER_DECLARE (qmlglsrc);
index 7a9f749..e7907b0 100644 (file)
@@ -132,10 +132,8 @@ static guint gst_qt_overlay_signals[LAST_SIGNAL] = { 0 };
 G_DEFINE_TYPE_WITH_CODE (GstQtOverlay, gst_qt_overlay,
     GST_TYPE_GL_FILTER, GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT,
         "qtoverlay", 0, "Qt Video Overlay"));
-#define _do_init \
-    ret |= qt5_element_init (plugin);
 GST_ELEMENT_REGISTER_DEFINE_WITH_CODE (qmlgloverlay, "qmlgloverlay",
-    GST_RANK_NONE, GST_TYPE_QT_OVERLAY, _do_init);
+    GST_RANK_NONE, GST_TYPE_QT_OVERLAY, qt5_element_init (plugin));
 
 static void
 gst_qt_overlay_class_init (GstQtOverlayClass * klass)
index 17ca7f3..b2de37d 100644 (file)
@@ -135,10 +135,8 @@ enum
 G_DEFINE_TYPE_WITH_CODE (GstQtSink, gst_qt_sink,
     GST_TYPE_VIDEO_SINK, GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT,
         "qtsink", 0, "Qt Video Sink"));
-#define _do_init \
-    ret |= qt5_element_init (plugin);
 GST_ELEMENT_REGISTER_DEFINE_WITH_CODE (qmlglsink, "qmlglsink",
-    GST_RANK_NONE, GST_TYPE_QT_SINK, _do_init);
+    GST_RANK_NONE, GST_TYPE_QT_SINK, qt5_element_init (plugin));
 
 static void
 gst_qt_sink_class_init (GstQtSinkClass * klass)
index 2d7a4f6..fd7dd56 100644 (file)
@@ -77,10 +77,8 @@ enum
 G_DEFINE_TYPE_WITH_CODE (GstQtSrc, gst_qt_src,
     GST_TYPE_PUSH_SRC, GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT,
         "qtsrc", 0, "Qt Video Src"));
-#define _do_init \
-    ret |= qt5_element_init (plugin);
 GST_ELEMENT_REGISTER_DEFINE_WITH_CODE (qmlglsrc, "qmlglsrc",
-    GST_RANK_NONE, GST_TYPE_QT_SRC, _do_init);
+    GST_RANK_NONE, GST_TYPE_QT_SRC, qt5_element_init (plugin));
 
 static const gfloat vertical_flip_matrix[] = {
   1.0f, 0.0f, 0.0f, 0.0f,