Accepting request 908515 from multimedia:libs

OBS-URL: https://build.opensuse.org/request/show/908515
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=36
This commit is contained in:
Dominique Leuenberger 2021-07-29 19:31:09 +00:00 committed by Git OBS Bridge
commit b6b53ad08b
7 changed files with 274 additions and 22 deletions

View File

@ -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">refs/tags/0.3.31</param>
<param name="revision">refs/tags/0.3.32</param>
<param name="versionformat">@PARENT_TAG@</param>
</service>
<service name="tar" mode="buildtime"/>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9f27a9d9927e4a54f67355d6069ab42ffd1d0cb7534c2f9883ca3945ec419a62
size 9675277

3
pipewire-0.3.32.obscpio Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:04aac9d3348d9a28c2dc838eb5b2c77cc1e0dffd85fbacae189871215e696a0b
size 9720333

View File

@ -0,0 +1,78 @@
From 5471a0018b0394327c0cd4f1f60bf326632b29f1 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Thu, 22 Jul 2021 20:09:34 +0200
Subject: [PATCH 1/2] libcamera: fix no-longer existent <libcamera/buffer.h>
header inclusion
The SPA plugin is including a <libcamera/buffer.h> header file, but this
got renamed to <libcamera/framebuffer.h> to match the defined class name:
../spa/plugins/libcamera/libcamera_wrapper.cpp:52:10: fatal error: libcamera/buffer.h: No such file or directory
52 | #include <libcamera/buffer.h>
| ^~~~~~~~~~~~~~~~~~~~
Fixes #1435
---
spa/plugins/libcamera/libcamera_wrapper.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/spa/plugins/libcamera/libcamera_wrapper.cpp b/spa/plugins/libcamera/libcamera_wrapper.cpp
index 58c062412..f25922eb1 100644
--- a/spa/plugins/libcamera/libcamera_wrapper.cpp
+++ b/spa/plugins/libcamera/libcamera_wrapper.cpp
@@ -49,7 +49,7 @@
#include <libcamera/camera_manager.h>
#include <libcamera/request.h>
#include <libcamera/framebuffer_allocator.h>
-#include <libcamera/buffer.h>
+#include <libcamera/framebuffer.h>
#include <libcamera/property_ids.h>
#include <libcamera/controls.h>
--
2.26.2
From 76cb5c1169b58b48a2921ccc3f61c713b297c07f Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Thu, 22 Jul 2021 20:17:09 +0200
Subject: [PATCH 2/2] libcamera: remove unused buffer variable in
LibCamera::stop()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
To fix build warning about a variable being unused in LibCamera::stop():
[1/2] Compiling C++ object spa/plugins/libcamera/libspa-libcamera.so.p/libcamera_wrapper.cpp.o
../spa/plugins/libcamera/libcamera_wrapper.cpp: In member function void LibCamera::stop():
../spa/plugins/libcamera/libcamera_wrapper.cpp:531:58: warning: unused variable buffer [-Wunused-variable]
531 | for (const std::unique_ptr<FrameBuffer> &buffer : this->allocator_->buffers(stream)) {
| ^~~~~~
---
spa/plugins/libcamera/libcamera_wrapper.cpp | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/spa/plugins/libcamera/libcamera_wrapper.cpp b/spa/plugins/libcamera/libcamera_wrapper.cpp
index f25922eb1..d58238d33 100644
--- a/spa/plugins/libcamera/libcamera_wrapper.cpp
+++ b/spa/plugins/libcamera/libcamera_wrapper.cpp
@@ -524,13 +524,12 @@ extern "C" {
void LibCamera::stop() {
this->disconnect();
- uint32_t bufIdx = 0;
StreamConfiguration &cfg = this->config_->at(0);
Stream *stream = cfg.stream();
+ uint32_t nbuffers = this->allocator_->buffers(stream).size();
- for (const std::unique_ptr<FrameBuffer> &buffer : this->allocator_->buffers(stream)) {
+ for (uint32_t bufIdx = 0; bufIdx < nbuffers; bufIdx++) {
delete [] this->fd_[bufIdx];
- bufIdx++;
}
delete [] this->fd_;
--
2.26.2

View File

@ -1,3 +1,122 @@
-------------------------------------------------------------------
Tue Jul 27 06:23:36 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- Move with-{alsa,jack,pulseaudio} from the media-session package
to the packages that implement each support.
-------------------------------------------------------------------
Thu Jul 22 07:55:13 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
- Add patch pipewire-fix-libcamera-build.patch: fix build with
latest libcamera.
- Do no build libcamera support on Leap 15.3 or lower (too old
libcamera) and change name of BuildRequires from camera to
libcamera.
- Update minimal version for alsa buildrequires.
-------------------------------------------------------------------
Tue Jul 20 12:46:57 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
- Update to 0.3.32:
* Highlights
- Real-time priority handling for threads was reworked.
Freewheeling will now drop RT priorities to avoid being
killed.
- Problems with filter chains and echo-cancel being linked in
a loop was fixed.
- alsamixer should now be able to see the mixer controls again.
- JACK has seen some latency reporting improvements that make
Ardour report latencies correctly.
- Many bugfixes and improvements.
* PipeWire
- Fix a bug in the neon audio resampler code.
- There is now a node.link-group property to relate linked
streams. this can be used to track the dataflow with
coupled streams.
- Fix a crash when recalculating latency on a destroyed
port. (#1371)
- Filter chains and other modules that create streams can
now also be added to the daemon config itself. (#1309)
- Fix some potential deadlocks in timerfd. (#1377)
- Feedback links are skipped when recalculating latency to
avoid loops.
- The dummy driver and null-sink now stop the timerfd when
following another driver instead of generating useless
graph wakeups.
- rt.limit was increased to 2 seconds. Some applications got
killed because they run lengthy code in the Real-Time
thread. (#1344)
- Fix s24_32 to float, it was not sign extending
properly. (#1393)
- The performance of the feedback loop check algorithm was
improved a lot, making complex graphs start much much faster.
- The zeroconf publish module now doesn't republish nodes
every time the volume changes. (#1406)
- A potential memory corruption error has been fixed in the
loop that could cause random crashes.
- Mempools can now be created from multiple threads at the
same time.
* media-session
- Loops in coupled streams are now avoided. (#1394)
- Port changes for inactive profiles are ignored now by
the default-route module. (#1403)
* ALSA
- Make sure tha alibpref is not part of the device node name
because it is random. (#1362)
- Fixed an off-by-one that could cause midi events to end up
with a wrong timestamp and thus being discarded by
some apps. (#1395)
- Fix some memory leaks when destroying a card object.
* JACK
- Fix some invalid cycle wakeups that could cause JACK
application to run with a 0 buffer size. (#1386)
- JACK can now use rtkit to manage realtime priorities
on threads.
- The Real-time priority is dropped when entering freewheel
mode to make sure we don't get killed when using
too much CPU.
- jack_recompute_total_latencies() is now implemented, fixing
the latency reporting in Ardour. (#1388)
- Fix some overflows in time calculations.
- Ensure frame_rate in position is never 0.
- Graph callbacks are now emitted as well.
* Bluetooth
- RTP payload type is now set correctly for aptX, LDAC and
SBC, which should improve compatibility with devices that
care about this.
* PulseAudio server
- There is now a quirks database to deal with bad clients.
The database is builtin but can be made external later.
Teams is now lied to and told all sink/sources use
s16 samples to make it show all sinks/sources.
Firefox is forced to remove the DONT_MOVE flag on
capture streams so that you can move firefox streams
with other tools.
- The UNDERFLOW warnings are now made into info log messages
to not spam the log too much. Many application just let
things underrun and PulseAudio did not warn about this
either. (#910)
* ALSA plugin
- The alsa plugin now uses the right metadata for finding the
default source and sink, which makes the volume controls
reappear. (#1384)
* Other
- Cleanups in pulse-server and pipewire.
- Documentation additions.
-------------------------------------------------------------------
Tue Jul 13 14:52:35 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- Make the jack replacement libraries really replace jack libraries
just like Fedora does (adding the path to the pipewire
replacement libraries to ld.so.conf.d and conflicting with jack).
- Remove the spec code that forced the packages not to provide the
jack libraries. They seem to be ready to replace jack libraries
now.
- Add a pipewire-libjack-0_3-devel package with development files
for pipewire's jack replacement.
- Enable the libcamera module
-------------------------------------------------------------------
Tue Jun 29 06:12:36 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>

View File

@ -1,5 +1,5 @@
name: pipewire
version: 0.3.31
mtime: 1624893688
commit: 5497d2d907ed8614c2c0b6482ea709cc7314f301
version: 0.3.32
mtime: 1626779173
commit: 41ce3092756ab27106881f4246e54bf32ea5adbe

View File

@ -17,11 +17,6 @@
#
%define _use_internal_dependency_generator 0
%global provfind sh -c "grep -v -e 'libjack.*\\.so' | %__find_provides"
%global __find_provides %provfind
%define apiver 0.3
%define apiver_str 0_3
%define spa_ver 0.2
@ -34,6 +29,12 @@
%define with_vulkan 0
%endif
%if 0%{?suse_version} >= 1550
%define with_libcamera 1
%else
%define with_libcamera 0
%endif
%ifnarch s390 s390x ppc64
%define with_ldacBT 1
%else
@ -44,7 +45,7 @@
%bcond_with aptx
Name: pipewire
Version: 0.3.31
Version: 0.3.32
Release: 0
Summary: A Multimedia Framework designed to be an audio and video server and more
License: MIT
@ -53,6 +54,8 @@ URL: https://pipewire.org/
Source0: %{name}-%{version}.tar.xz
Source1: %{name}-rpmlintrc
Source99: baselibs.conf
# PATCH-FIX-UPSTREAM pipewire-fix-libcamera-build.patch fcrozat@suse.com -- Fix build with latest libcamera
Patch0: pipewire-fix-libcamera-build.patch
BuildRequires: doxygen
BuildRequires: fdupes
@ -65,9 +68,12 @@ BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: systemd-rpm-macros
BuildRequires: xmltoman
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(alsa) >= 1.1.7
BuildRequires: pkgconfig(avahi-client)
BuildRequires: pkgconfig(bluez)
%if %{with_libcamera}
BuildRequires: pkgconfig(libcamera)
%endif
BuildRequires: pkgconfig(dbus-1)
%if %{with aac}
BuildRequires: pkgconfig(fdk-aac)
@ -83,6 +89,7 @@ BuildRequires: pkgconfig(gstreamer-audio-1.0)
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
BuildRequires: pkgconfig(gstreamer-video-1.0)
BuildRequires: pkgconfig(jack) >= 1.9.10
BuildConflicts: pipewire-libjack-%{apiver_str}-devel
%if %{with_ldacBT}
BuildRequires: pkgconfig(ldacBT-abr)
BuildRequires: pkgconfig(ldacBT-enc)
@ -148,6 +155,10 @@ Summary: PipeWire libjack replacement libraries
Group: Development/Libraries/C and C++
Requires(post): update-alternatives
Requires(postun):update-alternatives
Conflicts: jack
Conflicts: libjack0
Conflicts: libjacknet0
Conflicts: libjackserver0
%description libjack-%{apiver_str}
PipeWire is a server and user space API to deal with multimedia pipelines.
@ -162,6 +173,26 @@ Some of its features include:
This package provides the PipeWire replacement libraries for libjack.
%package libjack-%{apiver_str}-devel
Summary: Development files for %{name}-libjack-%{apiver_str}
Group: Development/Libraries/C and C++
Requires: %{name}-libjack-%{apiver_str}
Conflicts: libjack-devel
%description libjack-%{apiver_str}-devel
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 replacement development files
for libjack.
%package -n gstreamer-plugin-pipewire
Summary: Gstreamer Plugin for PipeWire
Group: System/Libraries
@ -313,12 +344,19 @@ export CC=gcc-9
%else
-Dbluez5-codec-aptx=disabled \
%endif
-Dlibcamera=disabled \
%if %{with_ldacBT}
-Dbluez5-codec-ldac=enabled \
%else
-Dbluez5-codec-ldac=disabled \
%endif
%if %{with_libcamera}
-Dlibcamera=enabled \
%else
-Dlibcamera=disabled \
%endif
-Dpipewire-jack=enabled \
-Djack=enabled \
-Djack-devel=enabled \
%{nil}
%meson_build
@ -333,6 +371,9 @@ touch %{buildroot}%{_datadir}/pipewire/media-session.d/with-alsa
mkdir -p %{buildroot}%{_udevrulesdir}
mv -fv %{buildroot}/lib/udev/rules.d/90-pipewire-alsa.rules %{buildroot}%{_udevrulesdir}
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/
echo %{_libdir}/pipewire-%{apiver}/jack/ > %{buildroot}%{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for wrapper in pw-jack ; do
mv %{buildroot}%{_bindir}/$wrapper %{buildroot}%{_bindir}/$wrapper-%{apiver}
@ -482,7 +523,6 @@ fi
%{_datadir}/pipewire/pipewire.conf
%{_datadir}/pipewire/client.conf
%{_datadir}/pipewire/client-rt.conf
%{_datadir}/pipewire/jack.conf
%{_datadir}/pipewire/pipewire-pulse.conf
%ghost %dir %{_localstatedir}/lib/pipewire
%ghost %{_localstatedir}/lib/pipewire/pipewire_post_workaround
@ -496,9 +536,6 @@ fi
%{_datadir}/pipewire/media-session.d/bluez-monitor.conf
%{_datadir}/pipewire/media-session.d/media-session.conf
%{_datadir}/pipewire/media-session.d/v4l2-monitor.conf
%{_datadir}/pipewire/media-session.d/with-alsa
%{_datadir}/pipewire/media-session.d/with-jack
%{_datadir}/pipewire/media-session.d/with-pulseaudio
%files -n %{libpipewire}
%license LICENSE COPYING
@ -508,15 +545,25 @@ fi
%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*
%{_libdir}/pipewire-%{apiver}/jack/libjack.so.*
%{_libdir}/pipewire-%{apiver}/jack/libjacknet.so.*
%{_libdir}/pipewire-%{apiver}/jack/libjackserver.so.*
%ghost %{_sysconfdir}/alternatives/pw-jack
%ghost %{_sysconfdir}/alternatives/pw-jack.1%{ext_man}
%{_bindir}/pw-jack-%{apiver}
%{_bindir}/pw-jack
%{_mandir}/man1/pw-jack-%{apiver}.1%{ext_man}
%{_mandir}/man1/pw-jack.1%{ext_man}
%{_datadir}/pipewire/jack.conf
%config %{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf
%{_datadir}/pipewire/media-session.d/with-jack
%files libjack-%{apiver_str}-devel
%{_includedir}/jack
%{_libdir}/pipewire-%{apiver}/jack/libjack.so
%{_libdir}/pipewire-%{apiver}/jack/libjacknet.so
%{_libdir}/pipewire-%{apiver}/jack/libjackserver.so
%{_libdir}/pkgconfig/jack.pc
%files -n gstreamer-plugin-pipewire
%{_libdir}/gstreamer-1.0/libgstpipewire.so
@ -596,6 +643,9 @@ fi
%{_libdir}/spa-%{spa_ver}/control/libspa-control.so
%{_libdir}/spa-%{spa_ver}/ffmpeg/libspa-ffmpeg.so
%{_libdir}/spa-%{spa_ver}/jack/libspa-jack.so
%if %{with_libcamera}
%{_libdir}/spa-%{spa_ver}/libcamera/libspa-libcamera.so
%endif
%{_libdir}/spa-%{spa_ver}/support/libspa-dbus.so
%{_libdir}/spa-%{spa_ver}/support/libspa-journal.so
%{_libdir}/spa-%{spa_ver}/support/libspa-support.so
@ -618,6 +668,9 @@ fi
%dir %{_libdir}/spa-%{spa_ver}/volume
%dir %{_libdir}/spa-%{spa_ver}/ffmpeg
%dir %{_libdir}/spa-%{spa_ver}/jack
%if %{with_libcamera}
%dir %{_libdir}/spa-%{spa_ver}/libcamera
%endif
%dir %{_libdir}/spa-%{spa_ver}/support
%dir %{_libdir}/spa-%{spa_ver}/v4l2
%dir %{_libdir}/spa-%{spa_ver}/videoconvert
@ -642,6 +695,7 @@ fi
%files pulseaudio
%{_bindir}/pipewire-pulse
%{_userunitdir}/pipewire-pulse.*
%{_datadir}/pipewire/media-session.d/with-pulseaudio
%ghost %{_localstatedir}/lib/pipewire/pipewire-pulseaudio_post_workaround
%files alsa
@ -655,6 +709,7 @@ fi
%dir %{_sysconfdir}/alsa/conf.d
%config(noreplace) %{_sysconfdir}/alsa/conf.d/50-pipewire.conf
%config(noreplace) %{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf
%{_datadir}/pipewire/media-session.d/with-alsa
%files lang -f %{name}.lang