Commit graph

2230 commits

Author SHA1 Message Date
Wim Taymans
1acefc00a6 audioadapter: implement reuse_buffer on the slave 2019-07-12 09:51:49 +02:00
Wim Taymans
5334cecf51 node: return ENOTSUP for unimplemented callbacks 2019-07-12 09:51:08 +02:00
Wim Taymans
0e765de519 props: remove pointers in property values in protocol
Mark pointers in property values with pointer: and remove them
when sending the properties over the wire to avoid errors.
2019-07-11 12:52:55 +02:00
Wim Taymans
f8127943cd pulse: update 2019-07-11 11:29:35 +02:00
Wim Taymans
00c2f6fe4f adapter: produce output when we have a monitor 2019-07-11 11:28:26 +02:00
Wim Taymans
6f672c883e node: always call output mix when HAVE_BUFFER 2019-07-11 11:20:04 +02:00
Wim Taymans
a6ce5e7eeb merger: respect DYNAMIC_DATA flag when copy pointers 2019-07-11 11:19:09 +02:00
Wim Taymans
afd6e578a8 audioadapter: we don't need to clear the dynamic flag 2019-07-11 11:15:47 +02:00
Wim Taymans
a9bce3803a cleanups and debug improvements 2019-07-11 11:15:24 +02:00
Wim Taymans
a9cb74f908 alsa: don't clear io area ever 2019-07-11 11:13:53 +02:00
Wim Taymans
d7098d6a4c session: handle monitor in the session
Load the monitor in the session manager.
Export devices to pipewire.
Create nodes or a device in an adapter.
2019-07-10 20:24:11 +02:00
Wim Taymans
1c0bf4266c adapter: fix alias 2019-07-10 19:45:22 +02:00
Wim Taymans
a07fb58a21 adapter: set driver property
Pass the node.driver property from the slave to the adapter.
Set the media-class on the adapter.
2019-07-10 19:18:53 +02:00
Wim Taymans
9364f64b10 adapter: move to SPA plugin
Move the adapter code to a SPA plugin and make the adapter module
use the plugin instead.
2019-07-10 18:04:59 +02:00
Wim Taymans
7f885b6db4 add SPA_SENTINEL 2019-07-09 21:19:53 +02:00
Wim Taymans
c7d7058896 Improve rate matching and clock slaving
Use a new rate_match io area to exhange rate matching info between
sink/source and resampler.
Compensate for the rate match delay when scheduling timeouts.
Let the resampler notify the source of how many samples it needs to
produce the desired quantum. Make sure we keep an extra buffer in
the device to be able to make this possible.
Let the adapter directly call the slave node process function.
2019-07-09 17:44:07 +02:00
Wim Taymans
595dc0ab5b resample: fix phase calculation 2019-07-09 16:54:52 +02:00
Wim Taymans
a3c0bb0e9a module: fix cleanup on error 2019-07-09 16:53:31 +02:00
Wim Taymans
a6a7b3ab54 resample: add functions to calculate in/out length
Add test for this as well
2019-07-08 18:26:08 +02:00
Wim Taymans
0154e6eaac small cleanups
resample: remove unused index variable
2019-07-08 18:23:22 +02:00
Wim Taymans
98d10bbd1f adapter: use slave as filter for adapter
This makes the converter choose the final param and not the
slave, which makes more sense.
2019-07-03 11:06:12 +02:00
Wim Taymans
cb6b8e0d17 adapter: setup control and notify 2019-07-03 11:00:55 +02:00
Wim Taymans
94e7be1845 media-session: use adapter around sink
Don't use the DSP nodes anymore, use the adapter instead and wrap
it around a sink/source.
2019-07-02 17:39:04 +02:00
Wim Taymans
aba81455ff adapter: add adapter node
An adapter is like an audio-dsp node and client-stream combined.
It allows tighter control with the device (for rate control and
variable buffer sizes), software volume.

