From 42b803ebb317328469a438e983a772c72467e549 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Cerveau?= Date: Tue, 30 Mar 2021 09:45:45 +0200 Subject: [PATCH] qt: hotfix: allow per feature registration 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: --- ext/qt/gstqtelement.cc | 3 +-- ext/qt/gstqtelements.h | 2 +- ext/qt/gstqtoverlay.cc | 4 +--- ext/qt/gstqtsink.cc | 4 +--- ext/qt/gstqtsrc.cc | 4 +--- 5 files changed, 5 insertions(+), 12 deletions(-) diff --git a/ext/qt/gstqtelement.cc b/ext/qt/gstqtelement.cc index ad91f4f..d8eafb7 100644 --- a/ext/qt/gstqtelement.cc +++ b/ext/qt/gstqtelement.cc @@ -26,7 +26,7 @@ #include "qtitem.h" #include -gboolean +void qt5_element_init (GstPlugin * plugin) { static gsize res = FALSE; @@ -35,5 +35,4 @@ qt5_element_init (GstPlugin * plugin) qmlRegisterType ("org.freedesktop.gstreamer.GLVideoItem", 1, 0, "GstGLVideoItem"); g_once_init_leave (&res, TRUE); } - return res; } diff --git a/ext/qt/gstqtelements.h b/ext/qt/gstqtelements.h index 0c35d33..cd09ca0 100644 --- a/ext/qt/gstqtelements.h +++ b/ext/qt/gstqtelements.h @@ -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); diff --git a/ext/qt/gstqtoverlay.cc b/ext/qt/gstqtoverlay.cc index 7a9f749..e7907b0 100644 --- a/ext/qt/gstqtoverlay.cc +++ b/ext/qt/gstqtoverlay.cc @@ -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) diff --git a/ext/qt/gstqtsink.cc b/ext/qt/gstqtsink.cc index 17ca7f3..b2de37d 100644 --- a/ext/qt/gstqtsink.cc +++ b/ext/qt/gstqtsink.cc @@ -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) diff --git a/ext/qt/gstqtsrc.cc b/ext/qt/gstqtsrc.cc index 2d7a4f6..fd7dd56 100644 --- a/ext/qt/gstqtsrc.cc +++ b/ext/qt/gstqtsrc.cc @@ -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, -- 2.7.4