diff options
author | Benjamin Otte <otte@gnome.org> | 2003-10-31 20:03:30 +0000 |
---|---|---|
committer | Benjamin Otte <otte@gnome.org> | 2003-10-31 20:03:30 +0000 |
commit | 4ac17766c89a2a1f37e4fc9e0c88c52c7a494374 (patch) | |
tree | a6da9a91c3bd844b727408e854e2bbef44d69003 | |
parent | 64eb55d84a48d00511a2e6c36e3424d9c430e8ba (diff) |
first bunch of conversions to new plugin_init. Includes libs/gst, gst/id3, sys/oss, ext/gnomevfs, gst/typefind and ex...
Original commit message from CVS:
first bunch of conversions to new plugin_init. Includes libs/gst, gst/id3, sys/oss, ext/gnomevfs, gst/typefind and ext/mad.
You guessed it, everything Rhythmbox needs ;)
fixed BMP typefind and made gnomevfs one plugin instead of two while doing this
-rw-r--r-- | configure.ac | 30 | ||||
-rw-r--r-- | sys/oss/gstossaudio.c | 40 | ||||
-rw-r--r-- | sys/oss/gstosselement.c | 25 | ||||
-rw-r--r-- | sys/oss/gstosselement.h | 3 | ||||
-rw-r--r-- | sys/oss/gstossgst.c | 55 | ||||
-rw-r--r-- | sys/oss/gstossgst.h | 2 | ||||
-rw-r--r-- | sys/oss/gstosssink.c | 35 | ||||
-rw-r--r-- | sys/oss/gstosssink.h | 2 | ||||
-rw-r--r-- | sys/oss/gstosssrc.c | 38 | ||||
-rw-r--r-- | sys/oss/gstosssrc.h | 2 |
10 files changed, 102 insertions, 130 deletions
diff --git a/configure.ac b/configure.ac index 9c653b3d..be345ac6 100644 --- a/configure.ac +++ b/configure.ac @@ -1149,6 +1149,36 @@ if test "x$HAVE_FFMPEG" = xyes; then AC_CONFIG_SUBDIRS(gst-libs/ext/ffmpeg/ffmpeg) fi +dnl ############################ +dnl # Set up some more defines # +dnl ############################ + +dnl set license and copyright notice +AC_DEFINE(GST_LICENSE, "LGPL", [GStreamer license]) +AC_DEFINE(GST_COPYRIGHT, "(c) 1999-2003 The GStreamer Team", [copyright message in plugins]) +dnl package name in plugins +AC_ARG_WITH(package-name, +AC_HELP_STRING([--with-package-name],[specify package name to use in plugins]), +[case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;; + *) GST_PACKAGE="${withval}" ;; +esac], +[GST_PACKAGE="Gstreamer"]) dnl Default value +AC_MSG_NOTICE(Using $GST_PACKAGE as package name) +AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins]) +dnl package origin URL +AC_ARG_WITH(package-origin, +AC_HELP_STRING([--with-package-origin],[specify package origin URL to use in plugins]), +[case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;; + *) GST_ORIGIN="${withval}" ;; +esac], +[GST_ORIGIN="http://gstreamer.net"]) dnl Default value +AC_MSG_NOTICE(Using $GST_ORIGIN as package origin) +AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin]) + dnl ######################### dnl # Make the output files # dnl ######################### diff --git a/sys/oss/gstossaudio.c b/sys/oss/gstossaudio.c index 8c9421a7..0e178c0c 100644 --- a/sys/oss/gstossaudio.c +++ b/sys/oss/gstossaudio.c @@ -26,26 +26,48 @@ #include "gstosssrc.h" #include "gstossgst.h" +extern gchar *__gst_oss_plugin_dir; + static gboolean -plugin_init (GModule *module, GstPlugin *plugin) +plugin_init (GstPlugin *plugin) { + guint i = 0; + gchar **path; + if (!gst_library_load ("gstaudio")) return FALSE; - if (!gst_osselement_factory_init (plugin) || - !gst_osssrc_factory_init (plugin) || - !gst_osssink_factory_init (plugin) || - !gst_ossgst_factory_init (plugin)) { - g_warning ("Failed to register OSS elements!"); + /* get the path of this plugin, we assume the helper progam lives in the */ + /* same directory. */ + path = g_strsplit (plugin->filename, G_DIR_SEPARATOR_S, 0); + while (path[i]) { + i++; + if (path[i] == NULL) { + g_free (path[i-1]); + path[i-1] = NULL; + } + } + __gst_oss_plugin_dir = g_strjoinv (G_DIR_SEPARATOR_S, path); + g_strfreev (path); + + if (!gst_element_register (plugin, "osssrc", GST_RANK_PRIMARY, GST_TYPE_OSSSRC) || + !gst_element_register (plugin, "osssink", GST_RANK_PRIMARY, GST_TYPE_OSSSINK) || + !gst_element_register (plugin, "ossgst", GST_RANK_MARGINAL, GST_TYPE_OSSGST)) { return FALSE; } return TRUE; } -GstPluginDesc plugin_desc = { +GST_PLUGIN_DEFINE ( GST_VERSION_MAJOR, GST_VERSION_MINOR, "ossaudio", - plugin_init -}; + "OSS (Open Sound System) support for GStreamer", + plugin_init, + VERSION, + GST_LICENSE, + GST_COPYRIGHT, + GST_PACKAGE, + GST_ORIGIN +) diff --git a/sys/oss/gstosselement.c b/sys/oss/gstosselement.c index 4aa49168..f679d985 100644 --- a/sys/oss/gstosselement.c +++ b/sys/oss/gstosselement.c @@ -43,17 +43,6 @@ enum { ARG_DEVICE_NAME, }; -/* elementfactory information */ -static GstElementDetails gst_osselement_details = { - "Audio Element (OSS)", - "Generic/Audio", - "LGPL", - "Generic OSS element", - VERSION, - "Erik Walthinsen <omega@cse.ogi.edu>", - "(C) 1999", -}; - static void gst_osselement_class_init (GstOssElementClass *klass); static void gst_osselement_init (GstOssElement *oss); static void gst_osselement_dispose (GObject *object); @@ -677,17 +666,3 @@ gst_osselement_change_state (GstElement *element) return GST_STATE_SUCCESS; } -gboolean -gst_osselement_factory_init (GstPlugin *plugin) -{ - GstElementFactory *factory; - - factory = gst_element_factory_new ("ossmixer", - GST_TYPE_OSSELEMENT, - &gst_osselement_details); - g_return_val_if_fail (factory != NULL, FALSE); - - gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (factory)); - - return TRUE; -} diff --git a/sys/oss/gstosselement.h b/sys/oss/gstosselement.h index 8c604dd4..37c5f1ef 100644 --- a/sys/oss/gstosselement.h +++ b/sys/oss/gstosselement.h @@ -91,9 +91,6 @@ struct _GstOssElementClass { GType gst_osselement_get_type (void); -/* factory register function */ -gboolean gst_osselement_factory_init (GstPlugin *plugin); - /* some useful functions */ gboolean gst_osselement_parse_caps (GstOssElement *oss, GstCaps *caps); diff --git a/sys/oss/gstossgst.c b/sys/oss/gstossgst.c index 1dfd2b07..0b42185d 100644 --- a/sys/oss/gstossgst.c +++ b/sys/oss/gstossgst.c @@ -37,16 +37,14 @@ #include "gstosshelper.h" -static GstElementDetails gst_ossgst_details = { +static GstElementDetails gst_ossgst_details = GST_ELEMENT_DETAILS ( "Audio Wrapper (OSS)", "Source/Audio", - "LGPL", "Hijacks /dev/dsp to get the output of OSS apps into GStreamer", - VERSION, - "Wim Taymans <wim.taymans@chello.be>", - "(C) 2001", -}; + "Wim Taymans <wim.taymans@chello.be>" +); +static void gst_ossgst_base_init (gpointer g_class); static void gst_ossgst_class_init (GstOssGstClass *klass); static void gst_ossgst_init (GstOssGst *ossgst); @@ -118,7 +116,7 @@ ossgst_src_factory (void) static GstElementClass *parent_class = NULL; static GstPadTemplate *gst_ossgst_src_template; -static gchar *plugin_dir = NULL; +gchar *__gst_oss_plugin_dir = NULL; GType gst_ossgst_get_type (void) @@ -128,7 +126,7 @@ gst_ossgst_get_type (void) if (!ossgst_type) { static const GTypeInfo ossgst_info = { sizeof(GstOssGstClass), - NULL, + gst_ossgst_base_init, NULL, (GClassInitFunc)gst_ossgst_class_init, NULL, @@ -144,6 +142,14 @@ gst_ossgst_get_type (void) } static void +gst_ossgst_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details (element_class, &gst_ossgst_details); + gst_element_class_add_pad_template (element_class, GST_PAD_TEMPLATE_GET (ossgst_src_factory)); +} +static void gst_ossgst_class_init (GstOssGstClass *klass) { GObjectClass *gobject_class; @@ -399,7 +405,7 @@ gst_ossgst_spawn_process (GstOssGst *ossgst) ld_preload = ""; } - ld_preload = g_strconcat (ld_preload, " ", plugin_dir, G_DIR_SEPARATOR_S, + ld_preload = g_strconcat (ld_preload, " ", __gst_oss_plugin_dir, G_DIR_SEPARATOR_S, "libgstosshelper.so", NULL); setenv ("LD_PRELOAD", ld_preload, TRUE); @@ -451,34 +457,3 @@ gst_ossgst_change_state (GstElement *element) return GST_STATE_SUCCESS; } -gboolean -gst_ossgst_factory_init (GstPlugin *plugin) -{ - GstElementFactory *factory; - gchar **path; - gint i =0; - - /* get the path of this plugin, we assume the helper progam lives in the */ - /* same directory. */ - path = g_strsplit (plugin->filename, G_DIR_SEPARATOR_S, 0); - while (path[i]) { - i++; - if (path[i] == NULL) { - g_free (path[i-1]); - path[i-1] = NULL; - } - } - plugin_dir = g_strjoinv (G_DIR_SEPARATOR_S, path); - g_strfreev (path); - - factory = gst_element_factory_new ("ossgst", GST_TYPE_OSSGST, &gst_ossgst_details); - g_return_val_if_fail (factory != NULL, FALSE); - - gst_ossgst_src_template = ossgst_src_factory (); - gst_element_factory_add_pad_template (factory, gst_ossgst_src_template); - - gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (factory)); - - return TRUE; -} - diff --git a/sys/oss/gstossgst.h b/sys/oss/gstossgst.h index 411f771e..df0a8e15 100644 --- a/sys/oss/gstossgst.h +++ b/sys/oss/gstossgst.h @@ -77,8 +77,6 @@ struct _GstOssGstClass { GType gst_ossgst_get_type(void); -gboolean gst_ossgst_factory_init(GstPlugin *plugin); - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c index f902f3f2..8af9f84c 100644 --- a/sys/oss/gstosssink.c +++ b/sys/oss/gstosssink.c @@ -31,17 +31,15 @@ #include "gstosssink.h" /* elementfactory information */ -static GstElementDetails gst_osssink_details = { +static GstElementDetails gst_osssink_details = GST_ELEMENT_DETAILS ( "Audio Sink (OSS)", "Sink/Audio", - "LGPL", "Output to a sound card via OSS", - VERSION, "Erik Walthinsen <omega@cse.ogi.edu>, " - "Wim Taymans <wim.taymans@chello.be>", - "(C) 1999", -}; + "Wim Taymans <wim.taymans@chello.be>" +); +static void gst_osssink_base_init (gpointer g_class); static void gst_osssink_class_init (GstOssSinkClass *klass); static void gst_osssink_init (GstOssSink *osssink); static void gst_osssink_dispose (GObject *object); @@ -121,7 +119,7 @@ gst_osssink_get_type (void) if (!osssink_type) { static const GTypeInfo osssink_info = { sizeof(GstOssSinkClass), - NULL, + gst_osssink_base_init, NULL, (GClassInitFunc)gst_osssink_class_init, NULL, @@ -161,6 +159,14 @@ gst_osssink_dispose (GObject *object) } static void +gst_osssink_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details (element_class, &gst_osssink_details); + gst_element_class_add_pad_template (element_class, GST_PAD_TEMPLATE_GET (osssink_sink_factory)); +} +static void gst_osssink_class_init (GstOssSinkClass *klass) { GObjectClass *gobject_class; @@ -600,18 +606,3 @@ gst_osssink_change_state (GstElement *element) return GST_STATE_SUCCESS; } - -gboolean -gst_osssink_factory_init (GstPlugin *plugin) -{ - GstElementFactory *factory; - - factory = gst_element_factory_new ("osssink", GST_TYPE_OSSSINK, &gst_osssink_details); - g_return_val_if_fail (factory != NULL, FALSE); - - gst_element_factory_add_pad_template (factory, GST_PAD_TEMPLATE_GET (osssink_sink_factory)); - - gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (factory)); - - return TRUE; -} diff --git a/sys/oss/gstosssink.h b/sys/oss/gstosssink.h index 590ce7f2..3dc10f20 100644 --- a/sys/oss/gstosssink.h +++ b/sys/oss/gstosssink.h @@ -78,8 +78,6 @@ struct _GstOssSinkClass { GType gst_osssink_get_type(void); -gboolean gst_osssink_factory_init(GstPlugin *plugin); - G_END_DECLS #endif /* __GST_OSSSINK_H__ */ diff --git a/sys/oss/gstosssrc.c b/sys/oss/gstosssrc.c index 7e675344..01d74fb1 100644 --- a/sys/oss/gstosssrc.c +++ b/sys/oss/gstosssrc.c @@ -37,15 +37,12 @@ #include <gst/audio/audioclock.h> /* elementfactory information */ -static GstElementDetails gst_osssrc_details = { +static GstElementDetails gst_osssrc_details = GST_ELEMENT_DETAILS ( "Audio Source (OSS)", "Source/Audio", - "LGPL", "Read from the sound card", - VERSION, - "Erik Walthinsen <omega@cse.ogi.edu>", - "(C) 1999", -}; + "Erik Walthinsen <omega@cse.ogi.edu>" +); /* OssSrc signals and args */ @@ -85,6 +82,7 @@ GST_PAD_TEMPLATE_FACTORY (osssrc_src_factory, ) ) +static void gst_osssrc_base_init (gpointer g_class); static void gst_osssrc_class_init (GstOssSrcClass *klass); static void gst_osssrc_init (GstOssSrc *osssrc); static void gst_osssrc_dispose (GObject *object); @@ -125,7 +123,7 @@ gst_osssrc_get_type (void) if (!osssrc_type) { static const GTypeInfo osssrc_info = { sizeof(GstOssSrcClass), - NULL, + gst_osssrc_base_init, NULL, (GClassInitFunc)gst_osssrc_class_init, NULL, @@ -140,6 +138,14 @@ gst_osssrc_get_type (void) } static void +gst_osssrc_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details (element_class, &gst_osssrc_details); + gst_element_class_add_pad_template (element_class, GST_PAD_TEMPLATE_GET (osssrc_src_factory)); +} +static void gst_osssrc_class_init (GstOssSrcClass *klass) { GObjectClass *gobject_class; @@ -538,21 +544,3 @@ gst_osssrc_src_query (GstPad *pad, GstQueryType type, GstFormat *format, gint64 } return res; } - -gboolean -gst_osssrc_factory_init (GstPlugin *plugin) -{ - GstElementFactory *factory; - - factory = gst_element_factory_new ("osssrc", - GST_TYPE_OSSSRC, - &gst_osssrc_details); - g_return_val_if_fail (factory != NULL, FALSE); - - gst_element_factory_add_pad_template (factory, - GST_PAD_TEMPLATE_GET (osssrc_src_factory)); - - gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (factory)); - - return TRUE; -} diff --git a/sys/oss/gstosssrc.h b/sys/oss/gstosssrc.h index dff5aef5..00c23696 100644 --- a/sys/oss/gstosssrc.h +++ b/sys/oss/gstosssrc.h @@ -72,8 +72,6 @@ struct _GstOssSrcClass { GType gst_osssrc_get_type(void); -gboolean gst_osssrc_factory_init (GstPlugin *plugin); - G_END_DECLS #endif /* __GST_OSSSRC_H__ */ |