Accepting request 841554 from GNOME:Factory
- Update to version 0.3.13: * PipeWire improvements + Add pw-reserve tool to reserve or monitor a device on DBus. + Install spa-resample, a tool to resample a file. + Install spa-acp-tool, a tool to inspect the card profile. + Various fixes and improvements + Fix a bug in pw-stream where a capture stream could run out of buffers and become silent. + Rework the processing loops in the adapter and stream. There is now less latency in PulseAudio and ALSA layers. * Session manager improvements + Improve the device reservation code. We now try to acquire the device using the dbus device reservation API before we probe the device. This avoids conflicts with a running PulseAudio where devices would disappear (because they were locked by the other process). + Don't fail on invalid input from the config files. + Audio devices now have the same name as what PulseAudio would assign. * Device support + v4l2: try to use the format before enumerating the size and framerate. Some drivers don't check the format and might now work better. + v4l2: Fall back to MMAP when EXPBUF fails. Fix MMAP access, just export the fd and the mapoffset. This should make more devices work. + Fix crash in ALSA Card Profile (ACP) code. + ACP: fix selection of default profile. Prefer any possibly available profile over 'Off'. This makes some card at least start with something. (forwarded request 841457 from alarrosa) OBS-URL: https://build.opensuse.org/request/show/841554 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=17
This commit is contained in:
parent
da43a0f7cf
commit
856fab80eb
@ -1,60 +0,0 @@
|
||||
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.11</param>
|
||||
<param name="revision">0.3.13</param>
|
||||
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
|
||||
<param name="versionrewrite-pattern">(.*)\+0</param>
|
||||
<param name="versionrewrite-replacement">\1</param>
|
||||
|
@ -10,8 +10,8 @@ Index: pipewire-0.3.8/spa/plugins/alsa/meson.build
|
||||
spa_alsa_sources = ['alsa.c',
|
||||
'alsa-udev.c',
|
||||
@@ -26,8 +26,8 @@ alsa_udevrules = [
|
||||
'90-pipewire-alsa.rules',
|
||||
]
|
||||
install : true,
|
||||
)
|
||||
|
||||
-if libudev_dep.found()
|
||||
- install_data(alsa_udevrules,
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:23df2fc57724344f56c6378ce088512784d66f818c165dc90725356d71217761
|
||||
size 6727693
|
3
pipewire-0.3.13.obscpio
Normal file
3
pipewire-0.3.13.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cb06fad3ca886f988dc89d76796ac3f5cefa0ea36b82a9248f5ca30ed83590f4
|
||||
size 6778893
|
@ -1,3 +1,102 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 8 08:29:36 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Update to version 0.3.13:
|
||||
* PipeWire improvements
|
||||
+ Add pw-reserve tool to reserve or monitor a device on DBus.
|
||||
+ Install spa-resample, a tool to resample a file.
|
||||
+ Install spa-acp-tool, a tool to inspect the card profile.
|
||||
+ Various fixes and improvements
|
||||
+ Fix a bug in pw-stream where a capture stream could run out
|
||||
of buffers and become silent.
|
||||
+ Rework the processing loops in the adapter and stream. There
|
||||
is now less latency in PulseAudio and ALSA layers.
|
||||
* Session manager improvements
|
||||
+ Improve the device reservation code. We now try to acquire
|
||||
the device using the dbus device reservation API before we
|
||||
probe the device. This avoids conflicts with a running
|
||||
PulseAudio where devices would disappear (because they were
|
||||
locked by the other process).
|
||||
+ Don't fail on invalid input from the config files.
|
||||
+ Audio devices now have the same name as what PulseAudio
|
||||
would assign.
|
||||
* Device support
|
||||
+ v4l2: try to use the format before enumerating the size and
|
||||
framerate. Some drivers don't check the format and might now
|
||||
work better.
|
||||
+ v4l2: Fall back to MMAP when EXPBUF fails. Fix MMAP access,
|
||||
just export the fd and the mapoffset. This should make more
|
||||
devices work.
|
||||
+ Fix crash in ALSA Card Profile (ACP) code.
|
||||
+ ACP: fix selection of default profile. Prefer any possibly
|
||||
available profile over 'Off'. This makes some card at least
|
||||
start with something.
|
||||
+ Fix soft volume. After setting the volume to 0, it would stay
|
||||
at 0 until pushed over the max volume. This should fix
|
||||
various volume related issues.
|
||||
* PulseAudio layer improvements
|
||||
+ Rework the buffering and latency measurements and tweak the
|
||||
buffer attributes. This should make browsers and media
|
||||
players work better. This should also improve speechd
|
||||
performance.
|
||||
* JACK layer improvements
|
||||
+ Fix compilation against newer JACK.
|
||||
|
||||
- Rebase patch:
|
||||
* do-not-install-alsa-config-files.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 22 12:37:18 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Update to version 0.3.12:
|
||||
* PipeWire improvements
|
||||
+ The channelmap converter now handles unknown and strange
|
||||
channel layouts much better.
|
||||
+ The resampler is now cleared correctly, avoiding clicks and
|
||||
pops at the start of sound.
|
||||
+ Fixes for various crasher bugs. (paplay drain, vlc shutdown,
|
||||
pactl info, ...)
|
||||
+ Fix a race condition in the node state changes that caused
|
||||
all kinds of sync and other issues (vlc, mpv, ...)
|
||||
+ Improve the binary name property of applications
|
||||
+ Fix the scheduling again of nodes that always need a driver
|
||||
such as the jack clients.
|
||||
* Session manager improvements
|
||||
+ Fix routing to default nodes. Sometimes nodes were not routed
|
||||
to the default node (bluetooth)
|
||||
* Device support
|
||||
+ Disable channelmap from ALSA by default. This is what
|
||||
PulseAudio does and thus provides better compatibility.
|
||||
+ Fix a bug in how the resampler was used in the ALSA source,
|
||||
causing distortion and errors when using low latency capture
|
||||
clients. (Discord, webrtc, ...)
|
||||
+ Small bluetooth improvements. More work is needed for
|
||||
reliable bluetooth playback.
|
||||
* GStreamer plugins
|
||||
+ The device provider now stops the processing loop before
|
||||
shutting down, which avoids crashes (gnome-initial-setup).
|
||||
* PulseAudio layer improvements
|
||||
+ The buffer attributes were reworked to ensure compatibility
|
||||
with many more applications such as mpv and audacious.
|
||||
+ The pulseaudio layer will now try hard to not hand out
|
||||
invalid channel maps to the application. (avoids crashes in
|
||||
gnome-volume-control). The channel map will now also look
|
||||
more like what PulseAudio does.
|
||||
+ The @DEFAULT_SINK/SOURCE/MONITOR@ wildcards now work. This
|
||||
fixes the problem with volume keys when they are bound to
|
||||
scripts using pactl and the default sink/source wildcards.
|
||||
+ The PIPEWIRE_LATENCY environment variable now works again
|
||||
+ Fix some leaks of ports and port info. Also fix the leak of
|
||||
the context when the mainloop is stopped.
|
||||
+ The sink/source format_info array is now filled up
|
||||
completely, this is actually not implemented yet in the real
|
||||
PulseAudio.
|
||||
* JACK layer improvements
|
||||
+ jack now returns version 3.0.0 and has PipeWire in the
|
||||
version string so that apps can report this.
|
||||
- Drop patch:
|
||||
* 0001-alsa-dont-change-the-resampler-delay-value.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 18 05:32:09 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: pipewire
|
||||
version: 0.3.11
|
||||
mtime: 1599736416
|
||||
commit: b0c758719dfd661d9d2237e780f93d56ea181669
|
||||
version: 0.3.13
|
||||
mtime: 1601302090
|
||||
commit: d7714f734dcf2a346f939e11e1e3f6a2373c8632
|
||||
|
||||
|
@ -22,7 +22,6 @@
|
||||
%global provfind sh -c "grep -v -e 'libpulse.*\\.so' -e 'libjack.*\\.so' | %__find_provides"
|
||||
%global __find_provides %provfind
|
||||
|
||||
%define sover 0_3_9
|
||||
%define apiver 0.3
|
||||
%define apiver_str 0_3
|
||||
%define spa_ver 0.2
|
||||
@ -36,7 +35,7 @@
|
||||
%endif
|
||||
|
||||
Name: pipewire
|
||||
Version: 0.3.11
|
||||
Version: 0.3.13
|
||||
Release: 0
|
||||
Summary: A Multimedia Framework designed to be an audio and video server and more
|
||||
License: MIT
|
||||
@ -47,8 +46,6 @@ 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
|
||||
@ -266,9 +263,8 @@ 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
|
||||
%autopatch -m 100 -p1
|
||||
|
||||
%build
|
||||
%if %{pkg_vcmp gcc < 8}
|
||||
@ -423,6 +419,7 @@ fi
|
||||
%{_bindir}/pw-mididump
|
||||
%{_bindir}/pw-midiplay
|
||||
%{_bindir}/pw-midirecord
|
||||
%{_bindir}/pw-reserve
|
||||
%{_mandir}/man1/pw-cli.1%{ext_man}
|
||||
%{_mandir}/man1/pw-mon.1%{ext_man}
|
||||
%{_mandir}/man1/pw-cat.1%{ext_man}
|
||||
@ -434,6 +431,8 @@ fi
|
||||
%files spa-tools
|
||||
%{_bindir}/spa-inspect
|
||||
%{_bindir}/spa-monitor
|
||||
%{_bindir}/spa-acp-tool
|
||||
%{_bindir}/spa-resample
|
||||
|
||||
%files modules
|
||||
%dir %{_libdir}/pipewire-%{apiver}
|
||||
|
Loading…
x
Reference in New Issue
Block a user