Ticket #587 (closed defect: distrospecific)

Opened 3 years ago

Last modified 3 years ago

Esound usability/compatibility broken on AMD64 in pulseaudio 0.9.15

Reported by: PhobosK Owned by: lennart
Milestone: Component: module-esound-*
Keywords: Cc: phobosk@…

Description

Info:
pulseaudio 0.9.15 (tried both with the native ebuild and compiling clean source)
Gentoo 2008.0
AMD64 system
kernel 2.6.30

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.Start a pulseaudio server

2.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 Vidia" 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 + *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 44054Hz; 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, only esound compatibility is broken.
Ekerazha reported a similar bug here long ago- http://www.pulseaudio.org/ticket/121[[BR]]
This isssue seems not to have anything to do with the gentoo system because i compiled pulse from clean sources also but it didn't help at all.

Change History

Changed 3 years ago by PhobosK

  • cc phobosk@… added

Changed 3 years ago by coling

Hmm, seems something is odd here.

By default pulse will create the /tmp/.esd-$UID variant name for the esd socket - e.g. it expects a patched libesound.

You can disable this behaviour with a switch at compile time.

So I'd look into that first.

Your PA output also does not look like it shows any connection attempt from esdplay. Can you confirm that it does not even get that far? e.g. calling esdplay doesn't even make the output from PA change at all?

After that I'd follow down the route of checking esdplay with strace to see what socket files it opens and what errors if any it gets when doing so.

Changed 3 years ago by coling

Forgot to mention, esdplay works fine here on a 0.9.15 install so whatever is going wrong is in your setup, not in pulse :)

Changed 3 years ago by PhobosK

Well...
The output of PA i have given above, is the output that changes while esdplay is run.
I guess the

I: alsa-sink.c: Starting playback.

means esdplay has connected to PA?
For a very short period of time esdplay displays as a client in the pavucontrol (the playback section). The wav file that is played is long enough and i tried a lot of other sound files.

About the /tmp/.esd and /tmp/.esd-{$UID} issue - gentoo compilation uses the first one, and pure source uses the second one. The result of both compilations is the same - no sound and esdplay connecting to PA.

esdplay opens the right socket and gives no errors anyway. I had that problem on Ubuntu Intrepid long ago on another PC but after the upgrade to Jaunty it disappeared, so i guess it is something from the code. I have tried changing a lot of the options in the config of PA with no success. What else can I do so you can pinpoint the problem?

And btw the problem is with ANY esd client.... and it is on AMD64... and the problem is gone if native esound server is used for the clients (of course PA is not running at that time)....

Changed 3 years ago by PhobosK

  • status changed from new to closed
  • resolution set to distrospecific

Sorry... I am an idiot :S .....
I misread the socket in strace and it is really not the right one... :(
It tries to open /tmp/.esddefault-{$UID}.
When i make a symlink of /tmp/.esddefault-{$UID} to /tmp/.esd (or /tmp/.esd-{$UID} on pure source compilation) everything works fine.
I will file the apropriate bug report on Gentoo bugs system. Sorry once again.

Note: See TracTickets for help on using tickets.