pipewire/spa/plugins/alsa/acp
David Härdeman f33e1bc8c3 spa: alsa: autodetect supported iec958 codecs via ELD info
The alsa/acp code already supports getting a user-friendly monitor name
using the EDID-Like Data (ELD) information available from cards that follow
the Intel HDA specification.

This patch adds support for also parsing the SAD fields of the ELD, and
exposing the results as a "iec958.codecs.detected" property on the
corresponding node, which should make it possible to provide more
user-friendly configuration UIs and defaults.

The default value will take effect if the session manager does not set a
different value.

Brief example:
test@test:~/checkouts/pipewire$ pw-dump | grep -E "(iec958.codecs.detected|iec958.codecs)\":"
        "iec958.codecs": "[\"PCM\",\"AC3\",\"EAC3\",\"TrueHD\"]",
        "iec958.codecs.detected": "[\"PCM\",\"AC3\",\"EAC3\",\"TrueHD\"]",

<after powering on my receiver>

test@test:~/checkouts/pipewire$ pw-dump | grep -E "(iec958.codecs.detected|iec958.codecs)\":"
        "iec958.codecs": "[\"PCM\",\"DTS\",\"AC3\",\"EAC3\",\"TrueHD\",\"DTS-HD\"]",
        "iec958.codecs.detected": "[\"PCM\",\"DTS\",\"AC3\",\"EAC3\",\"TrueHD\",\"DTS-HD\"]",

Big thanks to Pauli Virtanen <pav@iki.fi>, who also wrote large paths of the
code for this patch.
2024-11-28 09:18:07 +01:00
..
acp.c spa: alsa: autodetect supported iec958 codecs via ELD info 2024-11-28 09:18:07 +01:00
acp.h spa: alsa: autodetect supported iec958 codecs via ELD info 2024-11-28 09:18:07 +01:00
alsa-mixer.c Fix compilation with -Werror=float-conversion 2024-06-18 12:17:56 +02:00
alsa-mixer.h alsa-ucm: Let profiles know their associated UCM verb 2023-12-04 15:34:48 +00:00
alsa-ucm.c Fix compilation with -Werror=float-conversion 2024-06-18 12:17:56 +02:00
alsa-ucm.h acp: Don't sync hardware volumes while UCM device is disabled 2023-12-04 15:34:48 +00:00
alsa-util.c spa: alsa: autodetect supported iec958 codecs via ELD info 2024-11-28 09:18:07 +01:00
alsa-util.h spa: alsa: autodetect supported iec958 codecs via ELD info 2024-11-28 09:18:07 +01:00
array.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
card.h acp: add api.alsa.disable-mixer-path 2024-09-24 13:14:17 +02:00
channelmap.h acp: don't mix non-AUX and AUX channels 2022-06-02 12:54:04 +02:00
compat.c spa: alsa: fix leaks in get_data_path() 2023-11-10 03:29:49 +01:00
compat.h acp: handle some errors better 2024-05-20 11:22:46 +02:00
conf-parser.c config.h is a local header, not a system one 2021-06-10 09:04:16 +10:00
conf-parser.h alsa-acp: Add libacp based card device 2020-07-06 12:20:09 +02:00
device-port.h Fix typos 2021-04-30 07:40:20 +00:00
dynarray.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
hashmap.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
idxset.h acp: Add idxset comparison and reverse search operations 2023-12-04 15:34:48 +00:00
llist.h alsa-acp: Add libacp based card device 2020-07-06 12:20:09 +02:00
meson.build treewide: meson.build: use dependency variable for SPA 2021-12-28 18:34:06 +01:00
proplist.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
volume.h alsa: get rid of non-portable isinf use 2023-08-31 10:37:22 +00:00