Commit graph

7357 commits

Author SHA1 Message Date
Leonardo Neumann
6168067cb2
fix missing limits.h include 2021-09-18 04:36:20 -03:00
Wim Taymans
10abcd92d7 update version number as well 2021-09-16 18:38:56 +02:00
Pauli Virtanen
39c8ed4f62 media-session: don't use-after-free if linking node removed
Should fix an ASAN crash.
2021-09-16 19:20:53 +03:00
Wim Taymans
4997d47f63 0.3.36 2021-09-16 15:08:56 +02:00
Wim Taymans
2e17cc7901 jack: always check srate/bufsize from data thread
To ensure processing is always happening with the values emited
in the callback.
2021-09-16 11:51:01 +02:00
Wim Taymans
cb1c259bc5 jack: check buffersize when we get the io area
We can immeditately update the buffersize when we get the io area.
2021-09-16 11:43:32 +02:00
Wim Taymans
142272e5cc jack: shortcut callbacks when NULL
When the callbacks are NULL, just update the bufsize/srate and be
done. There is no need to wait for a context switch in that case.
2021-09-16 11:29:13 +02:00
Wim Taymans
803763ed01 gst: add 30 seconds timeout
Add a timeout to all blocking wait operations so that we don't wait
forever but error out after 30 seconds.
2021-09-16 10:05:58 +02:00
Wim Taymans
d04244abb9 audioconvert: add softMute to PropInfo
So that it can be introspected.

Fixes #1613
2021-09-15 20:57:10 +02:00
Wim Taymans
a2202de679 gst: also stop waiting when we are flushing 2021-09-15 20:57:10 +02:00
Wim Taymans
077808b09a pipewiresrc: also notify waiters when start fails 2021-09-15 20:57:10 +02:00
Wim Taymans
97be5687ec remote-node: clear the node io areas when removing the memory
When the memory is removed, clear the node io areas so that it doesn't
accidentally get reused.

Fixes a crash in cheese when the node is stopped and then resumed.
2021-09-15 20:57:10 +02:00
Wim Taymans
21657ea2af remote-node: improve node io tag
Set the second tag field to INVALID to separate the node io areas from
the port io areas.
2021-09-15 20:57:10 +02:00
Wim Taymans
f6f10669a0 alsa: destroy stream first and then context
This makes things more deterministic.
2021-09-15 20:57:10 +02:00
Georges Basile Stavracas Neto
eca2bbb892 v4l2: Pass camera controls and formats in the node itself
Instead of using the Port to do that. This is what audio nodes
do.
2021-09-15 10:25:33 -03:00
Peter Hutterer
14f0c6f9a6 modules: print the optional modules as part of the meson summary
This makes it easier to figure out if a particular module was missing
from the build. Example output:

  Optional Modules
    rt                        : YES
    rtkit                     : YES
    portal                    : YES
    pulse-tunnel              : YES
    zeroconf-discover         : YES
    roc-sink                  : NO
    roc-source                : NO
2021-09-15 11:24:09 +10:00
Wim Taymans
19a3bf2100 spa: handle last_port correctly
last_port is always 1 more than the highest valid port number.
2021-09-14 21:06:21 +02:00
Wim Taymans
d793086174 alsa-seq: fix port delete
We need to first mark the removed port as invalid, and then look for the
last valid port in the port array otherwise last_port becomes 0 and
midi dataflow stops.

Fixes #1601
2021-09-14 18:08:30 +02:00
Wim Taymans
bf29130f84 midifile: debug some more message types 2021-09-14 15:39:35 +02:00
Wim Taymans
36fe2e9b9e context: scale quantum values to default rate
The quantum values are relative to the default clock rate. When an
alternative rate is selected, scale the quantum values accordingly.
2021-09-14 13:34:06 +02:00
Wim Taymans
349324b9a6 alsa: pass AES bits to S/PDIF devices
This is the right thing to do and might even fix output to some
devices.
2021-09-14 12:42:03 +02:00
Wim Taymans
7543ad0766 impl-node: add node.transport.sync property
When the node support transport sync. That is, when it will clear the
pending_sync flag from its activation area when it completed a new
seek.

Before this patch, the pending sync was always automatically cleared,
which broke some applications that are time masters such as bitwig.

Fixes #1589
2021-09-14 11:06:19 +02:00
Wim Taymans
47a46e198f improve debug 2021-09-14 11:06:19 +02:00
Pauli Virtanen
652c1423f8 gitlab: fix bluetooth issue template
Should use lsusb for determining adapter.
2021-09-13 21:11:14 +03:00
Wim Taymans
939c6e7aa4 jack: always move the timebase owner to the driver
Whenever a timebase owner is moved to a new driver, try to install it as
a timebase owner on the driver.

Before this patch, the timebase owner would only be installed on the
first driver is was assigned to, which was most likely a dummy driver.

See #1589
2021-09-13 17:35:57 +02:00
Wim Taymans
fda6e7b4af pulse-server: parse default.clock.rate from core info
Use the core.info clock rate as the default sample rate as soon as the
manager exposes the core object. Otherwise the default sample rate is 0
until someone calls GET_SERVER_INFO, which as a side effect sets the
default sample rate.

Fixes issues with sinks not appearing right away.

Fixes #1588
2021-09-13 10:50:01 +02:00
Pauli Virtanen
535aca1b30 gitlab: update Bluetooth issue template
Add commands that output basic info, and add link to instructions for
debug log.
2021-09-12 11:51:01 +03:00
liberodark
d2017ff540 Fix multiple module dir 2021-09-11 14:29:48 +00:00
Davide Beatrici
fc9f7c1005 stream: declare pw_stream_get_control() in header
The function is defined and exported, but is not declared in the header.
2021-09-11 14:28:35 +00:00
Wim Taymans
6dde4ea1aa jack: pause processing until callback is emited
Change the buffer_size and sample_rate when we are sure the proces
callback is not running.

Delay process callback until we have called the buffer_size or
samplerate callback. Otherwise the jack application might be called with
the new buffer_size/sample_rate before the callback has been called.
2021-09-11 13:07:10 +02:00
Pauli Virtanen
966fbd5a21 bluez5: blocklist devices for sbc-xq 2021-09-10 17:57:21 +00:00
Wim Taymans
9faa006c1d media-session: try to not select nodes with unavailable route
Nodes that have the current route as unavailable should preferably not
be selected as defaults or targets.
2021-09-10 13:38:29 +02:00
Peter Hutterer
e1672f9762 pipewire: allow for log level names in PIPEWIRE_DEBUG
Allow one of "XEWIDT" to refer to none, errors, warnings, info, debug
and trace, respectively because they're immediately recognizable. Well,
except maybe the X.

PIPEWIRE_DEBUG="I" is equivalent to PIPEWIRE_DEBUG="3" for example.
2021-09-10 07:38:20 +00:00
Peter Hutterer
0a21d76334 test: add tests for the log levels to show up correctly
Two tests, once with pw_log_set_level(), once with PIPEWIRE_DEBUG
2021-09-10 07:38:20 +00:00
Julian Bouzas
767ac79328 audiomixer: support multiple channels when mixing with AVX, SSE and SSE2 2021-09-10 07:35:55 +00:00
Pauli Virtanen
3f8fb6e4dc media-session: don't bluez-autoswitch for suspended/idle/errored streams
E.g. skypeforlinux makes its input streams idle but does not destroy
them, when no call is active.
2021-09-10 07:35:12 +00:00
Pauli Virtanen
4f8ff41a45 media-session: don't crash if obj->info is missing 2021-09-10 07:35:12 +00:00
Wim Taymans
e6d7b1aa70 media-session: copy some device keys to the nodes
Chrome seems to want to use the device.bus
2021-09-09 18:05:20 +02:00
Wim Taymans
67be26aac7 media-session: only check passthrough when available
When none of the nodes have a valid passthrough format, don't check if
passthrough is possible.

Without the check, it is possible that a node has a common format with
the peer that is not a passthrough format, like a raw audio format.

Fixes #1587
2021-09-09 16:24:04 +02:00
Wim Taymans
954befccff doc: define HAVE_DOT to generate dot files
Fixes #1585
2021-09-09 13:01:29 +02:00
Peter Hutterer
c2b11b09f1 ci: bump the Fedora distribution to F34 2021-09-09 09:49:12 +00:00
Frédéric Danis
2055c57436 meson: Allow access to WP tools in uninstalled shell
If WirePlumber is built as a subproject this calls the wireplumber's
`wp-uninstalled.sh` command to be able to run PW and WP commands from
the uninstalled shell.
2021-09-09 11:36:36 +02:00
Wim Taymans
91069ec3d2 0.3.35 2021-09-09 09:52:35 +02:00
Peter Hutterer
0596b388fe doc: fix example for the PIPEWIRE_DEBUG format 2021-09-09 09:31:52 +10:00
Julian Bouzas
7d0a8b68e8 audiomixer: add support for U8, U16, U24, U32, S24_32 and U24_32 formats 2021-09-08 14:24:31 -04:00
Julian Bouzas
20e64b39da fmtconvert: add support for U16, U24, U32 and U24_32 formats 2021-09-08 14:24:26 -04:00
Jonas Holmberg
f22dd9d781 pipewire-alsa: Make it MT safe
Make pipewire-alsa MT safe so that multi threaded programs can use it
without any extra locks.
2021-09-08 16:36:58 +02:00
Wim Taymans
0cf6760ee0 resample: limit the amount of taps
So that we don't allocate too much space but also don't cause an
overflow in the indexes.
2021-09-08 16:28:24 +02:00
Wim Taymans
e4b030fafa jack: add option to disable process lock
Some applications might expect the process function to run concurrently
with the callbacks. PipeWire tries to avoid this by using a lock for the
duration of the process callback. Make an option to disable this.

See #1576
2021-09-08 13:02:04 +02:00
Wim Taymans
2071a14c82 context: only apply lock-quantum for unsuspended nodes
When the node is suspended, don't take into account the lock-quantum
settings or else the graph would not want to change to the requested
quantum of the node.

Say we have a jack node with node.lock-quantum = true and
node.latency=256/48000. When it joins the graph and is suspended, the
lock-quantum is ignored and the node.latency is set on the graph.
After that, the lock-quantum ensures the graph quantum doesn't change
anymore until the node is suspended.
2021-09-08 11:53:08 +02:00