After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 320044 - esdlib behaves bad with ALSA
esdlib behaves bad with ALSA
Status: RESOLVED OBSOLETE
Product: esound
Classification: Deprecated
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Esound Maintainers
Esound Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-10-28 07:04 UTC by Alexey Rusakov
Modified: 2009-03-06 16:09 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Alexey Rusakov 2005-10-28 07:04:46 UTC
esdlib.c:

/**
 * esd_play_stream_fallback: as esd_play_stream() but connect directly if no ESD
...
 * Return Value: -1 on error, else a socket number set up so that
 * any data sent to the socket will be played, either by an ESD or by an.
 */
int esd_play_stream_fallback( esd_format_t format, int rate, 
			      const char *host, const char *name )
{
    int socket_out;
...
    socket_out = esd_audio_open();
...
    return socket_out;
}

audio_alsa09.c: (ALSA-1.0 backend is enabled)

int esd_audio_open(void)
{
...
	alsa_playback_handle = initAlsa(dev, format, channels, esd_audio_rate,
SND_PCM_STREAM_PLAYBACK);
...
	esd_audio_fd = 0;
...
	return 0;
}

The problem with the constant zero "descriptor" is that it doesn't work in some
essential cases (wsoundserver/wsoundplay are known to break).
Comment 1 Kjartan Maraas 2006-08-18 09:20:51 UTC
I see something strange here. esd_audio_fd is declared as static int in audio.c, but still all the other files use it? How can that work? Should it be a global var instead?
Comment 2 David Schleef 2006-08-18 21:00:36 UTC
audio.c #includes the backend audio_*.c files, that's why it's static.
Comment 3 Alexey Rusakov 2009-03-06 16:09:22 UTC
As long as esound is being replaced with pulseaudio, this bug is most likely OBSOLETE.