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).
This commit is contained in:
Tim-Philipp Müller 2006-07-24 14:49:19 +00:00
parent 8cdf78e1d8
commit 4435bc803e
2 changed files with 26 additions and 1 deletions

View file

@ -1,3 +1,13 @@
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:

View file

@ -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;