Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 274773 - media-sound/pulseaudio-0.9.15 esd wrapper doesn't work
Summary: media-sound/pulseaudio-0.9.15 esd wrapper doesn't work
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Sound Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-20 09:03 UTC by PhobosK
Modified: 2011-04-24 09:54 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description PhobosK 2009-06-20 09:03:55 UTC
+++ This bug was initially created as a clone of Bug #199507 +++

I am using pulseaudio as a default sound server (user config) for all the programs. Unfortunately the module-esound-protocol-unix does not work as expected. It creates the necessary socket in /tmp/.esd (I have made a symlink /tmp/.esd-{$UID} too but it doesn't help) and when playing a sound file via any esd client (esdplay, esdcat etc) the sound is not played and there is no error in the debug log. In fact the log says the sound has been played.

Reproducible: Always

Steps to Reproduce:
1.Select pulseaudio as default esd wrapper:
#eselect esd list
Available ESounD implementations:
  [1]   ESounD original
  [2]   PulseAudio *
# eselect esd set 2

2.Start a pulseaudio server


3.try to play a .wav file with esdplay (esdcat etc), e.g. : 
esdplay usr/share/sounds/login.wav


Actual Results:  
output of esdplay /usr/share/sounds/login.wav:
No error. 
No sound produced.

output from pulseaudio log:
I: client.c: Created 1 "Native client (UNIX socket client)"
I: protocol-native.c: Got credentials: uid=504 gid=518 success=1
I: alsa-sink.c: Trying resume...
I: alsa-sink.c: Resumed successfully...
I: alsa-sink.c: Starting playback.
I: resampler.c: Using resampler 'trivial'
I: resampler.c: Using s16le as working format.
I: sink-input.c: Created input 2 "Simultaneous output on HDA NVidia" on alsa_output.pci_10de_26c with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: alsa-sink.c: Trying resume...
I: alsa-sink.c: Resumed successfully...
I: alsa-sink.c: Starting playback.
I: resampler.c: Using resampler 'trivial'
I: resampler.c: Using s16le as working format.
I: sink-input.c: Created input 3 "Simultaneous output on C-Media CMI8738" on alsa_output.pci_13f6_111 with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: module-combine.c: Resumed successfully...
I: sink-input.c: Created input 4 "ALSA Playback" on combined with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: protocol-native.c: Requested tlength=371.52 ms, minreq=5.80 ms
I: protocol-native.c: Final latency 1000.00 ms = 250.00 ms + 2*250.00 ms + 250.00 ms
I: sink-input.c: Freeing input 4 "ALSA Playback"
I: client.c: Freed 1 "ALSA plug-in [esdplay]"
I: protocol-native.c: Connection died.
I: module-combine.c: [combined] avg total latency is 88.44 msec.
I: module-combine.c: [combined] target latency is 93.72 msec.
I: module-combine.c: [Simultaneous output on HDA NVidia] new rate is 44100 Hz; ratio is 1.000; latency is 93723 usec.
I: module-combine.c: [Simultaneous output on C-Media CMI8738] new rate is 44054 Hz; ratio is 0.999; latency is 83147 usec.
I: module-suspend-on-idle.c: Sink combined idle for too long, suspending ...
I: sink-input.c: Freeing input 2 "Simultaneous output on HDA NVidia"
I: sink-input.c: Freeing input 3 "Simultaneous output on C-Media CMI8738"
I: module-combine.c: Device suspended...

Expected Results:  
It should have played sound.


Additional info:
pulseaudio --dump-conf

### Read from configuration file: /etc/pulse/daemon.conf ###
daemonize = no
fail = yes
high-priority = no
nice-level = -11
realtime-scheduling = no
realtime-priority = 5
disallow-module-loading = no
disallow-exit = no
use-pid-file = yes
system-instance = no
no-cpu-limit = no
disable-shm = no
flat-volumes = yes
exit-idle-time = 20
scache-idle-time = 20
dl-search-path = /usr/lib64/pulse-0.9.15/modules/
default-script-file = /etc/pulse/default.pa
load-default-script-file = yes
log-target = auto
log-level = notice
resample-method = src-linear
disable-remixing = no
disable-lfe-remixing = yes
default-sample-format = s16le
default-sample-rate = 44100
default-sample-channels = 2
default-channel-map = front-left,front-right
default-fragments = 8
default-fragment-size-msec = 10
shm-size-bytes = 0
log-meta = no
log-time = no
log-backtrace = 0
rlimit-fsize = -1
rlimit-data = -1
rlimit-stack = -1
rlimit-core = -1
rlimit-rss = -1
rlimit-as = -1
rlimit-nproc = -1
rlimit-nofile = 256
rlimit-memlock = -1
rlimit-locks = -1
rlimit-sigpending = -1
rlimit-msgqueue = -1
rlimit-nice = 31
rlimit-rtprio = 9
rlimit-rttime = 1000000

The server itself works great (though for 32bit apps it is not working due to the LACK of pulseaudio support in the emul- ebuilds!), only esound compatibility is broken.
Ekerazha reported this bug on the Pulseaudio website long ago - http://www.pulseaudio.org/ticket/121:

"Please report this issue to the gentoo bugzilla: if they decided to patch esd to use a non-standard socket dir, then they should be patching PA the same way too.

I am closing this bug now as this seems to be a configuration error, and very likely specific to Gentoo (or Ubuntu)"
Comment 1 PhobosK 2009-06-22 20:56:56 UTC
It turns out that the esd clients try to open the socket from
/tmp/.esddefault-{$UID} and thus getting an error and fail to produce sound.
Symlinking /tmp/.esddefault-{$UID} to /tmp/.esd fixes the problem.

So the socket location should be fixed somehow... Probably using the "--disable-per-user-esound-socket" option in PA is not the right choice... On the other hand the pure source of PA uses /tmp/.esd-{$UID} location for the socket....

Something is definitely wrong so should be fixed.
Comment 2 PhobosK 2009-06-22 21:28:07 UTC
Probably a patch to the 'esd_get_socket_dirname(void)' in utils.c should be added to the media-sound/esound ebuild too... so AUDIODEV not to be a part of the dir's name...
Comment 3 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-09-12 21:06:25 UTC
stll don't know what this was assigned to gnome...
Comment 4 Diego Elio Pettenò (RETIRED) gentoo-dev 2009-09-12 21:12:02 UTC
I guess for the esound part.

@gnome: did something change in the esound setup? Do you enable the Fedora/Ubuntu per-user sockets? Should I drop the global non-user socket in PulseAudio?
Comment 5 PhobosK 2009-09-13 05:26:51 UTC
(In reply to comment #4)
> I guess for the esound part.
> 
> @gnome: did something change in the esound setup? Do you enable the
> Fedora/Ubuntu per-user sockets? Should I drop the global non-user socket in
> PulseAudio?
> 

Yes it is in gnome, because it is about esd....

Well i think i have described the problem well enough. 
Anyway before i created this bug here, i have filed a bug on pulseaudio but according to them this is not an upstream problem (  http://www.pulseaudio.org/ticket/587 ).
Unfortunately because of this problem with pulse (and because of several others too) i have totally wiped out pulse from my system, and i am not willing to use it anymore, so i cannot help you anymore here. If you want you may close this bug, though the problem will remain.
Look at my comment #2 for a possible workout.
Comment 6 Gilles Dartiguelongue (RETIRED) gentoo-dev 2011-04-24 09:54:24 UTC
esd 0.2.41 changelog has this entry:

2008-11-18  Josselin Mouette  <joss@malsain.org>

        Patch from Martin Pitt <martin.pitt@ubuntu.com>

        * util.c: (esd_get_socket_dirname): support multiple esd
        instances (one per user).

and esdplay on my system shows this:

 $ strace -e open,access esdplay /usr/share/sounds/login.wav 
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/usr/lib64/libesd.so.0", O_RDONLY) = 3
open("/lib64/libc.so.6", O_RDONLY)      = 3
open("/usr/lib64/libasound.so.2", O_RDONLY) = 3
open("/usr/lib64/libaudiofile.so.0", O_RDONLY) = 3
open("/lib64/libm.so.6", O_RDONLY)      = 3
open("/lib64/libdl.so.2", O_RDONLY)     = 3
open("/lib64/libpthread.so.0", O_RDONLY) = 3
open("/lib64/librt.so.1", O_RDONLY)     = 3
open("/usr/share/sounds/login.wav", O_RDONLY) = 3
access("/tmp/.esd-1000/socket", R_OK|W_OK) = -1 ENOENT (No such file or directory)
open("/etc/gai.conf", O_RDONLY)         = 4
open("/home/eva/.esd_auth", O_RDONLY)   = 5

I didn't configure anything so I guess if reporter can't provide updates on the situation that this bug can be closed worksforme.