Commit graph

5291 commits

Author SHA1 Message Date
Wim Taymans
0e910a9d03 audioconvert: correctly remap in fmtconvert
Only remap channels on the planar buffers.

See #472
2020-12-15 09:47:37 +01:00
Wim Taymans
cc31412ef3 pw-dump: handle 0 size string 2020-12-14 17:15:49 +01:00
Wim Taymans
69ea147a29 pw-dump: add optional object id 2020-12-14 16:57:09 +01:00
Wim Taymans
5e33352d5d pw-dump: escape keys and strings
Use the json escape function to escape keys and strings.
Make most put functions accept an optional key
Use flags helper for permissions as well
2020-12-14 16:46:23 +01:00
Wim Taymans
8f85e74b5d pw-dump: add colors on tty 2020-12-14 16:19:56 +01:00
Wim Taymans
3ac2bc0ad2 pod: descend in array type if possible 2020-12-14 16:18:57 +01:00
Wim Taymans
7c5cb5a281 param: the position property is an array of channelpositions 2020-12-14 16:18:12 +01:00
Wim Taymans
dd28937ccb pw-dump: refactor change_mask code 2020-12-14 15:42:54 +01:00
Wim Taymans
88fe2c4fb4 tools: add pw-dump tool
Dumps the complete object tree as json so that it can be processed
with tools like jq
2020-12-14 15:22:16 +01:00
Wim Taymans
c61502f57c acp: rename fields
pulseaudio -> pipewire
PULSE_* -> ACP_*

Hopefully this does not interfere with pulseaudio anymore.

See #436
2020-12-14 15:01:05 +01:00
Wim Taymans
1934b0adb9 bluez5: add codec name to node 2020-12-14 13:29:12 +01:00
Wim Taymans
7f6339e307 bluez5: Don't deref the transport to get the fd
Use the configured fd in the source for reading and writing because
the transport might be disconnected and cleared from the main thread
at any time.
2020-12-14 13:17:48 +01:00
Marijn Suijten
580bdcd5bf Makefile.in: Point PIPEWIRE_CONFIG_DIR to source directory
Config files read from this variable - currently only media-session.d -
do not get copied to the build directory but are only ever copied during
install. In order to have media-session.d/with-pulseaudio detected when
`make run`'ing from the build directory PIPEWIRE_CONFIG_DIR must point
to the source directory containing these files.
2020-12-14 11:32:31 +01:00
Marijn Suijten
990903ac8e Makefile.in: PIPEWIRE_MODULE_DIR should point to src/modules
The root of the build directory does not contain modules, these reside
in src/modules/.
2020-12-14 11:32:26 +01:00
Wim Taymans
c6f94def08 null-sink: fix null sink scheduling
The null sink pulls in data and provides data after it got the
data in _process.

See #472 #442
2020-12-14 10:21:13 +01:00
Wim Taymans
0f528dc73c splitter: place destination address in tmp array
We then remap the tmp array to the destination array.

Fixes #477
2020-12-14 09:49:44 +01:00
Wim Taymans
c1bdc58d31 a2dp: prefer aptx_hd over aptx 2020-12-11 20:04:57 +01:00
Wim Taymans
7763154239 a2dp: increase temp buffer
ldac frames are larger and need more space.

See #449
2020-12-11 19:23:30 +01:00
Wim Taymans
00295b64b5 pulse-server: don't write too small buffers
Fixes #399
2020-12-11 18:09:21 +01:00
Wim Taymans
d71259a02c alsa: handle batch devices
For batch devices that are not usb devices, lower the period and
add an extra period of heardoom to avoid xruns.

See !330
2020-12-11 17:38:27 +01:00
Wim Taymans
6bc8ab18dc bluez5: aptx wants S24 input sample format 2020-12-11 15:13:59 +01:00
Wim Taymans
8b52e44836 bluez5: support other ldac bit depth
Make the format_info const in codec_init, we just need to read the
final negotiated format in some cases.
Add some more ldac bit depths we support.
2020-12-11 13:30:11 +01:00
Wim Taymans
bcf6c0986e pulse-server: read in chunks of minreq from the ringbuffer
Don't read too large chunks from the ringbuffer but in minreq
increments. This is more what pulseaudio does.

Fixes #463
2020-12-11 12:45:01 +01:00
Wim Taymans
d3db703f77 pulse-server: improve some debug 2020-12-11 12:39:46 +01:00
Wim Taymans
4ef0ef464e pulse-server: warn for unsupported seek flags 2020-12-11 10:39:15 +01:00
Wim Taymans
8cb1db5a61 alsa-udev: add property to emit ACP devices 2020-12-11 10:10:20 +01:00
Wim Taymans
bec950440b alsa-monitor: add wildcard to disable hardware-mixers 2020-12-11 10:10:05 +01:00
Haochen Tong
7dd69651b8
test-audioconvert: fix test failure after 7d73f0b8 2020-12-10 14:30:28 +01:00
Wim Taymans
760a63d340 metadata: clear item before remove
Otherwise the item is overwritten with the next entry and we should
not clear it.
2020-12-09 21:18:58 +01:00
Wim Taymans
0237821b38 a2dp: reorder codecs a little
Move higher quality codecs first.
2020-12-09 20:56:29 +01:00
Wim Taymans
2b507cbe79 jack: use the node activation position after connecting
Until we get assigned to a driver, use our own activation position
to report samplerate and buffer size.
2020-12-09 20:48:59 +01:00
Wim Taymans
7768a87a0b alsa: make it possible to fix format 2020-12-09 20:33:57 +01:00
Wim Taymans
7d73f0b8d0 audioconvert: use some defines for the max ports 2020-12-09 20:32:44 +01:00
Wim Taymans
606d48a3e8 adapter: remove unused defines 2020-12-09 20:32:05 +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
ccfe439786 Cache node, port and device params
So that we don't need to keep asking when it didn't change.

Fixes #455
2020-12-09 17:07:34 +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
5469ac19ab pulse-server: map node.description to device.description
Makes Teamspeak work

Fixes #462
2020-12-08 12:20:47 +01:00
Wim Taymans
5a94bfc6cd pulse-server: add some more supported channel_map values 2020-12-07 21:52:09 +01:00
Wim Taymans
157d6de607 pulse-server: convert channel_map channels
channel_map contains pulseaudio channel names, convert them to
pipewire channel ids and then into pipewire channel names for the
null sink.
2020-12-07 20:29:22 +01:00
Andres Freund
1e89e7559b Fix paths used in 'make run'.
In particular ACP_PATHS_DIR, ACP_PROFILES_DIR ended up pointing to the
build directory, despite only existing in the source directory.

I also adjusted PIPEWIRE_CONFIG_DIR to be explicit about referencing
the build directory, given that the other environment variables are
doing so.

Fixes: #448
2020-12-07 15:46:21 +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