summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorBenjamin Otte <otte@gnome.org>2003-10-31 20:03:30 +0000
committerBenjamin Otte <otte@gnome.org>2003-10-31 20:03:30 +0000
commit4ac17766c89a2a1f37e4fc9e0c88c52c7a494374 (patch)
treea6da9a91c3bd844b727408e854e2bbef44d69003 /sys
parent64eb55d84a48d00511a2e6c36e3424d9c430e8ba (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
Diffstat (limited to 'sys')
-rw-r--r--sys/oss/gstossaudio.c40
-rw-r--r--sys/oss/gstosselement.c25
-rw-r--r--sys/oss/gstosselement.h3
-rw-r--r--sys/oss/gstossgst.c55
-rw-r--r--sys/oss/gstossgst.h2
-rw-r--r--sys/oss/gstosssink.c35
-rw-r--r--sys/oss/gstosssink.h2
-rw-r--r--sys/oss/gstosssrc.c38
-rw-r--r--sys/oss/gstosssrc.h2
9 files changed, 72 insertions, 130 deletions
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__ */