diff options
-rw-r--r-- | libempathy-gtk/empathy-audio-sink.c | 10 | ||||
-rw-r--r-- | libempathy-gtk/empathy-audio-src.c | 12 |
2 files changed, 20 insertions, 2 deletions
diff --git a/libempathy-gtk/empathy-audio-sink.c b/libempathy-gtk/empathy-audio-sink.c index 55f64e828..1d2169593 100644 --- a/libempathy-gtk/empathy-audio-sink.c +++ b/libempathy-gtk/empathy-audio-sink.c @@ -204,7 +204,15 @@ empathy_audio_sink_finalize (GObject *object) GstElement * empathy_audio_sink_new (void) { - return GST_ELEMENT (g_object_new (EMPATHY_TYPE_GST_AUDIO_SINK, NULL)); + static gboolean registered = FALSE; + + if (!registered) { + if (!gst_element_register (NULL, "empathyaudiosink", + GST_RANK_NONE, EMPATHY_TYPE_GST_AUDIO_SINK)) + return NULL; + registered = TRUE; + } + return gst_element_factory_make ("empathyaudiosink", NULL); } void diff --git a/libempathy-gtk/empathy-audio-src.c b/libempathy-gtk/empathy-audio-src.c index 0497439bf..a3416f2ea 100644 --- a/libempathy-gtk/empathy-audio-src.c +++ b/libempathy-gtk/empathy-audio-src.c @@ -343,7 +343,15 @@ out: GstElement * empathy_audio_src_new (void) { - return GST_ELEMENT (g_object_new (EMPATHY_TYPE_GST_AUDIO_SRC, NULL)); + static gboolean registered = FALSE; + + if (!registered) { + if (!gst_element_register (NULL, "empathyaudiosrc", + GST_RANK_NONE, EMPATHY_TYPE_GST_AUDIO_SRC)) + return NULL; + registered = TRUE; + } + return gst_element_factory_make ("empathyaudiosrc", NULL); } void @@ -375,3 +383,5 @@ empathy_audio_src_get_volume (EmpathyGstAudioSrc *src) return volume; } + + |