Commit graph

1085 commits

Author SHA1 Message Date
Wim Taymans
116676e149 node: add active flag for rate match
Add flags to the rate match io area
Add flag to activate/deactivate rate match
Set active flag in rate match when slaved
Update rate before starting resample
2019-10-21 10:13:56 +02:00
Wim Taymans
f5b9862a89 alsa: tweak xrun recovery
Don't try to resync right after a xrun.
Init the dll after reslaving.
2019-10-18 22:53:02 +02:00
Wim Taymans
2e3608a34f Improve some debug 2019-10-18 21:54:44 +02:00
Wim Taymans
92d5c179d6 tests: set the samplerate in the format
This works for now without a samplerate because we ignore it but
it might not in the future..
2019-10-18 21:51:07 +02:00
Wim Taymans
566640a21b audioadapter: fix switch between master and slave
When we get worken up with a callback, mark ourselves as a master
because we then need to avoid running the converter again in the
process callback. After we perform the process callback, unmark
ourself as master and wait for the next cycle.

This fixes switch from master to slave for sources.
2019-10-18 21:47:37 +02:00
Wim Taymans
e2f6a7a34e audiomixer: add AVX optimized mixer functions 2019-10-17 09:36:18 +02:00
Wim Taymans
d8eb7ce81f audioconvert: fix avx flags 2019-10-17 09:35:24 +02:00
Wim Taymans
7798cf7364 core: improve alignment
Use the CPU alignment to align memory of allocated buffers. This makes
it more likely that all CPU optimizations can be done.
2019-10-17 09:34:27 +02:00
Wim Taymans
c8ffcaaefe plugins: just check the data pointer
We don't need to look at the data type, we just just be happy when
the data pointer is filled in.
2019-10-16 12:23:42 +02:00
Wim Taymans
8899d00bfc control: add control mixer plugin
Add a mixer plugin for control messages and plug it in ports with
control messages.
2019-10-16 11:13:23 +02:00
Wim Taymans
e0f79bcbb8 io: add some more docs and memory io area 2019-10-16 11:10:57 +02:00
Wim Taymans
b37bf7e068 alsa-seq: ask for more data when consumed 2019-10-16 10:44:40 +02:00
Wim Taymans
6ad52b1a11 iter: check if size can hold a spa_pod 2019-10-16 10:44:12 +02:00
Wim Taymans
9d842fb5eb improve debug and error reporting 2019-10-08 22:33:31 +02:00
Wim Taymans
9aadc753c0 type: add missing type-info for MemId 2019-10-08 22:30:00 +02:00
Wim Taymans
5693d72fcb audioadapter: expose parameter in port_info 2019-10-03 16:23:23 +02:00
Wim Taymans
0ecbe4844e mixer: Move floatmix to the audio mixer plugin
Move floatmix to the audiomixer plugin and change the name to
AUDIO_MIXER_DSP.
Add runtime selectable sse and sse2 optimizations.
Load the port mixer plugin dynamically based on the factory_name.
Add some more debug
2019-10-03 16:20:12 +02:00
Wim Taymans
27eabede35 volume: fix build 2019-10-03 09:38:41 +02:00
Wim Taymans
36904e1612 dict: add function to sort 2019-10-03 09:31:34 +02:00
Wim Taymans
1f700e7cdd dict: add SORTED flag and faster lookup in that case 2019-10-03 09:29:51 +02:00
Wim Taymans
fb95e7660a media-session: start the midi bridge from the session 2019-10-02 21:12:42 +02:00
Wim Taymans
0a6ad1adec alsa: only emit PCM device when available
Only emit a PCM device if the device actually has one. Otherwise we
end up with a useless PCM device for a pure midi device.
2019-10-02 21:10:43 +02:00
Wim Taymans
93a2defbb8 alsa-seq: reset buffers 2019-10-02 18:02:40 +02:00
Wim Taymans
e04d58ee3a Improve some debug 2019-10-02 18:02:07 +02:00
Wim Taymans
6e0ffb0c47 flags: change flag macros
SPA_FLAG_CHECK -> SPA_FLAG_IS_SET
SPA_FLAG_UNSET -> SPA_FLAG_CLEAR
Add SPA_FLAG_UPDATE
2019-10-02 18:00:42 +02:00
Wim Taymans
f59a43a4f0 v4l2: improve is_capture check 2019-10-01 10:13:42 +02:00
Wim Taymans
82ee139f65 spa: improve object properties 2019-10-01 10:04:22 +02:00
Wim Taymans
dc83c10c9a media-session: add device reservation for alsa
Implement the device reservation DBus API.

