Commit graph

804 commits

Author SHA1 Message Date
Wim Taymans
3c78036a97 node: process -> ready
Change the process callback to ready to avoid confusion with the
process method and it also describes better what happened.
2019-02-14 17:04:59 +01:00
Wim Taymans
cbdc024f4c example: remove unused variable 2019-02-14 16:01:16 +01:00
Wim Taymans
7a1bd163f7 node: remove port_send_command
We don't want to do this, we use a sequence to change things
at runtime.
2019-02-13 12:43:15 +01:00
Wim Taymans
04f1046113 node: pass struct to info callback to make it more extensible 2019-02-13 11:44:58 +01:00
George Kiagiadakis
4be52f16bd spa/support: implement ARM CPU detection
Code is based on PulseAudio's implementation, originally written by Wim
2019-02-13 11:22:57 +01:00
George Kiagiadakis
d9c2f77cfe spa/audioconvert: don't include xmmintrin.h in the non-sse fmt-ops
Fixes compilation for arm
2019-02-13 11:22:57 +01:00
George Kiagiadakis
71eb538fba meson: prefix the names of the tests so that they are unique in the tree
meson < 0.46 does not allow two targets to share the same name;
meson >= 0.46 relaxes that requirement, but I see no reason to require
a new version of meson just for this
2019-02-13 11:22:45 +01:00
George Kiagiadakis
99e1bb1068 meson: spa/plugins: don't check if the plugin dependencies have been found
If these optional plugins are enabled in meson options,
then the dependencies should be required to proceed.
It is not cool to compile with let's say bluez5 explicitly
enabled and after compilation discover that bluez was not
found and meson silently skipped that plugin.
2019-02-13 11:22:22 +01:00
George Kiagiadakis
58a878623b meson: find dependencies only when necessary
This allows finding dependencies conditionally, only
when the enabled features actually need them.

