Commit graph

689 commits

Author SHA1 Message Date
Wim Taymans 1acba78234 API cleanups
Fix docs
Add some more versions to interfaces
Make types for the various proxy object + inline methods that does type
checking and create proxys etc.
Set owner client of client-nodes in the properties
Pass type to bind to in create-node
Don't place global id in the info structs
Improve registration of marshal functions
Pass more types around as ids
2017-07-18 10:06:40 +02:00
Wim Taymans 465f12241e Implement protocol extensions
Add hooks that contain protocol specific interfaces that can be used
to extend the protocol. This makes it possible to add new interfaces
to the protocol and implement the protocol specific data transport.
Move these protocol specific extension to the extensions directory.
2017-07-12 18:04:00 +02:00
Wim Taymans 267547c884 memory leak fixes 2017-07-11 20:54:10 +02:00
Wim Taymans 83b4eaca53 Pass some more properties around
Only start listener when core is a daemon.
2017-07-11 20:38:48 +02:00
Wim Taymans 4f9d631910 Add version to more methods 2017-07-11 19:50:26 +02:00
Wim Taymans f7e9e0c33a pass the global type as an id instead of string 2017-07-11 18:41:22 +02:00
Wim Taymans d1655196c3 move things around 2017-07-11 16:08:22 +02:00
Wim Taymans 847cef83b6 Work on unifying client and server
Remove context and extensions, make client API also use the core.
Make a new pw_remote object that keeps connections with remote
instances.
Remove introspection API, it's just as easy to connect to the registry
and get updates like that.
Expand the protocol a little to make it useful for making listeners
and connections.
Move protocol specific connection to the module. Make some new
convenience methods.
Make a factory to create nodes from spa objects
Add an example of a local pipeline displaying a v4l2 source.
2017-07-11 12:40:01 +02:00
Wim Taymans 2ece95ea48 node: max_ports 0 already means no ports 2017-07-07 18:02:23 +02:00
Wim Taymans 0738f7fcf5 Rework node and ports
Rework the node and port API so that other implementations can be used
than the spa_node. The plan is to morph this into the stream and
context API.
Rework the graph API a little so that init + add is separated.
2017-07-07 17:55:26 +02:00
Wim Taymans b0f5d34cf7 back to development 2017-07-04 15:55:39 +02:00
Wim Taymans a3523047c7 Release 0.1.2 2017-07-04 15:09:46 +02:00
Wim Taymans 18c702be06 spec: add graphviz for dot graphs 2017-07-04 12:26:09 +02:00
Wim Taymans da94f65493 fix some compiler warnings 2017-07-04 12:21:01 +02:00
Wim Taymans 65d17ab6fe node: set port state when suspending 2017-07-04 12:03:15 +02:00
Wim Taymans 40675fec9f spec: add more buildrequires 2017-07-04 11:43:08 +02:00
Wim Taymans 85628926bb build fixes 2017-07-04 11:38:12 +02:00
Wim Taymans 8886f5d373 build fixes 2017-07-04 11:30:49 +02:00
Wim Taymans 4558073da6 introspect: improve node introspection 2017-07-04 11:08:40 +02:00
Wim Taymans 7cccede185 fix some segfaults and lockups 2017-07-04 10:50:53 +02:00
Wim Taymans 791137e9e5 loop: fix ringbuffer handling 2017-07-04 10:18:24 +02:00
Wim Taymans 9fa1df6f2c link: work on activate/deactivate
Recursively activate links when activating nodes
2017-07-03 17:34:30 +02:00
Wim Taymans d2f877912a Use graph to schedule things
Make real spa_graph nodes and ports and schedule those. This makes
it possible to add explicit tee and mixers in the real graph.
Rework the way we add and remove ports and nodes from the graph.
Remove confusing pw_port_link and merge core with pw_link_new()
Move scheduling in separate files, add some more graph-schedulers.
2017-06-30 19:36:39 +02:00
Wim Taymans 7297c18839 Cleanups 2017-06-29 12:53:10 +02:00
Wim Taymans a1fdfdc818 link: streamline state changes a little
port: add methods for things that can change the port state.
2017-06-29 12:05:03 +02:00
Wim Taymans 83e65c31ab graph: improve API a little
Node allow linking to multiple inputs when there is a mixer.
2017-06-29 09:31:50 +02:00
Wim Taymans 9ee0cd7d8d fix last_port 2017-06-28 16:53:10 +02:00
Wim Taymans d8cac792f4 spa: small performance fixes 2017-06-28 16:33:11 +02:00
Wim Taymans 387dee3237 update 2017-06-28 11:56:22 +02:00
Wim Taymans 407ee01437 fix build 2017-06-28 09:48:05 +02:00
Wim Taymans fade5396c5 Fix build for jack 2017-06-28 09:11:05 +02:00
Wim Taymans 7fbe811a03 audiomixer: separate mixer functions 2017-06-27 17:48:34 +02:00
Wim Taymans c14d727ae5 interfaces: cleanups 2017-06-27 14:07:35 +02:00
Wim Taymans 5f5ef3de2c stream: add node_id in stream
Trigger initialized after we created the node global so that we
can get its id.
Add the server side node_id for the stream in the stream struct.
Change the transport function to pass the node_id to the client.
Small cleanups
2017-06-27 13:24:37 +02:00
Wim Taymans 58b97c8708 back to development 2017-06-26 13:26:46 +02:00
Wim Taymans 5b2745498e Release 0.1.1
spec: updates
2017-06-26 13:13:21 +02:00
Wim Taymans 2c6b2f0b74 Add beginnings of jack module
Update spec and makefile a bit
2017-06-26 13:04:47 +02:00
Wim Taymans bc56c59597 loop: add block flag to invoke
Remove async shutdown and block instead.
2017-06-26 10:41:19 +02:00
Wim Taymans e776425846 flatpak: remove hardcoded check 2017-06-23 13:17:17 +02:00
Wim Taymans c391e5088a ringbuffer: simplify 2017-06-22 09:49:12 +02:00
Wim Taymans 5c82a03ae5 video-src: don't set timestamps
Don't set timestamps on the source, because we don't provide a clock,
the consumer part doesn't know how to sync to the timestamps.
2017-06-22 08:51:44 +02:00
Wim Taymans 0fc6b1c0be fix some valgrind issues 2017-06-21 16:42:10 +02:00
David Svensson Fors 2b8aea7e9b pipewiresrc: don't clear buf_ids in close
buf_ids have to be kept so on_remove_buffer can remove them
if it happens after close.

