Hello community, here is the log from the commit of package pipewire for openSUSE:Factory checked in at 2020-09-25 16:25:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pipewire (Old) and /work/SRC/openSUSE:Factory/.pipewire.new.4249 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pipewire" Fri Sep 25 16:25:06 2020 rev:16 rq:836040 version:0.3.11 Changes: -------- --- /work/SRC/openSUSE:Factory/pipewire/pipewire.changes 2020-09-05 23:59:29.619166445 +0200 +++ /work/SRC/openSUSE:Factory/.pipewire.new.4249/pipewire.changes 2020-09-25 16:28:07.827709464 +0200 @@ -1,0 +2,84 @@ +Fri Sep 18 05:32:09 UTC 2020 - Antonio Larrosa <alarr...@suse.com> + +- Update to version 0.3.11: + * PipeWire improvements + + Properly cleanup the mixer structures when a port is removed, + this should fix client crashes related to port config changes + and other random crashes. + + Optimize the preferred formats in the audio converter. Higher + quality formats with higher performance are chosen first. + + Make sure the time reported by pw_stream is always + increasing, even when the driver and clock changes. + + There is now also a system service and socket that can be + used to enable PipeWire systemwide. This is however not + recommended and disabled by default. + + Fix channelmixer 5.1 to stereo mix matrix. It was not reading + the conversion matrix correctly and cause channels to be + dropped. The channelmixer will now also normalize the volume, + like what pulseaudio does. + + The channelmixer will now just copy channels when no layout + has been given. It has also optimized paths for this. This + makes it possible for apps to request > 8 channels from the + alsa plugin (ardour). + + Port, Node and Link will now also emit an error on the + resources in addition to updating the error in the info. This + would make it easier to track negotiation errors in the + session manager later. + + many small fixes and cleanups. + + Fix compatibility: + - DOSBox: fix crash because of double free in pw_stream + * Session manager improvements + + The session manager will now try to configure the client to + the channel configuration of the sink/source. It will only + do this for downmixing, never for upmixing and also never + when the client has the dont-remix property set. It will + also renegotiate the channel layout when moving a stream to + a new sink/source. + + Configuration state is now saved in XDG_CONFIG_HOME. + Previously it was saved in $HOME/.pipewire-media-session/ + You can migrate the state by moving the files to + $XDG_CONFIG_HOME/pipewire-media-session (or + $HOME/.config/pipewire-media-session as a fallback when + XDG_CONFIG_HOME is not set). + * Device support + + Bluetooth sources and sinks should work better now. + + There is now also a new bluetooth backend using hsphfpd. + + fix the ALSA UCM Off profile for alsa pcm devices + + improve ALSA port and profile switching. The ACP device will + now switch to the best port and profile when availability + changes. + * PulseAudio layer improvements + + Implement some more callbacks. The pulse layer will now also + notify applications of stream moved, started and latency + changes. + + Fix error code when an object was not found. We now return + PA_ERR_NOENTITY instead of PA_ERR_INVALID. + + Add some support for loading new null sinks. Applications + such as pulseeffects use this. Note that pulseeffects does + not yet work reliably but can start now. + + Improve handling of profile and port updates, it should work + much more reliable now. Apps should now also again receive + volume updates from sinks/sources. + + Fix compatibility: + - openal-soft 1.20 + - pavucontrol (checks PA_ERR_NOENTITY) + * JACK layer improvements + + improve default source and sink handling. It was not updated + correctly in all cases. + + add samplerate and period to the pw-jack wrapper to easily + configure the desired samplerate and perdiod for the app. + * ALSA plugin improvements + + Add a mixer entry in the alsa config file. + + Implement support for planar types, rework the processing + function to make it more robust. + + refuse to load the alsa plugin when linked against 0.2. This + catches some old apps linked against 0.2 that want to use the + alsa plugin. + + Fix compatibility: + - linphone (ALSA SIGFPE when _status() is called + before _prepare()). +- Add patch from upstream to fix audio stutters in discord and probably + other applications when using alsa directly. + * 0001-alsa-dont-change-the-resampler-delay-value.patch + +------------------------------------------------------------------- Old: ---- pipewire-0.3.10.obscpio New: ---- 0001-alsa-dont-change-the-resampler-delay-value.patch pipewire-0.3.11.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pipewire.spec ++++++ --- /var/tmp/diff_new_pack.fY59Nl/_old 2020-09-25 16:28:08.439710006 +0200 +++ /var/tmp/diff_new_pack.fY59Nl/_new 2020-09-25 16:28:08.443710009 +0200 @@ -36,7 +36,7 @@ %endif Name: pipewire -Version: 0.3.10 +Version: 0.3.11 Release: 0 Summary: A Multimedia Framework designed to be an audio and video server and more License: MIT @@ -47,6 +47,8 @@ Patch0: fix-memfd_create-call.patch Patch1: do-not-use-snd_pcm_ioplug_hw_avail.patch Patch2: do-not-install-alsa-config-files.patch +# PATCH-FIX-UPSTREAM 0001-alsa-dont-change-the-resampler-delay-value.patch -- https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/287 +Patch100: 0001-alsa-dont-change-the-resampler-delay-value.patch BuildRequires: doxygen BuildRequires: fdupes @@ -264,6 +266,7 @@ %endif sed -i -e "s/meson_version : '>= 0.49.0',/meson_version : '>= 0.46.0',/" meson.build %patch2 -p1 +%patch100 -p1 %autopatch -m 101 -p1 ++++++ 0001-alsa-dont-change-the-resampler-delay-value.patch ++++++ >From 8332d3e3edba34b8b0706359085e4750705c8f12 Mon Sep 17 00:00:00 2001 From: Wim Taymans <wtaym...@redhat.com> Date: Tue, 15 Sep 2020 13:16:31 +0200 Subject: [PATCH] alsa: don't change the resampler delay value Don't change the resampler delay value, we need it to make sure we keep samples around for the next round. With small period sizes, we set the delay to 0 and mess up the resampler and cause dropouts and clicking. Fixes #287 --- spa/plugins/alsa/alsa-pcm.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c index 932244e7..78c4a3f7 100644 --- a/spa/plugins/alsa/alsa-pcm.c +++ b/spa/plugins/alsa/alsa-pcm.c @@ -664,7 +664,6 @@ static int alsa_recover(struct state *state, int err) state->alsa_started = false; spa_alsa_write(state, state->threshold * 2); } - return 0; } @@ -688,6 +687,7 @@ static int get_status(struct state *state, snd_pcm_uframes_t *delay, snd_pcm_ufr *target = state->last_threshold; +#define MARGIN 48 if (state->resample && state->rate_match) { state->delay = state->rate_match->delay * 2; state->read_size = state->rate_match->size; @@ -695,9 +695,10 @@ static int get_status(struct state *state, snd_pcm_uframes_t *delay, snd_pcm_ufr * by moving a little closer to the device read/write pointers. * Don't try to get closer than 48 samples but instead increase the * reported latency on the port (TODO). */ - if (*target <= state->delay + 48) - state->delay = SPA_MAX(0, (int)(*target - 48 - state->delay)); - *target -= state->delay; + if (*target <= state->delay + MARGIN) + *target -= SPA_MAX(0, (int)(*target - MARGIN - state->delay)); + else + *target -= state->delay; } else { state->delay = state->read_size = 0; } @@ -1290,6 +1291,7 @@ int spa_alsa_start(struct state *state) reset_buffers(state); state->alsa_sync = true; + state->alsa_recovering = false; if (state->stream == SND_PCM_STREAM_PLAYBACK) { state->alsa_started = false; -- GitLab ++++++ _service ++++++ --- /var/tmp/diff_new_pack.fY59Nl/_old 2020-09-25 16:28:08.483710045 +0200 +++ /var/tmp/diff_new_pack.fY59Nl/_new 2020-09-25 16:28:08.487710048 +0200 @@ -3,7 +3,7 @@ <service name="obs_scm" mode="disabled"> <param name="scm">git</param> <param name="url">https://gitlab.freedesktop.org/pipewire/pipewire.git</param> - <param name="revision">0.3.10</param> + <param name="revision">0.3.11</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ pipewire-0.3.10.obscpio -> pipewire-0.3.11.obscpio ++++++ /work/SRC/openSUSE:Factory/pipewire/pipewire-0.3.10.obscpio /work/SRC/openSUSE:Factory/.pipewire.new.4249/pipewire-0.3.11.obscpio differ: char 49, line 1 ++++++ pipewire.obsinfo ++++++ --- /var/tmp/diff_new_pack.fY59Nl/_old 2020-09-25 16:28:08.571710122 +0200 +++ /var/tmp/diff_new_pack.fY59Nl/_new 2020-09-25 16:28:08.571710122 +0200 @@ -1,5 +1,5 @@ name: pipewire -version: 0.3.10 -mtime: 1597749552 -commit: 69be14186e20ffaa42c4a635be5da49173c45b97 +version: 0.3.11 +mtime: 1599736416 +commit: b0c758719dfd661d9d2237e780f93d56ea181669