Commit Graph

35 Commits

Author SHA1 Message Date
Tom Yan
876c73c680 libpulseaudio: set alternate sample rate in aaudio sink data
The "core" alternate sample rate must not kick in with our sink.
The sample rate of the sink must be locked onto that of the AAudio
stream.
2018-09-16 22:44:20 +02:00
Fredrik Fornwall
e6e160acb7 libpulseaudio: Build against api level 21
Building against later api levels causes problems such as

CANNOT LINK EXECUTABLE: could not load library "libpulse.so" [...];
caused by could not load library "libpulsecommon-12.2.so" needed by
"libpulse.so"; caused by cannot locate symbol "__register_atfork"
referenced by "libpulsecommon-12.2.so"...
2018-08-21 00:25:06 +02:00
Tom Yan
60d5038da5 libpulseaudio: further cleanup in the sles sink
s32le output is also now allowed
2018-08-16 14:40:57 +02:00
Tom Yan
2e841e93ba libpulseaudio: add api level build hack for aaudio 2018-08-16 14:40:57 +02:00
Tom Yan
5f8c527154 libpulseaudio: add module-aaudio-sink
Add a sink module that makes use of the AAudio API, which is
available in Oreo or later.

The sink will have its sample rate and latency configured based on
the info we got with the API. They will also be updated accordingly
when the output device is changed.
2018-08-16 14:40:57 +02:00
Tom Yan
2616d11d54 libpulseaudio/mpv: set numBuffers to 8 for SLES
Apparently some Android builds/forks need it for Bluetooth audio.
It's a hardcoded default in the upstream AAudio implementation
anyway.

See the following for reference:
https://android.googlesource.com/platform/frameworks/av/+/android-8.0.0_r1/media/libaaudio/src/legacy/AudioStreamTrack.cpp#109
https://android.googlesource.com/platform/frameworks/wilhelm/+/android-8.0.0_r1/src/android/AudioPlayer_to_android.cpp#1680
https://android.googlesource.com/platform/frameworks/av/+/android-8.0.0_r1/media/libaudioclient/AudioTrack.cpp#488
2018-08-07 12:17:32 +02:00
Tom Yan
7f415639f2 libpulseaudio: bump revision after changes 2018-08-06 21:50:41 +02:00
Tom Yan
2d11acd7e1 libpulseaudio: remove unnecessary LD_PRELOAD from wrappers 2018-08-06 21:50:41 +02:00
Tom Yan
9a44c9e482 libpulseaudio: ditch downstream defaults in daemon.conf
To start pulseaudio manually as a daemon, you just need "-D", but
if you set daemonize=yes in daemon.conf, when you want start it
undaemonized, you will need "--daemonize=no".

We don't really need to set enable-shm to no explicitly.

Setting exit-idle-time to -1 may not be as preferred as when it was
when autospawn did not work.

There's no point setting log-target to stderr. auto works fine (or
perhaps even better) for us.
2018-08-06 21:50:41 +02:00
Tom Yan
3d2e1e0874 libpulseaudio: fix autospawn
Autospawn needs to use the wrapper we made, otherwise the sles sink
module cannot be loaded.

