git: 3b6dde4ba226 - main - audio/plasma6-kpipewire: Fix build with FFmpeg 8

From: Daniel Engberg <diizzy_at_FreeBSD.org>
Date: Sat, 04 Oct 2025 08:13:38 UTC
The branch main has been updated by diizzy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3b6dde4ba2267aa83c4a014faea302b27631beea

commit 3b6dde4ba2267aa83c4a014faea302b27631beea
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2025-10-04 07:51:28 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2025-10-04 08:11:49 +0000

    audio/plasma6-kpipewire: Fix build with FFmpeg 8
    
    Backport upstream commit 6dc69b0674f9946641e88151c209ce58f085d06a
    to fix build with FFmpeg 8
    
    Reference:
    https://invent.kde.org/plasma/kpipewire/-/commit/6dc69b0674f9946641e88151c209ce58f085d06a
    
    PR:             289481
    Approved by:    blanket, build fix
---
 ...git-01-6dc69b0674f9946641e88151c209ce58f085d06a | 116 +++++++++++++++++++++
 1 file changed, 116 insertions(+)

diff --git a/audio/plasma6-kpipewire/files/patch-git-01-6dc69b0674f9946641e88151c209ce58f085d06a b/audio/plasma6-kpipewire/files/patch-git-01-6dc69b0674f9946641e88151c209ce58f085d06a
new file mode 100644
index 000000000000..b5aa8d8c3c0f
--- /dev/null
+++ b/audio/plasma6-kpipewire/files/patch-git-01-6dc69b0674f9946641e88151c209ce58f085d06a
@@ -0,0 +1,116 @@
+From 6dc69b0674f9946641e88151c209ce58f085d06a 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 0cf251b4..eaec8dde 100644
+--- src/h264vaapiencoder.cpp
++++ 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 db6ed4db..294c0f2b 100644
+--- src/libopenh264encoder.cpp
++++ 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 d9fe44f4..a8f0e21f 100644
+--- src/libx264encoder.cpp
++++ 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
+