| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
We're seeing CI failures due to once-test sometimes taking long. Let's
give ourselves a little more space per test (2 min -> 5 min) to avoid
this.
|
|
|
|
|
|
|
| |
There are potentially unresolved issues around the EAGAIN logic, but
this should prevent an infinite loop and log flood in the mean time.
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/695
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Without this check we won't ever define HAVE_STDINT_H, which isn't used
in pulse directly, but is needed by e.g. the speex headers to work
correctly.
|
|
|
|
|
|
|
|
|
|
| |
pulseaudio does not link against libbluetooth, as it's only talking to the
bluez daemon over dbus. So the build dependency on libbluetooth is overly
restrictive, as some embedded systems choose to ship without libbluetooth
but still have bluez daemon support.
This syncs the meson to the autotools configuration behavior by changing
the bluez option to a default on boolean.
|
|
|
|
|
| |
Sync the meson NEON build files list with the autotools build
sources list. Fixes "ERROR: File svolume_neon.c does not exist."
|
|
|
|
| |
Fixes https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/712
|
|
|
|
|
|
|
| |
I don't know why these options were being passed to configure
(--sysconfdir has been there from the very beginning, --localstatedir
got added when the system mode was added). Overwriting system files by
default is not good, so let's not set these options.
|
|
|
|
|
|
| |
- Header and function checks from configure.ac
(some libc, some libpthread, dladdr from libdl)
- Find iconv and check constness
|
| |
|
|
|
|
|
|
|
| |
* Fixed typo.
* Fixed use of double quotes.
Signed-off-by: Milo Casagrande <milo@milo.name>
|
|
|
|
|
| |
As we currently still generate our tarballs using autotools, let's make
sure the meson build system is distributed with the tarball.
|
|
|
|
|
|
| |
The various software volume implementations were being built as part of
libpulsecommon for some reason. These should only ever be used in the
daemon, so they should be in libpulsecore.
|
| |
|
|
|
|
|
| |
Adds the -version-script linker argument that we use with autotools to
version symbols in our public API.
|
|
|
|
|
|
|
|
| |
Removes a warning from HAVE_GCONF not being set, and fixes generation of
a large section that depends on OS_IS_WIN32 being explicitly set to 0.
We can't set OS_IS_WIN32 to 0 by default since a bunch of code uses it
via an ifdef rather than by value.
|
|
|
|
|
|
| |
This was being done automatically by autotools, now we need to manually
specify this for each executable/library with a dependency in a
non-standard directory.
|
|
|
|
| |
This mirrors the autotools option for all server-side dynamic libraries.
|
| |
|
|
|
|
|
|
| |
To match Autotools:
- internal.h should not be installed
- Install simple.h and version.h
|
|
|
|
|
|
| |
For ease of maintaining both build systems, use the same version info
sequences as configure.ac. This should be simplified after Autotools has
been dropped.
|
|
|
|
|
|
|
|
|
|
| |
- Rename "pulsedspdir" to the same "padsplibdir" that Autotools uses.
- Add a new option "pulsedsp-location" that is only used for padsp.in,
just like Autotools' --with-pulsedsp-location.
- Use 'set' instead of 'set_quoted' to avoid PULSEDSP_LOCATION getting
quoted twice.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename struct rtp_payload to rtp_sbc_payload as it is specific for SBC
codec payload.
Add proper checks for endianity in rtp.h header and use uint8_t type
where appropriated.
Field frame_count is only 4 bit number, so add checks to prevent overflow.
And because is_fragmented field is not parsed by decoder there is no
support for decoding fragmented SBC frames. So throw an error in this case.
|
|
|
|
| |
SBC codec reset() method may fail, so propagate this failure to caller.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
methods
Add explanation why minimal bitpool value is used in SBC codec as initial
bitpool value for A2DP source.
Set buffer size for reading/writing from/to A2DP socket to exact link MTU
value. This would ensure that A2DP codec does not produce larger packet as
maximal possible size which can be sent.
Because A2DP socket is of SOCK_SEQPACKET type, it is guaranteed that
we do not read two packets via one read/recvmsg call.
Properly check for all return values of encode/encode methods of A2DP codec
functions. They may fail at different levels. Also encode or decode API
method may return zero length buffer (e.g. because of algorithmic delay of
codec), so do not fail in this case.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
conditions this may lead to massive slowdown of floating point operations
when underflows or denormals are encountered. In particular, this problem
was observed with the soxr resampler after applying
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/120
Therefore this patch adds -ffast-math to the link flags of the pulseaudio
daemon. Linking with -ffast-math adds a procedure set_fast_math() to the
startup code of the daemon. On x86, the procedure sets bit 6 and 15 of the
mxcsr register. When these bits are set, denormals and results of
underflowing operations are truncated to 0.
|
| |
|
|
|
|
| |
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/706
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For all our MMX/SSE code, we use a temporary channel variable, assigned
to the DI register, which is zero'ed as the very first operation in the
inline assembly code, before any other code is run.
With GCC 9.1, while using -O2, the DI register is also used for the
input operand. This is perfectly legal, but causes our code to become
incorrect because the output operand that is assigned to DI is not
explicitly marked as being clobbered before inputs are read.
This change fixes the problem by adding an earlyclobber annotation (&)
to the DI output argument.
|
| |
|
|
|
|
| |
This profile set was missing from the installation.
|
| |
|
| |
|
|
|
|
|
|
| |
We've added new API and updated an enum. A bunch of function parameters
have been marked as const, but this probably shouldn't count as a change
anyway.
|
|
|
|
|
|
|
|
|
| |
The original code that was written was trying to detect what hypervisor
we were running under, rather than testing the presence bit first. We
don't really need the former, so let's use the more comprehensive latter
instead.
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/684
|
|
|
|
|
|
|
|
| |
If process_rewind() is called with nbytes = 0, process_rewind() will
nevertheless request a rewrite of the render memblockq.
This patch fixes the problem by adding the render memblockq length to the
rewrite amount only if nbytes > 0.
|
|
|
|
|
|
|
|
|
| |
Currently the rewind logic for the source output is broken if the output
does not implement a process_rewind() callback. In that case, the read
index of the delay memblockq is rewound. This is wrong, because the data
that is going to be re-written was not yet read. Instead the write index
should be rewound and the read index left untouched. This is the reason
for the rewind glitches of monitor sources.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This crash occurs when PA is connected to a phone through the oFono
backend.
When disabling the Bluetooth adapter, pa_bluetooth_device is removed before
hf_audio_card. Both keep refs on pa_bluetooth_transport. Those removal will
call pa_bluetooth_transport_free() from device_free() (bluez5-util.c) and
hf_audio_card_free() (backend-ofono.c).
In the end, the call to pa_bluetooth_transport_free() calls
pa_hasmap_remove() through pa_bluetooth_transport_unlink(), but since
memory has already been freed, the second try results in a segfault.
Triggering hf_audio_card removal during pa_bluetooth_device removal allows
hf_audio_card to be freed at the right time.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
setup_stream() crashes when calling set_nonblock() with an invalid
stream_fd.
On a new call, the ofono backend gets notified of a new connection.
The ofono backend sets the transport state to playing, and that triggers
a profile change, which sets up the stream for the first time.
Then module-bluetooth-policy sets up the loopbacks. The loopbacks get
fully initialized before the crash.
After module-bluetooth-policy has done its things, the execution
continues in the transport state change hook. The next hook user is
module-bluez5-device, whose handle_transport_state_change() function
gets called. It will then set up the stream again even though it's
already set up. I'm not sure if that's a some kind of a bug.
setup_stream() can handle the case where it's unnecessarily called,
though, so this second setup is not a big problem.
The crash happens, because the connection died due to POLLHUP in the IO
thread before the second setup_stream() call.
|
|
|
|
|
|
| |
Gets rid of > 65,000 unnecessary close() syscalls
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
|
|
|
|
| |
Needed for FIONREAD on Solaris
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
|
|
|
|
|
| |
Without this, meson on Solaris exits with:
src/daemon/meson.build:138:15: ERROR: Unknown variable "systemd_dep".
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
| |
|
| |
|