Commit graph

623 commits

Author SHA1 Message Date
Wim Taymans
ef0e5ee09e param: rename properties, use info for key/value info
Add props field for configurable route properties (like volumue/mute)
2020-06-27 20:04:05 +02:00
Wim Taymans
2e914ac10e param: add properties to route and profile 2020-06-26 11:42:34 +02:00
Wim Taymans
43d0aa49c1 Route: add more fields 2020-06-24 19:37:50 +02:00
Wim Taymans
d22beb4d05 param: add classes to the PROFILE param
classes is an enumeration of class-name/count pairs to enumerate
the kinds of classes and count that are created from this profile.
2020-06-24 19:37:45 +02:00
Wim Taymans
cab833ade7 profiler: add docs for the param contents 2020-06-24 19:37:37 +02:00
Wim Taymans
0f7a488d61 param: add available to Profile params 2020-06-24 19:37:27 +02:00
raghu447
0d8e030c6e Removed datas field 2020-06-04 10:36:39 +02:00
raghu447
9024cc4444 Integrating libcamera 2020-06-04 10:36:39 +02:00
Wim Taymans
1b2f64917e format: handle NULL type info 2020-05-20 15:24:25 +02:00
Wim Taymans
98780cdbe1 utils: fix spa_assert_se 2020-05-18 18:59:49 +02:00
Martin Koch
cee1a26be6 build: skip unsupported compiler option
-Wimplicit-fallthrough for gcc version before 7.x

Signed-off-by: Martin Koch <martin.koch@ese.de>
2020-05-13 08:11:30 +00:00
Wim Taymans
9174e5ca20 parser: handle SPA_POD_None() in parser
SPA_POD_None will have a NULL as the destination address of the pod
value, so don't try to write to that.
2020-05-06 15:45:19 +02:00
Wim Taymans
e83bf8a33f log: use printf attribute for log fallback
Fixes #233
2020-05-01 11:18:28 +02:00
Wim Taymans
2220d5b9b6 support: add dummy driver
Add a dummy driver node with high priority. All nodes not linked
to a device node will be linked to this when they require a driver.
2020-04-27 20:21:31 +02:00
Wim Taymans
93211549a4 log: add option to disable line numbers 2020-04-27 11:18:49 +02:00
Wim Taymans
7f271ef982 system: don't use _GNU_SOURCE in public header
Use a forward declaration instead for itimerspec.

Fixes #230
2020-04-24 13:11:32 +02:00
Wim Taymans
03027153e2 system: define _GNU_SOURCE for itimerspec
Fixes #230
2020-04-24 12:54:08 +02:00
Wim Taymans
539be881ba plugin: increment version and avoid inspecting old versions
There are incompatible version 0 plugins around (the compat ones)
that crash spa-inspect. Increment the version number to avoid this.
2020-04-22 17:52:54 +02:00
Wim Taymans
b18dacde9a spa: improve draining
Make a new DRAINED status.
Place the DRAINED status on an input IO when a stream is out of
buffers and draining.
All nodes that don't have HAVE_DATA on the input io need to copy
it to the output io and return the status. This makes sure the
DRAINED is forwarded and nodes return DRAINED from _process()
DRAINED on the resampler flushes out the last queued samples and then
forwards the DRAINED in the next iteration.
Emit a new drained signal from the context when a node returns
DRAINED. Use this to trigger the drained signal in the stream.
2020-04-07 17:58:43 +02:00
Wim Taymans
ce39c6200d node: add comment 2020-04-02 17:44:03 +02:00
Wim Taymans
558a1f0bb2 filter: ENOSPC is the error when we can't deref 2020-04-01 12:56:17 +02:00
Wim Taymans
7a29c15628 enable more warnings
Fix some warnings
2020-04-01 12:51:42 +02:00
Wim Taymans
edd019d539 defs: add SPA_UNUSED 2020-04-01 12:45:11 +02:00
Wim Taymans
de22ca68da filter: return the newly filtered object
Always take the state of the builder to get the newly filtered
object, even in the case there is no filter.

Handle the case where we can't copy the pod in the case of
a NULL filter by reverting the state of the builder.

Rework the function a bit to make it possible to pass a NULL
result (to calculate the required size, for example)

