Merged update from upstream sources
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/pipewire.git#be385b8bead20dac22768069ec795e9366c11590
This commit is contained in:
parent
81d5c270b4
commit
2b7f8a3af7
37
0001-pulse-server-don-t-underrun-when-draining.patch
Normal file
37
0001-pulse-server-don-t-underrun-when-draining.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
From 98b1b8090dbffe1dfa6e1883b2550008833a568a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Wim Taymans <wtaymans@redhat.com>
|
||||||
|
Date: Sat, 31 Oct 2020 15:22:32 +0100
|
||||||
|
Subject: [PATCH 1/3] pulse-server: don't underrun when draining
|
||||||
|
|
||||||
|
---
|
||||||
|
src/modules/module-protocol-pulse/pulse-server.c | 12 +++++++-----
|
||||||
|
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c
|
||||||
|
index a4162280..dbc52431 100644
|
||||||
|
--- a/src/modules/module-protocol-pulse/pulse-server.c
|
||||||
|
+++ b/src/modules/module-protocol-pulse/pulse-server.c
|
||||||
|
@@ -1276,13 +1276,15 @@ static void stream_process(void *data)
|
||||||
|
int32_t avail = spa_ringbuffer_get_read_index(&stream->ring, &pd.read_index);
|
||||||
|
if (avail <= 0) {
|
||||||
|
/* underrun */
|
||||||
|
- if (stream->drain_tag)
|
||||||
|
- pw_stream_flush(stream->stream, true);
|
||||||
|
-
|
||||||
|
size = buf->datas[0].maxsize;
|
||||||
|
memset(p, 0, size);
|
||||||
|
- pd.underrun_for = size;
|
||||||
|
- pd.underrun = true;
|
||||||
|
+
|
||||||
|
+ if (stream->drain_tag)
|
||||||
|
+ pw_stream_flush(stream->stream, true);
|
||||||
|
+ else {
|
||||||
|
+ pd.underrun_for = size;
|
||||||
|
+ pd.underrun = true;
|
||||||
|
+ }
|
||||||
|
} else if (avail > MAXLENGTH) {
|
||||||
|
/* overrun, handled by other side */
|
||||||
|
pw_log_warn(NAME" %p: overrun", stream);
|
||||||
|
--
|
||||||
|
2.28.0
|
||||||
|
|
34
0002-pulse-server-use-name-if-description-not-set.patch
Normal file
34
0002-pulse-server-use-name-if-description-not-set.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From 4bb859fb82d4d8128e146937289d560a8efa0fc3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Wim Taymans <wtaymans@redhat.com>
|
||||||
|
Date: Sat, 31 Oct 2020 21:20:39 +0100
|
||||||
|
Subject: [PATCH 2/3] pulse-server: use name if description not set
|
||||||
|
|
||||||
|
---
|
||||||
|
src/modules/module-protocol-pulse/collect.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/modules/module-protocol-pulse/collect.c b/src/modules/module-protocol-pulse/collect.c
|
||||||
|
index 130af355..9be5a8ae 100644
|
||||||
|
--- a/src/modules/module-protocol-pulse/collect.c
|
||||||
|
+++ b/src/modules/module-protocol-pulse/collect.c
|
||||||
|
@@ -244,6 +244,8 @@ static uint32_t collect_profile_info(struct pw_manager_object *card, struct card
|
||||||
|
SPA_PARAM_PROFILE_classes, SPA_POD_OPT_Pod(&classes)) < 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
+ if (pi->description == NULL)
|
||||||
|
+ pi->description = pi->name;
|
||||||
|
if (pi->id == card_info->active_profile)
|
||||||
|
card_info->active_profile_name = pi->name;
|
||||||
|
|
||||||
|
@@ -443,6 +445,8 @@ static uint32_t collect_port_info(struct pw_manager_object *card, struct card_in
|
||||||
|
SPA_PARAM_ROUTE_profiles, SPA_POD_OPT_Pod(&profiles)) < 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
+ if (pi->description == NULL)
|
||||||
|
+ pi->description = pi->name;
|
||||||
|
if (devices)
|
||||||
|
pi->devices = spa_pod_get_array(devices, &pi->n_devices);
|
||||||
|
if (profiles)
|
||||||
|
--
|
||||||
|
2.28.0
|
||||||
|
|
39
0003-pulse-server-don-t-ever-block.patch
Normal file
39
0003-pulse-server-don-t-ever-block.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
From 165ad6e75816f6d8b3273261a4f6d6dd8b7457f6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Wim Taymans <wtaymans@redhat.com>
|
||||||
|
Date: Sat, 31 Oct 2020 21:21:00 +0100
|
||||||
|
Subject: [PATCH 3/3] pulse-server: don't ever block
|
||||||
|
|
||||||
|
Handle EAGAIN and EWOULDBLOCK and go back into the poll loop instead
|
||||||
|
of blocking.
|
||||||
|
---
|
||||||
|
src/modules/module-protocol-pulse/pulse-server.c | 7 ++++++-
|
||||||
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c
|
||||||
|
index dbc52431..e1733b29 100644
|
||||||
|
--- a/src/modules/module-protocol-pulse/pulse-server.c
|
||||||
|
+++ b/src/modules/module-protocol-pulse/pulse-server.c
|
||||||
|
@@ -267,6 +267,8 @@ static int flush_messages(struct client *client)
|
||||||
|
res = send(client->source->fd, data, size, MSG_NOSIGNAL | MSG_DONTWAIT);
|
||||||
|
if (res < 0) {
|
||||||
|
pw_log_info("send channel:%d %zu, res %d: %m", m->channel, size, res);
|
||||||
|
+ if (errno == EAGAIN || errno == EWOULDBLOCK)
|
||||||
|
+ break;
|
||||||
|
if (errno == EINTR)
|
||||||
|
continue;
|
||||||
|
else
|
||||||
|
@@ -3974,7 +3976,10 @@ static int do_read(struct client *client)
|
||||||
|
size = client->message->length - idx;
|
||||||
|
}
|
||||||
|
while (true) {
|
||||||
|
- if ((r = recv(client->source->fd, data, size, 0)) < 0) {
|
||||||
|
+ if ((r = recv(client->source->fd, data, size, MSG_DONTWAIT)) < 0) {
|
||||||
|
+ pw_log_info("recv client:%p res %d: %m", client, res);
|
||||||
|
+ if (errno == EAGAIN || errno == EWOULDBLOCK)
|
||||||
|
+ goto exit;
|
||||||
|
if (errno == EINTR)
|
||||||
|
continue;
|
||||||
|
res = -errno;
|
||||||
|
--
|
||||||
|
2.28.0
|
||||||
|
|
@ -29,7 +29,7 @@
|
|||||||
Name: pipewire
|
Name: pipewire
|
||||||
Summary: Media Sharing Server
|
Summary: Media Sharing Server
|
||||||
Version: %{majorversion}.%{minorversion}.%{microversion}
|
Version: %{majorversion}.%{minorversion}.%{microversion}
|
||||||
Release: 1%{?snap:.%{snap}git%{shortcommit}}%{?dist}
|
Release: 2%{?snap:.%{snap}git%{shortcommit}}%{?dist}
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: https://pipewire.org/
|
URL: https://pipewire.org/
|
||||||
%if 0%{?gitrel}
|
%if 0%{?gitrel}
|
||||||
@ -41,6 +41,10 @@ Source0: https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/%{version}/p
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
## upstream patches
|
## upstream patches
|
||||||
|
Patch1: 0001-pulse-server-don-t-underrun-when-draining.patch
|
||||||
|
Patch2: 0002-pulse-server-use-name-if-description-not-set.patch
|
||||||
|
Patch3: 0003-pulse-server-don-t-ever-block.patch
|
||||||
|
|
||||||
|
|
||||||
## upstreamable patches
|
## upstreamable patches
|
||||||
|
|
||||||
@ -219,6 +223,9 @@ This package provides a PulseAudio implementation based on PipeWire
|
|||||||
%setup -q -T -b0 -n %{name}-%{version}%{?gitrel:-%{gitrel}-g%{shortcommit}}
|
%setup -q -T -b0 -n %{name}-%{version}%{?gitrel:-%{gitrel}-g%{shortcommit}}
|
||||||
|
|
||||||
%patch0 -p1 -b .0000
|
%patch0 -p1 -b .0000
|
||||||
|
%patch1 -p1 -b .0001
|
||||||
|
%patch2 -p1 -b .0002
|
||||||
|
%patch3 -p1 -b .0003
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%meson \
|
%meson \
|
||||||
@ -415,6 +422,9 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Nov 1 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.14-2
|
||||||
|
- Add some pulse server patches
|
||||||
|
|
||||||
* Fri Oct 30 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.14-1
|
* Fri Oct 30 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.14-1
|
||||||
- Update to 0.3.14
|
- Update to 0.3.14
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user