Hello community,

here is the log from the commit of package pipewire for openSUSE:Leap:15.2 
checked in at 2020-05-26 18:32:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/pipewire (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.pipewire.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pipewire"

Tue May 26 18:32:45 2020 rev:5 rq:808430 version:0.3.5

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/pipewire/pipewire.changes      2020-03-31 
07:22:06.554391238 +0200
+++ /work/SRC/openSUSE:Leap:15.2/.pipewire.new.2738/pipewire.changes    
2020-05-26 18:32:56.337649003 +0200
@@ -2 +2 @@
-Mon Mar 23 09:23:05 UTC 2020 - Antonio Larrosa <[email protected]>
+Thu May 21 08:50:18 UTC 2020 - Antonio Larrosa <[email protected]>
@@ -4,10 +4,139 @@
-- Repackage sources to remove a file with invalid license
-  (spa/plugins/vulkan/shaders/mandelbrot-distance.comp) . The file
-  has already been replaced by upstream with a valid licensed file
-  so the patch from upstream was added too:
-  * 0001-Add-MIT-licensed-compute-example.patch
-- The patch above adds a binary file, but binary diffs are not
-  supported, so the source file is also added directly:
-  * main.spv
-- Do not build/package man pages in SLE since xmltoman is not
-  available.
+- Filter out libpulse.so.0 and libjack.so.0 automatic provides so
+  this is not considered an alternative when resolving dependencies
+  in the distribution.
+
+-------------------------------------------------------------------
+Thu May 21 07:51:29 UTC 2020 - Antonio Larrosa <[email protected]>
+
+- Add patch to fix build in SLE/Leap where alsa doesn't have a
+  snd_pcm_ioplug_hw_avail function:
+  * do-not-use-snd_pcm_ioplug_hw_avail.patch
+
+-------------------------------------------------------------------
+Tue May 19 07:54:52 UTC 2020 - Antonio Larrosa <[email protected]>
+
+- Update to version 0.3.5:
+  * Compiler fixes
+  * Add pw-midiplay and pw-midirecord aliases
+  * Add pw-mididump tool
+  * Add pw-metadata tool to inspect, add and remove metadata
+    for objects.
+  * Docs updates, man pages
+  * install alsa config files
+  * Fix linked sink/source in pulseaudio
+  * ratelimit graph processing warnings
+  * improve buffer handling in GStreamer elements
+  * Fix power usage by removing the queue for the alsa
+    sequencer system announce messages.
+  * Fix metadata clear() method dispatch.
+  * Improve parameter enumeration, make it possible to detect
+    missing parameters vs no-compatible parameters so that we
+    can use defaults in the first case and error in the second
+    case.
+  * Fix cleanup of proxy objects. Stability improvements on
+    plug/unplug in session manager.
+  * Make it possible to set log level from config file
+  * improve debug of param negotiation errors. Log the
+    parameters to stderr/journal.
+  * Make it possible to configure global logger
+    implementation.
+  * Fix NEON detection
+  * JACK and PulseAudio compatibility improvements
+
+- Update to version 0.3.4:
+  * A quick update with some important stability fixes.
+
+- Update to version 0.3.3:
+  * NEON optimizations for audio conversion (32 and 64 bits)
+  * rework of session manager implementation
+  * Add option to disable modules in the session manager
+  * Release midi hardware devices when suspended
+  * various build fixes
+  * Clean up options of various utils
+  * Stability improvements
+  * Mayor improvements in pulseaudio emulation. Improved
+    timings and compatibility.
+  * Implementation of drain and flush in pulse and alsa
+    emulation.
+  * Implement poll on file descriptors.
+  * Improvement of metadata for jack emulation.
+  * Fix memory and thread problems in jack emulation.
+  * Simplification of state changes. Should make more use
+    cases work in the jack emulation.
+  * Improvements in the gstreamer elements. Removal of
+    extra internal queue. pipewiresink can now be used to
+    play audio.
+  * Add pw-jack and pw-pulse scripts to run pulseaudio and
+    jack applications with the right library path.
+
+- Replace libpulse* replacement packages with a single
+  pipewire-libpulse-0_3 package that includes all libraries
+  installed in the non-standard directory
+  %{_libdir}/pipewire-0.3/pulse and a new pw-pulse wrapper script.
+  Likewise for the jack replacement libraries in a new
+  pipewire-libjack-0_3 package.
+
+- Use update-alternatives for the wrapper scripts.
+
+-------------------------------------------------------------------
+Wed Apr  1 07:35:48 UTC 2020 - Antonio Larrosa <[email protected]>
+
+- Use the License rpm tag to specify that although most of
+  pipewire is licensed under MIT,  the pulseaudio replacement
+  library is licensed under LGPL-2.1+.
+
+-------------------------------------------------------------------
+Tue Mar 31 15:11:45 UTC 2020 - Antonio Larrosa <[email protected]>
+
+- Use gcc9 to build in SLE-15 / Leap 15, since at least gcc8 is
+  needed now.
+
+-------------------------------------------------------------------
+Tue Mar 31 10:48:28 UTC 2020 - Antonio Larrosa <[email protected]>
+
+- Update to version 0.3.2:
+  + build fixes
+  + Added support for data type negotiation. This makes it
+    possible for a client to say that it can handle DMABuf
+    and MemFd and then let the server select a compatible
+    format.
+  + Handle errors when enumerating parameters better.
+  + Add support for rate, format, channels and period_bytes
+    to the alsa config file to restrict what alsa apps can
+    negotiate.
+  + Fix JACK midi output.
+  + Optimizations in common audio format conversions using
+    AVX2. Small optimizations to plugins.
+  + Change the vulkan compute example to an MIT licensed
+    shader.
+  + Remove some hardcoded defaults in the audio and video
+    processing and use the values from the processing
+    context. This also fixes the vulkan example.
+  + Correct the documentation and defaults in the daemon
+    config file.
+  + Fix alsa and v4l2 buffer recycle. A paused client could
+    cause the server to leak all buffers.
+  + Remove some warnings that should be ignored.
+  + Fix a crash in the bluez5 plugins.
+  + Try to select higher quality formats first when
+    negotiating a format with an audio device.
+  + Fix an infinite loop in udev detection in some cases.
+  + Add non-interactive mode to pw-cli. You can now just
+    do "pw-cli ls Port" to get a listing of all ports.
+    pw-cli will now also connect to the default server by
+    default and has options to select a different server.
+  + Allow the server to go up to the maximum quantum (8192
+    samples or ~=180ms) if a client explicitly wants this.
+
+
+-------------------------------------------------------------------
+Mon Mar 23 13:56:45 UTC 2020 - Bjørn Lie <[email protected]>
+
+- Update to version 0.3.1+48:
+  + Fix 32bit build.
+
+-------------------------------------------------------------------
+Wed Mar 18 16:33:21 UTC 2020 - Bjørn Lie <[email protected]>
+
+- Switch to source service, update to explicit head, file with
+  non-compliant license replaced.

Old:
----
  0001-Add-MIT-licensed-compute-example.patch
  main.spv
  pipewire-0.3.1.tar.gz

New:
----
  _service
  do-not-use-snd_pcm_ioplug_hw_avail.patch
  pipewire-0.3.5.obscpio
  pipewire-rpmlintrc
  pipewire.obsinfo

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pipewire.spec ++++++
--- /var/tmp/diff_new_pack.URD75X/_old  2020-05-26 18:32:56.789649990 +0200
+++ /var/tmp/diff_new_pack.URD75X/_new  2020-05-26 18:32:56.793649999 +0200
@@ -17,36 +17,40 @@
 #
 
 
-%define libpipewire libpipewire-0_3-0
-%define sover 0_3_1
+%define _use_internal_dependency_generator 0
+
+%global provfind sh -c "grep -v -e 'libpulse.*\\.so' -e 'libjack.*\\.so' | 
%__find_provides"
+%global __find_provides %provfind
+
+%define sover 0_3_5
 %define apiver 0.3
+%define apiver_str 0_3
 %define spa_ver 0.2
 %define spa_ver_str 0_2
 
+%define libpipewire libpipewire-%{apiver_str}-0
+
 Name:           pipewire
-Version:        0.3.1
+Version:        0.3.5
 Release:        0
 Summary:        A Multimedia Framework designed to be an audio and video 
server and more
 License:        MIT
 Group:          Development/Libraries/C and C++
 URL:            https://pipewire.org/
-#Source0:        
https://github.com/PipeWire/pipewire/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
-# The source file was repackaged to remove a file with invalid license (see 
Source1 and Patch1)
-Source0:        %{name}-%{version}.tar.gz
-# Binary file that can't be added from Patch1
-Source1:        
https://github.com/PipeWire/pipewire/raw/master/spa/plugins/vulkan/shaders/main.spv
+Source0:        %{name}-%{version}.tar.xz
+Source1:        %{name}-rpmlintrc
 Patch0:         fix-memfd_create-call.patch
