Commit graph

417 commits

Author SHA1 Message Date
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
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
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
5376832676 builder: control_header -> control 2019-01-17 17:11:58 +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
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
Wim Taymans
3dc6820e9e Don't use __ in defines or declarations, it's reserved
SPA_TYPE -> SPA_TYPE_INFO for type info strings
improve includes

Fixes #115
2019-01-14 13:00:00 +01:00
Wim Taymans
b497ae9792 spa: install missing headers 2019-01-08 12:26:32 +01:00
Wim Taymans
d12148cfba graph: remove scheduler2
Move graph code into graph.h
2019-01-08 11:56:44 +01:00
Wim Taymans
b0f4be5fbc fix more compile errors
Avoid void * arithmetic
Do explicit casts to target type to make c++ happy
2019-01-08 11:53:36 +01:00
Wim Taymans
19e4b04939 add more tests 2019-01-07 18:01:44 +01:00
Wim Taymans
5b7ddb0105 buffer: remove buffer id
The buffer id is not needed/used, we use the index of the buffer in the
buffer array when configuring the port.
2019-01-07 17:57:03 +01:00
Wim Taymans
e918f9f77c fix sign confusion 2019-01-07 15:52:42 +01:00
Wim Taymans
7cd55c2c6b fix switch fallthrough cases 2019-01-07 15:11:34 +01:00
Wim Taymans
9573b24e52 cpu: add force cpu flags
Use PIPEWIRE_CPU to force cpu flags.
2019-01-07 15:02:18 +01:00
Wim Taymans
1ca7704d64 type-info: fully initialize structs 2019-01-07 13:56:08 +01:00
Wim Taymans
3cfd1e6cf1 compare: fix sign for compare of id 2019-01-07 13:41:10 +01:00
Wim Taymans
dbbcd3fdc4 defs: add SPA_LIKELY to MIN/MAX/CLAMP macros 2019-01-07 13:39:57 +01:00
Wim Taymans
3480765561 parser: add more parser helpers 2019-01-04 10:00:12 +01:00
Wim Taymans
a41624d48b iter: make iteration safer
Check if the pod size is within the parent pod size
2019-01-04 09:59:33 +01:00
Wim Taymans
f246c7b8ef parser: add more parser helpers 2019-01-03 17:43:07 +01:00
Wim Taymans
ba7b2d8c21 meta: clarify the meaning of hotspot when no bitmap 2019-01-03 17:28:25 +01:00
Wim Taymans
8984c6f48d meta: document fields some more 2019-01-03 17:18:12 +01:00
Wim Taymans
6f75c2d078 cpu: add cpu detection support 2018-12-17 13:23:51 +01:00
Wim Taymans
ac5f0b851d meta: add cursor metadata and examples
Add a moving and flashing circle cursor to video-src
Render the cursor in video-play
Alsa add VideoCrop metadata
2018-11-30 15:12:46 +01:00
Wim Taymans
bf344a86e5 alsa: add on and off profiles 2018-11-29 15:24:13 +01:00
Wim Taymans
7bc9c1ebfe node: remove info from node interface
Replace with info event emited when callbacks are set. This makes it
easier to implement dynamic changes.
2018-11-26 12:41:40 +01:00
Wim Taymans
57e94f7bc4 monitor: remove enum_items
Make the monitor and device emit the info and items when the callbacks
are set. This makes it easier to implement the monitor because there
is much less state to keep around and invalidate etc.
Rework the monitors
Add bluez5 device
2018-11-26 12:18:53 +01:00
Wim Taymans
e23c209a5f alsa: implement monitor and device 2018-11-23 17:41:39 +01:00
Wim Taymans
e1bd12e599 device: add device object
Make a device object, let the v4l2 monitor create device objects
The device object is responsible for dynamically creating nodes.
2018-11-23 12:43:47 +01:00
Wim Taymans
9d44d0b135 parser: add some utils to parse values 2018-11-16 16:52:04 +01:00
Wim Taymans
0303b7d1c5 props: add rate property 2018-11-16 16:48:49 +01:00
Wim Taymans
b6f01542d8 spa: explicitly cast the offset to signed int
As reported by Marcello Blancasio, convert the offset to a signed int
to avoid conversion without sign extension. Fixes unmap of stream
memory.

Fixes #103
2018-11-12 12:05:59 +01:00
Wim Taymans
e69cf24f24 alsa: add dll to estimate clock drift
Make delay signed in the clock io so that we can simply add it to the
tick to get the hw position.
Add clock drift to clock info
2018-11-09 15:26:08 +01:00
Wim Taymans
00a570f7de audio-format: set unpossisioned flag
If we don't have position information in the format, set the
unpositioned flag. Don't set position info in the format when the
unpositioned flag is set.
2018-11-07 11:54:23 +01:00
Wim Taymans
088ee9f09e Improve TIMESPEC_TO_TIME
Add explicit TO_NSEC and TO_USEC versions to make it clearer and to
allow for some optimizations.
2018-11-07 09:56:24 +01:00
Wim Taymans
85f2e93c54 Relicense as MIT/X11
Remove some obsolete files
2018-11-05 17:48:52 +01:00
Wim Taymans
b87397025e pod: handle unknown types without crashing 2018-11-02 12:12:34 +01:00
Jan Grulich
a61f8cf666 Coding style 2018-10-31 07:48:28 +00:00
Jan Grulich
a813afd810 Fix build with c++ compilers 2018-10-31 07:48:28 +00:00
Jan Grulich
2aeb5d9d98 Install a missing header
This header is used by param/video/format-utils.h and therefore needed to be installed as well.
2018-10-31 07:47:31 +00:00
Wim Taymans
58c6d76328 pod: also handle choice in compare 2018-10-27 10:43:09 +01:00
Wim Taymans
4aab226047 io: add size of current cycle to position 2018-10-24 10:27:06 +02:00