Commit graph

7922 commits

Author SHA1 Message Date
Wim Taymans baca092ba5 stream: emit the RequestProcess event
Emit the RequestProcess event when pw_stream_trigger_process() was
called but we are not the driver node.

Fixes #1728
2021-10-27 11:19:56 +02:00
Wim Taymans b5080a0395 node: dispatch RequestProcess event and command
The event is send to the driver node.
The command is sent to node directly.
2021-10-27 11:16:53 +02:00
Wim Taymans 3471391e0e spa: add RequestProcess command and event
The event is emitted by a node that is not a driver but wants the graph
to be scheduled. The command is sent to the driver and suggest that the
graph be scheduled.
2021-10-27 11:16:53 +02:00
Wim Taymans 7529e7c47c stream: add trigger_done event
It is emited after the graph cycle that was started with
trigger_process() completed.
2021-10-27 11:15:29 +02:00
Wim Taymans 0982c903eb fix example a little 2021-10-27 11:09:24 +02:00
columbarius 110aac8c6f examples: video-play-fixate announce ParamBuffer after fixation
This lets the fixation finish. Can this be made unneeded?
2021-10-27 11:09:24 +02:00
columbarius 9f34885174 examples: Create source and sink with fixation on format negotiation
This commit uses the video-src-alloc and video-play-reneg templates to create
examples for manual fixation at the format negotiation phase. These
clients simulate modifier negotiation done by clients handling DmaBufs.

Note: Neither client is capable of proper DmaBuf handling!

video-play-fixate can be used to test if a producer is capable to
fallback to shm buffer transport, while video-src-fixate can only be
used with the former example!
2021-10-27 11:09:24 +02:00
Wim Taymans 0568958856 impl-link: keep on negotiatiating until fixed Format
Send unfixed Format to nodes but don't proceed to the next state.
When EnumFormat is emited, change the link state back to INIT to restart
the negotiation.

Fixes #1732
2021-10-27 11:09:07 +02:00
Tom Briden 6cea8b201b meson: Allow session-managers option to be an absolute path
If it's not an absolute_path, then set the build_ms and build_wp
as normal, otherwise use the value as passed in.
2021-10-27 08:27:53 +00:00
Simon McVittie e167123667 Reinstate compatibility with older Linux with no getrandom()
Commit 42d8b2b1 "Remove legacy FreeBSD compatibility code" removed
compatibility with old versions of FreeBSD, but also removed
compatibility with old versions of Linux and glibc, which was requested
in #833.

This partially reverts commit 42d8b2b167.

Resolves: #833
Signed-off-by: Simon McVittie <smcv@collabora.com>
2021-10-26 19:32:02 +01:00
Wim Taymans 31f387868a jack: reorganize jack_port_get_buffer()
Dequeue a new buffer only once and reuse this queued buffer when
jack_port_get_buffer() is called multiple times in process().

Recycle an old buffer in the next cycle.

After calling process, mark all input buffers as consumed, process the
empty buffers and move the output buffers to the mix ports.

Fixes #1748
2021-10-26 12:28:31 +02:00
Wim Taymans 6f75b1433c jack: add some more debug 2021-10-26 12:10:15 +02:00
Wim Taymans a2f06be199 pulse-server: Improve combine sink properties
Make streams and sink have the same description so that they show
up as the same node in catia.
2021-10-26 10:50:28 +02:00
Wim Taymans 33653cbabf protocol-pulse: flush streams on pause
To remove any lingering data
2021-10-26 10:49:50 +02:00
Wim Taymans ba18768246 impl-link: both ports need to be negotiated before we can allocate
Fix allocation check. Both ports need to be at least negotiated before
we can attempt to allocate buffers.
2021-10-26 10:13:21 +02:00
Peter Hutterer cd3bd825c1 ci: add a job to build with the minimum required meson version
We can't build the session managers though, both require higher meson
versions than us.
2021-10-26 06:28:30 +00:00
Peter Hutterer cc38f8cc79 ci: add a job to build with the latest meson prerelease
This avoids us running into possible regressions in meson, see
https://nibblestew.blogspot.com/2021/10/a-call-for-more-downstream-testing-of.html
2021-10-26 06:28:30 +00:00
Peter Hutterer 9acee530e2 meson: switch to "foo in array" style for meson arrays
In Meson, string.contains() is a substring check but array.contains() is
a full string check. Let's use 'foo in bar' style instead to avoid
confusion.

Supported since meson 0.49.0
2021-10-26 06:22:20 +00:00
Peter Hutterer 07c5511aed test: handle chdir errors correctly
When we get to this code, we already updated the environment variables
so we need to use the usual error path to restore them.

And where chdir does fail, print an error to the log. 256 chars should
be enough here, if your tmpdir exceeds that you just have the error
message cut off.
2021-10-26 11:15:35 +10:00
Peter Hutterer cf3c0431c3 test: fix tmpdir value after setenv
Introduced in a2856c6e0f

set_test_env() modifies TMPDIR so we must not use getenv until after
that call.

