Commit graph

1720 commits

Author SHA1 Message Date
Wim Taymans
7d73f0b8d0 audioconvert: use some defines for the max ports 2020-12-09 20:32:44 +01:00
Wim Taymans
e1b8f24d17 a2dp: improve LDAC
When we update the quality, get the new num_blocks.
Set the channel positions correctly.
2020-12-09 20:29:22 +01:00
Wim Taymans
34a9b1dc1a a2dp: set channel map 2020-12-09 18:08:24 +01:00
Wim Taymans
29fe356fdf a2dp: copy aptx config in configure 2020-12-09 18:00:42 +01:00
Frédéric Danis
8bc711ce4d bluez5: backend-ofono: Add mSBC support
oFono tries to use the best codec when setting up the audio connection, so
the codec to use is known during call to `acquire` function, after the
transport has been created.
To get the codec before creating the transport, an audio connection is
set-up and discarded during `ofono_audio_card_found()`. It should return
the best codec available, which should not change during the time the
remote is connected.

mSBC can be enabled by passing "bluez5.msbc-support=true" parameter to
pipewire-media-session.
mSBC is automatically selected if remote device supports it.
2020-12-09 16:28:30 +00:00
Wim Taymans
bd4663b3cc v4l2: log open/close as info 2020-12-09 17:24:54 +01:00
Wim Taymans
4e7be858e4 node: Add ParamBegin/End
Use these commands to mark the begin and end of a series of Param
enumerations and configuration, like when doing format negotiation. The
idea is that the device can remain open while we do this.
Use this in adapter when negotiating a format.
2020-12-09 17:10:52 +01:00
Wim Taymans
ec77979890 alsa-pcm: default to max channels
When nothing else is specified, suggest the max number of channels
for a device.

See #467
2020-12-09 12:10:13 +01:00
Wim Taymans
d776a0917d alsa: refactor dll code 2020-12-09 12:09:40 +01:00
Wim Taymans
78e7a45e6e audioconvert: remap channels
We also need to remap channels for the splitter and merger.

Remember the port-config format and its channel layout. Internally,
we use a canonical channel layout which is simply all channels sorted
by id. Remap the channels accordingly.

Fixes #445
2020-12-07 14:21:21 +01:00
Wim Taymans
2d8a7809f1 audioconvert: set port-config flags 2020-12-07 14:20:56 +01:00
Wim Taymans
6566f52a7e a2dp-sink: don't accept more data when we need to flush
See #449
2020-12-06 15:56:04 +01:00
Wim Taymans
d2ff341263 a2dp: use right struct for ldac
Fixes #449
2020-12-06 13:03:05 +01:00
Wim Taymans
136fc028a5 prefer S24 over S16 formats
Prefer the higher quality over performance.

Fixes #457
2020-12-06 10:37:40 +01:00
Wim Taymans
316a96d501 improve debug 2020-12-06 09:32:12 +01:00
Wim Taymans
6d494c120f bluez5: improve debug 2020-12-05 20:56:56 +01:00
Wim Taymans
7996b44036 a2dp: fail if no ldac samplerate was found 2020-12-05 20:16:25 +01:00
Kamil Sołtysik
0a8a854721 Fix codec names in comments 2020-12-05 19:23:27 +01:00
Wim Taymans
c3c1a1184c a2dp: use unsigned for sizes 2020-12-05 08:30:14 +01:00
Wim Taymans
4797018e4f ldac: fix sample rates
Fix selection of sample rates.
Higer samplerates are not supported by the library so disable them.

