summaryrefslogtreecommitdiff
path: root/gst/frei0r/gstfrei0rmixer.c
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2010-09-25 10:46:34 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2010-09-25 10:46:34 +0200
commit8dc7347d65e923d9a86ced26bba9411e99f90aaa (patch)
tree4fbe96152c72926fc3fb12080b52b2ed8ecc4487 /gst/frei0r/gstfrei0rmixer.c
parentbf74bcc1af18a5ee712869758a7d0b71965c725f (diff)
downloadgstreamer-plugins-bad-8dc7347d65e923d9a86ced26bba9411e99f90aaa.tar.gz
frei0r: Fix scanning of plugin subdirectories and support different vendors
The frei0r spec specifies, that plugins can be in subdirectories inside the main plugin directories to introduce new namespaces called vendors.
Diffstat (limited to 'gst/frei0r/gstfrei0rmixer.c')
-rw-r--r--gst/frei0r/gstfrei0rmixer.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gst/frei0r/gstfrei0rmixer.c b/gst/frei0r/gstfrei0rmixer.c
index f61a57341..9c8e605c0 100644
--- a/gst/frei0r/gstfrei0rmixer.c
+++ b/gst/frei0r/gstfrei0rmixer.c
@@ -768,8 +768,8 @@ gst_frei0r_mixer_init (GstFrei0rMixer * self, GstFrei0rMixerClass * klass)
}
GstFrei0rPluginRegisterReturn
-gst_frei0r_mixer_register (GstPlugin * plugin, const f0r_plugin_info_t * info,
- const GstFrei0rFuncTable * ftable)
+gst_frei0r_mixer_register (GstPlugin * plugin, const gchar * vendor,
+ const f0r_plugin_info_t * info, const GstFrei0rFuncTable * ftable)
{
GTypeInfo typeinfo = {
sizeof (GstFrei0rMixerClass),
@@ -790,7 +790,10 @@ gst_frei0r_mixer_register (GstPlugin * plugin, const f0r_plugin_info_t * info,
if (ftable->update2 == NULL)
return GST_FREI0R_PLUGIN_REGISTER_RETURN_FAILED;
- tmp = g_strdup_printf ("frei0r-mixer-%s", info->name);
+ if (vendor)
+ tmp = g_strdup_printf ("frei0r-mixer-%s-%s", vendor, info->name);
+ else
+ tmp = g_strdup_printf ("frei0r-mixer-%s", info->name);
type_name = g_ascii_strdown (tmp, -1);
g_free (tmp);
g_strcanon (type_name, G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-+", '-');