Compare commits

..

No commits in common. "rawhide" and "f43" have entirely different histories.

2 changed files with 1 additions and 158 deletions

View file

@ -1,148 +0,0 @@
# HG changeset patch
# User Torsten Jager <t.jager@gmx.de>
# 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 <avcodec/codec_desc.h>
+#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 <xavier@bachelot.org>
# 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 <avcodec/codec_desc.h>
+# include <libavcodec/codec_desc.h>
#endif
#if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(59,0,100)

View file

@ -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 <dominik@greysector.net> - 1.2.13-27
- Rebuilt for FFmpeg 8
* Mon Sep 15 2025 Xavier Bachelot <xavier@bachelot.org>- 1.2.13-26
- Add upstream patch for ffmpeg 8 compatibility
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.13-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild