Commit graph

862 commits

Author SHA1 Message Date
Wim Taymans
83b5765bbd list: fix spa_list_last 2017-09-15 13:29:17 +02:00
Wim Taymans
78ebe2b76e Small cleanups
Use client properties to get the remote name to connect to.
Allow NULL values in properties and make sure they are copied
correctly.
2017-09-11 15:44:03 +02:00
Wim Taymans
c72d797dde Fix crash on shutdown
Sometimes we insert NULL into the client object map to mark the object
freed. Now that the map also returns those NULL's, don't try to free
them.
Small cleanups
Make some port methods private.
2017-09-11 09:48:13 +02:00
Wim Taymans
f03d229467 node: be more clever when updating ports
When updating the node ports, handle the case where ports are already
added as well as removed ports.
2017-09-08 16:44:51 +02:00
Wim Taymans
dc85a79786 Add more generic export-spa example
Replace the v4l2 example with a more generic version that can add
any spa node to a remote graph
Make the dictionary items const
Add some info to nodes and factories. Add the node info to the node
properties. We can then set the media.class directly on the node,
instead of letting the monitor set it.
Debug node info in spa-inspect.
Do async operation on the audiotestsrc and videotestsrc differently.
2017-09-07 19:55:22 +02:00
Wim Taymans
21cd5a2918 Add example to play sine wave
Various build fixes and cleanups
Move port_add to private and make node ports based on implementation.
Improve pull based scheduling on remote nodes
2017-09-07 10:22:32 +02:00
Wim Taymans
36ac8a6545 update docs 2017-09-05 13:35:25 +02:00
Wim Taymans
7ef1a1d107 Add target to publish API docs 2017-09-05 09:42:02 +02:00
Wim Taymans
ebea63ad0a client: set ucred properties 2017-09-04 20:25:44 +02:00
Wim Taymans
3334ed73ae Set theme jekyll-theme-slate 2017-09-04 19:55:46 +02:00
Wim Taymans
914fe5c2b7 jack: filter formats
filter jack formats in enum_formats
Fix some crashes and cleanups
2017-09-04 13:18:49 +02:00
Joakim Johansson
be7a06f9b0 stream: Stream is closing the same fd several times
Several memid's are connected to the same fd and when clearing the
memid shall the fd only be closed once.
2017-09-04 11:10:36 +02:00
PrasannaKumar Muralidharan
f6d480fdfd Fix memory issues reported by clang static analyzer (#7)
* Fix use after free in error path

Memory pointed by 'handle' is used in error path but it is freed before jumping to interface_failed. Remove the wrong free. Memory pointed by 'handle' gets freed in the error handling path.

* Free 'bus' when dbus_bus_get_private fails

If dbus_bus_get_private fails memory pointed by 'bus' is never freed. Free it.

* Free 'impl' if dbus_bus_get_private fails

When dbus_bus_get_private fails the memory pointed by 'impl' is not freed. Free it.
2017-09-04 11:09:45 +02:00
Marcos Paulo de Souza
ff363cc7bf spa/include/meson: Install hook.h (#11)
When compiling some application and include spa/loop.h, it needs hook.h,
so install it.

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
2017-09-04 11:09:18 +02:00
Marcos Paulo de Souza
b0c3936477 Fix clang warnings about comparing uint32 < 0 (#10)
* Fix clang warnings about comparing uint32 < 0

clangs complains about an uint32 compared to < 0:
warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]

So remove these comparisos and an uint32 never will be less than 0.

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>

* module-jack.c: Differentiate error msg from protocol-native

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
2017-09-04 11:09:08 +02:00
Wim Taymans
6afcb4981f link: improve introspection 2017-08-27 17:58:25 +02:00
Wim Taymans
174d34ada6 fix a socket leak
Let the loop source free the sockets.
Free the write fd in the stream.
2017-08-27 13:14:34 +02:00
Wim Taymans
577f86be0d graph: use spa_node as implementation
Always use a spa_node as the graph implementation, implementing the
methods is just as easy.
Plug some mem leaks in remote
2017-08-27 12:12:14 +02:00
Wim Taymans
6953642ed5 small cleanups 2017-08-27 09:16:03 +02:00
Wim Taymans
28ae844de9 node: always use a spa_node as the implementation
Avoid duplicating API, remove implementations from port and node and
always use an spa_node as the implementation, it's just as easy to
implement a spa node. With the implementation always being a spa_node
we will be able to better implement the negotiation of the mixers.
2017-08-25 19:02:27 +02:00
Wim Taymans
b7b80683bc jack: work on mixing 2017-08-25 10:01:04 +02:00
Wim Taymans
68f5c05b9f back to development 2017-08-23 13:31:24 +02:00
Wim Taymans
b7e334e55d Release 0.1.4
Remove spec file
Fix systemd service file
Send error on link errors
Init socket to -1 so that we don't close anything on error
Wait for all proxy objects in device monitor
2017-08-23 13:22:39 +02:00
Wim Taymans
5cc4c5c378 core: fix leak 2017-08-23 10:32:38 +02:00
Wim Taymans
61e7218006 protocol: destroy clients
Destroy clients before destroying the protocol
2017-08-23 10:19:19 +02:00
Wim Taymans
cc95f975ce link: fix memleak
Don't leak the buffers, handle ownership of them just like we do with
the buffer memory.
2017-08-23 09:42:09 +02:00
Wim Taymans
80cf20a255 monitor: fix some leaks 2017-08-22 19:22:04 +02:00
Wim Taymans
c25834a692 Work on cleanup
Add signal handlers for daemon to shut down
Add destroy listeners for modules and do cleanup
Fix some leaks
Simplify port registration in new nodes
Hide some more data structures
Let the node implementation take care of the reuse_buffer signal because
then we can get to the graph nodes to find the destination port.
Destroy modules in core cleanup. Modules should undo everything they
have done.
Activate the link after we negotiated format and buffers.
2017-08-22 18:30:10 +02:00
Wim Taymans
12e2fae8ab jack: add midi format
Add midi format
Handle ore requests
Clean semaphore and socket names
2017-08-21 20:19:09 +02:00
Wim Taymans
1fc7c6de59 jack: only remove node when we added it before 2017-08-21 16:36:37 +02:00
Wim Taymans
fca6808419 jack: improve activate/deactivate
Add the nodes from the RT thread.
Handle non-realtime clients, we don't need to signal them
do some sort of latency callbacks
Don't do callbacks for clients without a handler.
2017-08-21 12:07:33 +02:00
Wim Taymans
bece3a013b Make scheduler more generic
Add some callbacks to trigger push and pull in a graph
Remove the scheduler, make some implementations of graph push/pull
functions.
Add some properties to jack clients and nodes
Fix the parent of the clients.
Notify link format changes
2017-08-20 18:33:07 +02:00
Wim Taymans
eba2b82c8e graph: fix the API a little
Add test for atomic graph updates
2017-08-18 18:54:45 +02:00
Wim Taymans
c3d63983e1 alsa: don't read timerfd when stopped
We only start the timerfd when we are started
2017-08-18 18:53:45 +02:00
Wim Taymans
60866fc7cd jack: notify graph changes from main thread 2017-08-18 18:48:22 +02:00
Wim Taymans
593df62ccc update spec 2017-08-17 19:42:10 +02:00
Wim Taymans
29eb58f7a2 Add systemd socket activation files
Notify of jack graph changes
2017-08-17 18:59:03 +02:00
Jonas Ådahl
61424a4343 stream: Add pw_stream_get_node_id()
Adds API to get the node ID of the stream.
2017-08-17 15:50:52 +02:00
Wim Taymans
560e02ef11 jack: handle port disconnect 2017-08-17 09:45:36 +02:00
Wim Taymans
b7647e80d3 jack: work on cleanup 2017-08-16 17:11:37 +02:00
Wim Taymans
8f7a19f2e3 examples: fix some leaks 2017-08-16 13:32:08 +02:00
Wim Taymans
27f811d726 jack: move more stuff to nodes and ports
Improve cleanup and registration of jack clients
2017-08-16 12:43:06 +02:00
Wim Taymans
5e593563af port: add events for add/remove of link 2017-08-16 12:41:28 +02:00
Wim Taymans
2cb1590859 cleanups 2017-08-16 12:39:13 +02:00
Wim Taymans
4731a0b4b8 More work on jack support 2017-08-15 11:02:42 +02:00
Wim Taymans
288d944579 autolink: fix crash 2017-08-11 20:23:40 +02:00
Wim Taymans
9ad1f911b2 Improve loop callbacks
Pass just one data item to the callbacks.
Add properties to port.
Add user data to link
Handle autolink with multiple ports
More work on jack support
2017-08-11 19:21:31 +02:00
Wim Taymans
cfd9967637 Back to development 2017-08-09 10:26:51 +02:00
Wim Taymans
35929dd4d8 Release 0.1.3 2017-08-09 10:20:14 +02:00
Wim Taymans
674ab5f916 update spec 2017-08-09 10:07:02 +02:00