When we acquire the device name, set our device profile to 'On'. This
adds our sources and sinks to the graph.

When we lose the name, switch back to 'Off' and remove our nodes
again.

Move the session mamager stuff in a directory.

Fixes #191
2019-09-30 21:51:46 +02:00
Wim Taymans
990ecd20c5 vulkan: handle older versions
Fixes #183
2019-09-27 10:53:36 +02:00
Wim Taymans
44840c4a55 alsa-seq: add some comments 2019-09-26 15:17:00 +02:00
Wim Taymans
f539b42a03 alsa: improve midi
Add some debug
Ignore ports without buffers.
2019-09-26 11:57:25 +02:00
Wim Taymans
8d472befaa alsa-seq: Improve connection setup 2019-09-25 10:48:25 +02:00
Wim Taymans
f0b3ed5257 alsa-seq: improve timings
Track the position of the clock instead of our own timer.
Implement stop.
2019-09-25 10:14:25 +02:00
Wim Taymans
387b281f5c alsa-seq: use dll to track queue timer
Also increase timer resolution to get less jitter.
2019-09-24 17:23:39 +02:00
Wim Taymans
197d2b15b6 alsa-pcm: small cleanups 2019-09-24 17:23:01 +02:00
Wim Taymans
db341a6450 improve properties on node and port
Rename some alsa filenames.
2019-09-23 20:51:34 +02:00
Wim Taymans
77e07e1948 improve properties on globals and ports 2019-09-20 13:28:06 +02:00
Wim Taymans
6756a3c8fc monitor: remove monitor API and use device
Remove the monitor API, we can use the device API for it. Make sure
we support creating devices (like alsa) from another device (udev).

Use new object.id to store the object id in the object properties. Use
the port.id/node.id etc to make relations to other objects.
2019-09-20 13:04:14 +02:00
Wim Taymans
818fb9e904 alsa: add midi bridge
Add a node that exposes all midi input and output ports and converts to
and from PipeWire control streams.
2019-09-19 16:57:00 +02:00
Wim Taymans
ab0d1b7fad alsa: cleanups
Avoid getting the clock time just for debug.
Improve time at startup.
2019-09-19 16:55:02 +02:00
Wim Taymans
d3c7acb137 iter: add helper to parse pod from memory region 2019-09-19 13:17:48 +02:00
Wim Taymans
322ccb452c small cleanups 2019-09-19 13:17:30 +02:00
Wim Taymans
59bf522ce1 system: use the same bits as POLL and EPOLL
Use the same bits for the io mask as POLL and EPOLL so that we
can avoid conversions.
2019-09-19 13:15:38 +02:00
Wim Taymans
49a5e97d69 format: add application/control media type
Add a new application/control media type that can be used to negotiate
control streams between ports.
2019-09-16 21:09:52 +02:00
Wim Taymans
565f0475f0 tests: update test 2019-09-16 21:08:03 +02:00
Wim Taymans
4381e79632 control: clean up some control includes
Remove control from channelmix, it's not used
Add control metadata
Add OSC control type
Improve some docs
2019-09-16 15:49:46 +02:00
Wim Taymans
8b85cc225e rename HAVE/NEED_BUFFER -> HAVE/NEED_DATA
It is more generic and works with control-only ports as well
2019-09-16 12:55:23 +02:00
Wim Taymans
2d8bce7479 names: add vulkan compute source factory name 2019-09-10 12:38:25 +02:00
Julian Bouzas
ddd2a97f7e bluez: set bluez profile property when emitting node
We need to expose the bluetooth profile in the nodes so that external
applications know how to handle them.
2019-09-10 10:42:11 +02:00
Wim Taymans
9c9bff8fe9 data-loop: add _wait function
Add function to wait for one iteration of the loop. This can be used
by specialized implementations of the data loop, like jack.
2019-09-09 17:17:03 +02:00