diff options
Diffstat (limited to 'multimedia/xjadeo/ffmpeg-5.1.patch')
-rw-r--r-- | multimedia/xjadeo/ffmpeg-5.1.patch | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/multimedia/xjadeo/ffmpeg-5.1.patch b/multimedia/xjadeo/ffmpeg-5.1.patch new file mode 100644 index 0000000000..4fa4d6d3cc --- /dev/null +++ b/multimedia/xjadeo/ffmpeg-5.1.patch @@ -0,0 +1,105 @@ +From 973f0046cf0dad1a5c5d847aaa02c8bfb21b5804 Mon Sep 17 00:00:00 2001 +From: Robin Gareus <robin@gareus.org> +Date: Fri, 2 Sep 2022 10:26:12 +0200 +Subject: [PATCH] ffmpeg 5.1 compat -- closes #51 + +--- + src/xjadeo/ffcompat.h | 11 +++++++++++ + src/xjadeo/xjadeo.c | 28 +++++++++++----------------- + 2 files changed, 22 insertions(+), 17 deletions(-) + +diff --git a/src/xjadeo/ffcompat.h b/src/xjadeo/ffcompat.h +index b60baad..4aadde9 100644 +--- a/src/xjadeo/ffcompat.h ++++ b/src/xjadeo/ffcompat.h +@@ -151,5 +151,16 @@ register_codecs_compat () + #endif + } + ++static inline void ++maybe_avcodec_flush_buffers(AVCodecContext *avctx) ++{ ++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59, 26, 100) ++ if (avctx->codec->flush) { ++ avcodec_flush_buffers(avctx); ++ } ++#else ++ avcodec_flush_buffers(avctx); ++#endif ++} + + #endif /* FFCOMPAT_H */ +diff --git a/src/xjadeo/xjadeo.c b/src/xjadeo/xjadeo.c +index d626f92..a8807f3 100644 +--- a/src/xjadeo/xjadeo.c ++++ b/src/xjadeo/xjadeo.c +@@ -575,9 +575,7 @@ static int seek_frame (AVPacket *packet, int64_t framenumber) { + seek = av_seek_frame (pFormatCtx, videoStream, fidx[framenumber].seekpts, AVSEEK_FLAG_BACKWARD); + } + +- if (pCodecCtx->codec->flush) { +- avcodec_flush_buffers (pCodecCtx); +- } ++ maybe_avcodec_flush_buffers (pCodecCtx); + + if (seek < 0) { + if (!want_quiet) +@@ -915,9 +913,7 @@ static int index_frames () { + error |= 16; + break; + } +- if (pCodecCtx->codec->flush) { +- avcodec_flush_buffers (pCodecCtx); +- } ++ maybe_avcodec_flush_buffers (pCodecCtx); + + int err = 0; + int bailout = 100; +@@ -1053,9 +1049,7 @@ static int index_frames () { + printf("NOBYTE 2\n"); + break; + } +- if (pCodecCtx->codec->flush) { +- avcodec_flush_buffers (pCodecCtx); +- } ++ maybe_avcodec_flush_buffers (pCodecCtx); + + int64_t pts = AV_NOPTS_VALUE; + while (!got_pic) { +@@ -1118,9 +1112,7 @@ static int index_frames () { + } else { + av_seek_frame (pFormatCtx, videoStream, fidx[i].seekpts, AVSEEK_FLAG_BACKWARD); + } +- if (pCodecCtx->codec->flush) { +- avcodec_flush_buffers (pCodecCtx); +- } ++ maybe_avcodec_flush_buffers (pCodecCtx); + while (!got_pic) { + + if (av_read_frame (pFormatCtx, &packet) < 0) { +@@ -1192,9 +1184,7 @@ static int index_frames () { + } + + av_seek_frame (pFormatCtx, videoStream, 0, AVSEEK_FLAG_BACKWARD); +- if (pCodecCtx->codec->flush) { +- avcodec_flush_buffers (pCodecCtx); +- } ++ maybe_avcodec_flush_buffers (pCodecCtx); + if (!error) { + scan_complete = 1; + } +@@ -1271,8 +1261,12 @@ static void clear_info () { + + int open_movie (char* file_name) { + int i; +- AVCodec *pCodec; +- AVStream *av_stream; ++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59, 0, 100) ++ AVCodec* pCodec; ++#else ++ AVCodec const* pCodec; ++#endif ++ AVStream* av_stream; + + if (pFrameFMT) { + close_movie (); |