Commit Graph

57 Commits

Author SHA1 Message Date
Leonid Pliushch
73a2c328e7 libpulseaudio: bump revision 2019-04-13 19:09:46 +03:00
Tom Yan
d825fb6191 libpulseaudio: bump revision after changes 2019-04-09 14:22:37 +03:00
Tom Yan
29b6c114f4 libpulseaudio: fix aaudio error callback
The error callback can be called before the transition of the sink
state has completed. It therefore needs to wait until the sink has
left init state before reconfiguring it with pa_sink_suspend calls.

Also try to recover from all errors (and log what the error is when
it is not AAUDIO_ERROR_DISCONNECTED).
2019-04-09 14:22:37 +03:00
Leonid Pliushch
bff7609ef0 libpulseaudio: don't use wrappers for /bin/ progs 2019-03-12 17:16:49 +02:00
Tom Yan
61cf6e2ab9 libpulseaudio: bump revision after update 2019-03-06 22:46:54 +08:00
Tom Yan
54ebd431e5 libpulseaudio: do nothing to backend when unlinking suspended sink 2019-03-06 22:46:16 +08:00
Tom Yan
434411846a libpulseaudio: fix typos in sles sink module 2019-03-06 20:27:11 +08:00
Tom Yan
88af57a51b libpulseaudio: do not stop if we are going to close aaudio stream
Apparently it's safer if we don't:
https://android.googlesource.com/platform/frameworks/av/+/refs/heads/oreo-release/media/libaaudio/src/client/AudioStreamInternal.cpp#182
2019-03-06 18:12:04 +08:00
Leonid Pliushch
724ca7fa53 libpulseaudio: fix hardcoded paths 2019-03-02 14:52:40 +02:00
Tom Yan
067f4c0dca libpulseaudio: bump revision after changes 2019-02-26 21:55:24 +01:00
Tom Yan
4c089efc4a libpulseaudio: render via process_msg/asyncmsgq 2019-02-26 21:55:24 +01:00
Wetitpig
7ddcce5701 No backticks 2019-02-15 18:01:09 +02:00
Wetitpig
5f8864c10d Improve formatting of parantheses for functions 2019-02-09 21:06:31 +02:00
Leonid Pliushch
aaffc47f67 libpulseaudio: do not try to enable x11-related stuff 2019-01-27 11:56:51 +02:00
Fredrik Fornwall
3ab4c8f8e0 Remove langinfo.h from libandroid-support
Instead provide langinfo.h with inline implemention of nl_langinfo()
as a system header.

This avoids linking in libandroid-support.so in some places, and
improves compatibility when building code on-device.
2019-01-25 01:58:51 +01:00
Tom Yan
e81542a5f7 libpulseaudio: bump revision after changes 2019-01-25 01:25:45 +01:00
Tom Yan
4b4ba9aa60 libpulseaudio: declare conffiles in the right subpackage 2019-01-25 01:25:45 +01:00
Leonid Pliushch
80bb8819af libpulseaudio: add libandroid-support as dependency 2019-01-24 12:30:50 +02:00
Leonid Pliushch
46d333adba add licenses for more packages 2019-01-21 17:17:53 +02:00
Tom Yan
75dd068d87 libpulseaudio: support float and 24-bit packed output in sles sink 2018-12-09 21:18:31 +01:00
Fredrik Fornwall
9602864cc6 libpulseaudio: Fix building under ubuntu 18.10 2018-11-28 00:57:56 +01:00
Leonid Pliushch
1b0bce2bd5 pulseaudio: disable privilege dropping 2018-09-23 16:51:16 +02:00
Tom Yan
fd97ae4e21 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
87d45e68a8 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
e1b5587e9c libpulseaudio: further cleanup in the sles sink
s32le output is also now allowed
2018-08-16 14:40:57 +02:00
Tom Yan
6f5cbc2154 libpulseaudio: add api level build hack for aaudio 2018-08-16 14:40:57 +02:00
Tom Yan
6b1d24adf0 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
fbc0d7ee54 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
b919a7a36a libpulseaudio: bump revision after changes 2018-08-06 21:50:41 +02:00
Tom Yan
22b9d1ac13 libpulseaudio: remove unnecessary LD_PRELOAD from wrappers 2018-08-06 21:50:41 +02:00
Tom Yan
527dfafcac 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
c380e354de 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
41859abf21 libpulseaudio: Bump revision after change 2018-07-31 21:22:50 +02:00
tomty89
6be3fd61e0 libpulseaudio: handle unlink properly (#2693)
Also clean up some more garbage.
2018-07-31 21:19:39 +02:00
Fredrik Fornwall
9a9582ffea libpulseaudio: Bump revision after changes 2018-07-26 12:22:53 +02:00
Tom Yan
8025f606e9 libpulseaudio: always use u for userdata 2018-07-26 11:47:20 +02:00
Tom Yan
9006223783 libpulseaudio: avoid some assertion failures due to race condition 2018-07-26 11:47:20 +02:00
Tom Yan
36c4ffb4bf libpulseaudio: make latency configurable 2018-07-26 11:47:20 +02:00
Tom Yan
83ba79c105 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
6144f8653f libpulseaudio: fix distortions occur with multiple sink inputs 2018-07-26 11:47:20 +02:00
Tom Yan
fd69382e37 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
1c4195d5d3 libpulseaudio: Update from 12.1 to 12.2 2018-07-23 00:21:12 +02:00
Fredrik Fornwall
4c51d6bcb9 pulseaudio: Update from 12.0 to 12.1 2018-07-15 17:20:11 +02:00
Henrik Grimler
5579a04be4 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
76482d7bf7 libpulseaudio: Build with --disable-gsettings 2018-06-21 23:33:11 +02:00
Fredrik Fornwall
09b12bba65 libpulseaudio: Update from 11.1 to 12.0 2018-06-21 22:31:58 +02:00
Vishal Biswas
160d3aeb06 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
2e68ba7f34 pulse segfault fixed and changed default config (#2044) 2018-02-01 22:24:34 +01:00
its-pointless
1218ccc6c1 updated sles module 2018-01-16 14:15:04 +01:00
its-pointless
ffdcb8fc0e opensles output for libpulseaudio from @twaik (#1968) 2017-12-29 00:52:17 +01:00