The libspeex includes three resampling methods: fixed point, generic float point and SSE (intel specified float instruction set for X86).
Debian/rules will detect ARCH and configure "correct" resampling method.
Specially for X86, it will enable SSE. While for arm, it will enable fixed-point only by default and suppose your platform is armv4 which won’t support float-point.
By comment out this armv4 rule (see below), we can enable float-point resample method on ARM, without effecting existing fixed-point.
Add another finding here in case it is not mentioned before.
============ findings and investigation ==============
You can enable audio on ubuntu lucid as follows:
1. Add USER ubuntu to audio group /* this seems has been fixed in the latest Lucid */
# sudo usermod –aG audio ubuntu
2. Change pulse audio resample method daemon. conf
sudo vi /etc/pulse/
Change
resample-method = speex-float-1
to
resample-method = trivial
3. Sudo reboot
Then you can choose audio output and get audio enabled.
======= ======= ====== Conclusion ======= ======= =======
Why we need to add ubuntu to audio group may be a bug of lucid (should have been fixed already).
The resample method can be set to any other values except speex-float-N and it is caused by libspeex library issue.
BTW, trival method cast least CPU and the quality is acceptable.
======= ======= ====== speex fix ======= ======= =======
The libspeex includes three resampling methods: fixed point, generic float point and SSE (intel specified float instruction set for X86).
Debian/rules will detect ARCH and configure "correct" resampling method.
Specially for X86, it will enable SSE. While for arm, it will enable fixed-point only by default and suppose your platform is armv4 which won’t support float-point.
By comment out this armv4 rule (see below), we can enable float-point resample method on ARM, without effecting existing fixed-point.
ifeq ($(DEB_ HOST_ARCH_ CPU),arm) fixedpoint)
objdir = $(objdir_
EXTRA_CONFIG_FLAGS = --enable-arm4-asm
endif
==>
ifeq ($(DEB_ HOST_ARCH_ CPU),arm) fixedpoint)
#objdir = $(objdir_
#EXTRA_CONFIG_FLAGS = --enable-arm4-asm
endif