Accepting request 836040 from GNOME:Factory
(forwarded request 835423 from dimstar) OBS-URL: https://build.opensuse.org/request/show/836040 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=16
This commit is contained in:
parent
afed657557
commit
da43a0f7cf
60
0001-alsa-dont-change-the-resampler-delay-value.patch
Normal file
60
0001-alsa-dont-change-the-resampler-delay-value.patch
Normal file
@ -0,0 +1,60 @@
|
||||
From 8332d3e3edba34b8b0706359085e4750705c8f12 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@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
|
||||
|
2
_service
2
_service
@ -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>
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:486a43be5084b86423fc41ebb696a8a9e4faa987bccb1ca22dab9f446a837207
|
||||
size 6628365
|
3
pipewire-0.3.11.obscpio
Normal file
3
pipewire-0.3.11.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:23df2fc57724344f56c6378ce088512784d66f818c165dc90725356d71217761
|
||||
size 6727693
|
@ -1,3 +1,87 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 18 05:32:09 UTC 2020 - Antonio Larrosa <alarrosa@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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 27 06:00:06 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: pipewire
|
||||
version: 0.3.10
|
||||
mtime: 1597749552
|
||||
commit: 69be14186e20ffaa42c4a635be5da49173c45b97
|
||||
version: 0.3.11
|
||||
mtime: 1599736416
|
||||
commit: b0c758719dfd661d9d2237e780f93d56ea181669
|
||||
|
||||
|
@ -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 @@ Source1: %{name}-rpmlintrc
|
||||
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 @@ sed -i -e "s/dependency('alsa', version : '>=1.1.7')/dependency('alsa', version
|
||||
%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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user