-# PATCH-FIX-UPSTREAM Replacement file with correct license
-Patch1:         0001-Add-MIT-licensed-compute-example.patch
+Patch1:         do-not-use-snd_pcm_ioplug_hw_avail.patch
 
 BuildRequires:  doxygen
 BuildRequires:  fdupes
+%if 0%{?suse_version} <= 1500
+BuildRequires:  gcc9
+%endif
 BuildRequires:  graphviz
 BuildRequires:  meson
 BuildRequires:  pkgconfig
-%if 0%{?is_opensuse}
 BuildRequires:  xmltoman
-%endif
 BuildRequires:  pkgconfig(alsa)
 BuildRequires:  pkgconfig(bluez)
 BuildRequires:  pkgconfig(dbus-1)
@@ -93,6 +97,7 @@
 
 %package -n %{libpipewire}
 Summary:        A Multimedia Framework designed to be an audio and video 
server and more
+License:        MIT
 Group:          System/Libraries
 
 %description -n %{libpipewire}
@@ -108,11 +113,14 @@
 
 This package provides the PipeWire shared library.
 
-%package -n libjack-pw%{sover}
-Summary:        A Multimedia Framework designed to be an audio and video 
server and more
+%package libjack-%{apiver_str}
+Summary:        PipeWire libjack replacement libraries
+License:        MIT
 Group:          Development/Libraries/C and C++
+Requires(post): update-alternatives
+Requires(postun): update-alternatives
 
-%description -n libjack-pw%{sover}
+%description libjack-%{apiver_str}
 PipeWire is a server and user space API to deal with multimedia pipelines.
 
 Some of its features include:
@@ -123,48 +131,17 @@
  * GStreamer plugins for easy use and integration in current applications;
  * Sandboxed applications support.
 
-This package provides the PipeWire shared library.
-
-
-%package -n libpulse-mainloop-glib-pw%{sover}
-Summary:        A Multimedia Framework designed to be an audio and video 
server and more
-Group:          Development/Libraries/C and C++
-
-%description -n libpulse-mainloop-glib-pw%{sover}
-PipeWire is a server and user space API to deal with multimedia pipelines.
-
-Some of its features include:
+This package provides the PipeWire replacement libraries for libjack.
 
- * Capture and playback of audio and video with minimal latency;
- * Real-time Multimedia processing on audio and video;
- * Multiprocess architecture to let applications share multimedia content;
- * GStreamer plugins for easy use and integration in current applications;
- * Sandboxed applications support.
 
-This package provides the PipeWire shared library.
-
-%package   -n libpulse-pw%{sover}
+%package libpulse-%{apiver_str}
 Summary:        A Multimedia Framework designed to be an audio and video 
server and more
+License:        LGPL-2.1-or-later
 Group:          Development/Libraries/C and C++
