Debian Bug report logs -
#691081
pulseaudio: Pulse audio is unable to play samples encoded at non-44.1khz bit rates
Reported by: "Neal H. Walfield" <neal@walfield.org>
Date: Sun, 21 Oct 2012 07:57:02 UTC
Severity: normal
Found in version pulseaudio/2.0-6
Fixed in version 3.0-1
Done: Felipe Sateler <fsateler@debian.org>
Bug is archived. No further changes may be made.
Toggle useless messages
Report forwarded
to debian-bugs-dist@lists.debian.org, Pulseaudio maintenance team <pkg-pulseaudio-devel@lists.alioth.debian.org>:
Bug#691081; Package pulseaudio.
(Sun, 21 Oct 2012 07:57:04 GMT) (full text, mbox, link).
Acknowledgement sent
to "Neal H. Walfield" <neal@walfield.org>:
New Bug report received and forwarded. Copy sent to Pulseaudio maintenance team <pkg-pulseaudio-devel@lists.alioth.debian.org>.
(Sun, 21 Oct 2012 07:57:04 GMT) (full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
Package: pulseaudio
Version: 2.0-6
Severity: normal
Dear Maintainer,
I'm using an openrd-client. I installed pulseaudio in daemon mode and
disabled autospawn for normal users. Initially, audio appeared to be
working fine: I could play some flac files using mplayer (with
PULSE_SERVER=localhost) and mpd.
When I then tried to use espeak and flite, I would get a pop when the
sample started playing, some very soft static and then another pop when
the sample was finished. Espeak and flite gave no indication that there
was an error. The produced wav file worked fine on other systems and
even when played from the openrd with PULSE_SERVER set appropriately.
At some point, I tried using mplayer and resampling to 44.1khz. This
worked. This led me to the following bug report:
https://bugs.launchpad.net/ubuntu/+source/speex/+bug/528524 Apparently,
speex has problems on arm if compiled with certain flags. I changed
pulseaudio's resample method to trivial and now espeak and flite work.
Thanks,
Neal
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: armel (armv5tel)
Kernel: Linux 3.2.0-3-kirkwood
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages pulseaudio depends on:
ii adduser 3.113+nmu3
ii consolekit 0.4.5-3.1
ii libasound2 1.0.25-4
ii libasound2-plugins 1.0.25-2
ii libc6 2.13-35
ii libcap2 1:2.22-1.2
ii libdbus-1-3 1.6.8-1
ii libfftw3-3 3.3.2-3.1
ii libgcc1 1:4.7.1-7
ii libice6 2:1.0.8-2
ii libltdl7 2.4.2-1.1
ii liborc-0.4-0 1:0.4.16-2
ii libpulse0 2.0-6
ii libsamplerate0 0.1.8-5
ii libsm6 2:1.2.1-2
ii libsndfile1 1.0.25-5
ii libspeexdsp1 1.2~rc1-6
ii libstdc++6 4.7.1-7
ii libsystemd-daemon0 44-4
ii libsystemd-login0 44-4
ii libtdb1 1.2.10-2
ii libudev0 175-7
ii libwebrtc-audio-processing-0 0.1-2
ii libx11-6 2:1.5.0-1
ii libx11-xcb1 2:1.5.0-1
ii libxcb1 1.8.1-1
ii libxtst6 2:1.2.1-1
ii lsb-base 4.1+Debian7
ii udev 175-7
Versions of packages pulseaudio recommends:
ii gstreamer0.10-pulseaudio 0.10.31-3
ii pulseaudio-module-x11 2.0-6
ii rtkit 0.10-2
Versions of packages pulseaudio suggests:
pn paman <none>
pn paprefs <none>
pn pavucontrol <none>
pn pavumeter <none>
ii pulseaudio-utils 2.0-6
-- Configuration Files:
/etc/default/pulseaudio changed:
PULSEAUDIO_SYSTEM_START=1
DISALLOW_MODULE_LOADING=0
/etc/pulse/daemon.conf changed:
; fail = yes
; allow-module-loading = yes
; use-pid-file = yes
; local-server-type = user
; enable-shm = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no
; high-priority = yes
; nice-level = -11
; realtime-scheduling = yes
; realtime-priority = 5
; exit-idle-time = 20
; scache-idle-time = 20
; dl-search-path = (depends on architecture)
; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa
; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0
; resample-method = speex-float-3
resample-method = trivial
; enable-remixing = yes
; enable-lfe-remixing = no
; flat-volumes = yes
; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -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
; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right
; default-fragments = 4
; default-fragment-size-msec = 25
; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0
/etc/pulse/default.pa changed:
..nofail
..fail
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
load-module module-augment-properties
..ifexists module-udev-detect.so
load-module module-udev-detect
..else
load-module module-detect
..endif
..ifexists module-jackdbus-detect.so
..nofail
load-module module-jackdbus-detect
..fail
..endif
..ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
..endif
..ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
..endif
load-module module-native-protocol-unix
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.20.0/24
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.20.0/24
load-module module-zeroconf-publish
..ifexists module-gconf.so
..nofail
load-module module-gconf
..fail
..endif
load-module module-default-device-restore
load-module module-rescue-streams
load-module module-always-sink
load-module module-intended-roles
load-module module-suspend-on-idle
..ifexists module-console-kit.so
load-module module-console-kit
..endif
..ifexists module-systemd-login.so
load-module module-systemd-login
..endif
load-module module-position-event-sounds
load-module module-filter-heuristics
load-module module-filter-apply
..ifexists module-dbus-protocol.so
load-module module-dbus-protocol
..endif
load-module module-switch-on-port-available
/etc/pulse/system.pa changed:
..ifexists module-udev-detect.so
load-module module-udev-detect
..else
load-module module-detect
..endif
..ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix auth-anonymous=1
..endif
load-module module-native-protocol-unix auth-anonymous=1
load-module module-stream-restore
load-module module-device-restore
load-module module-card-restore
load-module module-default-device-restore
..ifexists module-dbus-protocol.so
load-module module-dbus-protocol access=local,remote
..endif
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.20.0/24 auth-anonymous=1
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.20.0/24 auth-anonymous=1
load-module module-zeroconf-publish
load-module module-rescue-streams
load-module module-always-sink
load-module module-suspend-on-idle
load-module module-position-event-sounds
-- no debconf information
Bug reassigned from package 'pulseaudio' to 'speex'.
Request was from Sjoerd Simons <sjoerd@debian.org>
to control@bugs.debian.org.
(Sun, 04 Nov 2012 11:51:05 GMT) (full text, mbox, link).
No longer marked as found in versions pulseaudio/2.0-6.
Request was from Sjoerd Simons <sjoerd@debian.org>
to control@bugs.debian.org.
(Sun, 04 Nov 2012 11:51:06 GMT) (full text, mbox, link).
Information forwarded
to debian-bugs-dist@lists.debian.org, Ron Lee <ron@debian.org>:
Bug#691081; Package speex.
(Mon, 05 Nov 2012 00:30:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Ron <ron@debian.org>:
Extra info received and forwarded to list. Copy sent to Ron Lee <ron@debian.org>.
(Mon, 05 Nov 2012 00:30:03 GMT) (full text, mbox, link).
Message #14 received at 691081@bugs.debian.org (full text, mbox, reply):
Hi Sjoerd,
On Sun, Nov 04, 2012 at 12:48:01PM +0100, Sjoerd Simons wrote:
> reassign 691081 speex
> thanks
>
> Judging by the LP bugreport this seems to be an issue in speex rather then in
> pulseaudio.
I'm actually going to punt this one back to you guys, because at least part
of the problem may really be in the pulse defaults -- but someone who is more
familiar with the pulse defaults for the Debian packages than I am will need
to assess that ...
The LP bug report is good for a giggle, but not really very enlightening or
on the mark in most dimensions. And pretty much nothing there is applicable
to the system the reporter here is running either, the ubuntu ARM builds
won't run at all on that machine anyway.
There would seem to be two 'obvious' possibilities here, and a fair chance
that both are actually contributing to the problem. One is that he's being
hit by #689049, which is a real bug in the speex resampler, and which I'll
be uploading a fix for in the next couple of hours. But from the report
given, I don't quite buy that is his *whole* problem, since it doesn't
fully explain _all_ of what he reported without making some fairly wishful
assumptions about several missing details of things that did work for him.
What makes me think you might need to take a better look at the pulse
defaults is that he's reporting it only happens with *some* applications.
And my first guess there is that you're using the float resampler API by
default on all platforms - which you probably shouldn't be doing.
On arm, armel, armhf, mips, and mipsel, the resampler runs internally in
fixed-point - and the optimal selection for the pulse default will be to
use the fixed-point option there too. All other Debian arches use float,
and that should be the pulse default on those.
The speex resampler provides both float and int sample APIs regardless of
the internal format being used, but it's possible that using the float
interface on systems with slow floating point is pushing some things over
the edge from being nearly resource starved to being actually so.
So ... I'm reassigning this ticket back to pulse with the relevant question
being whether or not you need to tweak its defaults on a per-arch basis too.
If the answer to that is you're already doing so, and doing so correctly,
then I guess you can just close this one with a statement to that effect,
and if the OP isn't actually being bitten by only #689049, then the probable
answer is just that their applications suck (too many system resources), and
the fix will be to optimise things better on those arches so they don't, or
to use better apps there.
Since he says he could produce a file that played fine outside of those
particular applications, that would seem to indicate that it isn't the
resampler bug from #689049, and is simply a case of resource starvation.
We're already building speex with the optimal set of options as determined
by profiling from arch porters (and certainly for the reporter's platform)
so the only obvious degree of freedom remaining other than profiling and
writing new code where needed, is if pulse isn't actually using the best
options for calling the speex resampler on each arch by default. On some
really slow arches you may need to reduce the chosen complexity as well
as make the right choice of float or fixed to get acceptable results.
The actual bug in speex I'll get the fix uploaded for shortly, but this
one really does look more like a problem with the pulse defaults or the
applications calling it, or possibly even a real bug in pulse with how
it handles starvation conditions.
Does pulse use float internally itself on arches where that can be very
slow and where it should be using fixed-point math instead so as not to
contribute to the starvation?
Either way, someone familiar with pulse is probably going to have to
have a more detailed look at what the choke points really are on this
particular arch. There isn't a magic knob we can just flip in speex
to fix that for it more than we already are ...
Sorry,
Ron
Bug reassigned from package 'speex' to 'pulseaudio'.
Request was from Ron <ron@debian.org>
to control@bugs.debian.org.
(Mon, 05 Nov 2012 00:45:03 GMT) (full text, mbox, link).
Reply sent
to Felipe Sateler <fsateler@debian.org>:
You have taken responsibility.
(Tue, 15 Apr 2014 14:27:15 GMT) (full text, mbox, link).
Notification sent
to "Neal H. Walfield" <neal@walfield.org>:
Bug acknowledged by developer.
(Tue, 15 Apr 2014 14:27:15 GMT) (full text, mbox, link).
Message #21 received at 691081-done@bugs.debian.org (full text, mbox, reply):
Version: 3.0-1
From the changelog:
* debian/patches/0002-Use-the-fixed-point-speex-resampler-on-ARM.patch
* Added, Use fix point resampler on ARM
--
Saludos,
Felipe Sateler
Marked as found in versions pulseaudio/2.0-6.
Request was from Felipe Sateler <fsateler@debian.org>
to control@bugs.debian.org.
(Tue, 15 Apr 2014 14:45:07 GMT) (full text, mbox, link).
Bug archived.
Request was from Debbugs Internal Request <owner@bugs.debian.org>
to internal_control@bugs.debian.org.
(Wed, 14 May 2014 07:33:47 GMT) (full text, mbox, link).
Send a report that this bug log contains spam.
Debian bug tracking system administrator <owner@bugs.debian.org>.
Last modified:
Tue Jun 6 09:48:51 2023;
Machine Name:
bembo
Debian Bug tracking system
Debbugs is free software and licensed under the terms of the GNU
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson,
2005-2017 Don Armstrong, and many other contributors.