Commit graph

547 commits

Author SHA1 Message Date
Wim Taymans
17cc9d2039 add media session example beginnings
Add an example media session that runs as a separate program instead
of a module
2018-08-09 11:07:41 +02:00
Wim Taymans
ca898a00db work on separating port mixers
Make it possible to assign an arbitary node as the port mixer.
Also remove dynamically added ports.
Improve negotiation and allocation on the mixer ports
Add some more SSE optimisations
Move float mixer from the audio dsp to the port
Remove pw_node_get_free_port() and do things more explicitly.
Handle mixer ports in client-node
2018-07-31 12:23:35 +02:00
Wim Taymans
bdeedad1d6 auto-link: remove obsolete module 2018-05-17 17:21:07 +02:00
Wim Taymans
8fcf27848f config: fail when something fails 2018-05-14 13:07:55 +02:00
Wim Taymans
e02b3181da audio-session - >media-session
Also implement video in the media session
Small cleanups
Improve exclusive mode
2018-05-14 13:07:01 +02:00
Wim Taymans
eb96ed45d7 move audio-dsp to audio-session
Make a new module audio-session that manages clients and what audio
sessions they use.
Move the audio-dsp to the audio-session
2018-05-08 10:45:50 +02:00
Wim Taymans
4f680c224b make per mix port io and buffers
Move the io areas to a separate memory block.
Make per link io areas for the ports
Send per mix port io area and buffers
2018-04-03 16:29:36 +02:00
Wim Taymans
ebac77f4e4 conf: add some commented out modules
The link-factory allows the client to create links between ports.
The audio-dsp module creates dsp ports (float32, mono) for each
audio sink and source.
2018-02-27 12:53:05 +01:00
Wim Taymans
72e98dc74a load rtkit module by default 2018-02-08 10:04:13 +01:00
Wim Taymans
1ed63e7ba0 add commented line for bluez5 monitor 2018-01-23 13:16:47 +01:00
Wim Taymans
4d6ac37398 Use int instead of bool as result
Prefer to use an int return from a function instead of bool because
it can contain more info about failures.
2017-12-18 11:38:30 +01:00
Wim Taymans
1ace2a5daf make systemd dependency optional
Don't recurse into the directory of systemd when it was not found.
There are still some issues because libudev is actually provided
by systemd these days and we still need that for building the v4l2 and
alsa monitors.
2017-12-14 09:30:34 +01:00
Wim Taymans
58f086b165 Release 0.1.7 2017-11-24 17:02:04 +01:00
Wim Taymans
f3bca48398 Unify props, params and formats
Make enum_params and set_param to configure properties, format
and other parameters. This allows us to remove some duplicate
code and make the properties and parameters much more extensible.
Use the object id to mark the id of the parameter.
Remove the spa_format and spa_props.
We can now make the client-node easier by merging the various
format methods into the params.
Make the stream API more powerful now that we can pass params
around.
2017-11-07 17:48:40 +01:00
Wim Taymans
5fec60078d Release 0.1.6 2017-11-03 12:40:03 +01:00
Wim Taymans
2e379d5f8f back to development 2017-09-19 12:17:36 +02:00
Wim Taymans
0d44a34b4c Release 0.1.5 2017-09-19 11:25:38 +02:00
Wim Taymans
93a52f4837 Simplify node activation
Don't directly expose the state change methods. Only expose an activate
method for nodes that indicates if the node should be scheduled or not.
Let the link automatically negotiate two active nodes.
Make some defines for properties.
Use link property to make passive links. Passive links don't activate
the nodes.
Make sure the mainloop quits when quit is called before run.
2017-09-18 20:42:55 +02:00
Wim Taymans
2ca25e5bf4 Small cleanups
Improve debug
Fix core info event, pass the copied info around in remote.
2017-09-15 14:47:54 +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
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
b7b80683bc jack: work on mixing 2017-08-25 10:01:04 +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
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
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
Wim Taymans
35929dd4d8 Release 0.1.3 2017-08-09 10:20:14 +02:00
Wim Taymans
eeda53dbef Fix leaks
Add some docs
Add properties to loop objects for future use
2017-08-08 18:24:15 +02:00
Wim Taymans
b898eb46cd Make structure private
Make structs private. Expose methods for things we need.
Signals only work on exposed structures so make a new callback helper to
signal events.
2017-08-04 10:18:54 +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
83b4eaca53 Pass some more properties around
Only start listener when core is a daemon.
2017-07-11 20:38:48 +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
cdb2028f9b src -> pinos and fix include paths
Rename src to pinos and fix all the include paths so that they contain
pinos/ to avoid conflicts
2016-02-01 15:40:48 +01:00
Wim Taymans
d8067da158 Add po files and desktop.in 2015-09-04 17:10:48 +02:00
Wim Taymans
31da833069 properties: pass PinosProperties around
Pass PinosProperties around instead of GVariant. This is much easier to
deal with.
2015-07-17 16:57:01 +02:00
Wim Taymans
a3505fb880 more rename PV -> PINOS, Pv -> Pinos, pv -> pinos 2015-07-07 16:46:23 +02:00
Wim Taymans
4b72848a1a Rename pulsevideo to pinos 2015-06-30 18:06:36 +02:00
Wim Taymans
f50d1548d5 Add more generic gst source manager object
Use device manager to add/remove all video providers dynamically, remove
v4l2 specific code.

Get the client proxy from subscribe instead of waiting for the
subscription callback. This way we can actually make an error on
failure.

Clean up the objects when the server disappears.

Remove subscription from the server, we don't need it. Install server
objects in bus_acquired.
2015-05-21 16:49:26 +02:00
Wim Taymans
d9444ab360 Make source and source-output server side only
Move source and source-output to the server side again.
Make the daemon track objects per sender so that we can remove them
when the sender disappears.
2015-05-05 18:20:32 +02:00
Wim Taymans
592e99a317 Add gstreamer source element
Add a source gstreamer element
Expose error in context
Make it possible to set the source in the error state
Add properties to a stream and use those to get a source-output
Fix signal for new-buffer
Attach the socket source to the thread default mainloop
Make subscribe cancellable.
Propagate state and error in context.
Add bus handler for v4l2 source
Use negotiated properties to set capsfilter in v4l2
Fix subscribe in test-client
2015-04-28 17:36:44 +02:00
Wim Taymans
417cd76f3e subscribe: rework some more
Track senders in the subscribe object and aggregate events from all
connected clients. This allows each client to get a complete view of all
the objects of pulsevideo. With all the source objects available, we can
then to the selection of the source on each client.

Remove the CreatSourceOutput on the Client1 object but let the client
select a good source and call CreateSourceOutput directly on the source.
This avoid going through the server to get a connection and the client
can just as well select a source.
Add a state property to the source and make it such that it can do async
state changes.

Remove the source provider object, each client can now directly see the
objects of another clients so there is no need for intermediate objects
in the server.
2015-04-27 09:05:14 +02:00
Wim Taymans
09de2d3db9 handle remote and local sources better
Track remote and local sources separately and make SourceProvider1
interfaces for remote objects so that we get the subscription right.

Move disconnect from the Manager1 to Client1 interface and implement
in the context.
2015-04-20 17:24:58 +02:00
Wim Taymans
8b02c9040a pulsevideo: add gstreamer elements
Add custom gstreamer elements to pad/depay
Add pv_init() to register new elements
2015-04-16 19:45:26 +02:00
Wim Taymans
3fba92fb74 Initial commit 2015-04-16 16:58:33 +02:00