+Requires(post): update-alternatives
+Requires(postun): update-alternatives
 
-%description -n libpulse-pw%{sover}
-PipeWire is a server and user space API to deal with multimedia pipelines.
-
-Some of its features include:
-
- * Capture and playback of audio and video with minimal latency;
- * Real-time Multimedia processing on audio and video;
- * Multiprocess architecture to let applications share multimedia content;
- * GStreamer plugins for easy use and integration in current applications;
- * Sandboxed applications support.
-
-This package provides the PipeWire shared library.
-
-%package -n libpulse-simple-pw%{sover}
-Summary:        A Multimedia Framework designed to be an audio and video 
server and more
-Group:          Development/Libraries/C and C++
-
-%description -n libpulse-simple-pw%{sover}
+%description libpulse-%{apiver_str}
 PipeWire is a server and user space API to deal with multimedia pipelines.
 
 Some of its features include:
@@ -179,6 +156,7 @@
 
 %package -n gstreamer-plugin-pipewire
 Summary:        Gstreamer Plugin for PipeWire
+License:        MIT
 Group:          System/Libraries
 
 %description -n gstreamer-plugin-pipewire
@@ -188,6 +166,7 @@
 
 %package tools
 Summary:        The PipeWire Tools
+License:        MIT
 Group:          Productivity/Multimedia/Other
 
 %description tools
@@ -197,6 +176,7 @@
 
 %package spa-tools
 Summary:        The PipeWire SPA Tools
+License:        MIT
 Group:          Productivity/Multimedia/Other
 
 %description spa-tools
@@ -206,6 +186,7 @@
 
 %package modules
 Summary:        Modules For PipeWire, A Multimedia Framework
+License:        MIT
 Group:          Productivity/Multimedia/Other
 Requires:       pipewire
 
@@ -222,6 +203,7 @@
 
 %package spa-plugins-%{spa_ver_str}
 Summary:        Plugins For PipeWire SPA
+License:        MIT
 Group:          Productivity/Multimedia/Other
 Requires:       pipewire
 
@@ -246,6 +228,7 @@
 
 %package devel
 Summary:        Development Files For PipeWire, A Multimedia Framework
+License:        MIT
 Group:          Development/Libraries/C and C++
 Requires:       %{libpipewire} >= %{version}
 
@@ -256,6 +239,7 @@
 
 %package doc
 Summary:        PipeWire media server documentation
+License:        MIT
 Group:          Development/Libraries/C and C++
 
 %description doc
@@ -266,24 +250,42 @@
 %if %{pkg_vcmp glibc < 2.27}
 %patch0 -p1
 %endif
+
+%if %{pkg_vcmp alsa-devel < 1.2.2}
 %patch1 -p1
-cp %{SOURCE1} spa/plugins/vulkan/shaders/main.spv
+%endif
 
 %build
+%if %{pkg_vcmp gcc < 8}
+export CC=gcc-9
+%endif
 %meson \
        -Ddocs=true \
-%if 0%{?is_opensuse}
        -Dman=true \
-%endif
        -Dgstreamer=true \
        -Dffmpeg=true \
        -Dsystemd=true \
        -Dvulkan=true \
+       -Dtest=true \
+       -Daudiotestsrc=true \
        %{nil}
 %meson_build
 
 %install
 %meson_install
+
+mkdir -p %{buildroot}%{_sysconfdir}/alsa/conf.d/
+for filename in 50-pipewire.conf \
+                99-pipewire-default.conf ; do
+    cp -a pipewire-alsa/conf/"$filename" 
%{buildroot}%{_sysconfdir}/alsa/conf.d/
+done
+
+mkdir -p %{buildroot}%{_sysconfdir}/alternatives
+for wrapper in pw-pulse pw-jack ; do
+    mv  %{buildroot}%{_bindir}/$wrapper   
%{buildroot}%{_bindir}/$wrapper-%{apiver}
+    ln -s -f %{_sysconfdir}/alternatives/$wrapper 
%{buildroot}%{_bindir}/$wrapper
+done
+
 %fdupes -s %{buildroot}/%{_datadir}/doc/pipewire/html
 
 %check
