Wim Taymans
4a6b1b42bc
Don't hardcode plugin path
...
Use SPA_PLUGIN_DIR to get the plugin path.
Install plugins in subdirectory to make it match the build tree.
2017-06-19 12:19:22 +02:00
Wim Taymans
763bd1100e
Add user_data to callbacks
...
Add user data to callbacks, it's more flexible and natural
2017-06-18 19:48:31 +02:00
Wim Taymans
c3b73ba47d
Add versions to structures
...
Use versions instead of size
Remove user_data from callbacks, we can simply pass the callback struct.
2017-06-14 18:32:39 +02:00
Wim Taymans
34450ed7ed
Make done event on node
...
Replace the AsyncDone event with an explicit done callback in the node
to signal completion of an async operation.
Pass read and write fd together with the transport
2017-06-09 17:24:18 +02:00
Wim Taymans
b4fdcbd322
Debug: remove logger
...
Make a default logger and mapper in a .h file to be used by examples
Remove logger and mapper from libs
Make method to set the default mapper for the debug methods
2017-06-06 13:30:34 +02:00
Wim Taymans
ded1ea69a1
indent
2017-05-26 18:19:51 +02:00
Wim Taymans
08522a162e
indent
2017-05-26 17:25:58 +02:00
Wim Taymans
5b037661d9
indent
2017-05-26 08:05:01 +02:00
Wim Taymans
11f23a3ffa
spa: don't use typedef for struct and enum
2017-05-25 13:28:15 +02:00
Wim Taymans
f12a5ffc80
Remove redundant fields from PortInfo
2017-05-22 18:02:31 +02:00
Wim Taymans
d1a6d6e03f
param: add more generic port params
...
Remove port properties and replace them with port params. Move the
params from the PortInfo to enum_params.
Use the Param ranges to specify possible sizes etc.
2017-05-22 13:06:18 +02:00
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
3b33e3d362
node: improve callbacks
...
Make separate callbacks for events and RT notifications.
2017-05-11 10:29:20 +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
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
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
baada0a330
ringbuffer: use gcc atomic operations
...
Remove barrier, use GCC atomic operations for ringbuffer
2017-04-24 13:18:57 +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
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
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
4bdbb58276
alsa: implement enum_format
2017-04-04 19:44:00 +02:00
Wim Taymans
4337a99bb0
alsa: add more formats
2017-04-04 17:25:47 +02:00
Wim Taymans
39c3650b5f
fix media.class
2017-04-04 15:32:11 +02:00
Wim Taymans
8071b76e41
alsa: improve default buffer size
...
Fix sample size
2017-04-04 12:05:35 +02:00
Wim Taymans
032cc69f2f
plugins: small cleanups
2017-04-04 09:40:12 +02:00
Wim Taymans
b05d82d514
plugins: use macros for input checks
...
That way we can compile them out if we want
2017-04-04 09:00:49 +02:00
Wim Taymans
32368d741d
audiotestsrc: implement sine wave
...
Fix audiomixer some more
2017-04-03 19:23:53 +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
29fbf2e841
props: improve prop flags
...
Only keep the READONLY prop flag.
Work on test-mixer
2017-03-31 11:48:24 +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
3f8123143d
alsa: use absolute timers
...
Use absolute timers, together with the alsa timestamp they are
potentially more accurate.
fix some crashes
2017-03-29 16:39:24 +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
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
048a4b81a8
alloc-params: use dynamic types for alloc-params
2017-03-23 10:12:20 +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
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
03292fd80f
audio: make audio format an uri type
2017-03-21 16:50:44 +01:00