commit: 42f6b911587c4f79e92d779f8f1067222e34d833 Author: Brahmajit Das <listout <AT> listout <DOT> xyz> AuthorDate: Mon Aug 25 13:06:32 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed Aug 27 10:31:46 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=42f6b911
media-libs/opencv: Fix build with media-video/ffmpeg-8.x Closes: https://bugs.gentoo.org/961697 Signed-off-by: Brahmajit Das <listout <AT> listout.xyz> Part-of: https://github.com/gentoo/gentoo/pull/43559 Closes: https://github.com/gentoo/gentoo/pull/43559 Signed-off-by: Sam James <sam <AT> gentoo.org> .../opencv/files/opencv-4.11.0-ffmpeg8.patch | 37 ++++++++++++++++++++++ media-libs/opencv/opencv-4.11.0.ebuild | 2 ++ 2 files changed, 39 insertions(+) diff --git a/media-libs/opencv/files/opencv-4.11.0-ffmpeg8.patch b/media-libs/opencv/files/opencv-4.11.0-ffmpeg8.patch new file mode 100644 index 000000000000..c93baf3b3836 --- /dev/null +++ b/media-libs/opencv/files/opencv-4.11.0-ffmpeg8.patch @@ -0,0 +1,37 @@ +https://github.com/opencv/opencv/pull/27691 +From: Alexander Smorkalov <[email protected]> +Date: Wed, 20 Aug 2025 10:53:51 +0300 +Subject: [PATCH] FFmpeg 8.0 support. + +--- a/modules/videoio/src/cap_ffmpeg_impl.hpp ++++ b/modules/videoio/src/cap_ffmpeg_impl.hpp +@@ -685,7 +685,10 @@ void CvCapture_FFMPEG::close() + if( video_st ) + { + #ifdef CV_FFMPEG_CODECPAR ++// avcodec_close removed in FFmpeg release 8.0 ++# if (LIBAVCODEC_BUILD < CALC_FFMPEG_VERSION(62, 11, 100)) + avcodec_close( context ); ++# endif + #endif + video_st = NULL; + } +@@ -2005,7 +2008,18 @@ void CvCapture_FFMPEG::get_rotation_angle() + rotation_angle = 0; + #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(57, 68, 100) + const uint8_t *data = 0; ++ // av_stream_get_side_data removed in FFmpeg release 8.0 ++# if (LIBAVCODEC_BUILD < CALC_FFMPEG_VERSION(62, 11, 100)) + data = av_stream_get_side_data(video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL); ++# else ++ AVPacketSideData* sd = video_st->codecpar->coded_side_data; ++ int nb_sd = video_st->codecpar->nb_coded_side_data; ++ if (sd && nb_sd > 0) ++ { ++ const AVPacketSideData* mtx = av_packet_side_data_get(sd, nb_sd, AV_PKT_DATA_DISPLAYMATRIX); ++ data = mtx->data; ++ } ++# endif + if (data) + { + rotation_angle = -cvRound(av_display_rotation_get((const int32_t*)data)); diff --git a/media-libs/opencv/opencv-4.11.0.ebuild b/media-libs/opencv/opencv-4.11.0.ebuild index cd15db4ddb66..8947034a680f 100644 --- a/media-libs/opencv/opencv-4.11.0.ebuild +++ b/media-libs/opencv/opencv-4.11.0.ebuild @@ -386,6 +386,8 @@ PATCHES=( "${FILESDIR}/${PN}-4.11.0-cuda-12.9.patch" # PR 27288 + "${FILESDIR}/${PN}-4.11.0-ffmpeg8.patch" # PR 27691 + # TODO applied in src_prepare # "${FILESDIR}/${PN}_contrib-4.8.1-rgbd.patch"
