Wim Taymans
b51d3e4862
buffer: make data and meta types dynamic
...
Use dynamic types for the data and meta types.
Move the meta into a separate header.
Remove port state, we can keep track of that ourselves.
Add size to MetaDataEnable params
2017-04-26 18:54:18 +02:00
Wim Taymans
82d5ca1edc
link: only idle when not already suspended
2017-04-25 13:04:03 +02:00
Wim Taymans
8804980c8f
work on state changes
...
Make things work better after errors
2017-04-25 13:00:09 +02:00
Wim Taymans
7d1d3bd666
stream: use 2 eventfds for client <-> server signaling
2017-04-21 10:24:42 +02:00
Wim Taymans
50a7240a52
stream: improve states
2017-04-19 11:17:56 +02:00
Wim Taymans
db16de85bb
examples: add video upload example
...
Add an example of a node that makes a video available.
Improve buffer reuse in stream.
Add more video formats
2017-04-18 18:05:45 +02:00
Wim Taymans
c7333c46cc
types: remap ids
...
Remap ids between client and server
2017-04-17 19:36:22 +02:00
Wim Taymans
be528ba7c2
flatpak: add flatpak module
...
Pass LoopUtils to callbacks to make it easier to reschedule timeouts.
2017-04-17 16:32:25 +02:00
Wim Taymans
a5b39019d1
core: add async create_client_node access check
2017-04-13 10:38:54 +02:00
Wim Taymans
4cf59e3953
access: add access checks
...
Rework the access checks.
Add owner field to more objects to do access control checks
Make sure the object global is set in the object before signaling the
new global.
2017-04-12 19:24:48 +02:00
Wim Taymans
d9bb116d27
node: schedule upstream first
...
In pull mode, schedule all upstream nodes first, if any of them
produce output, push it into the current node.
Underrun streams without input on audiomixer, avoids glitch when
starting a new stream.
2017-04-12 11:24:11 +02:00
Wim Taymans
4c7b56020a
audiomixer: improve mixing
...
Remove PortIO flags, we can use the status
Move PortIO to ports
Move transport to client-node
Improve scheduling
2017-04-12 10:40:17 +02:00
Wim Taymans
9bd92b781c
small fixes
2017-04-08 20:59:38 +02:00
Wim Taymans
d3682067fa
node: remove node state
...
Remove the node state. The state of the node is based on the state
of the ports, which can be derived directly from calling the port
methods. Track this state in the Port instead.
Add a mixer module that puts a mixer in from of audio sinks. This allows
multiple clients to play on one sink (still has some bugs). do some
fixes in the mixer and the scheduler to make this work.
2017-04-08 20:33:54 +02:00
Wim Taymans
4808f8f10e
link: fix negotiation
...
Fix renegotiation of idle but not yet suspended nodes.
2017-04-06 16:12:47 +02:00
Wim Taymans
8594d28f59
alsa: rework monitor
...
Enumerate all playback and capture devices
2017-04-05 18:37:12 +02:00
Wim Taymans
22070ecbf8
improve format filters
2017-04-04 20:25:02 +02:00
Wim Taymans
5c32690cc8
Add sync and async support in *testsrc
...
Make minumum alsa latency configurable.
2017-04-03 16:54:44 +02:00
Wim Taymans
01c13adab5
improve node io
...
Unify input and output io areas.
Add support for ranges in the io area.
Automatically recycle buffers in the output areas in process_output
Improve the mixer, add use_buffer support, use a queue of input buffers,
fix mixing, add support for ranges.
Fix mixer and v4l2 tests
2017-04-03 14:56:04 +02:00
Wim Taymans
7b8bb8da6b
implement alsa capture with timers
...
Add timer based alsa capture support
Improve format negotiation in alsa
Better track buffer owner in the links
2017-03-30 17:30:28 +02:00
Wim Taymans
46928cbc04
alsa: use timerfd
...
Use timerfd instead of period events to wake up alsa.
module-autolink: fix crash
Some cleanups
2017-03-28 19:29:08 +02:00
Wim Taymans
29cb7bf39a
format: improve format parsing
2017-03-24 18:11:11 +01:00
Wim Taymans
94019fb1f5
small cleanups
2017-03-24 16:14:17 +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
d9a51b5d14
mapper: place strings in array
...
mapper: place strings in a big array.
Make it possible to configure array and map extend size.
2017-03-23 17:57:03 +01:00
Wim Taymans
f613240b66
pod: add support for maybe-NULL types
2017-03-23 17:11:20 +01:00
Wim Taymans
3dba9f0fd4
pod: handle NULL
2017-03-23 16:08:50 +01:00
Wim Taymans
048a4b81a8
alloc-params: use dynamic types for alloc-params
2017-03-23 10:12:20 +01:00
Wim Taymans
c44a7c9735
command: make commands dynamic
...
Ensure format object type.
2017-03-22 10:04:24 +01:00
Wim Taymans
4d9f2c5161
event: make events dynamic
...
Use uri for the events.
2017-03-21 20:39:20 +01:00
Wim Taymans
6f0a12462b
format: add format utils
2017-03-21 11:37:18 +01:00
Wim Taymans
1588b9df8d
serialize: remove serialization
...
Remove obsolete serialization code. Merge last bits into stream buffer
reconstruction. Use POD copy for the allocation params.
Small cleanups
2017-03-17 17:09:16 +01:00
Wim Taymans
8a6ce3b179
Make AllocParams into POD objects
...
Make allocparams into pod objects. This makes it easy to serialize,
copy, create and intersect them.
Add convenience macros for properties
Add helper function to collect object properties.
2017-03-17 11:58:09 +01:00
Wim Taymans
c951264fff
spa: make events and commands as objects
...
So we can serialize and introspect them more easily
2017-03-15 16:21:05 +01:00
Wim Taymans
c1cf1e6f67
Add update_uris method and event
...
Add a way to send mapper updates between client and server and a way
to map between client and server types.
2017-03-14 20:18:31 +01:00
Wim Taymans
ff659ad1a7
proxy: use 0 as the core resource
...
Make it possible to insert and object with a fixed id for the proxy.
Make it possible to choose an id for a resource.
2017-03-14 16:15:09 +01:00
Wim Taymans
9b93fd396a
Fix some crashers
2017-03-13 11:43:34 +01:00
Wim Taymans
5440435405
connection: guard against fd overflow
2017-03-09 19:42:35 +01:00
Wim Taymans
8fbcb0fef1
remove some unused event and seqnum
2017-03-09 19:21:50 +01:00
Wim Taymans
1e600713a5
core: handle client bind errors
...
When a client attempts to bind to an unexisting global, don't error
but instead let the client know the object was removed.
2017-03-09 15:52:19 +01:00
Wim Taymans
7ad02f553a
improve interfaces
...
Make an interface structure to hold methods and events.
Move interface setup to protocol
2017-03-09 13:00:56 +01:00
Wim Taymans
905743dac6
Improve padding
...
Write out 0 while padding to make sure all memory is initialized
Remove the fd from the loop before destroying the node.
2017-03-09 09:48:41 +01:00
Wim Taymans
78a3cd61b8
pod-builder: make more generic builder
...
Make a vararg based builder that produces much smaller code.
Catch demarshal errors.
Simplify array handling
2017-03-07 17:23:35 +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
41399b0b25
Rework serialization
...
Move serialization to the protocol, we now just send blocks of bytes
over the connection and let the protocol deserialize them.
2017-03-06 15:48:04 +01:00
Wim Taymans
842d73ca4b
protocol-native: move to separate file
...
Move protocol-native to separate client and server file
2017-03-03 19:06:54 +01:00
Wim Taymans
b9a0b067be
use interfaces in client
2017-03-03 17:43:23 +01:00
Wim Taymans
e0813b679d
Use interfaces
...
Add interfaces and events on objects. Use this to communicate with the
objects and transparently convert/marshall to network in the protocols.
2017-03-02 16:06:45 +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