commit:     6ff008aa82b144175d82f8afa82a51b0a2282eef
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 31 22:09:38 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Aug 31 22:27:33 2025 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=6ff008aa

kde-apps/ffmpegthumbs: Fix build w/ media-video/ffmpeg-8

Closes: https://bugs.gentoo.org/961442
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../ffmpegthumbs/ffmpegthumbs-25.08.49.9999.ebuild |  2 +
 .../files/ffmpegthumbs-25.08.1-ffmpeg8.patch       | 96 ++++++++++++++++++++++
 2 files changed, 98 insertions(+)

diff --git a/kde-apps/ffmpegthumbs/ffmpegthumbs-25.08.49.9999.ebuild 
b/kde-apps/ffmpegthumbs/ffmpegthumbs-25.08.49.9999.ebuild
index f0fcd16571..30b9d1a7bc 100644
--- a/kde-apps/ffmpegthumbs/ffmpegthumbs-25.08.49.9999.ebuild
+++ b/kde-apps/ffmpegthumbs/ffmpegthumbs-25.08.49.9999.ebuild
@@ -28,3 +28,5 @@ BDEPEND="
        >=kde-frameworks/kcoreaddons-${KFMIN}:6
        virtual/pkgconfig
 "
+
+PATCHES=( "${FILESDIR}/${PN}-25.08.1-ffmpeg8.patch" ) # bug 961442

diff --git a/kde-apps/ffmpegthumbs/files/ffmpegthumbs-25.08.1-ffmpeg8.patch 
b/kde-apps/ffmpegthumbs/files/ffmpegthumbs-25.08.1-ffmpeg8.patch
new file mode 100644
index 0000000000..09631a98e3
--- /dev/null
+++ b/kde-apps/ffmpegthumbs/files/ffmpegthumbs-25.08.1-ffmpeg8.patch
@@ -0,0 +1,96 @@
+From d39fae995420d5b78d40a51a5a748c1ecd74a0ee Mon Sep 17 00:00:00 2001
+From: Azhar Momin <[email protected]>
+Date: Sun, 24 Aug 2025 15:50:28 +0530
+Subject: [PATCH] Some cleanup and fix deprecation warnings
+
+---
+ CMakeLists.txt                        |  8 ++++----
+ ffmpegthumbnailer.cpp                 |  4 ----
+ ffmpegthumbnailer/moviedecoder.cpp    | 16 ++++++++--------
+ 5 files changed, 19 insertions(+), 26 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d794347..696c33e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -69,8 +69,8 @@ kconfig_add_kcfg_files(ffmpegthumbs 
ffmpegthumbnailersettings5.kcfgc)
+ target_link_libraries(ffmpegthumbs
+     Qt::Core
+     Qt::Gui
+-    KF6::KIOWidgets
+     KF6::KIOCore
++    KF6::KIOGui
+     KF6::ConfigCore
+     KF6::ConfigGui
+     ${AVUTIL_LIBRARIES}
+diff --git a/ffmpegthumbnailer.cpp b/ffmpegthumbnailer.cpp
+index 40bf1be..8db7629 100644
+--- a/ffmpegthumbnailer.cpp
++++ b/ffmpegthumbnailer.cpp
+@@ -12,11 +12,7 @@
+ #include <limits>
+ 
+ #include <KPluginFactory>
+-#include <QCheckBox>
+-#include <QFormLayout>
+ #include <QImage>
+-#include <QLineEdit>
+-#include <QSpinBox>
+ 
+ extern "C" {
+ #include <libavformat/avformat.h>
+diff --git a/ffmpegthumbnailer/moviedecoder.cpp 
b/ffmpegthumbnailer/moviedecoder.cpp
+index 39a7c00..21c3864 100644
+--- a/ffmpegthumbnailer/moviedecoder.cpp
++++ b/ffmpegthumbnailer/moviedecoder.cpp
+@@ -89,7 +89,7 @@ void MovieDecoder::destroy()
+ {
+     deleteFilterGraph();
+     if (m_pVideoCodecContext) {
+-        avcodec_close(m_pVideoCodecContext);
++        avcodec_free_context(&m_pVideoCodecContext);
+         m_pVideoCodecContext = nullptr;
+     }
+     m_pVideoStream = nullptr;
+@@ -215,7 +215,7 @@ void MovieDecoder::seek(int timeInSeconds)
+         }
+ 
+         ++keyFrameAttempts;
+-    } while ((!gotFrame || !m_pFrame->key_frame) && keyFrameAttempts < 200);
++    } while ((!gotFrame || !(m_pFrame->flags & AV_FRAME_FLAG_KEY)) && 
keyFrameAttempts < 200);
+ 
+     if (gotFrame == 0) {
+         qCDebug(ffmpegthumbs_LOG) << "Seeking in video failed";
+@@ -263,15 +263,15 @@ QImageIOHandler::Transformations 
MovieDecoder::transformations()
+         return ret;
+     }
+ 
+-    for (int i=0; i<m_pVideoStream->nb_side_data; i++) {
+-        if (m_pVideoStream->side_data[i].type != AV_PKT_DATA_DISPLAYMATRIX) {
++    for (int i=0; i<m_pVideoStream->codecpar->nb_coded_side_data; i++) {
++        if (m_pVideoStream->codecpar->coded_side_data[i].type != 
AV_PKT_DATA_DISPLAYMATRIX) {
+             continue;
+         }
+-        if (m_pVideoStream->side_data[i].size != sizeof(int32_t) * 9) {
+-            qCWarning(ffmpegthumbs_LOG) << "Invalid display matrix size" << 
m_pVideoStream->side_data[i].size << "expected" << sizeof(int32_t) * 9;
++        if (m_pVideoStream->codecpar->coded_side_data[i].size != 
sizeof(int32_t) * 9) {
++            qCWarning(ffmpegthumbs_LOG) << "Invalid display matrix size" << 
m_pVideoStream->codecpar->coded_side_data[i].size << "expected" << 
sizeof(int32_t) * 9;
+             continue;
+         }
+-        int32_t *matrix = 
reinterpret_cast<int32_t*>(m_pVideoStream->side_data[i].data);
++        int32_t *matrix = 
reinterpret_cast<int32_t*>(m_pVideoStream->codecpar->coded_side_data[i].data);
+         double rotation = av_display_rotation_get(matrix);
+         if (qFuzzyCompare(rotation, 0.)) {
+             ret |= QImageIOHandler::TransformationNone;
+@@ -404,7 +404,7 @@ bool MovieDecoder::processFilterGraph(AVFrame *dst, const 
AVFrame *src,
+ 
+ void MovieDecoder::getScaledVideoFrame(int scaledSize, bool 
maintainAspectRatio, VideoFrame& videoFrame)
+ {
+-    if (m_pFrame->interlaced_frame) {
++    if (m_pFrame->flags & AV_FRAME_FLAG_INTERLACED) {
+         processFilterGraph((AVFrame*) m_pFrame, (AVFrame*) m_pFrame, 
m_pVideoCodecContext->pix_fmt,
+                               m_pVideoCodecContext->width, 
m_pVideoCodecContext->height);
+     }
+-- 
+GitLab
+

Reply via email to