Commit graph

73 commits

Author SHA1 Message Date
Wim Taymans
25b7ede0bc uri -> type
Clean up some more types.
2017-03-24 13:11:57 +01:00
Wim Taymans
5825c62d6d types: more work on types 2017-03-24 11:40:58 +01:00
Wim Taymans
acedfe71c0 clean up types 2017-03-23 21:15:52 +01:00
Wim Taymans
e28b5f91b8 props: make properties dynamic keys and values 2017-03-23 12:38:00 +01:00
Wim Taymans
7270986c3a monitor: use dynamic types
Make the monitor item a POD object and use dynamic types.
2017-03-23 08:54:04 +01:00
Wim Taymans
f92b68c3c3 Use types with known sizes where we can, easier to serialize
Add iterator for POD and use it to implement some demarshalling.
2017-03-07 11:56:43 +01:00
Wim Taymans
710a1a41e6 Improve negotiation
Fix selection of the default property value by restricting it to
something in the valid range of the property.
Fix audio/videotestsrc reuse
Fix format enum with filters.
Fix module property configuration
Fix connection refill
2017-03-01 14:07:02 +01:00
Wim Taymans
dbae2e3f96 rework props with pod 2017-02-27 21:25:33 +01:00
Wim Taymans
1370fafd5b Fix renegotiation
When we are idle and are asked to negotiate, suspend first so that we
can do full negotiation again instead of using the old format.
Stability fixes.
2017-02-02 17:48:39 +01:00
Wim Taymans
b38ecafe81 Use int counters for iterating items
Use counters instead of void* to iterate items. This simplifies some
things and makes it easier to do over the wire.
Add format description to NodeInfo and use this to add format
descriptions to pinos devices.
Small fixes to fix leaks and crashes.
2017-02-01 08:58:21 +01:00
Wim Taymans
4b55d7c4da Fix proxy ids
The proxy/resource ids are generated by the client and so we need to
used them as index in the client resource map instead of making our own
number.
Fix stream disconnect and client-node destroy
Fix gstreamer device provider
Make all sockets non-blocking to avoid errors with bad clients
Advertise the subsystems we monitor and disable the gstreamer monitors.
Implement core properties updates
Make sure we send REMOVE_ID after we are done with the resource.
2017-01-20 15:53:03 +01:00
Wim Taymans
6d4db64767 Use refcounting for async shutdown
fix some memory leaks
2017-01-12 15:13:15 +01:00
Wim Taymans
b969623ec8 Work on introspection 2016-12-02 13:38:43 +01:00
Wim Taymans
3dada4731c rename signal -> sig
Meson puts the directory of the source file in the include path and then
it picks up our signal.h instead of the system one...
2016-11-28 16:24:10 +01:00
Wim Taymans
4e94743906 Use pinos loop for mainloop
Remove more glib stuff
2016-11-24 17:40:26 +01:00
Wim Taymans
27bba6f587 Make native protocol
Remove DBus and work towards something like wayland.
Remove more glib stuff from the client code
2016-11-24 17:00:42 +01:00
Wim Taymans
e7cae649aa Use mapper to make object id
Reuse object ids by using a mapper
Simpify the uri struct a little.
2016-11-21 16:29:15 +01:00
Jonathan Karlsson
7c127f91a5 Pinos modules: Parse options with getopt
Make it possible to add options for modules in pinos.conf.in.
Only a few options for videotestsrc is supported at the moment.
2016-11-21 08:58:54 +01:00
Wim Taymans
0d2fa5ebc8 cleanups 2016-11-16 17:21:59 +01:00
Wim Taymans
dfbfb4c9ee Rework dbus handling
Remove the Daemon object and remove all dbus code from the main
objects. We can use the signals in a separate module to create and
destroy the DBus interfaces.
Move the dbus protocol in a module
Move the autolink policy to a module
2016-11-16 16:57:47 +01:00
Wim Taymans
1a48bccca0 cleanups
Remove hastables, use lists
Remove obsolete ringbuffer
some small cleanups
2016-11-15 20:12:31 +01:00
Wim Taymans
0d21d633c9 WIP object model change
Work on cleanup
2016-11-15 13:29:58 +01:00
Wim Taymans
c25ccbb4ba WIP change object model 2016-11-14 12:42:00 +01:00
Wim Taymans
190f01d88e WIP
Change object model
2016-11-10 15:42:14 +01:00
Wim Taymans
89bc235924 Cleanups
Hide GDBus from RTKit API
Remove register node from dbus API
Add signal
Add object and register objects in the registry
Add some preregistered types to the registry
Let the daemon listen to the registry
2016-11-08 18:00:52 +01:00
Wim Taymans
7e46f9e3ad More hacking
Move array and map to pinos
Move more things to spa lib
ControlCmd -> Message
Make pinos log, use for plugins as well
work on ringbuffer in alsa and nodes
work on making registry with all objects
2016-11-03 19:41:53 +01:00
Wim Taymans
3f4ccaaea2 More hacking
Add connection message for PORT_COMMAND
Add rtkit support to ask for realtime priority
work on stream states and improve negotiation
Rework of port linking works, keep separate state for realtime threads
and use message passing to update the state.
Don't try to link nodes that are removed.
Open the device in the ALSA monitor to detect source or sink
Implement send_command as async methods on the plugins, use async
replies to sync start and stop.
Work on alsa sink.
Implement async PAUSE/START on v4l2 src. move the STREAMON/OFF calls to
the mainloop because they have high latency, add the poll descriptors
from the data loop.
2016-10-28 16:56:33 +02:00
Wim Taymans
d3dd90bb05 simplify events and commands 2016-10-24 15:30:15 +02:00
Wim Taymans
82414810e8 avoid deref
We can avoid a deref when we use container_of to get from the interface
to the handle.
2016-10-12 17:27:29 +02:00
Wim Taymans
50c3b40cd0 Remove monitor poll and hook in mainloop
Provide a mainloop SpaPoll and let the monitors hook into it.
2016-10-07 18:19:03 +02:00
Wim Taymans
fc4fd1424a Add mapper
Ger rid of static ids for interfaces and replace with something we can
register dynamically
Implement logger.
2016-10-07 13:19:50 +02:00
Wim Taymans
49dae17dfb Add logger
Add logger interface
Make it possible to pass extra interfaces to the element at init time,
such as a logger.
2016-10-05 17:43:11 +02:00
Wim Taymans
b9409e297b Fix for new paths
Add convenience makefile and autogen.sh
2016-09-26 12:29:01 +02:00
Wim Taymans
67dd3adb87 port to meson 2016-09-26 12:15:52 +02:00
David Svensson Fors
68e81198ed Add videotestsrc 2016-09-19 09:21:08 +02:00
David Svensson Fors
badd9fd366 Add videotestsrc 2016-09-19 09:20:07 +02:00
Wim Taymans
bd7009756c alsa: aad alsa source and monitor 2016-09-19 09:16:58 +02:00
Wim Taymans
6497c82a7d Use v4l2 monitor
Use the v4l2 monitor to dynamically add and remove nodes.
Use the info from the monitor as parameter for the factory init and use
it to configure the new node.
Add info to the node.
Use info from the factory as properties on the PinosNode
2016-09-15 17:51:34 +02:00
Wim Taymans
9f53eda6cb Add monitor interface
Add an interface to monitor devices and helper program
Add v4l2 monitor
Add simple dictionary with key/value pairs
2016-09-15 11:49:34 +02:00
Wim Taymans
b75d9786d4 pinossrc: handle latency and liveness
Use NULL filter when the port format enumeration returns nothing.
Send clock update even when there is no clock.
Don't send data to a port when the node is not streaming
Add latency support to the clock update
Copy the unset_mask when copying the formats
2016-09-13 17:43:57 +02:00
Wim Taymans
829adbab59 Add h264 format
Improve format support
Remove the type from the value because we can find that from the
property info.
2016-09-07 16:25:31 +02:00
Wim Taymans
8ada6736c0 Cleanups
Make events and command specific to the node
Remove some unused code
Improve state changes
Use easier fixate by just taking the element default value
Fix reuse buffer in the proxy
2016-09-06 16:43:37 +02:00
Wim Taymans
7aa79a2a0d Add audiotestsrc
Work on idle poll
Move node state to the node interface so that we can actually get it in
the sync case.
Add enabled field to the poll event
Work on audiotestsrc
2016-09-05 16:23:40 +02:00
Wim Taymans
a8238957a3 more cleanups 2016-09-02 20:02:32 +02:00
Wim Taymans
7d3e46e7f9 Remove port
Remove the port object. We don't use it as a dbus object and we don't
need it, we can use the link and node object directy.
Move poll code and event handler to the node.
2016-09-02 19:51:23 +02:00
Wim Taymans
463954a299 cleanups
Remove some unused things.
Work on shutdown.
2016-09-01 10:04:25 +02:00
Wim Taymans
9485bd77e7 Remove direction
Direction is tied to the port id.
Handle nodes with fixed ports.
2016-08-29 18:31:53 +02:00
Linus Svensson
7d8e2d53f7 daemon-conf: Add conf file parsing
Support to parse configuration files. By default, the default conf file
is parsed ({sysconfdir}/pinos/pinos.conf), but that can be changed with
an environment variable (PINOS_CONFIG_FILE). The file can contain
commands and assignments (no assignment supported this far).

Support for command module-load is added.
2016-08-29 18:31:08 +02:00
Wim Taymans
b67c216a04 Make new USE_BUFFERS command
Make a new USE_BUFFERS command to atomically send a buffer array to the
remote client. We can use this to then clean up an old array and go to
the PAUSED state if possible.
Work on formats. Make one structure that can hold all video formats.
Work on pipeline suspend and resume.
Add jpeg support to v4l2.
Work on enum_formats with a filter in v4l2.
2016-08-26 17:43:48 +02:00
Wim Taymans
fbd6304663 Cleanups
Remove old code
Only depend on GStreamer for the plugins
Rename STOP to PAUSE because that's what it really does
Start working on format_fixate.
Remove default property value from props
Fix framerate
2016-08-25 14:10:38 +02:00