Fixes #1736
2021-10-26 11:15:34 +10:00
Wim Taymans c4d5c01429 impl-link: check port state before allocating
At least one port needs to be ready to do allocation.
2021-10-25 18:13:47 +02:00
Wim Taymans f9a45a8b84 impl-link: improve debug 2021-10-25 18:12:24 +02:00
Wim Taymans f7eafe1404 stream: use user param field to track param changes
count the number of changes and then when there are any, flip the
SERIAL bit in the param info so that the server can detect a
change. Without this, 2 updated params would not flip the bit and the
param changes would not be noticed.
2021-10-25 18:08:58 +02:00
Wim Taymans eea6e7a1fb spa: add method to check if an object is fixated
See #1732
2021-10-25 18:08:10 +02:00
Wim Taymans 2cddd4a775 cpu: disable VFP asm when not available
Fixes #1746
2021-10-25 16:32:16 +02:00
Wim Taymans 5dfc3494dc map: use uintptr_t for the next pointer
This aligns the low bits of the next field with the low bits of the
pointer on big endian cpus.

Fixes #1747
2021-10-25 16:17:35 +02:00
Wim Taymans c07f0ccb71 map: make _insert_at() fail on a removed item
You are only supposed to use _insert_new()/_remove() or _insert_at()
on the map, If we detect a _insert_at() to a removed item,
return an error because else we might corrupt the free list.

Update unit test accordingly.
2021-10-25 16:17:35 +02:00
Peter Hutterer d5825b8551 meson: use meson variables for the SMs' uninstalled scripts
Both wireplumber and media-session have a meson variable now that
represents the -uninstalled script, complete with filled-in BUILDDIR
etc.

Let's use those variables for pipewire-uninstalled.conf so we don't have
to fill in the paths here.
2021-10-25 07:45:56 +00:00
Philippe Normand 1ac57e6e15 pipewire-jack: Fix compound-token-split-by-macro warning 2021-10-25 07:26:15 +00:00
Philippe Normand cff127a138 pipewire-alsa: Fix build warning
`pos < 0` always evaluates to false, so remove this condition.
2021-10-25 07:26:15 +00:00
Philippe Normand f0d3a7cf49 spa: alsa: Fix build warning
`type >=0` always evaluates to true, so remove this condition.
2021-10-25 07:26:15 +00:00
Philippe Normand 397a67889a examples: Add explicit break statement in video-play-reneg 2021-10-25 07:26:15 +00:00
Philippe Normand 6b1c483cf7 spa: v4l2: Convert buf structure to union and fix alignment
The inotify_event field has a variable sized type, so it's recommended to store
it at the end of the storage unit. Fixes gnu-variable-sized-type-not-at-end warning.
2021-10-25 07:26:15 +00:00
Philippe Normand ec7ed1275e spa: alsa: Switch to explicit fallthrough
Use `__attribute__((fallthrough))` through the new FALLTHROUGH macro, if
supported.
2021-10-25 07:26:15 +00:00
Guilherme Henrique 449cb66cec gitignore: Add media-session project to .gitignore 2021-10-24 19:57:28 +02:00
Guilherme Henrique 8641977816 meson: Set session manager variable based on renamed project 2021-10-24 19:53:02 +02:00
muzena fcca0644d6 Update Croatian language 2021-10-24 11:07:22 +00:00
Arseny Maslennikov ddb38bd742 pipewire-v4l2: pw-v4l2.in: fix parameter expansion in quotes
`@LIBV4L2_PATH@` can be expanded into a string containing literally
`${LIB}`, which is then reexpanded by the shell since it's enclosed in
double quotes. We fix this by using single quotes instead.
2021-10-23 04:35:31 +03:00
Gleb Popov d460c96273 Properly disable v4l2. 2021-10-22 19:11:14 +03:00
Gleb Popov b819496eda FreeBSD CI: Remove 11.4-RELEASE from the build matrix. 2021-10-22 19:10:13 +03:00
Gleb Popov 86caa39910 FreeBSD CI: Install git 2021-10-22 19:09:41 +03:00
Gleb Popov 35c9de34e8 Add FreeBSD variant of the ioctl request check. 2021-10-22 19:09:16 +03:00
Gleb Popov 65aea7c05a Avoid compiler warning by #ifdef'ing a function used only on Linux. 2021-10-22 19:08:24 +03:00
Gleb Popov a76ccfe64b Set PW_KEY_SEC_LABEL property on FreeBSD and avoid compiler warning. 2021-10-22 19:07:45 +03:00
Gleb Popov 43ef614537 Remove unused function. 2021-10-22 19:05:43 +03:00
Gleb Popov 12a4fbb425 Use uint16_t instead of int16_t to fix a compiler warning. 2021-10-22 19:05:18 +03:00
Gleb Popov e26b40a75f Fix compiler warning by spelling the initializer properly. 2021-10-22 19:04:47 +03:00
Gleb Popov e94adaac24 Don't include byteswap.h on FreeBSD, use sys/endian.h instead 2021-10-22 17:50:42 +03:00
Wim Taymans 651f0decea cpu: fix compilation on some architectures 2021-10-21 11:09:48 +02:00
Wim Taymans 5b7ef959d1 0.3.39 2021-10-20 17:00:38 +02:00