From: Julian Bouzas Date: Fri, 14 Aug 2020 19:27:31 +0000 (-0400) Subject: aalib: allow per feature registration X-Git-Tag: 1.19.3~509^2~245 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c428f0080b7daf205c21b44975d475a29aaee0ba;p=platform%2Fupstream%2Fgstreamer.git aalib: allow per feature registration 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: --- diff --git a/ext/aalib/gstaaplugin.c b/ext/aalib/gstaaplugin.c new file mode 100644 index 0000000..3511e03 --- /dev/null +++ b/ext/aalib/gstaaplugin.c @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 Huawei Technologies Co., Ltd. + * @Author: Julian Bouzas + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstaasink.h" +#include "gstaatv.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + gboolean ret = FALSE; + + ret |= GST_ELEMENT_REGISTER (aasink, plugin); + ret |= GST_ELEMENT_REGISTER (aatv, plugin); + + return ret; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + aasink, + "ASCII Art video sink & filter", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/ext/aalib/gstaasink.c b/ext/aalib/gstaasink.c index b4d337d..49a9fce 100644 --- a/ext/aalib/gstaasink.c +++ b/ext/aalib/gstaasink.c @@ -41,8 +41,8 @@ #include #include + #include "gstaasink.h" -#include "gstaatv.h" /* aasink signals and args */ enum @@ -92,6 +92,7 @@ static GstStateChangeReturn gst_aasink_change_state (GstElement * element, #define gst_aasink_parent_class parent_class G_DEFINE_TYPE (GstAASink, gst_aasink, GST_TYPE_VIDEO_SINK); +GST_ELEMENT_REGISTER_DEFINE (aasink, "aasink", GST_RANK_NONE, GST_TYPE_AASINK); #define GST_TYPE_AADRIVERS (gst_aasink_drivers_get_type()) static GType @@ -582,21 +583,3 @@ open_failed: return GST_STATE_CHANGE_FAILURE; } } - -static gboolean -plugin_init (GstPlugin * plugin) -{ - if (!gst_element_register (plugin, "aasink", GST_RANK_NONE, GST_TYPE_AASINK)) - return FALSE; - - if (!gst_element_register (plugin, "aatv", GST_RANK_NONE, GST_TYPE_AATV)) - return FALSE; - - return TRUE; -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - aasink, - "ASCII Art video sink & filter", - plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/ext/aalib/gstaasink.h b/ext/aalib/gstaasink.h index 0723988..7705012 100644 --- a/ext/aalib/gstaasink.h +++ b/ext/aalib/gstaasink.h @@ -47,6 +47,8 @@ struct _GstAASink { gint aa_driver; }; +GST_ELEMENT_REGISTER_DECLARE (aasink); + G_END_DECLS #endif /* __GST_AASINKE_H__ */ diff --git a/ext/aalib/gstaatv.c b/ext/aalib/gstaatv.c index 9f793d5..1b363df 100644 --- a/ext/aalib/gstaatv.c +++ b/ext/aalib/gstaatv.c @@ -130,6 +130,7 @@ gst_aatv_rain_mode_get_type (void) #define gst_aatv_parent_class parent_class G_DEFINE_TYPE (GstAATv, gst_aatv, GST_TYPE_VIDEO_FILTER); +GST_ELEMENT_REGISTER_DEFINE (aatv, "aatv", GST_RANK_NONE, GST_TYPE_AATV); static void gst_aatv_scale (GstAATv * aatv, guchar * src, guchar * dest, diff --git a/ext/aalib/gstaatv.h b/ext/aalib/gstaatv.h index 07aae0d..47a90c2 100644 --- a/ext/aalib/gstaatv.h +++ b/ext/aalib/gstaatv.h @@ -84,6 +84,8 @@ G_DECLARE_FINAL_TYPE (GstAATv, gst_aatv, GST, AATV, GstVideoFilter) struct aa_renderparams ascii_parms; }; +GST_ELEMENT_REGISTER_DECLARE (aatv); + G_END_DECLS diff --git a/ext/aalib/meson.build b/ext/aalib/meson.build index 613ccbe..5f9cd3e 100644 --- a/ext/aalib/meson.build +++ b/ext/aalib/meson.build @@ -14,7 +14,7 @@ endif if have_aalib libaa_dep = cc.find_library('aa', required : aalib_option) if libaa_dep.found() - gstaasink = library('gstaasink', ['gstaasink.c','gstaatv.c'], + gstaasink = library('gstaasink', ['gstaasink.c','gstaatv.c', 'gstaaplugin.c'], c_args : gst_plugins_good_args, link_args : noseh_link_args, include_directories : [configinc],