Also patch caps.c to remove the silly warning that somehow ignores
log-level and log-target to avoid programs like cmus being ruined
when pulse is spawned.
2018-08-06 21:50:41 +02:00
Fredrik Fornwall
5a79ef7f56 libpulseaudio: Bump revision after change 2018-07-31 21:22:50 +02:00
tomty89
bd04c09139 libpulseaudio: handle unlink properly (#2693)
Also clean up some more garbage.
2018-07-31 21:19:39 +02:00
Fredrik Fornwall
bc52f5e1f5 libpulseaudio: Bump revision after changes 2018-07-26 12:22:53 +02:00
Tom Yan
3ff14285df libpulseaudio: always use u for userdata 2018-07-26 11:47:20 +02:00
Tom Yan
10b49529db libpulseaudio: avoid some assertion failures due to race condition 2018-07-26 11:47:20 +02:00
Tom Yan
842fd3a609 libpulseaudio: make latency configurable 2018-07-26 11:47:20 +02:00
Tom Yan
b6fa6aa4ee libpulseaudio: support suspend on idle
Turns out it's pretty easy to implement. Now the buffer queue will
stop requesting for data once the sink is suspended on idle. No
more power wasted.

Note that it is natural that there would be a bit of extra delay
when resume playback after the sink is suspended. In case it is
wanted to be avoided, make sure the module-suspend-on-idle is not
loaded.
2018-07-26 11:47:20 +02:00
Tom Yan
7402dda605 libpulseaudio: fix distortions occur with multiple sink inputs 2018-07-26 11:47:20 +02:00
Tom Yan
d38d4529a6 libpulseaudio: rewrite sles sink
This should work way better than the old code, as it makes use of
the buffer queue callback to do Enqueue(), which might be the only
nice/right way to use OpenSLES on Android. CPU usage is low and
RAM usage seems reasonable. No memory leak noticed. Tested with
mpv on my Oreo phone (wired and Bluetooth).

The latency was chosen base on Bluetooth audio requirement on Oreo.
Shouldn't be hard to make it configurable as a module param in the
future.

The new code has a known downside though, that is it doesn't really
support sink suspension, as in, silence will kept being written
to the audio device even when the sink is suspended, which may have
certain impact to battery time.

It's probably possible to catch the state change of the sink and
notify the buffer queue about it. It's just I don't want to bother
digging further at the moment.
2018-07-26 11:47:20 +02:00
Fredrik Fornwall
79b90b260d libpulseaudio: Update from 12.1 to 12.2 2018-07-23 00:21:12 +02:00
Fredrik Fornwall
86ea022512 pulseaudio: Update from 12.0 to 12.1 2018-07-15 17:20:11 +02:00
Henrik Grimler
55ebe88717 libpulseaudio: use TERMUX_PKG_VERSION in LD_PRELOAD
Otherwise it might be easily forgotten at pkg bump.
2018-07-01 16:52:50 +02:00
Fredrik Fornwall
ede252d426 libpulseaudio: Build with --disable-gsettings 2018-06-21 23:33:11 +02:00
Fredrik Fornwall
145f3d18b7 libpulseaudio: Update from 11.1 to 12.0 2018-06-21 22:31:58 +02:00
Vishal Biswas
efa8300be1 update ndk to 17 and switch some packages to clang build (#2415)
* update ndk to 17

* bump NDK version in setup-android script

* libnl: fix for ndk r17

* libpixman: use clang's __builtin_shufflevector instead of __builtin_shuffle (#1)

Required to make package build with ndk17.

* fix as for arm

* ndk17 still uses ld.bfd on aarch64

* use -fno-integrated-as for clang only

* glib: remove patch unnecessary after ndk17

* torsocks: remove unneeded patch after ndk17

* subversion: fix build as clang++ now errors out for mismatched flags

* libpulseaudio: fix build with ndk17

https://github.com/termux/termux-packages/pull/2415#issuecomment-388296684

* gst-plugins-good: disable video4linux2

ioctl is defined as __overloadable in ndk17 headers which
  conflicts with v4l2object's member ioctl

* libzmq: disable Werror to build with ndk17

* ltrace: hardcode symbol not available in ndk17

* busybox: build with clang for all arches except arm

* dropbear: build with clang instead of gcc

* gnupg: build with clang instead of gcc

* openssl: use clang for all arches except arm

* picolisp: build with clang instead of gcc

* valgrind: use clang on all arches except aarch64

* Revert "gst-plugins-good: disable video4linux2"

This reverts commit 43850b81ccf60033c25cb13dfd326c1b0528773a.
Already applied on base branch.

* libllvm: use default arm triple
2018-05-27 14:55:20 +02:00
its-pointless
bdf369533e pulse segfault fixed and changed default config (#2044) 2018-02-01 22:24:34 +01:00
its-pointless
1c285bb81e updated sles module 2018-01-16 14:15:04 +01:00
its-pointless
674a9bc39e opensles output for libpulseaudio from @twaik (#1968) 2017-12-29 00:52:17 +01:00
Henrik Grimler
dcb50a7a9a libpulseaudio: tidy up extra_configure_args while we're at it 2017-11-12 20:41:49 +01:00
Henrik Grimler
e977338b0b libpulseaudio: fix "shared memfd open() failed: Function not implemented"
error.

Occured on arm. Rebuilding the package wasn't enough.
2017-11-12 20:41:49 +01:00
Fredrik Fornwall
1f7306877d libpulseaudio: Update from 10.0 to 11.1 2017-10-15 01:02:39 +02:00
Stephen
52d8258ea5 add libtool to libpulseaudio build depends
#1169
2017-09-14 22:55:02 +02:00
Henrik Grimler
6424f7c6fc libpulseaudio: link against libandroid-glob. (#1094)
Fixes issue discussed in #821 and at https://github.com/cmus/cmus/issues/688.
2017-06-20 01:35:56 +02:00
Fredrik Fornwall
174285d970 Remove world readable&writeable&executable perms
We do not want anything world readable, writeable or executable.

Fixes #840.
2017-04-17 22:23:21 +02:00
Alain Kalker
a680abcbdf alsa-{lib,utils,plugins} and pulseaudio packages (#825)
* New package: libsndfile-1.0.27

* Bring back disabled package alsa-lib

* Bring back disabled package alsa-utils

* New disabled package: alsa-plugins-1.1.1

* New package: libpulseaudio-10.0, subpackage pulseaudio
2017-03-13 22:51:36 +01:00