termux-packages/packages/pulseaudio/build.sh
Patrick Gaskin fc007e73f4
PulseAudio SLES module improvements (#6290)
* pulseaudio: Improve error msg when module-sles-source is missing the RECORD_AUDIO permission

* pulseaudio: Refactor and improve module-sles-{source,sink}

* More readable and consistent code style.
* Fix subtle bugs and typos (e.g. duplicate or ineffectual assignments,
  mishandled enums, etc).
* Fix stereo input channel mask.
* Fix wrong self object being passed to SLES functions.
* Handle more sample formats.
* Better logging.
* Fix potential freeing of undefined pointers.
* Fixed module usage (channel_map was on source instead of sink,
  some items were missing the trailing space).
* Other minor fixes.

* pulseaudio: Implement PA_SINK_MESSAGE_GET_LATENCY message

Every built-in module implements this and without it, PA will crash
in some cases (e.g. when opening pavucontrol).

* pulseaudio: Increment TERMUX_PKG_REVISION
2021-01-24 22:21:02 +05:30

66 lines
2.3 KiB
Bash

TERMUX_PKG_HOMEPAGE=https://www.freedesktop.org/wiki/Software/PulseAudio
TERMUX_PKG_DESCRIPTION="A featureful, general-purpose sound server"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_SRCURL=https://github.com/pulseaudio/pulseaudio.git
TERMUX_PKG_VERSION=14.2
TERMUX_PKG_REVISION=2
TERMUX_PKG_DEPENDS="libltdl, libsndfile, libandroid-glob, libsoxr, speexdsp, libwebrtc-audio-processing"
TERMUX_PKG_BREAKS="libpulseaudio-dev, libpulseaudio"
TERMUX_PKG_REPLACES="libpulseaudio-dev, libpulseaudio"
TERMUX_PKG_BUILD_DEPENDS="libtool"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-neon-opt
--disable-alsa
--disable-esound
--disable-glib2
--disable-x11
--disable-gtk3
--disable-openssl
--without-caps
--with-database=simple
--disable-memfd
--disable-gsettings
ax_cv_PTHREAD_PRIO_INHERIT=no"
TERMUX_PKG_CONFFILES="etc/pulse/client.conf etc/pulse/daemon.conf etc/pulse/default.pa etc/pulse/system.pa"
termux_step_post_get_source() {
NOCONFIGURE=1 ./bootstrap.sh
}
termux_step_pre_configure() {
# Our aaudio sink module needs libaaudio.so from a later android api version:
local _NDK_ARCHNAME=$TERMUX_ARCH
if [ "$TERMUX_ARCH" = "aarch64" ]; then
_NDK_ARCHNAME=arm64
elif [ "$TERMUX_ARCH" = "i686" ]; then
_NDK_ARCHNAME=x86
fi
mkdir $TERMUX_PKG_TMPDIR/libaaudio
cp $NDK/platforms/android-26/arch-$_NDK_ARCHNAME/usr/lib*/libaaudio.so \
$TERMUX_PKG_TMPDIR/libaaudio/
LDFLAGS+=" -L$TERMUX_PKG_TMPDIR/libaaudio/"
mkdir $TERMUX_PKG_SRCDIR/src/modules/sles
cp $TERMUX_PKG_BUILDER_DIR/module-sles-sink.c $TERMUX_PKG_SRCDIR/src/modules/sles
cp $TERMUX_PKG_BUILDER_DIR/module-sles-source.c $TERMUX_PKG_SRCDIR/src/modules/sles
mkdir $TERMUX_PKG_SRCDIR/src/modules/aaudio
cp $TERMUX_PKG_BUILDER_DIR/module-aaudio-sink.c $TERMUX_PKG_SRCDIR/src/modules/aaudio
export LIBS="-landroid-glob"
}
termux_step_post_make_install() {
# Some binaries link against these:
cd $TERMUX_PREFIX/lib
for lib in pulseaudio/lib*.so* pulse-${TERMUX_PKG_VERSION}/modules/lib*.so*; do
ln -s -f $lib $(basename $lib)
done
# Pulseaudio fails to start when it cannot detect any sound hardware
# so disable hardware detection.
sed -i $TERMUX_PREFIX/etc/pulse/default.pa \
-e '/^load-module module-detect$/s/^/#/'
echo "load-module module-sles-sink" >> $TERMUX_PREFIX/etc/pulse/default.pa
echo "#load-module module-aaudio-sink" >> $TERMUX_PREFIX/etc/pulse/default.pa
}