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#4579fc9e524dc9c014579b5d1e52a0d54fcadbe9
This commit is contained in:
DistroBaker 2020-11-04 10:24:32 +00:00
parent 2b7f8a3af7
commit f7f6f6badf
7 changed files with 7 additions and 147 deletions

1
.gitignore vendored
View File

@ -33,3 +33,4 @@
/pipewire-0.3.12.tar.gz
/pipewire-0.3.13.tar.gz
/pipewire-0.3.14.tar.gz
/pipewire-0.3.15.tar.gz

View File

@ -1,24 +0,0 @@
From 13945e27434951366960dd3a0461c58487df82a2 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Mon, 30 Mar 2020 15:32:04 +0200
Subject: [PATCH] conf: disable bluez5
Disable bluetooth handling by default to avoid causing
conflicts with pulseaudio.
---
src/daemon/pipewire.conf.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/daemon/pipewire.conf.in b/src/daemon/pipewire.conf.in
index 574cba4f..4ecec24f 100644
--- a/src/daemon/pipewire.conf.in
+++ b/src/daemon/pipewire.conf.in
@@ -71,4 +71,4 @@ create-object spa-node-factory factory.name=support.node.driver node.name=Dummy
# Execute the given program. This is usually used to start the
# session manager. run the session manager with -h for options
#
-exec @media_session_path@ # -d alsa-seq,alsa-pcm,bluez5,metadata
+exec @media_session_path@ -d bluez5,pulse-bridge # -d alsa-seq,alsa-pcm,metadata
--
2.26.2

View File

@ -1,37 +0,0 @@
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

View File

@ -1,34 +0,0 @@
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

View File

@ -1,39 +0,0 @@
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

View File

@ -1,6 +1,6 @@
%global majorversion 0
%global minorversion 3
%global microversion 14
%global microversion 15
%global apiversion 0.3
%global spaversion 0.2
@ -29,7 +29,7 @@
Name: pipewire
Summary: Media Sharing Server
Version: %{majorversion}.%{minorversion}.%{microversion}
Release: 2%{?snap:.%{snap}git%{shortcommit}}%{?dist}
Release: 1%{?snap:.%{snap}git%{shortcommit}}%{?dist}
License: MIT
URL: https://pipewire.org/
%if 0%{?gitrel}
@ -41,15 +41,10 @@ Source0: https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/%{version}/p
%endif
## 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
## fedora patches
Patch0: 0001-conf-disable-bluez5.patch
BuildRequires: meson >= 0.49.0
BuildRequires: gcc
@ -222,11 +217,6 @@ This package provides a PulseAudio implementation based on PipeWire
%prep
%setup -q -T -b0 -n %{name}-%{version}%{?gitrel:-%{gitrel}-g%{shortcommit}}
%patch0 -p1 -b .0000
%patch1 -p1 -b .0001
%patch2 -p1 -b .0002
%patch3 -p1 -b .0003
%build
%meson \
-D docs=true -D man=true -D gstreamer=true -D systemd=true \
@ -422,6 +412,9 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
%endif
%changelog
* Wed Nov 4 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.15-1
- Update to 0.3.15
* Sun Nov 1 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.14-2
- Add some pulse server patches

View File

@ -1 +1 @@
SHA512 (pipewire-0.3.14.tar.gz) = fe83150b7e1d346a0cf4095f6849d0ec8120f6c60c2bc880204e882c84b07a4b24fc858d2fa122b2feaebfc525a8b91921cb01e31f2be60aabe40d2404f5225e
SHA512 (pipewire-0.3.15.tar.gz) = 949f2e64a3e9ec06b3414cacfbd7cf4ef6b7bad484a5dea1b79b5d4310413ec5a7538b702431f2cf6fb580ffd430081bd568399faa9b819689a79bebc955ca33