diff --git a/xine-lib-1.2.13-ffmpeg8-compatibility.patch b/xine-lib-1.2.13-ffmpeg8-compatibility.patch deleted file mode 100644 index 97ec03d..0000000 --- a/xine-lib-1.2.13-ffmpeg8-compatibility.patch +++ /dev/null @@ -1,148 +0,0 @@ -# HG changeset patch -# User Torsten Jager -# Date 1757753985 -7200 -# Sat Sep 13 10:59:45 2025 +0200 -# Node ID 9bb3977ea7e2b652742b3cdd200b0a4a72eb48bc -# Parent 9e326869fe0faf21957642c8c7c5cac9ed4f445c -FFmpeg compatibilty update. - -diff -r 9e326869fe0f -r 9bb3977ea7e2 src/combined/ffmpeg/ff_video_decoder.c ---- a/src/combined/ffmpeg/ff_video_decoder.c Sat May 31 15:55:00 2025 +0200 -+++ b/src/combined/ffmpeg/ff_video_decoder.c Sat Sep 13 10:59:45 2025 +0200 -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2001-2024 the xine project -+ * Copyright (C) 2001-2025 the xine project - * - * This file is part of xine, a free video player. - * -@@ -60,6 +60,10 @@ - - #include "ffmpeg_compat.h" - -+#if XFF_FRAME_RATE == 2 -+# include -+#endif -+ - #if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(59,0,100) - # undef HAVE_POSTPROC - #endif -@@ -2289,8 +2293,8 @@ - } - - /* transfer some more frame settings for deinterlacing */ -- img->progressive_frame = !this->av_frame->interlaced_frame; -- img->top_field_first = this->av_frame->top_field_first; -+ img->progressive_frame = !XFF_FRAME_IS_INTERLACED (this->av_frame); -+ img->top_field_first = !!XFF_FRAME_IS_TOP_FIELD_FIRST (this->av_frame); - - /* get back reordered pts */ - img->pts = ff_untag_pts (this, this->av_frame); -@@ -2370,20 +2374,29 @@ - - static int ff_video_step_get (ff_video_decoder_t *this) { - /* use externally provided video_step or fall back to stream's time_base otherwise */ -- int step = this->video_step; -+ int step = this->video_step, num_fields; - if (step || !this->context->time_base.den) - return step; - -+#if XFF_FRAME_RATE == 1 -+ num_fields = this->context->ticks_per_frame; -+#else /* XFF_FRAME_RATE == 2 */ -+ { -+ const AVCodecDescriptor *desc = avcodec_descriptor_get (this->context->codec_id); -+ if (desc) -+ num_fields = (desc->props & AV_CODEC_PROP_FIELDS) ? 2 : 1; -+ else -+ num_fields = 2; -+ } -+#endif - /* good: 2 * 1001 / 48000. */ -- step = (int64_t)90000 * this->context->ticks_per_frame -- * this->context->time_base.num / this->context->time_base.den; -+ step = (int64_t)90000 * num_fields * this->context->time_base.num / this->context->time_base.den; - if (step >= 90) - return step; - - /* bad: 2 * 1 / 60000. seen this once from broken h.264 video usability info (VUI). - * VAAPI seems to apply a similar HACK.*/ -- step = (int64_t)90000000 * this->context->ticks_per_frame -- * this->context->time_base.num / this->context->time_base.den; -+ step = (int64_t)90000000 * num_fields * this->context->time_base.num / this->context->time_base.den; - return step; - } - -@@ -2680,8 +2693,8 @@ - img->duration = video_step_to_use; - - /* transfer some more frame settings for deinterlacing */ -- img->progressive_frame = !this->av_frame->interlaced_frame; -- img->top_field_first = this->av_frame->top_field_first; -+ img->progressive_frame = !XFF_FRAME_IS_INTERLACED (this->av_frame); -+ img->top_field_first = !!XFF_FRAME_IS_TOP_FIELD_FIRST (this->av_frame); - - this->skipframes = img->draw(img, this->stream); - this->state = STATE_FRAME_SENT; -@@ -2894,8 +2907,8 @@ - if (video_step_to_use <= 750) - video_step_to_use = 0; - img->duration = this->av_frame2->repeat_pict ? video_step_to_use * 3 / 2 : video_step_to_use; -- img->progressive_frame = !this->av_frame2->interlaced_frame; -- img->top_field_first = this->av_frame2->top_field_first; -+ img->progressive_frame = !XFF_FRAME_IS_INTERLACED (this->av_frame2); -+ img->top_field_first = !!XFF_FRAME_IS_TOP_FIELD_FIRST (this->av_frame2); - - this->skipframes = img->draw (img, this->stream); - if (free_img) -diff -r 9e326869fe0f -r 9bb3977ea7e2 src/combined/ffmpeg/ffmpeg_compat.h ---- a/src/combined/ffmpeg/ffmpeg_compat.h Sat May 31 15:55:00 2025 +0200 -+++ b/src/combined/ffmpeg/ffmpeg_compat.h Sat Sep 13 10:59:45 2025 +0200 -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2000-2024 the xine project -+ * Copyright (C) 2000-2025 the xine project - * - * This file is part of xine, a unix video player. - * -@@ -319,4 +319,20 @@ - # error avcodec.h must be included first ! - #endif /* defined(LIBAVCODEC_VERSION_INT) */ - -+#if LIBAVUTIL_VERSION_INT >= XFF_INT_VERSION(58,7,0) -+# define XFF_FRAME_IS_INTERLACED(_frame) ((_frame)->flags & AV_FRAME_FLAG_INTERLACED) -+# define XFF_FRAME_IS_TOP_FIELD_FIRST(_frame) ((_frame)->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST) -+# define XFF_FRAME_IS_KEY(_frame) ((_frame)->flags & AV_FRAME_FLAG_KEY) -+#else -+# define XFF_FRAME_IS_INTERLACED(_frame) ((_frame)->interlaced_frame) -+# define XFF_FRAME_IS_TOP_FIELD_FIRST(_frame) ((_frame)->top_field_first) -+# define XFF_FRAME_IS_KEY(_frame) ((_frame)->key_frame) -+#endif -+ -+#if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(60,0,0) -+# define XFF_FRAME_RATE 2 /* AV_CODEC_PROP_FIELDS */ -+#else -+# define XFF_FRAME_RATE 1 /* AVCodecContext.ticks_per_frame */ -+#endif -+ - #endif /* XINE_AVCODEC_COMPAT_H */ -# HG changeset patch -# User Xavier Bachelot -# Date 1758280185 -7200 -# Fri Sep 19 13:09:45 2025 +0200 -# Node ID a8fffd1193b2247c7f732d4df83dcc03fce96dbe -# Parent 9bb3977ea7e2b652742b3cdd200b0a4a72eb48bc -Fix FFmpeg compatibilty update. - -diff -r 9bb3977ea7e2 -r a8fffd1193b2 src/combined/ffmpeg/ff_video_decoder.c ---- a/src/combined/ffmpeg/ff_video_decoder.c Sat Sep 13 10:59:45 2025 +0200 -+++ b/src/combined/ffmpeg/ff_video_decoder.c Fri Sep 19 13:09:45 2025 +0200 -@@ -61,7 +61,7 @@ - #include "ffmpeg_compat.h" - - #if XFF_FRAME_RATE == 2 --# include -+# include - #endif - - #if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(59,0,100) diff --git a/xine-lib.spec b/xine-lib.spec index 635d46d..fd6dcfa 100644 --- a/xine-lib.spec +++ b/xine-lib.spec @@ -24,7 +24,7 @@ Summary: A multimedia engine Name: xine-lib Version: 1.2.13 -Release: 27%{?snapshot:.%{date}hg%{revision}}%{?dist} +Release: 25%{?snapshot:.%{date}hg%{revision}}%{?dist} License: GPL-2.0-or-later URL: https://www.xine-project.org/ %if ! 0%{?snapshot} @@ -52,9 +52,6 @@ Patch4: xine-lib-1.2.13-fix_libnfs6.patch Patch5: xine-lib-1.2.13-gcc_15.patch # https://sourceforge.net/p/xine/xine-lib-1.2/ci/5a68e8b08fd5378780f76c3ab957d790209388db/ Patch6: xine-lib-1.2.13-gcc_15-w32dll.patch -# https://sourceforge.net/p/xine/xine-lib-1.2/ci/9bb3977ea7e2b652742b3cdd200b0a4a72eb48bc/ -# https://sourceforge.net/p/xine/xine-lib-1.2/ci/a8fffd1193b2247c7f732d4df83dcc03fce96dbe/ -Patch7: xine-lib-1.2.13-ffmpeg8-compatibility.patch Provides: xine-lib(plugin-abi) = %{plugin_abi} Provides: xine-lib(plugin-abi)%{?_isa} = %{plugin_abi} @@ -361,12 +358,6 @@ mkdir -p %{buildroot}%{codecdir} %changelog -* Tue Nov 04 2025 Dominik Mierzejewski - 1.2.13-27 -- Rebuilt for FFmpeg 8 - -* Mon Sep 15 2025 Xavier Bachelot - 1.2.13-26 -- Add upstream patch for ffmpeg 8 compatibility - * Fri Jul 25 2025 Fedora Release Engineering - 1.2.13-25 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild