Wim Taymans
6691eb7845
graph: add graph datastructure and scheduler
...
Improve event and command init so that it can be used more easily
as compound literals.
Improve volume
Make it possible to use graph scheduler in test-mixer
2017-05-18 17:16:48 +02:00
Wim Taymans
845ff79f9f
pinossrc: also finish format when clearing the format
2017-05-17 11:55:48 +02:00
Jonas Ådahl
361059ed3c
gstpinossrc: Don't crash when format is changed to NULL
2017-05-17 11:54:03 +02:00
Wim Taymans
3c7f1e09fb
pinossrc: add always-copy property
2017-05-17 11:49:57 +02:00
Wim Taymans
eca852cdd3
link: only pause when no links
2017-05-17 10:10:42 +02:00
Wim Taymans
c6f7197f00
format: convert max-framerate
2017-05-17 10:10:27 +02:00
Linus Svensson
e27ec1a203
Only use string literals as format
...
Fixes -Wformat-security error.
2017-05-16 09:31:50 +02:00
David Svensson Fors
bc2f53a31c
context: stop reading messages when disconnecting
2017-05-16 09:31:50 +02:00
David Svensson Fors
663a3df9af
connection: handle refill_buffer() error in get_next()
2017-05-16 09:28:12 +02:00
Linus Svensson
4d3c194491
pinos/client/log.h: Fix compiler error
2017-05-16 09:27:31 +02:00
Linus Svensson
49d635ae68
Follow installed include path for spa headers
2017-05-16 09:20:42 +02:00
Linus Svensson
740125a12e
meson.build: Install conf file under ${sysconfdir}
...
Base conf file path on sysconfdir. sysconfdir can be specified with an
absolute or relative path. To ensure PINOS_CONFIG_DIR is set correctly,
use join_paths() to prepend prefix when sysconfdir is relative.
Meson added support for sysconfdir in version 0.34.0 and join_paths() in
version 0.36.0.
2017-05-16 09:13:36 +02:00
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
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
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
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
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
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
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
4808f8f10e
link: fix negotiation
...
Fix renegotiation of idle but not yet suspended nodes.
2017-04-06 16:12:47 +02:00