Compare commits
2 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94aa352da6 | ||
|
|
1c3b9268d7 |
2 changed files with 158 additions and 1 deletions
148
xine-lib-1.2.13-ffmpeg8-compatibility.patch
Normal file
148
xine-lib-1.2.13-ffmpeg8-compatibility.patch
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
# 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)
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
Summary: A multimedia engine
|
||||
Name: xine-lib
|
||||
Version: 1.2.13
|
||||
Release: 25%{?snapshot:.%{date}hg%{revision}}%{?dist}
|
||||
Release: 27%{?snapshot:.%{date}hg%{revision}}%{?dist}
|
||||
License: GPL-2.0-or-later
|
||||
URL: https://www.xine-project.org/
|
||||
%if ! 0%{?snapshot}
|
||||
|
|
@ -52,6 +52,9 @@ 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}
|
||||
|
|
@ -358,6 +361,12 @@ 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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue