summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kde-plasma/kpipewire/Manifest1
-rw-r--r--kde-plasma/kpipewire/files/kpipewire-6.4.90-ffmpeg8.patch116
-rw-r--r--kde-plasma/kpipewire/kpipewire-6.4.90.ebuild47
3 files changed, 164 insertions, 0 deletions
diff --git a/kde-plasma/kpipewire/Manifest b/kde-plasma/kpipewire/Manifest
new file mode 100644
index 00000000000..fd43278d06b
--- /dev/null
+++ b/kde-plasma/kpipewire/Manifest
@@ -0,0 +1 @@
+DIST kpipewire-6.4.90.tar.xz 152884 BLAKE2B 32010f4deb10ef029db7a7d742c19d0ffdd66caeb278a71596d2d29815625eb689f51a89916084c3ff5fc84f3d283b358189ca371ade91135c7f29767a559da9 SHA512 1ba015e397ebbc179d9c374d50f9814093b22642efdab1dba0867067bc1acbbc1781bd151ead2d971853184a8112f80c440a8dd2b9b9163ff3663c9ac9b15dc8
diff --git a/kde-plasma/kpipewire/files/kpipewire-6.4.90-ffmpeg8.patch b/kde-plasma/kpipewire/files/kpipewire-6.4.90-ffmpeg8.patch
new file mode 100644
index 00000000000..4d1e9439f1f
--- /dev/null
+++ b/kde-plasma/kpipewire/files/kpipewire-6.4.90-ffmpeg8.patch
@@ -0,0 +1,116 @@
+From e2b4a63b3ceb0584f9d4612865920a3dbc9ea512 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <bero@lindev.ch>
+Date: Wed, 27 Aug 2025 16:39:36 +0200
+Subject: [PATCH] Fix build with ffmpeg >= 8.0
+
+---
+ src/h264vaapiencoder.cpp | 12 +++++++++---
+ src/libopenh264encoder.cpp | 12 +++++++++---
+ src/libx264encoder.cpp | 12 +++++++++---
+ 3 files changed, 27 insertions(+), 9 deletions(-)
+
+diff --git a/src/h264vaapiencoder.cpp b/src/h264vaapiencoder.cpp
+index 0cf251b..eaec8dd 100644
+--- a/src/h264vaapiencoder.cpp
++++ b/src/h264vaapiencoder.cpp
+@@ -18,6 +18,12 @@ extern "C" {
+
+ #include "logging_record.h"
+
++#ifndef AV_PROFILE_H264_BASELINE // ffmpeg before 8.0
++#define AV_PROFILE_H264_BASELINE FF_PROFILE_H264_BASELINE
++#define AV_PROFILE_H264_MAIN FF_PROFILE_H264_MAIN
++#define AV_PROFILE_H264_HIGH FF_PROFILE_H264_HIGH
++#endif
++
+ H264VAAPIEncoder::H264VAAPIEncoder(H264Profile profile, PipeWireProduce *produce)
+ : HardwareEncoder(produce)
+ , m_profile(profile)
+@@ -130,13 +136,13 @@ bool H264VAAPIEncoder::initialize(const QSize &size)
+
+ switch (m_profile) {
+ case H264Profile::Baseline:
+- m_avCodecContext->profile = FF_PROFILE_H264_CONSTRAINED_BASELINE;
++ m_avCodecContext->profile = AV_PROFILE_H264_CONSTRAINED_BASELINE;
+ break;
+ case H264Profile::Main:
+- m_avCodecContext->profile = FF_PROFILE_H264_MAIN;
++ m_avCodecContext->profile = AV_PROFILE_H264_MAIN;
+ break;
+ case H264Profile::High:
+- m_avCodecContext->profile = FF_PROFILE_H264_HIGH;
++ m_avCodecContext->profile = AV_PROFILE_H264_HIGH;
+ break;
+ }
+
+diff --git a/src/libopenh264encoder.cpp b/src/libopenh264encoder.cpp
+index db6ed4d..294c0f2 100644
+--- a/src/libopenh264encoder.cpp
++++ b/src/libopenh264encoder.cpp
+@@ -21,6 +21,12 @@ extern "C" {
+
+ #include "logging_record.h"
+
++#ifndef AV_PROFILE_H264_BASELINE // ffmpeg before 8.0
++#define AV_PROFILE_H264_CONSTRAINED_BASELINE FF_PROFILE_H264_CONSTRAINED_BASELINE
++#define AV_PROFILE_H264_MAIN FF_PROFILE_H264_MAIN
++#define AV_PROFILE_H264_HIGH FF_PROFILE_H264_HIGH
++#endif
++
+ LibOpenH264Encoder::LibOpenH264Encoder(H264Profile profile, PipeWireProduce *produce)
+ : SoftwareEncoder(produce)
+ , m_profile(profile)
+@@ -64,13 +70,13 @@ bool LibOpenH264Encoder::initialize(const QSize &size)
+ // passes that through, but libopenh264 only allows BASELINE.
+ // Until that bug is fixed there'll always be a warning that the
+ // profile is not supported (https://github.com/cisco/openh264/issues/3613)
+- m_avCodecContext->profile = FF_PROFILE_H264_CONSTRAINED_BASELINE;
++ m_avCodecContext->profile = AV_PROFILE_H264_CONSTRAINED_BASELINE;
+ break;
+ case H264Profile::Main:
+- m_avCodecContext->profile = FF_PROFILE_H264_MAIN;
++ m_avCodecContext->profile = AV_PROFILE_H264_MAIN;
+ break;
+ case H264Profile::High:
+- m_avCodecContext->profile = FF_PROFILE_H264_HIGH;
++ m_avCodecContext->profile = AV_PROFILE_H264_HIGH;
+ break;
+ }
+
+diff --git a/src/libx264encoder.cpp b/src/libx264encoder.cpp
+index d9fe44f..a8f0e21 100644
+--- a/src/libx264encoder.cpp
++++ b/src/libx264encoder.cpp
+@@ -20,6 +20,12 @@ extern "C" {
+
+ #include "logging_record.h"
+
++#ifndef AV_PROFILE_H264_BASELINE // ffmpeg before 8.0
++#define AV_PROFILE_H264_BASELINE FF_PROFILE_H264_BASELINE
++#define AV_PROFILE_H264_MAIN FF_PROFILE_H264_MAIN
++#define AV_PROFILE_H264_HIGH FF_PROFILE_H264_HIGH
++#endif
++
+ using namespace Qt::StringLiterals;
+
+ LibX264Encoder::LibX264Encoder(H264Profile profile, PipeWireProduce *produce)
+@@ -68,13 +74,13 @@ bool LibX264Encoder::initialize(const QSize &size)
+
+ switch (m_profile) {
+ case H264Profile::Baseline:
+- m_avCodecContext->profile = FF_PROFILE_H264_BASELINE;
++ m_avCodecContext->profile = AV_PROFILE_H264_BASELINE;
+ break;
+ case H264Profile::Main:
+- m_avCodecContext->profile = FF_PROFILE_H264_MAIN;
++ m_avCodecContext->profile = AV_PROFILE_H264_MAIN;
+ break;
+ case H264Profile::High:
+- m_avCodecContext->profile = FF_PROFILE_H264_HIGH;
++ m_avCodecContext->profile = AV_PROFILE_H264_HIGH;
+ break;
+ }
+
+--
+GitLab
+
diff --git a/kde-plasma/kpipewire/kpipewire-6.4.90.ebuild b/kde-plasma/kpipewire/kpipewire-6.4.90.ebuild
new file mode 100644
index 00000000000..066f0702f6a
--- /dev/null
+++ b/kde-plasma/kpipewire/kpipewire-6.4.90.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_TEST="true"
+KFMIN=6.18.0
+QTMIN=6.9.1
+inherit ecm plasma.kde.org xdg
+
+DESCRIPTION="Components relating to Flatpak pipewire use in Plasma"
+
+LICENSE="LGPL-2.1+"
+SLOT="6"
+KEYWORDS="~amd64"
+IUSE=""
+
+COMMON_DEPEND="
+ >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,opengl]
+ >=dev-qt/qtdeclarative-${QTMIN}:6
+ >=kde-frameworks/kcoreaddons-${KFMIN}:6
+ >=kde-frameworks/ki18n-${KFMIN}:6
+ media-libs/libepoxy
+ media-libs/libglvnd
+ media-libs/libva:=
+ media-libs/mesa[opengl]
+ media-video/ffmpeg:=
+ >=media-video/pipewire-0.3:=
+ x11-libs/libdrm
+"
+DEPEND="${COMMON_DEPEND}
+ test? (
+ dev-libs/plasma-wayland-protocols
+ dev-libs/wayland
+ >=dev-qt/qtbase-${QTMIN}:6[wayland]
+ >=kde-plasma/kwayland-${KDE_CATV}:6
+ media-video/pipewire[extra]
+ )
+"
+DEPEND+=" test? ( || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 ) )"
+RDEPEND="${COMMON_DEPEND}
+ >=kde-frameworks/kirigami-${KFMIN}:6
+"
+BDEPEND="test? ( >=dev-qt/qtbase-${QTMIN}:6[wayland] )"
+BDEPEND+=" test? ( || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 ) )"
+
+PATCHES=( "${FILESDIR}/${P}-ffmpeg8.patch" )