Commit graph

3815 commits

Author SHA1 Message Date
Wim Taymans
09b6ef41a8 alsa: compare the scaled value to decide on xrun 2020-05-13 15:46:50 +02:00
Wim Taymans
fea16cca14 channelmix: support Midi volume control 2020-05-13 15:41:50 +02:00
Wim Taymans
498cb91750 channelmix: fix enum_params
0 should be returned when enum is done or else we loop forever.
2020-05-13 15:41:47 +02:00
Wim Taymans
b4112968cf log: handle logging of NULL object 2020-05-13 15:41:43 +02:00
Wim Taymans
56730197d9 alsa: report xrun
When we record but there is not enough space in the ringbuffer, report
xrun.
2020-05-13 12:09:28 +02:00
Martin Koch
fefdc26f84 plugin: workaround for AVX intrinsic: "_mm256_setr_m128()" missing in GCC
Signed-off-by: Martin Koch <martin.koch@ese.de>
2020-05-13 08:53:43 +00:00
Martin Koch
cee1a26be6 build: skip unsupported compiler option
-Wimplicit-fallthrough for gcc version before 7.x

Signed-off-by: Martin Koch <martin.koch@ese.de>
2020-05-13 08:11:30 +00:00
Wim Taymans
4000409c80 channelmix: allow smaller control buffers 2020-05-12 18:01:47 +02:00
Wim Taymans
055c8d6b63 channelmix: improve control handling
We can't write to the input control buffer so keep track of the
control offset ourselves ans skip what we already handled.
2020-05-12 17:52:06 +02:00
Julian Bouzas
5e37131cf8 channelmix: add control port to process control sequences
Channelmix has now a control port that receives control sequences. Each Control
of those sequences are handled individually by channelmix in order to change
properties when a specific amount of samples have been processed.

Co-authored-by: Wim Taymans
2020-05-12 17:51:16 +02:00
Wim Taymans
cab645d155 stream: we can get the index before we are ready 2020-05-12 17:50:24 +02:00
Wim Taymans
8d5571fa4c audiotestsrc: fix function signature 2020-05-12 17:23:35 +02:00
Wim Taymans
0a54249718 fix error reporting
dlopen and dlsym don't set errno
2020-05-12 17:23:30 +02:00
Wim Taymans
fdb3985f1a client-node: handle NULL port
Don't try to remove an already removed port.
2020-05-12 10:12:28 +02:00
Wim Taymans
a7d8e805ac stream: do some extra checks 2020-05-11 14:16:19 +02:00
Wim Taymans
ba215efed0 0.3.5 2020-05-11 13:35:32 +02:00
Wim Taymans
df8ad59e37 stream: fix writable size when no timing info received
Always report that we can write a buffer, even when we have
not yet received timing info. Fixes stalled spotify.

Fixes #238
2020-05-11 11:30:24 +02:00
Wim Taymans
653ae96b20 pipewiresrc: set corrupted flag
See #72
2020-05-09 19:46:14 +02:00
Wim Taymans
42af40675d v4l2: mark data CORRUPTED
We need to mark the data corrupted in the chunk, not buffer flags.
2020-05-09 19:38:16 +02:00
Wim Taymans
8dcd6c4417 improve debug 2020-05-09 19:21:55 +02:00
Wim Taymans
011992e774 meson: try to compile a little NEON program to be sure
Fixes #235
2020-05-08 22:12:24 +02:00
Wim Taymans
e6ccc72feb fix compiler warnings 2020-05-08 20:40:02 +02:00
Wim Taymans
729343f59b impl-link: don't use NEAREST flag until we support it 2020-05-08 17:53:20 +02:00
Wim Taymans
1ca7713057 implement NEAREST flag
when the NEAREST flag is set and the param could not be completely
set, set_param should return 1 to indicate this.
2020-05-08 17:52:30 +02:00
Wim Taymans
955e1a6a18 impl-link: debug all kinds of negotiation errors 2020-05-08 17:37:02 +02:00
Wim Taymans
12b8e095c7 v4l2: log error when format doesn't match 2020-05-08 17:35:57 +02:00
Wim Taymans
d22cb01c6e alsa-monitor: remove listener after destroy
The destroy event will free all the nodes of the device.
2020-05-08 17:08:53 +02:00
Wim Taymans
34da9015b9 proxy: _remove keeps the proxy alive when not destroyed
When we get a remove, increment the refcount only when the proxy
has not yet been destroyed.
2020-05-08 16:46:31 +02:00
Wim Taymans
181ca167e7 media-session: make sure to only remove hooks once 2020-05-08 16:18:38 +02:00
Wim Taymans
cfce048528 adapter: pass error to factory 2020-05-08 16:18:10 +02:00
Wim Taymans
8513150bdf resample: use calloc to make sure fields are 0 2020-05-08 16:13:34 +02:00
Wim Taymans
4e44da6c4b pulse: hide the pa_proplist implementation
Hide the proplist implementation.
Add some more methods to update the proplist
Make sure our integration functions only use exported symbols
so that they even work against the original pulse implementations
in case they are loaded first.

Fixes #236
2020-05-08 14:17:45 +02:00
Wim Taymans
b53cc6feb8 improve debug
Log device name and stream direction
Don't log xrun errors in alsa, we signal the xrun signal, which should
take care of logging if any.
Log quantum in xrun.
ratelimit xrun messages.
2020-05-08 12:13:59 +02:00
Wim Taymans
be8263208d log: add option to set log before pw_init()
Make it possible to call pw_log_set() before pw_init() so that it's
used for everything.
2020-05-08 11:00:48 +02:00
Wim Taymans
13fd6be747 media-session: only subscribe to readable params 2020-05-07 20:58:53 +02:00
Wim Taymans
6203fb967c log: make line==0 suppress the file/line/func output
Disable file/line/func output for pod debug
2020-05-07 20:42:52 +02:00
Wim Taymans
79fd4c941f debug: Don't debug EBUSY params
When a device returned EBUSY when enumerating params, don't try to
enumerate (and fail) them again.
2020-05-07 17:15:46 +02:00
Wim Taymans
f02c339645 Improve debug
Dump enum_params of failed format and buffer negotiation to error log.
2020-05-07 17:15:43 +02:00
Wim Taymans
97c8e674ac command: add log.level property
Support setting the log level from the config file.
2020-05-07 17:15:39 +02:00
Wim Taymans
3712ebc434 proxy: fix cleanup
Keep track if the proxy is still in the core object map or not
and make sure to only delete it once.

In _remove, just remove the item from the object map if the proxy
is destroyed. There is no need to call _proxy_destroy again (and
do the extra unref)
2020-05-07 17:09:07 +02:00
Wim Taymans
2c13b3ecd2 client-node-v0: return -ENOENT when parameter not found 2020-05-07 10:42:19 +02:00
Wim Taymans
91ef2fc68c man: add metadata man page 2020-05-06 17:12:01 +02:00
Wim Taymans
55d75fb075 tools: add pw-metadata tool
Add tool to inspect, monitor, set and delete metadata keys.
2020-05-06 15:57:12 +02:00
Wim Taymans
649448fb5f array: add and use pw_array_consume 2020-05-06 15:56:31 +02:00
Wim Taymans
720b7b5c6a metadata: emit removed messages from clear
Consume the array until we have removed all subjects.
2020-05-06 15:47:14 +02:00
Wim Taymans
9174e5ca20 parser: handle SPA_POD_None() in parser
SPA_POD_None will have a NULL as the destination address of the pod
value, so don't try to write to that.
2020-05-06 15:45:19 +02:00
Wim Taymans
d6b1342bab meson: always build pw-mididump 2020-05-06 12:31:18 +02:00
Wim Taymans
28d47c79f0 link: also recalculate graph when a prepared link is destroyed 2020-05-06 11:37:44 +02:00
Wim Taymans
995fafa5be alsa-seq: remove the queue for system announce port
The announce messages are not put in a queue so we don't need
to allocate one (and a timer). Without the timer, we avoid wakeups
and consume less power.

See #225
2020-05-06 11:19:46 +02:00
Michael Tretter
52c14e2378 gst: keep track of queued buffers
Pipewire might update buffers that have not been recycled by GStreamer,
because they are still used downstream. There is nothing we can do about
it in the pipewiresrc.

If a buffer is sent downstream more than once, take an additional
reference to make sure that we don't queue a buffer that is still used
and print a warning.
2020-05-05 13:53:02 +00:00