Fixes #226
2020-04-01 12:44:31 +02:00
Dan Shick
2a59ef5146 Fix includes
Fixes #215
2020-03-17 11:46:28 +01:00
Wim Taymans
72d70b0f48 Add and fix some more warnings
Fixes #216
2020-03-17 11:37:56 +01:00
Wim Taymans
cb7bfdf98a sprinkly SPA_LIKELY/UNLIKELY around 2020-03-16 12:52:28 +01:00
Wim Taymans
66f4834df3 param: add dataType buffer parameter
The dataType parameter is a bitmask of allowed data types for the
buffer memory. Make the mask by or-ing all (1 << enum spa_data_type)
you accept/produce.
2020-03-09 12:52:35 +01:00
Wim Taymans
387fcfdc8a pod: add support for flags filter
Add macro to make flags choice from int and long.
Implement the filter for flags by or-ing the flags.
2020-03-09 12:49:14 +01:00
Wim Taymans
7f086da39e monitor: fix copy and paste errors
Remove some leftover stuff from the spa_monitor

Spotted by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
2020-03-06 18:30:34 +01:00
Wim Taymans
8b53ff55d0 param: add one user field to keep state
The this field can be used by apps who keep a copy of the
spa_param_info. They can use it, for example, to keep a counter
with the amount of changes since last processed.
2020-03-06 15:40:53 +01:00
Wim Taymans
d4fcbaa5d1 debug: make function to get short name 2020-03-05 18:18:54 +01:00
Wim Taymans
fef0e17b76 buffer: document memory type when allocating
When allocating buffers the type will contain a bitmask of
allowed types.
2020-03-02 17:28:07 +01:00
Wim Taymans
c3b550478a pod: document that the choice array might have excess elements
The choice array might have excess elements when the type has been
changed, for example by fixation. This is not a problem and the
excess elements should simply be ignored.
2020-02-27 16:23:12 +01:00
Wim Taymans
d43f8011b8 utils: print error in spa_return_*if_fail()
These are really programming errors that need to be logged.
2020-02-25 14:25:00 +01:00
Wim Taymans
cc00e87bdd param: fix types of params 2020-02-25 13:26:31 +01:00
Pantelis Antoniou
634a9558e4 Add a spa_debug_type_find_short_name method
Using the short name of a type without the base part is common enough
that a common utility method is warranted.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
2020-02-21 11:30:49 +01:00
Wim Taymans
bdeeebfdd4 enable and fix -Werror=suggest-attribute=format 2020-02-20 18:20:04 +01:00
Wim Taymans
11086f23ea pod: add and use reserve_bytes helper 2020-02-19 11:02:00 +01:00
Wim Taymans
632c8440f8 builder: pass NULL to _raw to reserve memory 2020-02-19 09:57:57 +01:00
Wim Taymans
2a487d5fdb filter: implement filter with Step
Implement filter between Step and Range as if the Step were a
range, ignoring the step value for now.
2020-02-18 18:04:05 +01:00
Wim Taymans
3fab544d3d resample: add quality property 2020-02-14 20:16:50 +01:00
Wim Taymans
09503f0987 meta: move seq number around for v2 compat
The v2 gstreamer elements use the pts for timestamps so make sure
it is still in the same place as before.
2020-02-11 11:20:40 +01:00
Wim Taymans
95ecbacfe0 meson: install headers in versioned paths
Make sure all headers and plugins are installed in versioned paths
so that we can parallel install versions if we want.
2020-02-05 16:28:22 +01:00
Wim Taymans
5ff970a62e param: add Control param
A control param contains a set of timed events that are applied
in the next cycle.
2020-02-05 10:01:14 +01:00
Wim Taymans
8abbf653e6 pw-cat: Use default channel layout when nothing given
Make channel layout definitions a little more useful. We can now
assign them to a layout_info struct or in the raw_info.
Make some default channel layouts for use in pw-cat
2020-02-04 15:54:57 +01:00
Julian Bouzas
25e81d844a spa: add SPA_PARAM_PORT_CONFIG_control param
Needed for nodes with optional configurable control ports.
2020-02-04 13:25:25 +01:00
Wim Taymans
a4a93a2a16 profiler: Improve profiler info
Split the profiler info into multiple properties.
Give feedback about time and logged samples while profiling.
2020-02-03 12:33:01 +01:00
Wim Taymans
3317af804b pw-profiler: add profiler tool
Add Profiler object and fields.
Add profiler extension API. It notifies Profiler objects with
real-time performance data.
Add module that implements the profiler extension.
Add pw-profiler tool that binds to the profiler API and dumps the
data into a log file, gnuplot files, a html page and a script to
generate svg graphs. This is almost the same as what JACK2
JackEngineProfiling does.
2020-01-31 15:13:47 +01:00
Wim Taymans
43257e8676 graph: make pending/required fields signed
So that we can check for negative value.
Also don't signal incomplete graph when we signaled more than
expected, this can happen when we add new nodes in the current
cycle and then triggered the driver.
2020-01-31 13:36:44 +01:00