See #449
2020-12-05 08:18:01 +01:00
Wim Taymans
635a378ca4 bluez5: don't error on 0 decode length
It can happen for the first frame when the codec is filling up.
2020-12-04 12:00:42 +01:00
Wim Taymans
a592eb60a8 bluez5: fix buffer filled check
Just check if the encode buffer is full. The max number of frames
has been obtained before.
2020-12-04 11:59:40 +01:00
Wim Taymans
106d597305 bluez5: add aptX and aptX HD codecs
They need the libopenaptx libraries from
https://github.com/pali/libopenaptx
2020-12-04 11:34:38 +01:00
Wim Taymans
af8bb55762 spa: fix test on 32 bit
Fixes #441
2020-12-04 09:36:05 +01:00
Wim Taymans
9818582abe a2dp: fix aac codec compilation 2020-12-03 19:03:38 +01:00
Wim Taymans
73b13e8ad5 a2dp: deinit codec_data in stop 2020-12-03 18:11:06 +01:00
Wim Taymans
8bf0b7b4db a2dp: delay codec init to after acquire
Some codecs need the MTU as a parameter so wait until we acquire
with creating the codec context.

Make some method to enumerate the parameters from the transport
config and use that for the EnumFormat param.
2020-12-03 18:05:57 +01:00
Wim Taymans
67694a1491 a2dp-ldac: free handle on error 2020-12-03 11:18:27 +01:00
Wim Taymans
908e3f3d1f bluez5: only register available A2DP encoder/decoder 2020-12-03 11:09:13 +01:00
Wim Taymans
dd8573a5c2 bluez5: add ldac codec 2020-12-03 10:16:14 +01:00
Wim Taymans
3363544d05 bluez5: use start_decode to skip the header 2020-12-02 17:01:22 +01:00
Wim Taymans
57886c1198 spa: add audio.position support in null sink 2020-12-02 12:59:50 +01:00
Wim Taymans
4c486c7ae3 spa: remove media.class from null-audio-sink
We can use it with othe media.class values as well
2020-12-02 11:47:08 +01:00
Wim Taymans
1e9b152bb5 spa: make an extra level for arrays
Make a level with type info for the array elements.
2020-12-01 13:30:14 +01:00
Wim Taymans
73e0bb255a props: add container property to PROP_INFO
So we can mark a property should be inside a container.
Use this info in pw_stream to construct properties.
2020-12-01 12:58:18 +01:00
Wim Taymans
d098c2ba86 acp: add option to disable hardware mixer
See #426
2020-12-01 10:43:39 +01:00
Wim Taymans
967a5e06b0 spa: fix type info
Link to objects in the parent field
Use the type, not the container for some properties. We need something
else to note the container type maybe
2020-11-30 13:30:19 +01:00
Wim Taymans
75a4cff450 improve debug 2020-11-29 16:38:36 +01:00
Wim Taymans
b8300c663b improve some errors
Silence some -ENOENT warnings, they can happen when the object we
are introspecting is destroyed
2020-11-29 16:22:50 +01:00
Haochen Tong
a1259a75be
spa: enable fallthrough attribute on recent clang 2020-11-29 02:32:12 +01:00
Wim Taymans
57a9e82f79 spa: 0 means there is nothing left from from spa_json_next() 2020-11-28 20:35:25 +01:00
Wim Taymans
6e4c138238 properties: support properties from json object sting
Make pw_properties_new_string() work with a json object string.
This makes it possible to specify property strings as more complex
objects and escape characters.
2020-11-28 20:25:39 +01:00
Wim Taymans
62cdec8448 spa: move json parser to utils
Add unit test
Add escape function
2020-11-28 15:34:01 +01:00
Wim Taymans
a417ffcd38 alsa: add timerfd based playback example 2020-11-27 10:30:54 +01:00
Wim Taymans
119678e8d1 Revert "alsa: sync to latest acp"
This reverts commit f611e34456.

There is something wrong with this
2020-11-26 12:40:44 +01:00
Wim Taymans
f611e34456 alsa: sync to latest acp 2020-11-26 11:16:31 +01:00
Wim Taymans
4d62899375 acp: sync versions 2020-11-26 10:42:26 +01:00
Wim Taymans
d77c563ae8 null-audio-sink: return fixed values for rate/channels when set 2020-11-26 10:21:36 +01:00
Wim Taymans
ddfb310087 alsa-pcm: improve recover from suspended state debug 2020-11-26 09:24:57 +01:00
Wim Taymans
c3138a9bac spa: make null-sink rate and channels configurable 2020-11-25 21:05:21 +01:00