diff options
author | Tim-Philipp Müller <tim@centricular.net> | 2006-07-24 14:49:19 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2006-07-24 14:49:19 +0000 |
commit | 4435bc803eb805312e035273e8331926d8cf5c4e (patch) | |
tree | 69641e082eace81ea1f84dc251fdf754a475f36c | |
parent | 8cdf78e1d89aa18259e4a26f9b2d39d57048ad40 (diff) |
ext/esd/esdsink.c: Prevent libesd from auto-spawning a sound daemon if it is not already running. Now that we don't d...
Original commit message from CVS:
* ext/esd/esdsink.c: (gst_esdsink_open),
(gst_esdsink_factory_init):
Prevent libesd from auto-spawning a sound daemon if it
is not already running. Now that we don't do evil stuff
like that any longer we can give esdsink a rank so that
autoaudiosink will try it as well if all other audio
sinks fail (#343051).
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | ext/esd/esdsink.c | 17 |
2 files changed, 26 insertions, 1 deletions
@@ -1,5 +1,15 @@ 2006-07-24 Tim-Philipp Müller <tim at centricular dot net> + * ext/esd/esdsink.c: (gst_esdsink_open), + (gst_esdsink_factory_init): + Prevent libesd from auto-spawning a sound daemon if it + is not already running. Now that we don't do evil stuff + like that any longer we can give esdsink a rank so that + autoaudiosink will try it as well if all other audio + sinks fail (#343051). + +2006-07-24 Tim-Philipp Müller <tim at centricular dot net> + * ext/esd/Makefile.am: Oops, need to remove README from EXTRA_DIST as well. diff --git a/ext/esd/esdsink.c b/ext/esd/esdsink.c index de82d34f..7882b33f 100644 --- a/ext/esd/esdsink.c +++ b/ext/esd/esdsink.c @@ -181,13 +181,28 @@ gst_esdsink_open (GstAudioSink * asink) esd_server_info_t *server_info; GstPadTemplate *pad_template; GstEsdSink *esdsink; + gchar *saved_env; gint i; esdsink = GST_ESDSINK (asink); GST_DEBUG_OBJECT (esdsink, "open"); + /* ensure libesd doesn't auto-spawn a sound daemon if none is running yet */ + saved_env = g_strdup (g_getenv ("ESD_NO_SPAWN")); + g_setenv ("ESD_NO_SPAWN", "1", TRUE); + + /* now try to connect to any existing/running sound daemons */ esdsink->ctrl_fd = esd_open_sound (esdsink->host); + + /* and restore the previous state */ + if (saved_env != NULL) { + g_setenv ("ESD_NO_SPAWN", saved_env, TRUE); + } else { + g_unsetenv ("ESD_NO_SPAWN"); + } + g_free (saved_env); + if (esdsink->ctrl_fd < 0) goto couldnt_connect; @@ -434,7 +449,7 @@ gst_esdsink_get_property (GObject * object, guint prop_id, GValue * value, gboolean gst_esdsink_factory_init (GstPlugin * plugin) { - if (!gst_element_register (plugin, "esdsink", GST_RANK_NONE, + if (!gst_element_register (plugin, "esdsink", GST_RANK_MARGINAL, GST_TYPE_ESDSINK)) return FALSE; |