mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
media-video/pipewire: backport recommended aptches to 0.3.69
Closes: https://bugs.gentoo.org/904507 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a275e825c75c93775baaeb17479e38d035d9b79a
|
||||
|
||||
From a275e825c75c93775baaeb17479e38d035d9b79a Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Fri, 14 Apr 2023 12:01:03 +0200
|
||||
Subject: [PATCH] context: improve state calculations
|
||||
|
||||
Always make peers of non-passive links runnable, even if we already
|
||||
visited the peer node. This makes non-passive links between drivers set the
|
||||
drivers to runnable. (midi-bridge, source to sink). It also makes nodes
|
||||
collected from the (link-)group runnable when they are linked together.
|
||||
|
||||
To calculate the runnable state of the other nodes, only start from
|
||||
non-driver runnable nodes (like we already did when following links).
|
||||
|
||||
This makes a link from echo-cancel-source to echo-cancel-sink activate
|
||||
the echo-canceler chain instead of staying idle.
|
||||
--- a/src/pipewire/context.c
|
||||
+++ b/src/pipewire/context.c
|
||||
@@ -788,9 +788,6 @@ static inline int run_nodes(struct pw_context *context, struct pw_impl_node *nod
|
||||
struct pw_impl_port *p;
|
||||
struct pw_impl_link *l;
|
||||
|
||||
- if (!node->runnable)
|
||||
- return 0;
|
||||
-
|
||||
pw_log_debug("node %p: '%s'", node, node->name);
|
||||
|
||||
spa_list_for_each(p, &node->input_ports, link) {
|
||||
@@ -885,7 +882,7 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node,
|
||||
|
||||
pw_impl_link_prepare(l);
|
||||
|
||||
- if (!l->prepared || (t != n && t->visited))
|
||||
+ if (!l->prepared)
|
||||
continue;
|
||||
|
||||
if (!l->passive)
|
||||
@@ -906,7 +903,7 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node,
|
||||
|
||||
pw_impl_link_prepare(l);
|
||||
|
||||
- if (!l->prepared || (t != n && t->visited))
|
||||
+ if (!l->prepared)
|
||||
continue;
|
||||
|
||||
if (!l->passive)
|
||||
@@ -936,7 +933,8 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node,
|
||||
pw_log_debug(" next node %p: '%s' runnable:%u", n, n->name, n->runnable);
|
||||
}
|
||||
spa_list_for_each(n, collect, sort_link)
|
||||
- run_nodes(context, n, collect);
|
||||
+ if (!n->driver && n->runnable)
|
||||
+ run_nodes(context, n, collect);
|
||||
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
@@ -0,0 +1,38 @@
|
||||
https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/916f1cdfbfdc414d83031aef941a9909d1e603bd
|
||||
|
||||
From 916f1cdfbfdc414d83031aef941a9909d1e603bd Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Fri, 14 Apr 2023 16:32:18 +0200
|
||||
Subject: [PATCH] Revert "alsa-mixer: allow to re-attach the mixer control
|
||||
element"
|
||||
|
||||
This reverts commit b554fc20e9ff97064721c89eb15b1b45870584e5.
|
||||
--- a/spa/plugins/alsa/acp/alsa-util.c
|
||||
+++ b/spa/plugins/alsa/acp/alsa-util.c
|
||||
@@ -1648,20 +1648,12 @@ static int mixer_class_event(snd_mixer_class_t *class, unsigned int mask,
|
||||
} else if (mask & SND_CTL_EVENT_MASK_ADD) {
|
||||
snd_ctl_elem_iface_t iface = snd_hctl_elem_get_interface(helem);
|
||||
if (iface == SND_CTL_ELEM_IFACE_CARD || iface == SND_CTL_ELEM_IFACE_PCM) {
|
||||
- snd_mixer_t *mixer = snd_mixer_class_get_mixer(class);
|
||||
- snd_ctl_elem_iface_t iface = snd_hctl_elem_get_interface(helem);
|
||||
- const char *name = snd_hctl_elem_get_name(helem);
|
||||
- const int index = snd_hctl_elem_get_index(helem);
|
||||
- const int device = snd_hctl_elem_get_device(helem);
|
||||
snd_mixer_elem_t *new_melem;
|
||||
|
||||
- new_melem = pa_alsa_mixer_find(mixer, iface, name, index, device);
|
||||
- if (!new_melem) {
|
||||
- /* Put the hctl pointer as our private data - it will be useful for callbacks */
|
||||
- if ((err = snd_mixer_elem_new(&new_melem, SND_MIXER_ELEM_PULSEAUDIO, 0, helem, NULL)) < 0) {
|
||||
- pa_log_warn("snd_mixer_elem_new failed: %s", pa_alsa_strerror(err));
|
||||
- return 0;
|
||||
- }
|
||||
+ /* Put the hctl pointer as our private data - it will be useful for callbacks */
|
||||
+ if ((err = snd_mixer_elem_new(&new_melem, SND_MIXER_ELEM_PULSEAUDIO, 0, helem, NULL)) < 0) {
|
||||
+ pa_log_warn("snd_mixer_elem_new failed: %s", pa_alsa_strerror(err));
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
if ((err = snd_mixer_elem_attach(new_melem, helem)) < 0) {
|
||||
--
|
||||
GitLab
|
||||
@@ -0,0 +1,21 @@
|
||||
https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/381be87e379996c502786883f90a19ac49e84c10
|
||||
|
||||
From 381be87e379996c502786883f90a19ac49e84c10 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Sun, 16 Apr 2023 18:38:52 +0200
|
||||
Subject: [PATCH] filter-chain: config is only required for bq_raw
|
||||
|
||||
Fixes #3161
|
||||
--- a/src/modules/module-filter-chain/builtin_plugin.c
|
||||
+++ b/src/modules/module-filter-chain/builtin_plugin.c
|
||||
@@ -287,6 +287,8 @@ static void *bq_instantiate(const struct fc_descriptor * Descriptor,
|
||||
impl->rate = SampleRate;
|
||||
impl->b0 = impl->a0 = 1.0f;
|
||||
impl->type = bq_type_from_name(Descriptor->name);
|
||||
+ if (impl->type != BQ_NONE)
|
||||
+ return impl;
|
||||
|
||||
if (config == NULL)
|
||||
goto error;
|
||||
--
|
||||
GitLab
|
||||
Reference in New Issue
Block a user