The idea is to also implement the client-stream with this
eventually.
2019-07-02 17:34:26 +02:00
Wim Taymans
0726a608df Improve debug and small cleanups 2019-07-02 17:11:45 +02:00
Wim Taymans
170c3e4d6c small cleanups 2019-07-01 09:31:15 +02:00
Wim Taymans
5833b7b2a7 client: remove recursive permissions checks
Don't let permissions of an object influence the child permissions,
this is not so easy to manage and needs some more thought.
The result is now that it's possible to see a reference to a (parent)
id that is not visible, but that's ok.
2019-06-28 12:18:10 +02:00
Wim Taymans
57879cc801 cli: improve help message 2019-06-28 09:35:36 +02:00
Wim Taymans
428e743116 core: emit info when not binding resource 0 2019-06-28 09:35:11 +02:00
Wim Taymans
bee88e5279 v4l2: handle and recover from control failure
When we fail to construct the labels of a control, reset and
continue without labels.
2019-06-26 07:23:34 -04:00
Wim Taymans
891c5fd79d builder: make _rewind part of _reset()
_reset() should also rewind the work that has been done. We don't
need _rewind() anymore then.
2019-06-26 12:45:36 +02:00
Wim Taymans
350e8051a7 builder: add _rewind method
Add a rewind method to undoes the data of a frame.
Add unit test for overflow and rewind
2019-06-26 12:17:01 +02:00
Wim Taymans
15b6c7ef7e v4l2: warn when control fails 2019-06-26 06:13:25 -04:00
Wim Taymans
f19ca292e8 builder: take size of the frame
spa_pod_builder_frame() should return the position in the builder
memory or NULL when the frame doesn't fit. Check the size of the
frame instead of assuming the frame is already written to the
buffer.
2019-06-26 05:21:37 -04:00
Wim Taymans
bb60708ccc pod: _builder_deref() always works with builder size 2019-06-26 05:16:44 -04:00
Wim Taymans
76956eb41c module: don't free properties twice on error 2019-06-25 17:40:03 +02:00
Wim Taymans
49c4355507 fix build 2019-06-24 17:18:44 +02:00
Wim Taymans
cbe3a88397 evl: add build option 2019-06-24 09:45:22 +02:00
Wim Taymans
ffaa365bef Add evl system support
Add system functions that can execute on the evenless Real-Time
subsystem. https://evlproject.org/
Enable this plugin as the system library for the data thread and
all poll/timerfd/eventfd will execute on the evl subsystem.
2019-06-24 09:42:05 +02:00
Wim Taymans
9934e62fe4 don't use error() 2019-06-21 16:14:36 +02:00
Wim Taymans
6720ded529 names: add standard factory name definitions
Define a set of standard factory names and document what they
contain. This makes it possible to change the implementation by
mapping the factory-name to a different shared library.
2019-06-21 13:31:34 +02:00
Wim Taymans
4494f9c7c9 log: use temporary log first
Use the default log implementation as a default log until a more
complete one is installed. This way we get log early.
2019-06-21 13:29:52 +02:00
Wim Taymans
5b7e95c71c system: make system functions return error on error
Return -errno from system functions instead of -1 in errors. This
makes it easier to pass along the result without having to go to
errno etc..
2019-06-20 17:31:29 +02:00
Wim Taymans
03eeb945f3 daemon: add support for properties in the config file
Make a set-prop command to set a property from the config file
into a pw_properties. Pass this to the pw_core_new() and the
main-loop to tweak some stuff.

Move some warns to errors
2019-06-20 15:19:28 +02:00
Wim Taymans
85caf0b485 command: move command to the daemon 2019-06-20 11:09:58 +02:00
Wim Taymans
a212d2f9ed improve error handling some more 2019-06-20 11:04:34 +02:00
Wim Taymans
d1241e2c1c improve error handling
Make sure we free properties we take ownership of.
Add some more return values to functions that can fail.
2019-06-19 18:15:04 +02:00
Wim Taymans
00ea15dc1f improve error handling 2019-06-19 16:22:22 +02:00
Wim Taymans
c4f35825fe protocol: improve error handling 2019-06-19 11:06:10 +02:00
Wim Taymans
216b641ebb connection: add do_close flag to connect_fd
Make pw_remote_connect_fd() not automatically close the provided
fd but let the caller take care of that. This allows us to reuse
the fd in pipewiresrc.

Fixes #155
2019-06-19 11:05:58 +02:00