Commit graph

7717 commits

Author SHA1 Message Date
Peter Hutterer 5ac456f294 test: match the meson test names with the binary names
Easier to find this way what caused a test suite failure.
2021-10-12 09:45:33 +10:00
Peter Hutterer c44d0a6bbc spa: declare a dependency for the dbus lib
When running meson test without a preceding ninja build, we end up with
missing libraries. This somehow happened to work until recently but now
it triggers an issue with libspa-dbus.so not being available during the
valgrind test run, causing a test case to fail.
2021-10-12 09:45:33 +10:00
Wim Taymans 9afb832d22 pulse-server: find the sink when doing monitor source lookup
When we do a lookup of a source with the monitor flag bits set in the
id, strip off the monitor bits se we can find the associated sink.

Fixes #1677
2021-10-11 17:02:13 +02:00
Wim Taymans 38981a4c8c filter-chain: biquad fequency is half the samplerate
See #1699
2021-10-11 16:07:13 +02:00
Wim Taymans 85d5c8cd6c cpu: add zero_denormals method
Add a method to enable/disable the denormals flush-to-zero and
denormals-as-zero CPU options.

Add a config option to make it possible to disable this again.

Fixes high CPU usage when dealing with denormals, which can happen
in many DSP functions.

Fixes #1681
2021-10-11 14:57:02 +02:00
Wim Taymans 036371c48f media-session: fix aux channels links
AUX channels can link to any other channel but when AUX channels are
linked, they must match exactly.

Fixes some issues with split devices with aux channels.
2021-10-11 11:35:29 +02:00
Wim Taymans 594f67ec04 a2dp: guard against transport NULL
The transport can become NULL so check that and don't try to
deref it.
2021-10-11 11:22:36 +02:00
Peter Hutterer 6df8ce3031 test: fix a race condition with the journal test
The docs are slightly ambiguous here but it appears a call to
sd_journal_next() is required at least once before the actual data
message.

journalctl positions the cursor with sd_journal_seek_tail() followed by
sd_journal_seek_previous(). The actual enty is then fetched with
sd_journal_next().

Let's do the same here and let's hope this fixes the current race
condition with the test sometimes failing.
2021-10-11 07:23:38 +00:00
Pauli Virtanen 4b831021fb bluez5: add a dummy AVRCP player as a workaround
Some devices (Bose Mini Soundlink II, Air 1 Plus, ...) don't enable
AVRCP volume control, or fail to enable it before a hardware button is
pressed.  However, these devices appear to enable it, if an AVRCP player
is present.

As a workaround, register a dummy AVRCP player for each adapter. It only
displays the current transport acquisition state as playing/stopped, but
just its presence appears to be enough to make devices behave.

Multiple AVRCP players interfere with each other, as BlueZ uses the one
registered earliest as the default player. So add also a config option
for disabling this. (It's not common to have mpris-proxy etc. running,
so defaulting to true should be OK.)

See pipewire#1157
2021-10-10 16:24:41 +03:00
Pauli Virtanen 336caa9db3 doc: add tutorials as Doxygen examples 2021-10-10 00:35:46 +03:00
Pauli Virtanen 98a0e54d5f doc: link examples to Doxygen docs
Include examples to the documentation, using Doxygen's example system.
2021-10-10 00:35:46 +03:00
Wim Taymans f6d69f9bcd resample: avoid NULL deref
The function is NULL when the resampler was not initialized.

Fixes #1706
2021-10-09 15:53:40 +02:00
Piotr Drąg 2c4b27163d Update Polish translation 2021-10-09 15:36:22 +02:00
Wim Taymans ffc5c49508 impl-link: cancel link operations in work_queue in destroy
Fixes #1705
2021-10-09 15:18:20 +02:00
columbarius 2aabc4610b gst: Don't reconnect gstpipewiresrc
Clients connecting via the gstreamer plugin can stall a stream when
reconnecting to it. Disable reconnection until the gstreamer plugin
has improved.
2021-10-09 13:12:06 +00:00
Pauli Virtanen d28b36bb93 bluez5: fix HFP backend behavior when BlueZ goes away
Ensure unavailable backends get unregistered.

Don't log error-level messages on HFP unregistration failures.
2021-10-09 13:03:08 +00:00
Wim Taymans 5f7c4dec34 meson: make it possible to compile without dbus
Make an option to disable dbus and all the code that depends on
it.

Fixes #1685
2021-10-09 15:00:04 +02:00
Wim Taymans caf0b2df19 jack: protect against removed ports
Check if the port object is really a port and that it still has
a client associated with it before unreffing the client.

Fixes #1694
2021-10-09 12:49:21 +02:00
Wim Taymans 04344dad20 spa: add mjpg and h264 format build helpers 2021-10-08 13:21:07 +02:00
Wim Taymans cefcc2e874 alsa-plugin: store the right value in last_seq
last_seq needs to contain the last received seq, not the last one that
we requested to sync on.
2021-10-08 09:21:32 +02:00
Peter Hutterer 3f6521819f test: add a filter for iteration
Debugging is easier if we can explicitly run a single iteration only.
This filter could be a range but for now it's sufficient to be able to
run a single test only.
2021-10-08 07:06:42 +00:00
Peter Hutterer 82de0613d6 doc: document pw_map
Take some parts out of the public documentation, add a lot of internal
documentation to make it easier for the next person to figure out how
this works.

The use of static inline prevents doxygen from generating docs, put a
note in to link to the header file directly.
2021-10-08 12:55:34 +10:00
Peter Hutterer 626d30e4bd map: fix free_list corruption when re-using removed ids
Re-using an id after removing it is a bug in the caller but there are
two cases where we corrupt the free list without warning:

Removing an object twice:

   id = pw_map_insert_new(object);
   pw_map_remove(map, id);
   pw_map_remove(map, id);

And inserting an element at an index previously removed:

   id = pw_map_insert_new(object);
   pw_map_remove(map, id);
   pw_map_insert_at(map, id, new_object);

The latter is arguably valid code, or at least it'll look like it's
valid code.

For both cases, check if the id to remove/insert at is a free item and
handle that accordingly.
2021-10-08 12:40:23 +10:00
Peter Hutterer 5b9447c2a4 test: add some map tests 2021-10-08 12:40:23 +10:00
Björn Daase 492abccfe6 filter-chain: fix incorrect codespell fix
Fixes cf38b7bdc4
2021-10-07 21:31:01 +02:00
Björn Daase cf38b7bdc4 fix codespell issues 2021-10-07 15:26:18 +00:00
Björn Daase 57eef39583 .codespell-ignore: update to current codebase 2021-10-07 15:26:18 +00:00
Björn Daase 10ededf5d4 bluez5: fix mSBC probing documentation 2021-10-07 15:25:29 +00:00
Nicolai Syvertsen dea1755b68 pulse-tunnel: follow pulseaudio for default format 2021-10-07 15:39:11 +02:00
Nicolai Syvertsen 28c2e8ca56 pulse-tunnel: use format, channels and rate props 2021-10-07 13:00:24 +02:00
Wim Taymans 466715672e log: fix logger fallback
The logt function should fall back when both the logger implementation
version is too low or when the method is not implemented.

We can use the new spa_callback_call return value to efficiently
handle this.
2021-10-07 10:15:21 +02:00
Wim Taymans 2435f0d7ff hook: we can use the spa_callbacks_call return value now
instead of reimplementing the check.
2021-10-07 10:14:43 +02:00
Wim Taymans 68748895ea hook: add spa_callbacks_check
That does a version and method check on the callbacks.
2021-10-07 10:13:06 +02:00
Wim Taymans bb950976da hook: make spa_callbacks_call return true
Make spa_callbacks_call return true when the method could be called
succesfully. This means the callbacks version was correct and the
method existed.

This can then be used to implement a fallback.
2021-10-07 10:10:53 +02:00
Peter Hutterer e36183d3cf array: re-initialize the array in pw_array_clear()
Leaving the data nonzero is a use-after-free bug waiting to happen.
2021-10-07 15:08:57 +10:00
Pauli Virtanen 7123fadc37 doc: further Doxygen tweaks
Make Doxygen see also macros defined inside struct declarations,
and to include also opaque structs.

Keep members in the order they are in the .h file, since Doxygen's
case-insensitive sort by name jumbles things.
2021-10-06 19:06:42 +00:00
Wim Taymans caced1f226 jack: finish statement with; and not , 2021-10-06 20:19:50 +02:00
Wim Taymans 28744fc5ed work-queue: share one work queue for links and nodes 2021-10-06 19:59:15 +02:00
Pauli Virtanen ff8c3d208e bluez5: fix msbc connect probe again
There's a report that on Intel 8086:2723 + Sony WH-1000XM4, the connect
probe shuts the device down.

So, use an invalid dst address instead, since we don't need the host to
be up.

Fixes: 84bc0490a5
Fixes: 717004334b
2021-10-06 19:33:54 +03:00
Pauli Virtanen 75d76172fa doc: fix meson dependency list
Meson doesn't accept directories in input dependency list.
2021-10-05 20:31:35 +00:00
Dennis D 3512444296 bluez5: update bluez-hardware.conf
Closes https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1686
2021-10-05 18:23:56 +00:00
Pauli Virtanen 04f3948bb1 doc: avoid duplicate file listings in groups 2021-10-04 20:55:04 +03:00
Pauli Virtanen 49901f2d61 doc: add brief explanations for all groups 2021-10-04 20:55:04 +03:00
Pauli Virtanen 125051a700 doc: reorganize some \pages, and fix some group names
Move \pages having to do with the API usage to the API section.
Better group names for some groups.
2021-10-04 20:39:56 +03:00
Pauli Virtanen f9cdc617a8 doc: don't generate Doxygen file list
The file list duplicates the Module structure, and is just confusing
since it also contains the .c files.
2021-10-04 20:37:35 +03:00
Wim Taymans 26c7d48f0a impl-metadata: implement exposed method 2021-10-04 13:49:35 +02:00
Pauli Virtanen c620121529 bluez5: add faststream quirks
For some devices FastStream causes problems. Add quirk for disabling it.
2021-10-03 20:55:02 +03:00
Pauli Virtanen 84bc0490a5 bluez5: tweak msbc adapter probe for Intel adapters
The msbc capability connection probe seems to cause problems on Intel
Bluetooth 8087:0a2b (Intel 8265), resulting to subsequent connections
apparently ending up with wrong altsetting.

According to testing, the problem is connecting to self, so connect to
device instead.

Fixes #1671
2021-10-03 17:27:42 +00:00
Pauli Virtanen 601560e343 doc: hide various Doxygen generated dot graphs
The Doxygen autogenerated graphs are very useful and take up lots of
space being on the top, so disable them.

Also disable references/referenced by relations, which add clutter.

Also hide most macro values.
2021-10-03 15:39:27 +03:00
Pauli Virtanen 8159797f89 doc: reorganize Doxygen groups/modules to make more sense
The Doxygen "Modules" page is not very illuminative, as different parts
of the API are mixed together and not all parts are included.

Try to address this:

Put all parts of the public API to some Doxygen group, usually one group
per header file. Use short, systematic names.

Make these groups sub-groups of a few top-level groups, roughly
corresponding to the different logical parts of the API (core, impl,
stream, filter, spa, utilities).
2021-10-03 15:39:27 +03:00