Wim Taymans
a70fd80c2d
fmtconvert: fix format enumeration
...
Rework the format enumeration so that it also return the other
rate/channels, even when using a canonical format.
2019-05-10 11:39:51 +02:00
Wim Taymans
1a7fcaf9c6
Fix cleanup
2019-05-10 11:15:48 +02:00
Wim Taymans
41ab051b68
fmtconvert: fix format enumeration
...
Even if the other pad is already negotiated, we can convert all
formats to F32.
2019-05-09 09:35:03 +02:00
Wim Taymans
ecde090a1f
pod: remove type check, it causes errors
2019-05-09 09:34:23 +02:00
Wim Taymans
35c2aca706
remote: only remove the proxy id when it existed
2019-05-07 17:53:57 +02:00
Wim Taymans
9a842e4643
pipewiresrc: actually use the fd when set
2019-05-07 14:53:53 +02:00
Wim Taymans
b01858931c
v4l2: add camera media.role
2019-04-30 15:42:17 +02:00
Wim Taymans
636c02d38b
audioconvert: fix native variable rate resampler
2019-04-30 15:14:05 +02:00
Wim Taymans
5ac383e7f7
alsa: improve capture slave resync
...
When we underrun, send out a buffer of 0 samples and catch up next
time.
Detect discont in the master and resync.
2019-04-29 10:00:42 +02:00
Wim Taymans
b43844e7c6
alsa: improve capture resync
...
Make sure we capture enough data even when the ringbuffer wraps
around.
Use the clock nsec to get timing, we don't need to get the new time.
Improve sync in capture.
2019-04-26 15:48:21 +02:00
Wim Taymans
317fd9fac5
alsa: handle quantum changes
2019-04-25 16:15:52 +02:00
Wim Taymans
9ec3e3ab6d
private: set min quantum to 32
...
Going as low as 32 is possible now with the better clock rate
estimation.
2019-04-25 13:04:44 +02:00
Wim Taymans
be5e79831c
introspect: remove unused RUNNING state for a link
2019-04-25 12:56:17 +02:00
Wim Taymans
9bfffc009d
core: only follow active nodes
2019-04-25 12:55:31 +02:00
Wim Taymans
cd779a1c93
splitter: disable passthrough in more cases
...
Also disable passthrough when we first negotiate output format/buffers
and passthrough is not possible because the output buffer does not
have the dynamic data flag set..
2019-04-25 12:54:03 +02:00
Wim Taymans
d8f39a7c02
alsa: improve clock slaving for source
2019-04-25 12:53:23 +02:00
Wim Taymans
f8513029a1
node: cleanup, rename slave list
2019-04-24 16:56:18 +02:00
Wim Taymans
9b1da77bfc
node: remove obsolete enabled state
...
We will create/destroy nodes instead of enabled/disable
2019-04-24 15:39:29 +02:00
Wim Taymans
24f6fc2a34
alsa: handle master/slave changes
2019-04-24 15:38:06 +02:00
Wim Taymans
f2cdba1929
a2dp: handle slaving
2019-04-24 12:41:16 +02:00
Wim Taymans
bc85837e26
alsa: small cleanup
2019-04-24 12:40:58 +02:00
Wim Taymans
dcddd5080b
submodule update
2019-04-23 17:42:55 +02:00
Wim Taymans
3b513fa7ae
floatmix: remove some unused code
2019-04-23 17:37:46 +02:00
Wim Taymans
8dabd52807
audio-dsp: use audioconvert to get a resampler
2019-04-23 17:37:22 +02:00
Wim Taymans
2912d2506f
audioconvert: improve resampler
...
Also emit port info the the merger monitor ports.
Proxy params and buffers to the right monitor ports.
fmtconvert does not always have dsp ports
Increase resampler output buffer sizes so that we can up and downsample.
Fix little off by one in native resampler.
Fix passthrough in speex resampler.
2019-04-23 17:34:27 +02:00
Wim Taymans
b7cc9ea102
alsa: improve rate control
...
Try to match the delay with the target delay. Use the rate to
adjust the timeout period for master or the resampler rate for slaves.
2019-04-23 17:31:29 +02:00
Wim Taymans
df4cb30c7a
ringbuffer: use spa_memcpy so we can debug it better
2019-04-23 17:30:38 +02:00
Wim Taymans
01604e4495
submodule update
2019-04-17 15:25:31 +02:00
Wim Taymans
bb3da2fcc1
remote-node: reuse activation logic in pw_node
...
Set the received eventfd as the node eventfd and let existing
logic take care of scheduling the node.
2019-04-17 15:23:11 +02:00
Wim Taymans
715594c6ef
alsa: rework source a little in the case of slave
...
When we are slaved, read as much data as we have available and return
this from process.
2019-04-11 16:44:07 +02:00
Wim Taymans
8b1e5fedc9
core: clear driver on unassigned nodes
2019-04-11 16:40:16 +02:00
Wim Taymans
45e2219149
update submodule
2019-04-11 16:39:08 +02:00
Wim Taymans
affc641c71
node: set master flag
...
Set the master flag when a node is selected as master.
Recalc graph when a node is destroyed
2019-04-11 16:38:24 +02:00
Wim Taymans
092a0c660d
make bitfields unsigned
...
Remove driver property from client-node of client-stream.
2019-04-10 17:52:42 +02:00
Wim Taymans
787900e8bf
v4l2: map all jpeg formats to video/mjpeg
2019-04-10 17:10:34 +02:00
Wim Taymans
0db5817ed7
client-stream: Don't allow DYNAMIC_DATA
...
We don't want to use dynamic data for the remote nodes, the buffers
need to keep pointing to the memfd memory.
2019-04-10 16:35:28 +02:00
Wim Taymans
32f039e2e5
core: rework how nodes are added to a driver
...
Add a function to recalculate all nodes associated with a driver by
iterating the graph for each driver node. We used to do this in an
incremental way, which is easy to join graph but expensive to
split.
A full scan simplifies some things and we can't avoid it when we
need to calculate latencies later. It will also simplifies assigning
master and slave roles to drivers when the graphs are joined/split.
When we link/unlink or add/remove nodes, recalc the graph.
2019-04-10 16:19:10 +02:00
Wim Taymans
ae3e5787af
audioconvert: unroll some loop
2019-04-10 12:53:25 +02:00
George Kiagiadakis
40a5063b9f
module-link-factory: fix wrong goto label
...
harmless, but leads to a wrong error message being printed
2019-04-02 23:26:17 +02:00
George Kiagiadakis
7a7a12138f
module-access: don't leak the fd in check_cmdline
2019-04-02 23:26:05 +02:00
George Kiagiadakis
2340ae40a8
spa: install pod/vararg.h
2019-04-02 23:25:53 +02:00
Wim Taymans
dc01b294a2
resample: return the number of consumed samples
...
We need to return the number of consumed samples, even when we don't
start from the first sample in the buffer.
Add some more logging.
2019-04-02 23:06:46 +02:00
Wim Taymans
a44ee31abe
alsa: write as much as we can
...
Always write as much data as we can and don't stop when we written
up to the threshold.
2019-04-02 23:04:09 +02:00
Wim Taymans
5c896fedd5
connection: stop refill when 0 bytes read
2019-04-02 23:02:58 +02:00
Wim Taymans
56158fbb62
channelmix: do passthrough if identity
2019-03-29 21:00:31 +01:00
Wim Taymans
d8e399dee9
audioconvert: pass state to functions
...
Pass some state to convert and channelmix functions. This makes it
possible to select per channel optimized convert functions but
also makes it possible to implement noise shaping later.
Pass the channelmix matrix and volume in the state.
Handle specialized 2 channel s16 -> f32 conversion
2019-03-29 17:39:59 +01:00
Wim Taymans
d47353c0e6
resample-native: small tweaks
2019-03-29 12:08:45 +01:00
Wim Taymans
d260cb19be
audioconvert: compile c version separately
...
Also compile the c versions in a separate module with their own
flags.
2019-03-28 21:07:53 +01:00
Wim Taymans
fe6ebd0e8a
bench: add avx resampler to benchmark
2019-03-28 16:53:26 +01:00
Wim Taymans
e7ef13e310
audioconvert: add avx optimizations
2019-03-28 16:45:57 +01:00