Commit graph

2202 commits

Author SHA1 Message Date
Wim Taymans
9ce2c6157f client-node: fix v0 data offset
Set the right data offset for v0 clients.
2020-02-11 15:15:20 +01:00
George Kiagiadakis
db734a952d pkgconfig: require libspa on the libpipewire pkgconfig file
pipewire/pipewire.h directly includes spa headers, so libspa
is an implicit dependency that must always be required
2020-02-11 14:01:52 +00:00
Wim Taymans
d52df30c88 pipewireclock: use the monotonic time for now
Don't try to use the ticks for the clock but use the monotonic
timestamp instead.
2020-02-11 13:08:04 +01:00
Wim Taymans
b7f249c389 port: fix compilation 2020-02-11 12:14:23 +01:00
Wim Taymans
cd77ceebbc impl-port: warn and not crash when spa-node has no properties
When a spa-node tells us it has updated properties but then gives
us a NULL pointer, emit a warning instead of crashing.
2020-02-11 12:06:59 +01:00
Wim Taymans
293932d4ec v0: improve compatibility
Implement RequestClockUpdate event and ClockUpdate message for
old clients.
2020-02-11 11:23:28 +01:00
Wim Taymans
c12f2276c4 stream: streams are always live for now. 2020-02-11 11:22:52 +01:00
Wim Taymans
7edd3fb054 typemap: fill out more audio formats 2020-02-10 20:46:18 +01:00
Wim Taymans
eab6dda513 protocol-native: improve v0 compatibility 2020-02-10 18:15:24 +01:00
Wim Taymans
651013bfab Revert "buffers: set stride in buffer data chunks"
This reverts commit b3c4eecea7.

The provider of the buffers should really set the fields in the
chunk such as the offset, size and stride.
2020-02-10 16:55:02 +01:00
Wim Taymans
b3c4eecea7 buffers: set stride in buffer data chunks
v2 clients expect the stride to be set, even when the sender doesn't
set it.
2020-02-10 16:29:23 +01:00
Wim Taymans
56c15ca9e8 connection: improve version check
do the version check on the v2 update_types request or the v3
hello request.
2020-02-10 16:26:24 +01:00
Wim Taymans
d2e7f75071 resource: destroy old core_resource
If there is already a core_resource when we are going to make a new
one, remove the old one. This can happen when there is a version
switch.
2020-02-10 16:22:49 +01:00
Wim Taymans
03844d6c72 rtkit: add parameters for prio and rlimits
Make it possible to configure the prio and rlimits on the
rtkit module.
Set the defaults to the max.
2020-02-10 10:43:31 +01:00
Wim Taymans
40db445f3d rtkit: actually wake up the thread to set rt priority
Wake up the eventfd in the data thread to actually request the
realtime priority.
2020-02-08 22:47:18 +01:00
Wim Taymans
087448ff0f stream: set param id
The param id in the object is used to filter on the server so make
sure it is set in the object correctly.
2020-02-08 21:54:24 +01:00
Wim Taymans
ee67ab9c04 client-node: keep target links in list
Don't allocate the links in an array because they might be moved
when the array is resized. Instead just use calloc and add them
to a list.

