From 62882b8323039e029237d7c6550956261444b59f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= Date: Sat, 4 May 2024 20:14:52 +0200 Subject: [PATCH] Add compatibility with FFMPEG 7.0 frame_number was removed in FFMPEG 7.0. We use frame_num instead introduced in FFMPEG 6.0, with a version check on livavcodec. Reference: https://github.com/FFmpeg/FFmpeg/commit/6b6f7db81932f94876ff4bcfd2da0582b8ab897e --- src/importexport/videoexport/internal/videoencoder.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/importexport/videoexport/internal/videoencoder.cpp b/src/importexport/videoexport/internal/videoencoder.cpp index ba7530fa07..70088ead20 100644 --- a/src/importexport/videoexport/internal/videoencoder.cpp +++ b/src/importexport/videoexport/internal/videoencoder.cpp @@ -352,8 +352,13 @@ bool VideoEncoder::encodeImage(const QImage& img) convertImage_sws(img); +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(60, 3, 100) + m_ffmpeg->ppicture->pts = av_rescale_q(m_ffmpeg->codecCtx->frame_num, m_ffmpeg->codecCtx->time_base, + m_ffmpeg->videoStream->time_base); +#else m_ffmpeg->ppicture->pts = av_rescale_q(m_ffmpeg->codecCtx->frame_number, m_ffmpeg->codecCtx->time_base, m_ffmpeg->videoStream->time_base); +#endif int ret = avcodec_send_frame(m_ffmpeg->codecCtx, m_ffmpeg->ppicture); if (ret < 0) { -- 2.44.0