@@ -292,50 +294,66 @@
 %post   -n %{libpipewire} -p /sbin/ldconfig
 %postun -n %{libpipewire} -p /sbin/ldconfig
 
-%post   -n libjack-pw%{sover} -p /sbin/ldconfig
-%postun -n libjack-pw%{sover} -p /sbin/ldconfig
+%post libpulse-%{apiver_str}
+%{_sbindir}/update-alternatives --install %{_bindir}/pw-pulse pw-pulse 
%{_bindir}/pw-pulse-%{apiver} 20
 
-%post   -n libpulse-mainloop-glib-pw%{sover} -p /sbin/ldconfig
-%postun -n libpulse-mainloop-glib-pw%{sover} -p /sbin/ldconfig
-
-%post   -n libpulse-pw%{sover} -p /sbin/ldconfig
-%postun -n libpulse-pw%{sover} -p /sbin/ldconfig
-
-%post   -n libpulse-simple-pw%{sover} -p /sbin/ldconfig
-%postun -n libpulse-simple-pw%{sover} -p /sbin/ldconfig
+%postun libpulse-%{apiver_str}
+if [ ! -e %{_bindir}/pw-pulse-%{apiver} ] ; then
+  %{_sbindir}/update-alternatives --remove pw-pulse 
%{_bindir}/pw-pulse-%{apiver}
+fi
+
+%post libjack-%{apiver_str}
+%{_sbindir}/update-alternatives --install %{_bindir}/pw-jack pw-jack 
%{_bindir}/pw-jack-%{apiver} 20
+
+%postun libjack-%{apiver_str}
+if [ ! -e %{_bindir}/pw-jack-%{apiver} ] ; then
+  %{_sbindir}/update-alternatives --remove pw-jack %{_bindir}/pw-jack-%{apiver}
+fi
 
 %files
 %{_bindir}/pipewire
 %{_bindir}/pipewire-media-session
 %{_userunitdir}/pipewire.service
 %{_userunitdir}/pipewire.socket
-%if 0%{?is_opensuse}
 %{_mandir}/man1/pipewire.1%{ext_man}
 %{_mandir}/man5/pipewire.conf.5%{ext_man}
-%endif
 
 %dir %{_sysconfdir}/pipewire
 %config %{_sysconfdir}/pipewire/pipewire.conf
 
 %dir %{_libdir}/alsa-lib
 %{_libdir}/alsa-lib/libasound_module_pcm_pipewire.so
