Commit graph

3155 commits

Author SHA1 Message Date
Wim Taymans
1c27f48992 params: add PortConfig debug info 2019-08-12 15:14:39 +02:00
Wim Taymans
b8b2e494bd audioconvert: improve proxy of internal params 2019-08-12 15:14:39 +02:00
Wim Taymans
4449cf61ad audioadapter: filter filtering 2019-08-12 15:14:39 +02:00
Wim Taymans
65909b7964 props: add property to pass array of volumes 2019-08-12 15:14:39 +02:00
Wim Taymans
a1ec7f5fa7 pod: add helper function to copy array values 2019-08-12 15:14:39 +02:00
Wim Taymans
69ad904b63 pulse: update per channel volumes
Use the channelVolume property to update the individual channel
volumes.
Update property values to match pulseaudio.

Handle the case where the number of channels changes. In pulse this
can normally never happen. Emit a remove and add of the node when
this happens as to not confuse pulse clients.
2019-08-12 12:34:54 +02:00
Wim Taymans
2d6f9950a5 jack: improve node name
Try to use the short nick first and then the name/description
2019-08-12 12:28:54 +02:00
Wim Taymans
dddaaf4db4 alsa: improve node name and description
Use the same values as what the pulse plugin would do
2019-08-12 12:27:51 +02:00
Matt Porter
b71f2dd716 meson.build: fix meson version warning
Features are used from 0.44 but min version is specified as 0.42.
Bump min version to 0.44.

Signed-off-by: Matt Porter <mporter@konsulko.com>
2019-08-09 23:20:55 +02:00
Wim Taymans
a42c517682 improve debug 2019-08-08 11:03:13 +02:00
Wim Taymans
48f28f7b63 jack: improve debug 2019-08-08 11:02:40 +02:00
Wim Taymans
3ee9cbd57d fix errno values 2019-08-07 13:33:14 +02:00
Wim Taymans
7cbdaeb3b6 remove obsolete dbus protocol 2019-08-07 13:09:02 +02:00
Wim Taymans
6f8268df40 audioconvert: remove speex resampler
It's slower and less accurate then the native one.
2019-08-07 13:06:14 +02:00
Wim Taymans
447d1f94bf jack: update 2019-08-07 12:59:46 +02:00
Wim Taymans
f84821f821 jack: improve buffer usage
Buffer on the output port are set on the mix once and used for
all output mix ios. Find the mix with the buffers and use that on
all output mix.
2019-08-07 12:58:09 +02:00
Wim Taymans
06446e0d64 port: simplify buffer allocation
Use just one function to do buffer allocation on a port.

Remove some unused variables.
2019-08-07 12:56:57 +02:00
Wim Taymans
a319ec55ea remove some unused code 2019-08-07 12:56:04 +02:00
Wim Taymans
ee66893133 mem: use right flags when mapping 2019-08-07 12:51:36 +02:00
Wim Taymans
ba118e26a3 link: improve buffer negotiation
Don't free the buffers when the mix is released, this will happen
when nothing is using them anymore with port_use_buffers later.

Mark a mixer as having buffers when the output port has buffers.
Don't set buffers on a mixer port that already has buffers.
2019-08-06 17:07:21 +02:00
Wim Taymans
d98a6d22d5 improve debug 2019-08-06 17:05:08 +02:00
Wim Taymans
003076ffc7 splitter: always fill up all dst pointers 2019-08-06 17:03:53 +02:00
Wim Taymans
b3f450e859 mem: fix errno value 2019-08-06 16:59:24 +02:00
Wim Taymans
f41720e7db Add PortConfig parameter
Add a new PortConfig parameter to configure ports of elements that
are marked with the SPA_NODE_FLAG_*_PORT_CONFIG. This is used to
configure the operation of the audioconver/audioadapter nodes and
how it should convert the internal format. We want to use the
Profile parameter only for cases where there is an enumeration of
values, like with device configuration.

Add unit tests for audioconvert and adapter to check if they handle
PortConfig correctly.

Make the media session use the PortConfig to dynamically configure
the device nodes.

