Commit Graph

56 Commits

Author SHA1 Message Date
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
Henrik Grimler 8356728c7b libpulseaudio: tidy up extra_configure_args while we're at it 2017-11-12 20:41:49 +01:00