Make sure we update the list used in the real-time thread from a
safe context.
2020-02-07 16:45:58 +01:00
Wim Taymans
a1bb1548e6 tests: msg is undefined when _get_next() return != 1 2020-02-07 15:40:28 +01:00
Wim Taymans
4d143c5751 command: fix load-module arguments
Reparse the arguments and pass all the remaining strings after the
module name as one arguments string.
2020-02-07 13:25:19 +01:00
Wim Taymans
88c6db8a82 policy-node: give more priority to newer video output nodes
A slight workaround for old firefox that doesn't specify the target
node, nor the media role when doing screen sharing.
2020-02-06 17:42:52 +01:00
Wim Taymans
3aa8e301c5 protocol-native: implement v2 update_permissions
Convert the old permission update to new permission events.
2020-02-06 16:57:24 +01:00
Wim Taymans
7a395bccaf improve v2 compat mode
Always send the server types when we got the first client types and
don't rely on the message sequence number.
Add some more types in the typemap.
2020-02-06 16:56:19 +01:00
Wim Taymans
b2dfa83052 pw-cat: print channelmap in verbose mode 2020-02-06 16:50:59 +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
d0f69e44cd command: add -ifexists option to load-module
If the module doesn't exist, the error is ignored.
2020-02-05 13:01:13 +01:00
Wim Taymans
8b6a163233 context: set defaults as properties on the context 2020-02-05 11:50:22 +01:00
Wim Taymans
41b47e726e context: add some more defaults
Make a property to allow mlock and use it.
mlock in stream and filter when asked to mmap mem.
2020-02-04 17:09:41 +01:00
Wim Taymans
dcec3f12b5 remote-node: safely activate and deactivate a link
Make sure we execute the admin of the target links in the data
thread.
2020-02-04 16:29:48 +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
Wim Taymans
1cce9a69c8 pw-cat: add channel-map option and option to delay connect
If the target node is set to 0, remove the autoconnect flag. This makes
the session manager disable stream autoconnect and some other program
needs to connect the stream to a sink or node.

Use the channelmap from the file, if available.

Add option to specify/override the channel map for playback.
2020-02-04 11:45:45 +01:00
Wim Taymans
f79dfcd77f profiler: fix method prototype 2020-02-03 16:44:09 +01:00
Wim Taymans
64391f1ed5 profiler: avoid negative times 2020-02-03 13:14:56 +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
bdad7d87f9 global: fix comment and use constant for core id 2020-02-03 12:32:17 +01:00
Wim Taymans
ef965dfc23 meson: install profiler extension 2020-01-31 17:59:30 +01:00
Wim Taymans
6f31a16024 pw-profiler: add some more driver measurements
Add estimated period
Add reported driver delay
2020-01-31 17:56:00 +01:00
Wim Taymans
8b303361d8 pw-profiler: avoid copying invalid values 2020-01-31 16:31:35 +01:00
Wim Taymans
afdb6586b5 pw-profiler: various improvements
Small cleanups.
Print some useful status info.
Fail when there is no Profiler API found.
Only log data from the first driver we find.
2020-01-31 16:03:05 +01:00
Wim Taymans
f7ed9a5ca7 context: clamp default qantum to min and max
When min or max is set in the config file, make sure we clamp the
default to it as well.
2020-01-31 15:49:40 +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
5a47652dc2 node: emit driver start on completion of the graph.
This gives better info about the elapsed cycle.
2020-01-31 13:38:46 +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
Wim Taymans
cd21f5292b context: emit events for driver
Make new private events to monitor the state of driver nodes. This
can be used to implement profiling.
2020-01-30 17:21:33 +01:00
Wim Taymans
9f0c5d403e node: collect sync_timeout and use smallest
Collect all sync_timeout values from the clients and use the
smallest one as the timeout.
2020-01-30 11:48:24 +01:00
Wim Taymans
7450bfd88b Improve mlock failure warning message 2020-01-29 11:07:26 +01:00
Wim Taymans
b4c76ba78a policy-node: only set PortConfig when we find a format 2020-01-28 15:38:35 +01:00
Wim Taymans
d2d1647634 media-session: fix cleanup of objects
Don't free the proxy twice in some cases.
2020-01-28 15:38:11 +01:00
Fabrice Fontaine
281e61735b properties.h: include stdarg.h
Include stdarg.h to avoid a build failure on uclibc due to va_list

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2020-01-28 15:10:41 +01:00
Wim Taymans
ed13cd2ec8 pw-cli: improve help 2020-01-28 13:04:21 +01:00
Wim Taymans
1c6ce1778b pw-cli: handle NULL when iterating globals
It is possible that the global map contains holes and then the
pw_map item has NULL data.
2020-01-28 12:55:01 +01:00