diff --git a/.gitignore b/.gitignore index 168c472..0956726 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/0001-conf-disable-bluez5.patch b/0001-conf-disable-bluez5.patch deleted file mode 100644 index 37d1881..0000000 --- a/0001-conf-disable-bluez5.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 13945e27434951366960dd3a0461c58487df82a2 Mon Sep 17 00:00:00 2001 -From: Wim Taymans -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 - diff --git a/0001-pulse-server-don-t-underrun-when-draining.patch b/0001-pulse-server-don-t-underrun-when-draining.patch deleted file mode 100644 index 0c1c8f5..0000000 --- a/0001-pulse-server-don-t-underrun-when-draining.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 98b1b8090dbffe1dfa6e1883b2550008833a568a Mon Sep 17 00:00:00 2001 -From: Wim Taymans -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 - diff --git a/0002-pulse-server-use-name-if-description-not-set.patch b/0002-pulse-server-use-name-if-description-not-set.patch deleted file mode 100644 index 014a33a..0000000 --- a/0002-pulse-server-use-name-if-description-not-set.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 4bb859fb82d4d8128e146937289d560a8efa0fc3 Mon Sep 17 00:00:00 2001 -From: Wim Taymans -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 - diff --git a/0003-pulse-server-don-t-ever-block.patch b/0003-pulse-server-don-t-ever-block.patch deleted file mode 100644 index 64791b4..0000000 --- a/0003-pulse-server-don-t-ever-block.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 165ad6e75816f6d8b3273261a4f6d6dd8b7457f6 Mon Sep 17 00:00:00 2001 -From: Wim Taymans -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 - diff --git a/pipewire.spec b/pipewire.spec index cd0055f..47e5813 100644 --- a/pipewire.spec +++ b/pipewire.spec @@ -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 - 0.3.15-1 +- Update to 0.3.15 + * Sun Nov 1 2020 Wim Taymans - 0.3.14-2 - Add some pulse server patches diff --git a/sources b/sources index 34b7db7..cb04550 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (pipewire-0.3.14.tar.gz) = fe83150b7e1d346a0cf4095f6849d0ec8120f6c60c2bc880204e882c84b07a4b24fc858d2fa122b2feaebfc525a8b91921cb01e31f2be60aabe40d2404f5225e +SHA512 (pipewire-0.3.15.tar.gz) = 949f2e64a3e9ec06b3414cacfbd7cf4ef6b7bad484a5dea1b79b5d4310413ec5a7538b702431f2cf6fb580ffd430081bd568399faa9b819689a79bebc955ca33