+%dir %{_datadir}/alsa/alsa.conf.d
+%{_datadir}/alsa/alsa.conf.d/50-pipewire.conf
+%{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf
+%dir %{_sysconfdir}/alsa
+%dir %{_sysconfdir}/alsa/conf.d
+%config(noreplace) %{_sysconfdir}/alsa/conf.d/50-pipewire.conf
+%config(noreplace) %{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf
 
 %files -n %{libpipewire}
 %license LICENSE COPYING
 %doc README.md
 %{_libdir}/libpipewire-%{apiver}.so.*
 
-%files -n libjack-pw%{sover}
-%{_libdir}/libjack-pw.so.*
-
-%files -n libpulse-mainloop-glib-pw%{sover}
-%{_libdir}/libpulse-mainloop-glib-pw.so.*
-
-%files -n libpulse-pw%{sover}
-%{_libdir}/libpulse-pw.so.*
-
-%files -n libpulse-simple-pw%{sover}
-%{_libdir}/libpulse-simple-pw.so.*
+%files libjack-%{apiver_str}
+%dir %{_libdir}/pipewire-%{apiver}/jack
+%{_libdir}/pipewire-%{apiver}/jack/libjack.so*
+%{_libdir}/pipewire-%{apiver}/jack/libjacknet.so*
+%{_libdir}/pipewire-%{apiver}/jack/libjackserver.so*
+%ghost %{_sysconfdir}/alternatives/pw-jack
+%{_bindir}/pw-jack-%{apiver}
+%{_bindir}/pw-jack
+
+%files libpulse-%{apiver_str}
+%license pipewire-pulseaudio/LICENSE
+%dir %{_libdir}/pipewire-%{apiver}/pulse
+%{_libdir}/pipewire-%{apiver}/pulse/libpulse.so*
+%{_libdir}/pipewire-%{apiver}/pulse/libpulse-simple.so*
+%{_libdir}/pipewire-%{apiver}/pulse/libpulse-mainloop-glib.so*
+%ghost %{_sysconfdir}/alternatives/pw-pulse
+%{_bindir}/pw-pulse-%{apiver}
+%{_bindir}/pw-pulse
 
 %files -n gstreamer-plugin-pipewire
 %{_libdir}/gstreamer-1.0/libgstpipewire.so
@@ -348,10 +366,17 @@
 %{_bindir}/pw-cat
 %{_bindir}/pw-play
 %{_bindir}/pw-record
-%if 0%{?is_opensuse}
+%{_bindir}/pw-metadata
+%{_bindir}/pw-mididump
+%{_bindir}/pw-midiplay
+%{_bindir}/pw-midirecord
 %{_mandir}/man1/pw-cli.1%{ext_man}
 %{_mandir}/man1/pw-mon.1%{ext_man}
-%endif
+%{_mandir}/man1/pw-cat.1%{ext_man}
+%{_mandir}/man1/pw-dot.1%{ext_man}
+%{_mandir}/man1/pw-metadata.1%{ext_man}
+%{_mandir}/man1/pw-mididump.1%{ext_man}
+%{_mandir}/man1/pw-profiler.1%{ext_man}
 
 %files spa-tools
 %{_bindir}/spa-inspect
@@ -387,6 +412,8 @@
 %{_libdir}/spa-%{spa_ver}/v4l2/libspa-v4l2.so
 %{_libdir}/spa-%{spa_ver}/videoconvert/libspa-videoconvert.so
 %{_libdir}/spa-%{spa_ver}/vulkan/libspa-vulkan.so
+%{_libdir}/spa-%{spa_ver}/audiotestsrc/libspa-audiotestsrc.so
+%{_libdir}/spa-%{spa_ver}/test/libspa-test.so
 
 %dir %{_libdir}/spa-%{spa_ver}
 %dir %{_libdir}/spa-%{spa_ver}/alsa
@@ -400,13 +427,11 @@
 %dir %{_libdir}/spa-%{spa_ver}/v4l2
 %dir %{_libdir}/spa-%{spa_ver}/videoconvert
 %dir %{_libdir}/spa-%{spa_ver}/vulkan
+%dir %{_libdir}/spa-%{spa_ver}/audiotestsrc
+%dir %{_libdir}/spa-%{spa_ver}/test
 
 %files devel
 %{_libdir}/libpipewire-%{apiver}.so
-%{_libdir}/libjack-pw.so
-%{_libdir}/libpulse-mainloop-glib-pw.so
-%{_libdir}/libpulse-pw.so
-%{_libdir}/libpulse-simple-pw.so
 %{_libdir}/pkgconfig/libpipewire-%{apiver}.pc
 %{_libdir}/pkgconfig/libspa-%{spa_ver}.pc
 %{_includedir}/pipewire-%{apiver}/

++++++ _service ++++++
<?xml version="1.0"?>
<services>
  <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.5</param>
    <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
    <param name="versionrewrite-pattern">(.*)\+0</param>
    <param name="versionrewrite-replacement">\1</param>
  </service>
  <service name="tar" mode="buildtime"/>
  <service name="recompress" mode="buildtime">
    <param name="file">*.tar</param>
    <param name="compression">xz</param>
  </service>
  <service name="set_version" mode="disabled" />
</services>

++++++ do-not-use-snd_pcm_ioplug_hw_avail.patch ++++++
From: Antonio Larrosa <[email protected]>
Subject: Fix build with old alsa-devel

Revert part of 
https://github.com/PipeWire/pipewire/commit/c658574c0119d3a1f199fe17091fc4d5f37f1e71
since the alsa version in SLE/Leap doesn't have a snd_pcm_ioplug_hw_avail 
function.

Index: pipewire-0.3.5/pipewire-alsa/alsa-plugins/pcm_pipewire.c
===================================================================
--- pipewire-0.3.5.orig/pipewire-alsa/alsa-plugins/pcm_pipewire.c
+++ pipewire-0.3.5/pipewire-alsa/alsa-plugins/pcm_pipewire.c
@@ -192,7 +192,6 @@ snd_pcm_pipewire_process_playback(snd_pc
        index = 0;
        avail = maxsize - filled;
        avail = SPA_MIN(avail, pw->min_avail * bpf);
-       avail = SPA_MIN(avail, *hw_avail * bpf);
 
        do {
        offset = index % maxsize;
@@ -236,7 +235,8 @@ snd_pcm_pipewire_process_playback(snd_pc
                        pw->hw_ptr -= pw->boundary;
                xfer += frames;
        }
-       *hw_avail -= xfer;
+
+       pcm_poll_unblock_check(io); /* unblock socket for polling if needed */
 
       done:
        index += nbytes;
@@ -271,7 +271,7 @@ snd_pcm_pipewire_process_record(snd_pcm_
        d = b->buffer->datas;
 
        maxsize = d[0].chunk->size;
-       avail = SPA_MIN(maxsize, *hw_avail * bpf);
+       avail = maxsize;
        index = d[0].chunk->offset;
 
        do {
@@ -309,7 +309,9 @@ snd_pcm_pipewire_process_record(snd_pcm_
                        pw->hw_ptr -= pw->boundary;
                xfer += frames;
        }
-       *hw_avail -= xfer;
+
+       pcm_poll_unblock_check(io); /* unblock socket for polling if needed */
+
        avail -= nbytes;
        index += nbytes;
        } while (avail > 0);
@@ -355,9 +357,6 @@ static void on_stream_process(void *data
        snd_pcm_pipewire_t *pw = data;
        snd_pcm_ioplug_t *io = &pw->io;
        struct pw_buffer *b;
-       snd_pcm_uframes_t hw_avail;
-
-       hw_avail = snd_pcm_ioplug_hw_avail(io, pw->hw_ptr, io->appl_ptr);
 
        if (pw->drained) {
                pcm_poll_unblock_check(io); /* unblock socket for polling if 
needed */
@@ -369,13 +368,13 @@ static void on_stream_process(void *data
                return;
 
        if (io->stream == SND_PCM_STREAM_PLAYBACK)
-               snd_pcm_pipewire_process_playback(pw, b, &hw_avail);
+               snd_pcm_pipewire_process_playback(pw, b, 0L);
        else
-               snd_pcm_pipewire_process_record(pw, b, &hw_avail);
+               snd_pcm_pipewire_process_record(pw, b, 0L);
 
        pw_stream_queue_buffer(pw->stream, b);
 
-       if (io->state == SND_PCM_STATE_DRAINING && !pw->draining && hw_avail == 
0) {
+       if (io->state == SND_PCM_STATE_DRAINING && !pw->draining == 0) {
                pw_stream_flush(pw->stream, true);
                pw->draining = true;
                pw->drained = false;
++++++ pipewire-rpmlintrc ++++++
# .so files in pipewire-libjack and pipewire-libpulse aren't
# really devel files
addFilter("devel-file-in-non-devel-package.*/jack/libjack")
addFilter("devel-file-in-non-devel-package.*/pulse/libpulse")
++++++ pipewire.obsinfo ++++++
name: pipewire
version: 0.3.5
mtime: 1589196932
commit: ba215efed0da8d6c9f3f2414d76a8e2c75352501


Reply via email to