Commit graph

7595 commits

Author SHA1 Message Date
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
Pauli Virtanen
43a84c4a2c doc: include files in Doxygen groups
File is included in all groups for which it contains \addtogroup
2021-10-03 15:02:39 +03:00
Pauli Virtanen
de7f78f4bd doc: add \copydoc, \sa links for (struct methods) function/macros
Add manually cross-references for struct methods callback
macros/functions, in cases where they're too hard to parse for the
Doxygen input filter.
2021-10-03 14:12:49 +03:00
Wim Taymans
392b2f1f96 dbuf: use log topic 2021-10-03 12:27:20 +02:00
Wim Taymans
783ae4d4e9 libcamera: use log topic 2021-10-03 12:26:00 +02:00
Wim Taymans
865635ef10 v4l2: use log topic 2021-10-03 12:12:09 +02:00
Wim Taymans
a95937dfdb log: remove NAME as log prefix, topic is enough 2021-10-03 12:03:45 +02:00
Wim Taymans
f275e3baaa jack: add jack log topic 2021-10-03 08:52:27 +02:00
Wim Taymans
786cfc44fb log: add work-queue topic 2021-10-03 08:30:46 +02:00
Wim Taymans
f562b16706 alsa-plugin: use log topics 2021-10-03 08:17:43 +02:00
Wim Taymans
dfdd9a6b3b alsa: don't prefix NAME, log topics are enough 2021-10-03 08:05:40 +02:00
Wim Taymans
d43fdf9f5b log: add mem topic 2021-10-03 07:55:00 +02:00
Pauli Virtanen
cd94eff5f2 doc: add Doxygen filter that adds docs to struct *method macros
Add an input filter that tries to link e.g.

 #define pw_core_add_listener(...) pw_core_method(c,add_listener,...)

to the corresponding declaration in struct pw_core_methods.
2021-10-03 00:40:52 +03:00
Pauli Virtanen
4cb24531b3 doc: ignore symbols due to Doxygen mis-parsing
Ignore some symbols appearing as "Variables", which seem to be due to
some mis-parsing.
2021-10-03 00:40:52 +03:00
Pauli Virtanen
c345d1e11d doc: make Doxygen to show only symbols defined in headers
Make Doxygen data structure etc. lists less cluttered by hiding
non-public stuff.

Add a Doxygen input filter that marks symbols declared in C files
private, so that they won't appear in the output unless the symbol is
also declared in a header.

The "spa static inline" hack is then also not needed any more.
2021-10-03 00:40:52 +03:00
Wim Taymans
1ba805ac7e log: add stream and filter topics 2021-10-02 14:02:23 +02:00
Wim Taymans
5522e9cb1c log: add loop and mainloop topics 2021-10-02 13:54:22 +02:00
Wim Taymans
e1b38e6dd4 impl-link: add link topic 2021-10-02 13:50:08 +02:00
Wim Taymans
e9af0e4ef8 log: add topic for data and thread loop 2021-10-02 13:44:50 +02:00
Wim Taymans
f0085b383e impl-port: remove NAME prefix 2021-10-02 12:52:42 +02:00
Wim Taymans
9cc34cfe99 buffers: add log topic 2021-10-02 12:46:48 +02:00
Pauli Virtanen
a86ff85444 bluez5: tolerate devices sending incorrect AAC caps
There is a report (#1342) of a device setting multiple bits for AAC
object type in SetConfiguration, although this appears to be forbidden.

It's not completely clear if this was due to e.g. some BlueZ bug, but it
should be safe to be lax and try to guess what is wanted in such case,
instead of being strict, in case it was due to device bug.
2021-10-02 10:29:48 +00:00
Pauli Virtanen
3092e4a7be bluez5: implement validate_config for AAC
Allows bailing out earlier on invalid config, and setting transport
channel info.
2021-10-02 10:29:48 +00:00