Commit graph

557 commits

Author SHA1 Message Date
Linus Svensson
2011023da7 meson.build: Include API version in module directory 2017-05-16 09:11:03 +02:00
Wim Taymans
b80fc0b08e defs: remove invalid direction
Anything not in the enum is invalid
2017-05-16 09:06:37 +02:00
Linus Svensson
1079d433ef meson.build: No need for PLUGINDIR 2017-05-16 09:06:07 +02:00
Wim Taymans
05adcb31e5 v4l2: no range for fixed framerates
Print fixed values correctly
2017-05-12 13:00:33 +02:00
Wim Taymans
bf09421240 pinossink: improve sink 2017-05-12 11:00:25 +02:00
Wim Taymans
6cbf398ad4 node: the callbacks determine async operation 2017-05-11 16:11:08 +02:00
Wim Taymans
361d2b6a87 pinos: Use correct spa/ include paths
Don't include spa/include/spa/... but just spa/..., as otherwise it is
not possible to include these (installed) header files externally.
2017-05-11 11:49:13 +02:00
Jonas Ådahl
5cb35d8bc1 examples/video-play: Use correct SDL enum values 2017-05-11 11:42:59 +02:00
Jonas Ådahl
d26eb2da23 meson.build: Add missing header files 2017-05-11 11:42:57 +02:00
Wim Taymans
01246f399e test: pass device in args 2017-05-11 11:41:39 +02:00
Jonas Ådahl
1d8504565a build: Fix API version usage
It was sometimes assumed to be 0.1, sometimes 1.0, and sometimes not to
be used at all. This commit makes things consistent and so that it is
possible to link externally.
2017-05-11 11:41:17 +02:00
Wim Taymans
3b33e3d362 node: improve callbacks
Make separate callbacks for events and RT notifications.
2017-05-11 10:29:20 +02:00
Wim Taymans
fb0919b8b7 link: improve state changes 2017-05-02 12:02:27 +02:00
Wim Taymans
3d54d31fac tests: fix for port status changes
We now need to tell the node we consumed a buffer by setting the status
back to NEED_BUFFER.
2017-04-28 17:37:16 +02:00
Wim Taymans
fe68ca1be3 audiomixer: small improvements
Improve the audiomixer state handling
Improve PortIO status handling.
2017-04-28 17:22:23 +02:00
Wim Taymans
e734d239b9 core: also work without security module 2017-04-28 15:35:54 +02:00
Wim Taymans
308acaf0ad alsa: fix offset 2017-04-28 12:12:14 +02:00
Wim Taymans
cc8a5da9c7 Rename buffer status to make it more symetrical
Only try to pull once in a timeout.
We can reuse the last returned state as our internal state in
audiomixer.
2017-04-28 11:49:13 +02:00
Wim Taymans
430b749d53 fix trace logging 2017-04-27 18:56:59 +02:00
Wim Taymans
214a0e27d8 Add support for trace logging in lockfree ringbuffer
Fix some crashes when the connection is dead.
Small cleanups in the audio mixer
Only propose alloc_buffer when we are using export_buf in v4l2
2017-04-27 17:17:47 +02:00
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
ed273ec465 mem: add support for ringbuffers
Add an option to map the memory twice in contigious memory to
make it easier to deal with ringbuffers.
2017-04-26 10:56:00 +02:00
Wim Taymans
edb21a0ff8 ringbuffer: small optimization 2017-04-26 09:36:01 +02:00
Wim Taymans
63d060a63e ringbuffer: add stress test 2017-04-25 19:22:06 +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
baada0a330 ringbuffer: use gcc atomic operations
Remove barrier, use GCC atomic operations for ringbuffer
2017-04-24 13:18:57 +02:00
Wim Taymans
02d4dc0efd context: add option to disable registry 2017-04-21 16:39:14 +02:00
Wim Taymans
c29fed1ac8 video-play: add example video capture + playback 2017-04-21 12:36:46 +02:00
Wim Taymans
7d1d3bd666 stream: use 2 eventfds for client <-> server signaling 2017-04-21 10:24:42 +02:00
Wim Taymans
f0aafb5b51 alsa: work on ringbuffer data transport
Add ringbuffer test
2017-04-20 19:25:14 +02:00
Wim Taymans
0b508db9fc ringbuffer: simplify the API
Use absolute indexes that we let wrap around. We can then easily detect
how much we under of overflowed by using serial number arithmetic.
Remove the Areas, we can trivially compute this ourselves, move the
logic in read/write_data.
2017-04-20 11:25:24 +02:00
Wim Taymans
90ea120d3c audiomixer: don't mix when no input
Give the app a chance to provide some input when there is nothing to mix
anymore in process_output.
alsa: fix buffer size
2017-04-19 13:06:03 +02:00
Wim Taymans
e864836300 fix formats 2017-04-19 12:33:42 +02:00
Wim Taymans
7ef4fea2f2 video-src: make size dynamic 2017-04-19 11:31:51 +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
28389e05f3 alsa: fix device enumeration 2017-04-06 17:32:00 +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
3adbaacec2 alsa: filter formats 2017-04-05 20:46:57 +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