Remove audio-dsp, it is not used anymore and can/should be implemented
with a simple audioconvert spa node now and some PortConfig.
2019-08-06 12:45:20 +02:00
Wim Taymans
acdfed0d04 session: keep format with max number of channels 2019-08-06 12:35:42 +02:00
Wim Taymans
f29d098074 node: keep track of spa flags 2019-08-06 12:34:52 +02:00
Wim Taymans
8982e157c4 port: handle NULL port info 2019-08-06 12:32:44 +02:00
Wim Taymans
a377bfa3f1 debug: improve debug of bool 2019-08-06 12:20:18 +02:00
Wim Taymans
d6289639f1 media-session: keep track of peer
When we don't link to a session but directly to a peer, remember
this so that we don't try to link over and over again.
2019-08-06 12:19:24 +02:00
Julian Bouzas
de031b42b1 bluez: add sco-sink and sco-source nodes 2019-08-01 15:31:54 +02:00
Julian Bouzas
d274497e3c bluez: unset sco and rfcomm fd when destroying transport 2019-08-01 15:31:54 +02:00
Wim Taymans
29d73e3437 fix compilation 2019-08-01 15:28:54 +02:00
George Kiagiadakis
e562340014 travis: fix the build script
It turns out that indentation matters...
My apologies that it took so long to figure this out
2019-08-01 15:18:38 +02:00
George Kiagiadakis
b511bd2c6a spa: install missing utils headers 2019-08-01 15:18:24 +02:00
Wim Taymans
b655fd08f7 stream: destroy proxy on disconnect 2019-08-01 15:06:54 +02:00
Wim Taymans
960a82dbb9 client-node: improve cleanup 2019-08-01 15:04:18 +02:00
Wim Taymans
7614604250 improve debug 2019-08-01 14:55:44 +02:00
Wim Taymans
4048a730e0 remote-node: use remote from data
proxy could be cleared already when destroyed
2019-08-01 14:04:20 +02:00
Wim Taymans
f1ea49d6e9 mem: add size of tag to make it possible to check subtags 2019-08-01 13:55:03 +02:00
Wim Taymans
d405ca97ec jack: fix for api change 2019-08-01 13:54:30 +02:00
Wim Taymans
acf931abc5 audioadapter: Format param is write only 2019-08-01 10:57:25 +02:00
Wim Taymans
2772c9f554 bluez: clean up nodes 2019-07-31 18:30:19 +02:00
Wim Taymans
a79e6737a9 device: improve debug 2019-07-31 17:22:26 +02:00
Wim Taymans
a16ea3b576 remote: do connection in the main loop 2019-07-31 13:46:07 +02:00
Wim Taymans
9869734250 monitor: unload spa handle instead of free() 2019-07-31 10:08:29 +02:00
George Kiagiadakis
30576fcff8 audioconvert/fmtconvert: assume F32 on the other port when listing formats
This allows picking F32LE as the default format on links that have
no restriction and it avoids failing negotiation when the restricted
end cannot handle S16/F32/F32P

For instance this pipeline would previously fail:

  audio-dsp mode=merge ! audio-dsp mode=convert ! alsa-sink
old negotiation:     S16LE                   S24_32LE
new negotiation:     F32LE                   S24_32LE

The link between the audio-dsp nodes has no restriction, so previously
it would negotiate S16LE, which would then fail to negotiate with alsa-sink
because fmtconvert does not know how to convert S16LE to S24_32LE directly.

With this change, the middle link negotiates to F32LE, which can be
converted to anything.
2019-07-30 11:11:57 +02:00
Wim Taymans
bf618c3440 tests: fix unit tests again 2019-07-29 17:13:13 +02:00
Wim Taymans
e11a81ba4f node: always pause in suspend
It might be possible that the node was not paused yet in idle when the
flag was set.
2019-07-29 17:11:00 +02:00
Wim Taymans
a7d8e7e6cc client-node: also track memory on the server
Do the same kind of memory tracking on the server side so that we
can remove the fd from the client when unused.
2019-07-29 17:10:15 +02:00
Wim Taymans
3d2f5f2ab1 link: go to PAUSED when mixers have buffers 2019-07-29 17:09:19 +02:00