Commit graph

679 commits

Author SHA1 Message Date
Wim Taymans
d70b4b2b10 alsa: more tweaks
Set the lowest possible period time, this lowers the latency.
Adjust slaved stream when we are drifting too much.
Use faster snd_pcm_avail and only use get_status when in error.
2018-11-20 16:08:57 +01:00
Wim Taymans
afd9a6c95f alsa: fix capture again 2018-11-19 18:03:45 +01:00
Wim Taymans
7e9b223216 alsa: reduce start latency 2018-11-19 12:01:36 +01:00
Wim Taymans
27451e4350 alsa: tweak dll some more after xrun 2018-11-19 11:51:51 +01:00
Wim Taymans
f063cc9086 audioconvert: improve negotiation
Configure format and buffers when the ports are configured instead of
in the start command.
2018-11-19 10:03:55 +01:00
Wim Taymans
0343297257 alsa: rework timing
Use a DLL to track the hardware pointer and use this to set the
timer.
Handle XRUN and recover.
2018-11-16 17:00:40 +01:00
Wim Taymans
5444b850d2 fmtconvert: improve enum_format 2018-11-16 16:56:33 +01:00
Wim Taymans
3e1e6b02b5 resample: add property to change resample rate 2018-11-16 16:54:56 +01:00
Wim Taymans
9d44d0b135 parser: add some utils to parse values 2018-11-16 16:52:04 +01:00
Wim Taymans
0303b7d1c5 props: add rate property 2018-11-16 16:48:49 +01:00
Wim Taymans
d8db090ac2 alsa: only remove sources when they were added 2018-11-12 15:52:11 +01:00
Wim Taymans
b6f01542d8 spa: explicitly cast the offset to signed int
As reported by Marcello Blancasio, convert the offset to a signed int
to avoid conversion without sign extension. Fixes unmap of stream
memory.

Fixes #103
2018-11-12 12:05:59 +01:00
Wim Taymans
416b9c254e alsa: have slaved sink
When we are slaved, calculate our rate difference with the master
2018-11-12 10:18:21 +01:00
Wim Taymans
6f555c63e2 alsa: set buffer_id in io to INVALID when in use 2018-11-12 09:56:45 +01:00
Wim Taymans
0f7a3bdb2a alsa: use dynamic bandwidth 2018-11-12 09:55:21 +01:00
Wim Taymans
e69cf24f24 alsa: add dll to estimate clock drift
Make delay signed in the clock io so that we can simply add it to the
tick to get the hw position.
Add clock drift to clock info
2018-11-09 15:26:08 +01:00
Wim Taymans
3267667d94 fmt: improve s24 to float conversion 2018-11-08 09:56:58 +01:00
Wim Taymans
9825932b88 test-convert2: add channel position 2018-11-07 11:59:12 +01:00
Wim Taymans
e47bfa02e5 audiotestsrc: properties are float 2018-11-07 11:57:58 +01:00
Wim Taymans
4d7311aca1 channelmix: handle stereo to mono 2018-11-07 11:57:19 +01:00
Wim Taymans
2b88dde567 fmtconvert: add conversions for planar to planar 2018-11-07 11:56:19 +01:00
Wim Taymans
00a570f7de audio-format: set unpossisioned flag
If we don't have position information in the format, set the
unpositioned flag. Don't set position info in the format when the
unpositioned flag is set.
2018-11-07 11:54:23 +01:00
Wim Taymans
aade499aae fix TIMESPEC_TO_NSEC 2018-11-07 10:07:48 +01:00
Wim Taymans
088ee9f09e Improve TIMESPEC_TO_TIME
Add explicit TO_NSEC and TO_USEC versions to make it clearer and to
allow for some optimizations.
2018-11-07 09:56:24 +01:00
Wim Taymans
85f2e93c54 Relicense as MIT/X11
Remove some obsolete files
2018-11-05 17:48:52 +01:00
Wim Taymans
9088b2f0d9 splitter: fix compilation 2018-11-02 17:51:30 +01:00
Wim Taymans
7b6df9e127 audioconvert: don't clear profile when format is cleared 2018-11-02 17:19:15 +01:00
Wim Taymans
b87397025e pod: handle unknown types without crashing 2018-11-02 12:12:34 +01:00
Wim Taymans
6bb90ed88e alsa: refactor get_status 2018-10-31 15:21:23 +00:00
George Kiagiadakis
57cd209d2a spa: tests: add automated unit test for spa_ringbuffer 2018-10-31 10:50:36 +00:00
George Kiagiadakis
9724aea17f spa: tests: add automated unit test for spa_hook_list 2018-10-31 10:50:36 +00:00
George Kiagiadakis
ef8b7bc003 spa: tests: add automated unit test for spa_list 2018-10-31 10:50:36 +00:00
George Kiagiadakis
cef55ea47d spa: tests: add automated unit test for spa_dict 2018-10-31 10:50:36 +00:00
Wim Taymans
10531d99eb fmt: fix conversion 2018-10-31 10:40:06 +00:00
Wim Taymans
63363d09dd fmt: small fix to s16 conversion 2018-10-31 09:38:31 +00:00
Jan Grulich
a61f8cf666 Coding style 2018-10-31 07:48:28 +00:00
Jan Grulich
a813afd810 Fix build with c++ compilers 2018-10-31 07:48:28 +00:00
Jan Grulich
2aeb5d9d98 Install a missing header
This header is used by param/video/format-utils.h and therefore needed to be installed as well.
2018-10-31 07:47:31 +00:00
Wim Taymans
093c675995 a2dp: don't faile set_io 2018-10-30 16:29:39 +00:00
Wim Taymans
ef7a111611 fmt: fix and enable f32 -> s16 conversion 2018-10-30 08:37:07 +00:00
Wim Taymans
4432db4fa7 fmt-ops: fix conversion 2018-10-29 18:38:14 +00:00
Wim Taymans
ae9843aca2 disable s16 sse until fixed 2018-10-29 14:07:19 +00:00
Wim Taymans
9f61ef96ff fmt-ops: add f32 -> s16 see optimisations 2018-10-29 09:21:33 +00:00
Wim Taymans
58c6d76328 pod: also handle choice in compare 2018-10-27 10:43:09 +01:00
Wim Taymans
9a969ac756 v4l2: we set clock and position on the node now 2018-10-27 10:11:27 +01:00
Wim Taymans
2206deb3e8 alsa: implement set_io and handle position io
Use position io for deciding the size of the output buffers in
alsasrc
2018-10-24 10:27:57 +02:00
Wim Taymans
4aab226047 io: add size of current cycle to position 2018-10-24 10:27:06 +02:00
Wim Taymans
34db9be04b io: add io areas for position information 2018-10-23 16:14:17 +02:00
Wim Taymans
66de372e9a add node set_io function
Also allow setting io areas on nodes. We need this to set the
graph clock and period size on the nodes.
2018-10-23 12:31:41 +02:00
Wim Taymans
d2570142fa resample: don't output 0 buffers 2018-10-22 11:32:53 +02:00