Commit graph

3023 commits

Author SHA1 Message Date
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
6ce9b5acf7 jack: fix get_cycle_times 2019-04-25 13:03:19 +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
6cde4e76d3 jack: use server timestamp when we can 2019-04-23 17:42:17 +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
71cab0c385 context: Improve not implemented methods
Let the not implemented methods return an operation instead of NULL
to make clients happy.
2019-04-17 15:44:40 +02:00
Wim Taymans
01604e4495 submodule update 2019-04-17 15:25:31 +02:00
Wim Taymans
f99480c66e stream: we can use minreq directly 2019-04-17 15:25:05 +02:00
Wim Taymans
093a068d34 stream: deactivate a stream when unlinked 2019-04-17 15:24:47 +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
87bee58f49 add SPA_EXPORT 2019-04-11 16:36:52 +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
9f7c9022cf format: map all mjpeg formats to video/mjpeg
Fixes #139
2019-04-10 17:03:14 +02:00
Wim Taymans
9f2cfe1cd6 rtkit: improve DISABLE_RTKIT
DISABLE_RTKIT should not even try to get the dbus connection or
anything.
2019-04-10 16:45:44 +02:00
Nicolas Dufresne
6e7db20bf5 rtkit: Allow disabling with DISABLE_RTKIT
Allow disabling real time thread, this is useful to run inside
valgrind without being killed.

Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
2019-04-10 16:45:38 +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
Matthias Fend
bdc81f6dc0 daemon: use correct type for getopt_long() return value
Depending on the compiler configuration 'char' may be an unsigned type
which will not work as expected.

Signed-off-by: Matthias Fend <matthias.fend@wolfvision.net>
2019-04-02 23:26:40 +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
Philipp Zabel
181a6a2cea v4l2: do not keep non-capture devices open
If VIDIOC_QUERYCAP fails, or V4L2_CAP_VIDEO_CAPTURE is not set,
spa_v4l2_open should close the port file descriptor again.
2019-04-02 23:25:34 +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