diff --git a/ext/aalib/gstaaplugin.c b/ext/aalib/gstaaplugin.c new file mode 100644 index 0000000000..3511e036e0 --- /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 b4d337d7e0..49a9fcecbf 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 07239883c5..7705012161 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 9f793d50c4..1b363df46f 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 07aae0d058..47a90c2ad8 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 613ccbe07b..5f9cd3e0b8 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],