Change-Id: I4b85918f17b8bee8c6cb4462d21b38906941e724
2017-06-21 15:14:57 +02:00
Wim Taymans 937a1567dd stream: constify format array because we copy 2017-06-21 15:14:25 +02:00
David Svensson Fors 834da99c7c pipewiresrc: plug leaks
Change-Id: If476d21c7a26abd2e905035af4969efb23b6ec4e
2017-06-21 15:09:54 +02:00
David Svensson Fors cd9a71d7e6 client: clear types map in destroy
Change-Id: Ic16063bdf127c3387b027a19f3406b4687372aa5
2017-06-21 15:08:58 +02:00
David Svensson Fors 412249b6ed Fix SPA include paths
Change-Id: If21f43ed7b374b82c9a89a371760eaa93d870e8a
2017-06-21 15:07:45 +02:00
David Svensson Fors 984c536a93 stream: remember mmap address
For munmap in clear_memid(), we need to remember the address in
mid->ptr.

Change-Id: I72195bfb61a1d63aa72ffb21619d888dec85bc13
2017-06-21 15:07:03 +02:00
David Svensson Fors bef8d91d72 stream: close rtwritefd
rtreadfd is added as IO in the context loop, and closed when that loop
is torn down. But rtwritefd is only used by the stream, and needs to
be closed when the stream is destroyed.

Change-Id: I7cdd623290933b2aff861003fdf1f390ff566a49
2017-06-21 15:03:19 +02:00
David Svensson Fors 879057c565 pipewirecore: Add pc file
This is useful for building out-of-tree PipeWire modules.

Change-Id: I47507349201067f01164d8ba8b95bc4ee422d082
2017-06-21 15:02:44 +02:00