Also, make sure to require those dependencies when the enabled
features do need them, instead of using "required: false" and
failing later
2019-02-13 11:22:22 +01:00
George Kiagiadakis
d08ec09dde meson: spa/plugins: use pthread_lib instead of threads_dep
no need to refer to the same dependency with 2 different names
in the same codebase
2019-02-13 11:22:22 +01:00
Wim Taymans
ac5ec9bbe2 device: improve callbacks
Pass info structures to device callbacks to make it more extensible.
Also notify about the supported params on the device because we
can.
2019-02-13 11:13:46 +01:00
Wim Taymans
5de7898808 node: implement activation
Make an eventfd for each node and listen for events when the node
is activated.
Reorganize some graphs links to make it possible to activiate nodes
by signaling the eventfd
Pass the peer node to each remote node and let the remote node
directly activate the peer when needed.
Let each node signal the driver node when finished.
With this we don't need to go through the daemon to schedule the
graph, nodes will simply activate eachother. We only go to the
server when there is a server node to schedule.
Keep stats about the state of each node and the time it was
triggered, running and finished.
2019-02-12 17:42:33 +01:00
Wim Taymans
f45e0b8966 reorganize some struct members to remove holes 2019-02-08 12:01:50 +01:00
Wim Taymans
416bb2466d log: move field around to plug hole in structure 2019-02-07 12:28:16 +01:00
Wim Taymans
87033894c5 io: add graph version of graph in position io
This will make it possible to select the right graph before we
start processing. The idea is that graph updates happen in a new
version and that the switch will to the new updated graph is done
when the period starts.
2019-02-07 12:25:33 +01:00
Wim Taymans
8a9c1129a2 spa: make fd in spa_data an int64_t
So that we can store other things in it later as well.
2019-02-07 12:22:51 +01:00
Wim Taymans
569cbb48a9 use SPA_EXPORT to export symbols 2019-02-06 13:24:41 +01:00
Wim Taymans
a563050797 spa: don't use constructor attribute to register factories 2019-02-06 12:14:25 +01:00
Wim Taymans
30da60ab6b utils: add SPA_EXPORT 2019-02-06 12:07:15 +01:00
Wim Taymans
bebc8edbc3 buffer: add missing type info 2019-01-31 10:57:24 +01:00
Wim Taymans
1baef2625c alsa: fix chmaps leak 2019-01-29 12:10:15 +01:00
Wim Taymans
e04560955d audioconvert: clean up nodes 2019-01-29 11:46:26 +01:00
Wim Taymans
efc571972d defs: don't use __ 2019-01-25 16:52:32 +01:00
Wim Taymans
68bcc6b8e8 pod: move vararg macros to separate file 2019-01-25 16:17:29 +01:00
Wim Taymans
7a8412e81a alloc: document alloc functions 2019-01-25 15:55:39 +01:00
Wim Taymans
93e8074b2c alloc: improve alignment in alloactor
link: use buffer allocator
Add more tests
2019-01-25 13:32:35 +01:00
Wim Taymans
30ecf66561 fmtconvert: check bounds on chunk offset/size 2019-01-25 13:32:35 +01:00
Wim Taymans
58f3146b60 v4l2: pass pointers to the fraction and rectangle 2019-01-25 13:32:35 +01:00
Wim Taymans
577852863c fmt: remove debug assert 2019-01-25 09:40:14 +01:00
Wim Taymans
13bf70a8dd mem: align memory to requested alignment
Improve the allocators to always align the buffer memory to the
requested alignment
Use aligned read and writes for sse functions and check alignment,
optionally falling back to unaligned path.
Add more tests and benchmark cases
Check and warn for misaligned memory in plugins.
2019-01-24 18:28:52 +01:00
Wim Taymans
dd66469570 audioconvert: add format conversion benchmark 2019-01-24 09:49:19 +01:00
Wim Taymans
6f586602af audioconvert: add unit test for format conversion
Add unit test for fmt conversion and fix some bugs
Add empty fmt-ops benchmark
2019-01-23 15:59:54 +01:00
Wim Taymans
a1d45d2b25 add missing file 2019-01-22 17:47:55 +01:00
Wim Taymans
351fb9ce29 pod: improve parser and builder
Remove the spa_pod_iter helpers
Remove builder/parser vararg recurse option, you have to
manually recurse into structures when needed. This simplifies
things a lot.
Pass spa_pod_frames to builder and parser explicitly, we don't
have to keep an internal stack anymore.
The parser is now almost a mirror image of the builder.
Make the parser safer when iterating over objects, add functions
to check and get pod contents in a safe way.
Make the builder return errno style results on errors
Improve performance of object properties when they are stored and
retrieved in the same order.
Add many more tests for the builder and parser
Add some benchmarks
2019-01-22 17:38:23 +01:00
Wim Taymans
878ae769ef parser: improve parser
Add more unit tests
2019-01-18 13:40:05 +01:00
Wim Taymans
b2bf69cc42 param: add some docs
Rename profile id to index because it better describes the property
2019-01-18 13:37:41 +01:00
Wim Taymans
5f236203d6 test: add more pod tests 2019-01-17 18:05:52 +01:00
Wim Taymans
2622e085a9 pod: add more helpers
Implement more unit-tests
2019-01-17 17:23:47 +01:00
Wim Taymans
767e7efc0e parser: fix parse of 'V' as Choice 2019-01-17 17:19:13 +01:00
Wim Taymans
be1725c67b compare: add size to compare 2019-01-17 17:16:46 +01:00
Wim Taymans
982fa0c80b spa-inspect: fix format object detection 2019-01-17 17:13:15 +01:00
Wim Taymans
5376832676 builder: control_header -> control 2019-01-17 17:11:58 +01:00
Wim Taymans
3ee463ed3a spa: Update tests and examples
Keep tests in spa/tests
Make spa/examples
Remove some old examples
2019-01-17 09:27:41 +01:00
Wim Taymans
fa2d877925 audiotestsrc: use macros for parser 2019-01-16 17:42:44 +01:00
Wim Taymans
e4bde73552 alsa: use min_latency when no position is given 2019-01-16 17:38:28 +01:00
Wim Taymans
92e9d99d0a add some padding and fix types 2019-01-16 17:37:58 +01:00
Wim Taymans
cb346c0745 builder: improve builder
Only write a prop or control header when not already done.
2019-01-16 17:35:31 +01:00
Wim Taymans
dad153ce28 alsa: mark properties are optional 2019-01-16 12:55:50 +01:00
Wim Taymans
80cfda89c1 pod: improve the vararg pod builder and parser
Automatically parse and build key/value when in objects without having
to prefix the key with ":"
Automatically build control/value when in sequence without the "."
prefix.
Remove the builder with key/pod, taking a reference to the stack built
temporary pods is not allowed in c++. We can use the varargs version
with the same convenient syntax.
Remove the parser "*" option, it is unused.
Improve spa_pod_builder_add_* and spa_pod_parser_get_* and make them
look similar.
2019-01-16 11:05:12 +01:00
Wim Taymans
e95b685072 format-utils: use Id for enums 2019-01-14 13:00:29 +01:00