Commit graph

1145 commits

Author SHA1 Message Date
Wim Taymans
ab3a6d3441 Fix some compiler warnings on arm 2020-04-03 13:18:02 +02:00
Wim Taymans
df5721ff47 neon: fix taps arguments 2020-04-03 10:31:55 +02:00
Wim Taymans
a87337cae8 neon: fix fallback 2020-04-03 10:22:58 +02:00
Wim Taymans
22e590c7cc stream: somewhat implement drain better
Abuse the xrun callback in the adapter to emit the drained signal until
almost all data left the resampler. This needs more work with a proper
signal and a buffer flag to signal the drain.
2020-04-02 17:46:50 +02:00
Wim Taymans
1b3aaba206 fmt-ops: set the right flags on optimized functions
Or else we could select an avx2 version on a non-capable CPU.

Fixes #227
2020-04-02 17:34:47 +02:00
Wim Taymans
b87c0a9270 clean up options
make sure we can use -v for verbose mode
2020-04-02 14:34:02 +02:00
Wim Taymans
1fd5be7101 neon: fix resample interpolation 2020-04-01 13:07:52 +02:00
Wim Taymans
74665de68e alsa-seq: keep track of last port
Keep track of the last port and only iterate until that port.
2020-03-31 17:52:22 +02:00
Gleb Popov
b552863ec9 Don't include alloca.h on FreeBSD. 2020-03-31 12:16:45 +02:00
Wim Taymans
e6675ff2a8 alsa-seq: unsubscribe when paused/suspended
When we are suspended or paused, unsubscribe from the ports so that
we don't block the hardware devices.

See #225
2020-03-31 12:14:52 +02:00
Wim Taymans
9b24a84ce6 fmt-ops: fix copy/paste error 2020-03-30 11:02:13 -04:00
Wim Taymans
527dc89365 fmt-ops: add neon optimizations for format conversion 2020-03-30 10:59:21 -04:00
Wim Taymans
67a5dd35be resample: add neon optimizations 2020-03-27 08:27:11 -04:00
Wim Taymans
397787ec3e spa-resample: getopt_long returns an int 2020-03-26 18:10:11 +01:00
Wim Taymans
a1846c9780 udev: don't loop forever on errors
When we can't find the v4l2 device id, unref the device and continue
instead of looping forever and consuming all memory.

Fixes #219
2020-03-24 15:54:58 +01:00
Wim Taymans
a880012e72 fmtconvert: order formats better
Place float and higher resolution formats first so that they are
selected first.
2020-03-24 11:47:41 +01:00
Wim Taymans
b8a1ea1d3a fmt-ops: fix 32 bit compilation
_mm256_extract_epi64 is only for 64 bits, add workaround for 32
bits.

Fixes #220
2020-03-23 14:18:10 +01:00
Wim Taymans
c4cf5e6629 bluez5: protect against NULL transport
The transport can be destroyed at any time, make sure we don't
crash when it does.
2020-03-23 13:49:30 +01:00
Wim Taymans
3cb019de51 vulkan: only set flags when buffer is in the io area 2020-03-19 18:09:30 +01:00
Wim Taymans
a9b191971c v4l2: fix buffer recycle
Only set the OUTSTANDING flag when we placed the buffer in an
io area and need to recycle it later.
When we captured a frame, put it in the queue. Then dequeue it
into the io area after recycling buffers.

Fixes #217
2020-03-19 13:15:49 +01:00
Wim Taymans
441fdb2333 alsa: fix buffer recycle
We only set the OUT flag when we put the buffer on an io area and
might need to recycle later.
Before placing the output buffer into the io area, recycle any
buffer that might be left in there.
Only emit the ready callback when we have some data queued.
2020-03-19 13:12:49 +01:00
Wim Taymans
acccccd2c0 Use SPA_IO_BUFFERS_INIT when we can
We should not have to initialize the state to NEED_DATA, anything
that is not HAVE_DATA is good. Also we need to set the buffer to
INVALID because else it might be recycled.
2020-03-19 13:09:21 +01:00
Wim Taymans
07f935a5ed add some more debug 2020-03-19 13:00:35 +01:00
Wim Taymans
b6dde8d76f vulkan: use image height of current cycle for buffer size 2020-03-18 17:21:38 +01:00
Wim Taymans
64e00165d5 Add MIT licensed compute example instead
Fixes #218
2020-03-18 17:20:36 +01:00
Wim Taymans
8a2af908a7 small optimizations
Add some SPA_LIKELY
Enable FASTPATH by default
2020-03-18 15:43:29 +01:00
Wim Taymans
57f84ae5ae fmt-ops: use gather to read samples 2020-03-18 11:41:14 +01:00
Wim Taymans
55633ebf9a fmt-ops: move AVX 2020-03-18 10:06:54 +01:00
Wim Taymans
949dba7bfc fmt-ops: flesh out avx optimizations 2020-03-17 17:27:47 +01:00
Wim Taymans
72d70b0f48 Add and fix some more warnings
Fixes #216
2020-03-17 11:37:56 +01:00
Wim Taymans
4dcd0dacc9 fmt-ops: add more benchmark cases 2020-03-16 16:45:20 +01:00
Wim Taymans
37d3864949 merger: add some SPA_LIKELY 2020-03-16 16:12:34 +01:00
Wim Taymans
3a911dfe3b fmt-ops: add avx2 optimized version
Only one optimized version but the sse2 version are compiled with
the avx2 flags so that they get optimized better.
2020-03-16 16:11:29 +01:00
Wim Taymans
6eca935e61 also test optimized versions 2020-03-16 13:08:33 +01:00
Wim Taymans
fd3dd14ebe fmt-ops: add optimized f32 to s16 stereo conversion 2020-03-16 13:04:21 +01:00
Wim Taymans
0548fbf690 fmt-ops: fix bug in s32 to f32 conversion 2020-03-16 12:57:21 +01:00
Wim Taymans
cb7bfdf98a sprinkly SPA_LIKELY/UNLIKELY around 2020-03-16 12:52:28 +01:00
Wim Taymans
9613f16caf alsa-pcm: ignore error after recover
If we get an error after receovering, ignore it and assume we filled
the buffer completely. We need to do this or otherwise we stop the
timer and audio stops.
2020-03-12 10:52:52 +01:00
Pantelis Antoniou
4db9a1e96d audiotestsrc: Make audiotestsrc work
This small patch makes audiotestsrc work.

You will need to uncomment the following lines in pipewire.conf

	add-spa-lib audiotestsrc audiotestsrc/libspa-audiotestsrc
	create-object adapter node.name=my-test factory.name=audiotestsrc

If you use pw-record, use --list-targets to find the target id and
record using --target=<n>

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
2020-03-05 18:41:53 +01:00
Wim Taymans
c4b2be2aad use true and false for boolean properties
So that it's easier to convert them to booleans in introspection
code later.
2020-03-03 18:17:46 +01:00
Wim Taymans
8096984b7e testsrc: remove checks in suspend and pause
We don't need to have a format or buffers to be able to pause.
2020-03-03 13:17:28 +01:00
Wim Taymans
e31bfc78ac videotestsrc: mark as driver by default 2020-02-21 16:49:53 +01:00
Wim Taymans
9e625441ad videotestsrc: implement enum port-io 2020-02-21 16:25:55 +01:00
Wim Taymans
90968bbb40 testsrc: implement suspend 2020-02-21 16:24:41 +01:00
Wim Taymans
ee617682c3 audioconvert: implement Portconfig query 2020-02-21 14:59:38 +01:00
Wim Taymans
d8bac82e72 improve logging
Remove some harmless warnings from the log
Remove some excessive info logging
2020-02-21 11:09:34 +01:00
Wim Taymans
a528189d26 slave -> follower
We use master/follower terminology everywhere.
2020-02-21 10:47:32 +01:00
Wim Taymans
bdeeebfdd4 enable and fix -Werror=suggest-attribute=format 2020-02-20 18:20:04 +01:00
George Kiagiadakis
0bff0e345f audioconvert: disable monitor port logic if both sides are in dsp mode
There is a use case where you may want to use audioconvert with
both input & output sides configured in dsp mode, for altering
the stream volume. When it is configured like that, the
IS_MONITOR_PORT macro wrongly thinks that all output ports except
the first one are monitor ports, originating in the merger instead
of the splitter.

This change fixes that and it also completely disables exposing
monitor ports, even if they are enabled, when both sides are in
dsp mode (fmt_input_port_info() also uses the same macro to check
if the monitor ports are to be exposed)
2020-02-20 12:34:42 +00:00
Wim Taymans
01934297bd fix compilation warning 2020-02-20 12:03:16 +01:00