Compare commits

...

42 Commits
f15 ... rawhide

Author SHA1 Message Date
Fabio Valentini
1f48720efe
Rebuild for ffmpeg 7 2024-09-23 17:02:56 +02:00
Fedora Release Engineering
e88dba6c2e Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 10:08:03 +00:00
Nicolas Chauvet
fc1834bfb9 Rebuilt for libplacebo/vmaf 2024-07-16 20:47:08 +02:00
Xavier Bachelot
05b4a7f596 Add patches for ffmpeg compatibility 2024-05-20 18:43:04 +02:00
Xavier Bachelot
bacd9126e2 Add missing libxdg-basedir-devel BR: 2024-04-22 13:45:56 +02:00
Sérgio M. Basto
4558856309 Rebuild for jpegxl (libjxl) 0.10.2 2024-03-13 03:10:18 +00:00
Sérgio M. Basto
315c057d47 Rebuild for jpegxl (libjxl) 0.9.2 with soname bump 2024-02-14 02:50:42 +00:00
Pete Walter
ac9527abbc Rebuild for libvpx 1.14.x 2024-02-08 00:05:55 +00:00
Fedora Release Engineering
43b312a619 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 09:46:54 +00:00
Fabio Valentini
b22f497ee3
Rebuild for dav1d 1.3.0 2024-01-12 19:11:51 +01:00
Xavier Bachelot
4a975777a0 Enable nfs support for EL9 2023-09-26 14:56:13 +02:00
Fedora Release Engineering
6485375a82 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 18:55:42 +00:00
Sérgio M. Basto
8fc8302c8d fix previous commit, no autochangelog here 2023-06-18 21:23:16 +01:00
Sérgio M. Basto
30df5ec749 Mass rebuild for jpegxl-0.8.1 2023-06-18 21:17:29 +01:00
Xavier Bachelot
db2aa192a6 Rebuild for new libnfs 2023-06-01 09:10:15 +02:00
Florian Weimer
778d088338 Port configure script to C99
Related to:

  <https://fedoraproject.org/wiki/Changes/PortingToModernC>
  <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
2023-04-15 18:57:58 +02:00
Xavier Bachelot
c6cc98ac45 Enable external libdvdnav for EL9 2023-03-20 10:29:05 +01:00
Yaakov Selkowitz
7dff0e2b47 Rebuilt for libmpcdec 1.3.0 2023-03-17 13:14:16 -04:00
Neal Gompa
a3a2a8a9ca Bump plugin ABI version to fix build 2023-03-12 14:15:05 -04:00
Neal Gompa
a17e342948 Enable DTS/DCA and VCD support plugins 2023-03-12 14:14:15 -04:00
Neal Gompa
6de5350a6f Update to 1.2.13 2023-03-12 13:12:52 -04:00
Tom Callaway
86d512f4c7 rebuild for libvpx 2023-02-15 19:06:41 -05:00
Neal Gompa
58be036c26 Rebase to version 1.2.12 based on RPM Fusion package 2023-01-23 10:01:56 -05:00
Tomas Hrcka
833c4969df Unretirement request: https://pagure.io/releng/issue/11232 2023-01-23 15:57:22 +01:00
Xavier Bachelot
e51141ce46 Moved to RPM Fusion 2013-10-24 00:58:59 +02:00
Xavier Bachelot
4ca2250176 Rebuild for libbluray-0.4.0. 2013-09-20 16:37:56 +02:00
Till Maas
195a4e285b Disable directfb support for Fedora 20 and newer, because it was retired 2013-08-31 21:53:28 +02:00
Jon Ciesla
e9cb3c5637 libmng rebuild 2013-08-27 08:02:03 -05:00
Dennis Gilmore
5d28f1e7d9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild 2013-08-04 03:18:45 -05:00
Kevin Fenzi
9f705b6884 Rebuild for broken deps in rawhide 2013-03-30 12:54:15 -06:00
Kevin Kofler
1b121475e0 find the Samba 4 libsmbclient.h using pkg-config, fixes FTBFS (#909825)
* Tue Feb 12 2013 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.1.21-5
- find the Samba 4 libsmbclient.h using pkg-config, fixes FTBFS (#909825)
2013-02-12 15:55:25 +01:00
Kevin Kofler
1b31029cd5 rebuild for new directfb
* Mon Sep 17 2012 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.1.21-4
- rebuild for new directfb
2012-09-17 23:12:14 +02:00
Dennis Gilmore
7e6058d0e7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild 2012-07-22 00:35:12 -05:00
Kevin Kofler
98180e81b4 - disable libbluray support on F16, libbluray too old
* Sat Jul 21 2012 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.1.21-2.1
- disable libbluray support on F16, libbluray too old
2012-07-21 15:46:43 +02:00
Kevin Kofler
84b672c560 Merge branch 'master' of ssh://pkgs.fedoraproject.org/xine-lib into f16 2012-07-21 12:09:13 +02:00
Kevin Kofler
93d016bc79 Revert "Rebuild for ImageMagick update http://lists.fedoraproject.org/pipermail/devel/2012-May/167462.html"
This reverts commit 175663444c.

Syncing from master instead.
2012-07-21 12:07:40 +02:00
Kevin Kofler
7537d5e2da - do not remove DVD plugin, not encumbered (only uses libdvdread/libdvdnav)
* Mon Jul 16 2012 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.1.21-2
- do not remove DVD plugin, not encumbered (only uses libdvdread/libdvdnav)

It makes no sense to remove the DVD input plugin when:
* the libdvd* libraries which do all the actual work are in Fedora,
* GStreamer also ships the exact equivalent functionality in Fedora and
* we are now shipping the BluRay input plugin in Fedora.

The DVD input plugin does not include nor depend on any decoding or decryption
code, it only wraps the libdvdread and libdvdnav libraries. (The same goes for
the BluRay plugin, except libbluray is used there.)
2012-07-16 21:50:44 +02:00
Rex Dieter
ad948d47c8 s/pulseaudio-lib-devel/pkgconfig(libpulse)/
or use pulseaudio-libs-devel these days, that old name was deprecated
long ago
2012-06-23 05:32:58 -05:00
Kevin Kofler
50ba62cfcd Update to 1.1.21, enable libbluray support
* Tue Jun 12 2012 Xavier Bachelot <xavier@bachelot.org> 1.1.21-1
- Update to 1.1.21.
- Enable libbluray support.
2012-06-23 12:01:23 +02:00
Pavel Alexeev (aka Pahan-Hubbitus)
175663444c Rebuild for ImageMagick update http://lists.fedoraproject.org/pipermail/devel/2012-May/167462.html 2012-06-03 02:09:52 +04:00
Rex Dieter
069aba18f7 rebuild (ImageMagick) 2012-03-10 08:16:20 -06:00
Dennis Gilmore
3843e1c31b - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild 2012-01-14 02:58:08 -06:00
14 changed files with 1728 additions and 397 deletions

3
.gitignore vendored
View File

@ -2,3 +2,6 @@ xine-lib-1.1.19-autotools.patch.bz2
xine-lib-1.1.19-pruned.tar.bz2
/xine-lib-1.1.20-pruned.tar.xz
/xine-lib-1.1.20.1-pruned.tar.xz
/xine-lib-1.1.21-pruned.tar.xz
/xine-lib-1.2.12.tar.xz
/xine-lib-1.2.13.tar.xz

View File

@ -1,21 +0,0 @@
# Makefile for source rpm: xine-lib
# $Id$
NAME := xine-lib
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

20
make_xinelib_snapshot.sh Normal file
View File

@ -0,0 +1,20 @@
#!/bin/bash
# This script is intended to make a xine-lib snapshot.
# If no argument is provided, it will make a snapshot of HEAD.
# If the svn revision is provided as an argument, it will make a snapshot of
# this revision.
TMPDIR=$(mktemp -d)
pushd "$TMPDIR" || exit
echo -n "Cloning xine-lib-1.2 "
[ -n "$1" ] && echo "revision $1" || echo "HEAD"
[ -n "$1" ] && OPT="-u $1 " || OPT=""
hg clone $OPT http://hg.code.sf.net/p/xine/xine-lib-1.2 xine-lib-1.2
cd xine-lib-1.2 || exit
autoreconf -vif
./configure
make dist
popd || exit
cp -p "$TMPDIR"/xine-lib-1.2/xine-lib-1.2*.tar.xz .
rm -rf "$TMPDIR"

View File

@ -1 +1 @@
46d9f91395feb50237ac385aa6654b26 xine-lib-1.1.20.1-pruned.tar.xz
SHA512 (xine-lib-1.2.13.tar.xz) = 088a446dd962c3cef621b56edd48fa2e1b47566108b4097d74899a9e5316a1f205993041d3070f45b706f168837579811e5e98c7e52ec278c683379407084bc4

View File

@ -1,16 +0,0 @@
diff -up xine-lib-1.1.16.2/misc/xine-config.in.multilib xine-lib-1.1.16.2/misc/xine-config.in
--- xine-lib-1.1.16.2/misc/xine-config.in.multilib 2008-06-25 08:04:09.000000000 -0500
+++ xine-lib-1.1.16.2/misc/xine-config.in 2009-02-20 07:34:27.000000000 -0600
@@ -6,12 +6,6 @@ unset prefix
unset exec_prefix
unset args
-PKG_CONFIG_PATH="`cat <<'EOF'
-@XINE_PKGCONFIG_DIR@
-EOF
-`${PKG_CONFIG_PATH:+:}$PKG_CONFIG_PATH"
-export PKG_CONFIG_PATH
-
usage()
{
cat <<EOF

View File

@ -1,22 +0,0 @@
diff -up xine-lib-1.1.17/src/xine-engine/audio_out.c.avsync_hack xine-lib-1.1.17/src/xine-engine/audio_out.c
--- xine-lib-1.1.17/src/xine-engine/audio_out.c.avsync_hack 2009-11-30 19:33:30.000000000 -0600
+++ xine-lib-1.1.17/src/xine-engine/audio_out.c 2009-12-02 09:07:37.622805780 -0600
@@ -1156,8 +1156,17 @@ static void *ao_loop (void *this_gen) {
/*
* calculate gap:
+ *
+ * HACK (rwa): If we have no video stream we do not need an AV sync and so
+ * we assume a gap of 0. This seems to avoid the skips in the
+ * first seconds when playing audio-only via the "glitch-free"
+ * pulseaudio server.
*/
- gap = in_buf->vpts - hw_vpts;
+ if (in_buf && in_buf->stream && in_buf->stream->video_decoder_plugin) {
+ gap = in_buf->vpts - hw_vpts;
+ } else {
+ gap = 0;
+ }
lprintf ("hw_vpts : %" PRId64 " buffer_vpts : %" PRId64 " gap : %" PRId64 "\n",
hw_vpts, in_buf->vpts, gap);

View File

@ -1,17 +0,0 @@
diff -up xine-lib-1.1.17/autogen.sh.no_autopoint xine-lib-1.1.17/autogen.sh
--- xine-lib-1.1.17/autogen.sh.no_autopoint 2009-10-09 09:33:31.000000000 -0500
+++ xine-lib-1.1.17/autogen.sh 2009-12-02 09:15:48.534555467 -0600
@@ -229,10 +229,10 @@ run_aclocal () {
echo
fi
- echo $_echo_n " + Running autopoint: $_echo_c"
+ #echo $_echo_n " + Running autopoint: $_echo_c"
- autopoint
- echo "done."
+ #autopoint
+ #echo "done."
echo $_echo_n " + Running aclocal: $_echo_c"

View File

@ -1,11 +0,0 @@
--- xine-lib-1.1.4/m4/optimizations.m4~ 2006-06-17 18:20:56.000000000 +0300
+++ xine-lib-1.1.4/m4/optimizations.m4 2007-01-30 23:03:27.000000000 +0200
@@ -107,7 +107,7 @@
DEBUG_CFLAGS="-O $DEBUG_CFLAGS"
- if test x"$sarchopt" != "xno"; then
+ if false ; then
archopt_val=
case "$host_or_hostalias" in

View File

@ -0,0 +1,196 @@
# HG changeset patch
# User Torsten Jager <t.jager@gmx.de>
# Date 1674929040 -3600
# Sat Jan 28 19:04:00 2023 +0100
# Node ID 771f4ae27e582123ff3500444718fc8f96186d74
# Parent 250f1c09f4244c3e7ca7d414410c57bd387792c3
ffmpeg compatibility update.
diff -r 250f1c09f424 -r 771f4ae27e58 src/combined/ffmpeg/demux_avformat.c
--- a/src/combined/ffmpeg/demux_avformat.c Wed Jan 25 17:03:55 2023 +0100
+++ b/src/combined/ffmpeg/demux_avformat.c Sat Jan 28 19:04:00 2023 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2022 the xine project
+ * Copyright (C) 2013-2023 the xine project
* Copyright (C) 2013-2020 Petri Hintukainen <phintuka@users.sourceforge.net>
*
* This file is part of xine, a free video player.
@@ -423,8 +423,13 @@
}
#ifdef XFF_CODECPAR
+# if XFF_AUDIO_CHANNEL_LAYOUT < 2
if (st->codecpar && st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO &&
st->codecpar->sample_rate != 0 && st->codecpar->channels != 0)
+# else
+ if (st->codecpar && st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO &&
+ st->codecpar->sample_rate != 0 && st->codecpar->ch_layout.nb_channels != 0)
+# endif
#else
if (st->codec && st->codec->codec_type == AVMEDIA_TYPE_AUDIO &&
st->codec->sample_rate != 0 && st->codec->channels != 0)
@@ -501,7 +506,11 @@
buf->size = extradata_size + sizeof(xine_waveformatex);
buf->decoder_info[1] = ctx->sample_rate;
buf->decoder_info[2] = ctx->bits_per_coded_sample;
+#if XFF_AUDIO_CHANNEL_LAYOUT < 2
buf->decoder_info[3] = ctx->channels;
+#else
+ buf->decoder_info[3] = ctx->ch_layout.nb_channels;
+#endif
buf->decoder_flags = BUF_FLAG_HEADER | BUF_FLAG_STDHEADER | BUF_FLAG_FRAME_END;
this->stream->audio_fifo->put (this->stream->audio_fifo, buf);
diff -r 250f1c09f424 -r 771f4ae27e58 src/combined/ffmpeg/ff_audio_decoder.c
--- a/src/combined/ffmpeg/ff_audio_decoder.c Wed Jan 25 17:03:55 2023 +0100
+++ b/src/combined/ffmpeg/ff_audio_decoder.c Sat Jan 28 19:04:00 2023 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2001-2022 the xine project
+ * Copyright (C) 2001-2023 the xine project
*
* This file is part of xine, a free video player.
*
@@ -303,7 +303,11 @@
this->context->bits_per_sample = this->ff_bits;
this->context->sample_rate = this->ff_sample_rate;
+#if XFF_AUDIO_CHANNEL_LAYOUT < 2
this->context->channels = this->ff_channels;
+#else
+ this->context->ch_layout.nb_channels = this->ff_channels;
+#endif
this->context->codec_id = this->codec->id;
this->context->codec_type = this->codec->type;
this->context->codec_tag = _x_stream_info_get(this->stream, XINE_STREAM_INFO_AUDIO_FOURCC);
@@ -527,16 +531,75 @@
this->ao_mode = 0;
}
+static unsigned int ff_list_channels (uint8_t *list, uint64_t map) {
+ unsigned int n, bit;
+
+ for (n = bit = 0; map; map >>= 1, bit++) {
+ uint32_t b = map & 1;
+
+ list[n] = bit;
+ n += b;
+ }
+ return n;
+}
+
static void ff_map_channels (ff_audio_decoder_t *this) {
uint64_t ff_map;
+ uint8_t ff_list[64];
+ unsigned int ff_num;
+ const char *type = "native";
int caps = this->stream->audio_out->get_capabilities (this->stream->audio_out);
+#if XFF_AUDIO_CHANNEL_LAYOUT < 2
+
/* safety kludge for very old libavcodec */
-#ifdef AV_CH_FRONT_LEFT
+# ifdef AV_CH_FRONT_LEFT
ff_map = this->context->channel_layout;
if (!ff_map) /* wma2 bug */
+# endif
+ ff_map = ((uint64_t)1 << this->context->channels) - 1;
+ ff_num = ff_list_channels (ff_list, ff_map);
+
+#else /* XFF_AUDIO_CHANNEL_LAYOUT == 2 */
+
+ ff_num = this->context->ch_layout.nb_channels;
+ if (ff_num > (int)(sizeof (ff_list) / sizeof (ff_list[0])))
+ ff_num = sizeof (ff_list) / sizeof (ff_list[0]);
+ switch (this->context->ch_layout.order) {
+ const AVChannelCustom *cmap;
+ unsigned int i;
+
+ case AV_CHANNEL_ORDER_UNSPEC:
+ type = "unknown";
+ goto _fallback;
+
+ case AV_CHANNEL_ORDER_NATIVE:
+ ff_map = this->context->ch_layout.u.mask;
+ if (!ff_map) /* wma2 bug */
+ ff_map = ((uint64_t)1 << ff_num) - 1;
+ ff_num = ff_list_channels (ff_list, ff_map);
+ break;
+
+ case AV_CHANNEL_ORDER_CUSTOM:
+ type = "custom";
+ if (!(cmap = this->context->ch_layout.u.map))
+ goto _fallback;
+ ff_map = 0;
+ for (i = 0; i < ff_num; i++) {
+ ff_list[i] = cmap[i].id;
+ ff_map |= (uint64_t)1 << ff_list[i];
+ }
+ break;
+
+ default:
+ type = "unsupported";
+ /* fall through */
+ _fallback:
+ ff_map = ((uint64_t)1 << ff_num) - 1;
+ ff_num = ff_list_channels (ff_list, ff_map);
+ }
+
#endif
- ff_map = ((uint64_t)1 << this->context->channels) - 1;
if ((caps != this->ao_caps) || (ff_map != this->ff_map)) {
unsigned int i, j;
@@ -562,7 +625,7 @@
this->ao_caps = caps;
this->ff_map = ff_map;
- this->ff_channels = this->context->channels;
+ this->ff_channels = ff_num;
/* silence out */
for (i = 0; i < MAX_CHANNELS; i++)
@@ -576,20 +639,23 @@
this->left[0] = this->right[0] = 0;
tries = wishlist + 0 * num_modes;
} else if (this->ff_channels == 2) { /* stereo */
+ /* FIXME: libxine does not yet support audio selection _after_ decoding.
+ * For now, treat the most common "dual mono" case as stereo. */
name_map[0] = 0;
name_map[1] = 1;
this->left[0] = 0;
this->right[0] = 1;
tries = wishlist + 1 * num_modes;
} else {
- for (i = j = 0; i < sizeof (base_map) / sizeof (base_map[0]); i++) {
- if ((ff_map >> i) & 1) {
- int8_t target = base_map[i];
- if ((target >= 0) && (this->map[target] < 0))
- this->map[target] = j;
- name_map[j] = i; /* for debug output below */
- j++;
- }
+ for (i = 0; i < ff_num; i++) {
+ int8_t target;
+ uint32_t num = ff_list[i];
+ if (num >= sizeof (base_map) / sizeof (base_map[0]))
+ continue;
+ target = base_map[num];
+ if ((target >= 0) && (this->map[target] < 0))
+ this->map[target] = i;
+ name_map[i] = num; /* for debug output below */
}
this->left[0] = this->map[0] < 0 ? 0 : this->map[0];
this->map[0] = -1;
@@ -641,8 +707,8 @@
"rear center",
"side left", "side right"
};
- int8_t buf[200];
- int p = sprintf (buf, "ff_audio_dec: channel layout: ");
+ int8_t buf[256];
+ int p = sprintf (buf, "ff_audio_dec: %s channel layout: ", type);
int8_t *indx = this->left;
for (i = 0; i < 2; i++) {
buf[p++] = '[';

View File

@ -0,0 +1,475 @@
# HG changeset patch
# User Torsten Jager <t.jager@gmx.de>
# Date 1715025355 -7200
# Mon May 06 21:55:55 2024 +0200
# Node ID 1e7b184008860c8be2289c3cefd9dee57f06193a
# Parent d1954d852980ddc887a67a9f1a26626909561ff5
ffmpeg compatibility update 1.
diff -r d1954d852980 -r 1e7b18400886 src/combined/ffmpeg/ff_audio_decoder.c
--- a/src/combined/ffmpeg/ff_audio_decoder.c Mon Apr 08 13:25:10 2024 +0200
+++ b/src/combined/ffmpeg/ff_audio_decoder.c Mon May 06 21:55:55 2024 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2001-2023 the xine project
+ * Copyright (C) 2001-2024 the xine project
*
* This file is part of xine, a free video player.
*
@@ -67,6 +67,7 @@
xine_t *xine;
float gain;
+ int bitexact;
} ff_audio_class_t;
typedef struct ff_audio_decoder_s {
@@ -188,14 +189,25 @@
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"ffmpeg_audio_dec: found AAC ADTS syncword after %d bytes\n", i);
if (this->buftype == BUF_AUDIO_AAC_LATM) {
+ uint8_t *ed = NULL;
+ int es = 0;
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"ffmpeg_audio_dec: stream says LATM but is ADTS -> switching decoders\n");
- if (this->decoder_ok) {
- pthread_mutex_lock (&ffmpeg_lock);
- avcodec_close (this->context);
- pthread_mutex_unlock (&ffmpeg_lock);
- this->decoder_ok = 0;
+ pthread_mutex_lock (&ffmpeg_lock);
+ if (this->context) {
+ ed = this->context->extradata;
+ es = this->context->extradata_size;
+ this->context->extradata = NULL;
+ this->context->extradata_size = 0;
+ XFF_FREE_CONTEXT (this->context);
}
+ this->decoder_ok = 0;
+ this->context = XFF_ALLOC_CONTEXT ();
+ if (this->context) {
+ this->context->extradata = ed;
+ this->context->extradata_size = es;
+ }
+ pthread_mutex_unlock (&ffmpeg_lock);
this->codec = NULL;
ff_audio_open_codec (this, BUF_AUDIO_AAC);
}
@@ -349,6 +361,11 @@
return -1;
}
+ if (this->class->bitexact)
+ this->context->flags |= CODEC_FLAG_BITEXACT;
+ else
+ this->context->flags &= ~CODEC_FLAG_BITEXACT;
+
pthread_mutex_lock (&ffmpeg_lock);
if (XFF_AVCODEC_OPEN (this->context, this->codec) < 0) {
pthread_mutex_unlock (&ffmpeg_lock);
@@ -1377,9 +1394,21 @@
}
#endif
pthread_mutex_lock (&ffmpeg_lock);
- avcodec_close (this->context);
- if (XFF_AVCODEC_OPEN (this->context, this->codec) < 0)
+ {
+ uint8_t *ed = this->context->extradata;
+ int es = this->context->extradata_size;
+ this->context->extradata = NULL;
+ this->context->extradata_size = 0;
+ XFF_FREE_CONTEXT (this->context);
this->decoder_ok = 0;
+ this->context = XFF_ALLOC_CONTEXT ();
+ if (this->context) {
+ this->context->extradata = ed;
+ this->context->extradata_size = es;
+ }
+ }
+ if (XFF_AVCODEC_OPEN (this->context, this->codec) >= 0)
+ this->decoder_ok = 1;
pthread_mutex_unlock (&ffmpeg_lock);
}
@@ -1418,20 +1447,20 @@
XFF_FREE_FRAME (this->av_frame);
}
#endif
- pthread_mutex_lock (&ffmpeg_lock);
- avcodec_close (this->context);
- pthread_mutex_unlock (&ffmpeg_lock);
}
+ pthread_mutex_lock (&ffmpeg_lock);
+ if (this->context) {
+ _x_freep (&this->context->extradata);
+ this->context->extradata_size = 0;
+ XFF_FREE_CONTEXT (this->context);
+ }
+ pthread_mutex_unlock (&ffmpeg_lock);
ff_audio_output_close(this);
xine_free_aligned (this->buf);
xine_free_aligned (this->decode_buffer);
- _x_freep (&this->context->extradata);
- this->context->extradata_size = 0;
- XFF_FREE_CONTEXT (this->context);
-
XFF_PACKET_UNREF (this->avpkt);
xine_pts_queue_delete (&this->pts_queue);
@@ -1513,6 +1542,12 @@
free (this);
}
+static void ff_bitexact_cb (void *user_data, xine_cfg_entry_t *entry) {
+ ff_audio_class_t *class = (ff_audio_class_t *)user_data;
+
+ class->bitexact = entry->num_value;
+}
+
void *init_audio_plugin (xine_t *xine, const void *data) {
ff_audio_class_t *this ;
@@ -1540,5 +1575,12 @@
10, ff_gain_cb, this)
/ (float)20);
+ this->bitexact = xine->config->register_bool (xine->config,
+ "audio.processing.ffmpeg_bitexact", 0,
+ _("Let FFmpeg use precise but slower math"),
+ _("Get slightly better sound, at the expense of speed.\n"
+ "Takes effect with next stream."),
+ 10, ff_bitexact_cb, this);
+
return this;
}
diff -r d1954d852980 -r 1e7b18400886 src/combined/ffmpeg/ff_video_decoder.c
--- a/src/combined/ffmpeg/ff_video_decoder.c Mon Apr 08 13:25:10 2024 +0200
+++ b/src/combined/ffmpeg/ff_video_decoder.c Mon May 06 21:55:55 2024 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2001-2022 the xine project
+ * Copyright (C) 2001-2024 the xine project
*
* This file is part of xine, a free video player.
*
@@ -128,6 +128,7 @@
int64_t pts;
int64_t last_pts;
+ int64_t tagged_pts;
int video_step;
int reported_video_step;
uint8_t pts_tag_pass;
@@ -551,7 +552,9 @@
# ifdef XFF_FRAME_AGE
av_frame->age = 1;
# endif
+#ifdef XFF_AVCODEC_REORDERED_OPAQUE
av_frame->reordered_opaque = context->reordered_opaque;
+#endif
ffsf = ffsf_new (this);
if (!ffsf)
@@ -862,7 +865,9 @@
# endif
/* take over pts for this frame to have it reordered */
+#ifdef XFF_AVCODEC_REORDERED_OPAQUE
av_frame->reordered_opaque = context->reordered_opaque;
+#endif
return 0;
}
@@ -1142,9 +1147,13 @@
if (this->codec->id == CODEC_ID_VC1 &&
(!this->bih.biWidth || !this->bih.biHeight)) {
/* VC1 codec must be re-opened with correct width and height. */
- avcodec_close(this->context);
-
- if (XFF_AVCODEC_OPEN (this->context, this->codec) < 0) {
+ if (this->context) {
+ _x_freep (&this->context->extradata);
+ this->context->extradata_size = 0;
+ XFF_FREE_CONTEXT (this->context);
+ }
+ this->context = XFF_ALLOC_CONTEXT ();
+ if (!(this->context && XFF_AVCODEC_OPEN (this->context, this->codec) >= 0)) {
pthread_mutex_unlock(&ffmpeg_lock);
xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
_("ffmpeg_video_dec: couldn't open decoder (pass 2)\n"));
@@ -1211,6 +1220,11 @@
/* dont want initial AV_NOPTS_VALUE here */
this->context->reordered_opaque = 0;
#endif
+
+#ifdef XFF_AVCODEC_FRAME_PTS
+ this->context->time_base.num = 1;
+ this->context->time_base.den = 90000 << 8;
+#endif
}
#ifdef ENABLE_VAAPI
@@ -1959,7 +1973,26 @@
return (pts * 256) | this->pts_tag_pass;
}
-static int64_t ff_untag_pts (ff_video_decoder_t *this, int64_t pts) {
+static int64_t ff_untag_pts (ff_video_decoder_t *this, AVFrame *av_frame) {
+ int64_t pts;
+#if defined(XFF_AVCODEC_FRAME_PTS)
+ pts = (av_frame->pts != AV_NOPTS_VALUE) ? av_frame->pts : 0;
+# if defined(XFF_AVCODEC_REORDERED_OPAQUE)
+ /* paranoia !!! */
+ if (pts != av_frame->reordered_opaque) {
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ LOG_MODULE ": WARNING: frame pts %" PRId64 " != reordered_opaque %" PRId64 ".\n",
+ pts, av_frame->reordered_opaque);
+ pts = av_frame->reordered_opaque;
+ }
+ av_frame->reordered_opaque = 0;
+# endif
+#elif defined(XFF_AVCODEC_REORDERED_OPAQUE)
+ pts = av_frame->reordered_opaque;
+ av_frame->reordered_opaque = 0;
+#else
+ pts = this->tagged_pts;
+#endif
if ((uint8_t)(pts & 0xff) == this->pts_tag_pass) {
/* restore sign. */
return pts >> 8;
@@ -1984,7 +2017,9 @@
this->avpkt->data = buf;
this->avpkt->size = buf_size;
this->avpkt->flags = AV_PKT_FLAG_KEY;
-
+# ifdef XFF_AVCODEC_FRAME_PTS
+ this->avpkt->pts = this->tagged_pts;
+# endif
# if XFF_PALETTE == 2 || XFF_PALETTE == 3
if (buf && this->palette_changed) {
uint8_t *sd = av_packet_new_side_data (this->avpkt, AV_PKT_DATA_PALETTE, 256 * 4);
@@ -2094,9 +2129,14 @@
#endif
/* apply valid pts to first frame _starting_ thereafter only */
- if (this->pts && !this->context->reordered_opaque) {
- this->context->reordered_opaque =
- this->av_frame->reordered_opaque = ff_tag_pts (this, this->pts);
+ if (this->pts && !this->tagged_pts) {
+ this->tagged_pts = ff_tag_pts (this, this->pts);
+#ifdef XFF_AVCODEC_REORDERED_OPAQUE
+ this->context->reordered_opaque = this->av_frame->reordered_opaque = this->tagged_pts;
+#endif
+#ifdef XFF_AVCODEC_FRAME_PTS
+ this->av_frame->pts = this->tagged_pts;
+#endif
this->pts = 0;
}
@@ -2207,9 +2247,11 @@
img->top_field_first = this->av_frame->top_field_first;
/* get back reordered pts */
- img->pts = ff_untag_pts (this, this->av_frame->reordered_opaque);
- this->av_frame->reordered_opaque = 0;
+ img->pts = ff_untag_pts (this, this->av_frame);
+ this->tagged_pts = 0;
+#ifdef XFF_AVCODEC_REORDERED_OPAQUE
this->context->reordered_opaque = 0;
+#endif
if (this->av_frame->repeat_pict)
img->duration = this->video_step * 3 / 2;
@@ -2330,9 +2372,14 @@
}
if (this->size == 0) {
+ this->tagged_pts = ff_tag_pts (this, this->pts);
/* take over pts when we are about to buffer a frame */
- this->av_frame->reordered_opaque = ff_tag_pts(this, this->pts);
- this->context->reordered_opaque = ff_tag_pts(this, this->pts);
+#ifdef XFF_AVCODEC_REORDERED_OPAQUE
+ this->av_frame->reordered_opaque = this->context->reordered_opaque = this->tagged_pts;
+#endif
+#ifdef XFF_AVCODEC_FRAME_PTS
+ this->av_frame->pts = this->tagged_pts;
+#endif
this->pts = 0;
}
@@ -2405,7 +2452,10 @@
need_unref = 1;
#endif
/* reset consumed pts value */
- this->context->reordered_opaque = ff_tag_pts(this, 0);
+ this->tagged_pts = ff_tag_pts (this, 0);
+#ifdef XFF_AVCODEC_REORDERED_OPAQUE
+ this->context->reordered_opaque = this->tagged_pts;
+#endif
if (err) {
@@ -2439,10 +2489,14 @@
ff_check_bufsize(this, this->size);
memmove (this->buf, &chunk_buf[offset], this->size);
chunk_buf = this->buf;
-
/* take over pts for next access unit */
- this->av_frame->reordered_opaque = ff_tag_pts(this, this->pts);
- this->context->reordered_opaque = ff_tag_pts(this, this->pts);
+ this->tagged_pts = ff_tag_pts (this, this->pts);
+#ifdef XFF_AVCODEC_REORDERED_OPAQUE
+ this->av_frame->reordered_opaque = this->context->reordered_opaque = this->tagged_pts;
+#endif
+#ifdef XFF_AVCODEC_FRAME_PTS
+ this->av_frame->pts = this->tagged_pts;
+#endif
this->pts = 0;
}
}
@@ -2559,8 +2613,7 @@
ff_convert_frame(this, img, this->av_frame);
}
- img->pts = ff_untag_pts(this, this->av_frame->reordered_opaque);
- this->av_frame->reordered_opaque = 0;
+ img->pts = ff_untag_pts(this, this->av_frame);
/* workaround for weird 120fps streams */
if( video_step_to_use == 750 ) {
@@ -2600,8 +2653,7 @@
this->output_format,
VO_BOTH_FIELDS|this->frame_flags);
/* set PTS to allow early syncing */
- img->pts = ff_untag_pts(this, this->av_frame->reordered_opaque);
- this->av_frame->reordered_opaque = 0;
+ img->pts = ff_untag_pts(this, this->av_frame);
img->duration = video_step_to_use;
@@ -2783,7 +2835,7 @@
ff_convert_frame (this, img, this->av_frame2);
}
- img->pts = ff_untag_pts (this, this->av_frame2->reordered_opaque);
+ img->pts = ff_untag_pts (this, this->av_frame2);
if (video_step_to_use == 750)
video_step_to_use = 0;
@@ -2903,7 +2955,9 @@
if (this->decoder_ok) {
pthread_mutex_lock(&ffmpeg_lock);
- avcodec_close (this->context);
+ _x_freep (&this->context->extradata);
+ this->context->extradata_size = 0;
+ XFF_FREE_CONTEXT (this->context);
pthread_mutex_unlock(&ffmpeg_lock);
#ifdef ENABLE_DIRECT_RENDERING
@@ -2912,16 +2966,15 @@
this->stream->video_out->close(this->stream->video_out, this->stream);
this->decoder_ok = 0;
+ } else if (this->context) {
+ _x_freep (&this->context->extradata);
+ this->context->extradata_size = 0;
+ XFF_FREE_CONTEXT (this->context);
}
if (this->slice_offset_table)
free (this->slice_offset_table);
- if (this->context) {
- _x_freep (&this->context->extradata);
- this->context->extradata_size = 0;
- XFF_FREE_CONTEXT (this->context);
- }
#if XFF_VIDEO > 1
XFF_PACKET_UNREF (this->avpkt);
diff -r d1954d852980 -r 1e7b18400886 src/combined/ffmpeg/ffmpeg_compat.h
--- a/src/combined/ffmpeg/ffmpeg_compat.h Mon Apr 08 13:25:10 2024 +0200
+++ b/src/combined/ffmpeg/ffmpeg_compat.h Mon May 06 21:55:55 2024 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2000-2022 the xine project
+ * Copyright (C) 2000-2024 the xine project
*
* This file is part of xine, a unix video player.
*
@@ -54,9 +54,16 @@
#endif
/* reordered_opaque appeared in libavcodec 51.68.0 */
-#define XFF_AVCODEC_REORDERED_OPAQUE
-#if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(51,68,0)
-# undef XFF_AVCODEC_REORDERED_OPAQUE
+#if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(51,68,0) && LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(60,0,0)
+# define XFF_AVCODEC_REORDERED_OPAQUE
+#else
+# undef XFF_AVCODEC_REORDERED_OPAQUE
+#endif
+
+#if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(58,33,100)
+# define XFF_AVCODEC_FRAME_PTS
+#else
+# undef XFF_AVCODEC_FRAME_PTS
#endif
/* colorspace and color_range were added before 52.29.0 */
@@ -210,9 +217,11 @@
#endif
#if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(55,63,100)
-# define XFF_FREE_CONTEXT(pp) do {av_free(pp); pp = NULL;} while (0)
+# define XFF_FREE_CONTEXT(pp) do {if (pp) avcodec_close (pp); av_free (pp); pp = NULL;} while (0)
+#elif LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(58,33,100)
+# define XFF_FREE_CONTEXT(pp) do {if (pp) avcodec_close (pp); avcodec_free_context (&(pp));} while (0)
#else
-# define XFF_FREE_CONTEXT(pp) avcodec_free_context(&(pp))
+# define XFF_FREE_CONTEXT(pp) avcodec_free_context (&(pp))
#endif
#if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(54,59,100)
@@ -303,4 +312,3 @@
#endif /* defined(LIBAVCODEC_VERSION_INT) */
#endif /* XINE_AVCODEC_COMPAT_H */
-
diff -r d1954d852980 -r 1e7b18400886 src/dxr3/ffmpeg_encoder.c
--- a/src/dxr3/ffmpeg_encoder.c Mon Apr 08 13:25:10 2024 +0200
+++ b/src/dxr3/ffmpeg_encoder.c Mon May 06 21:55:55 2024 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2000-2022 the xine project
+ * Copyright (C) 2000-2024 the xine project
*
* This file is part of xine, a unix video player.
*
@@ -127,10 +127,8 @@
unsigned char use_quantizer;
if (this->context) {
- avcodec_close(this->context);
- free(this->context);
+ XFF_FREE_CONTEXT (this->context);
free(this->picture);
- this->context = NULL;
this->picture = NULL;
}
@@ -344,10 +342,8 @@
#if XFF_ENCVIDEO > 1
XFF_PACKET_UNREF (this->pkt);
#endif
- avcodec_close(this->context);
XFF_FREE_CONTEXT (this->context);
free(this->picture);
- this->context = NULL;
this->picture = NULL;
}
return 1;

View File

@ -0,0 +1,318 @@
# HG changeset patch
# User Torsten Jager <t.jager@gmx.de>
# Date 1715160885 -7200
# Wed May 08 11:34:45 2024 +0200
# Node ID 73b833e7fe356cd2d9490dda4ebc9bfe16fce958
# Parent 1e7b184008860c8be2289c3cefd9dee57f06193a
ffmpeg compatibility update 2.
diff -r 1e7b18400886 -r 73b833e7fe35 src/combined/ffmpeg/ff_audio_decoder.c
--- a/src/combined/ffmpeg/ff_audio_decoder.c Mon May 06 21:55:55 2024 +0200
+++ b/src/combined/ffmpeg/ff_audio_decoder.c Wed May 08 11:34:45 2024 +0200
@@ -1393,6 +1393,9 @@
XFF_FREE_FRAME (this->av_frame);
}
#endif
+#if 1
+ avcodec_flush_buffers (this->context);
+#else
pthread_mutex_lock (&ffmpeg_lock);
{
uint8_t *ed = this->context->extradata;
@@ -1410,6 +1413,7 @@
if (XFF_AVCODEC_OPEN (this->context, this->codec) >= 0)
this->decoder_ok = 1;
pthread_mutex_unlock (&ffmpeg_lock);
+#endif
}
ff_audio_reset_parser(this);
diff -r 1e7b18400886 -r 73b833e7fe35 src/combined/ffmpeg/ff_video_decoder.c
--- a/src/combined/ffmpeg/ff_video_decoder.c Mon May 06 21:55:55 2024 +0200
+++ b/src/combined/ffmpeg/ff_video_decoder.c Wed May 08 11:34:45 2024 +0200
@@ -89,6 +89,11 @@
# define ENABLE_EMMS
#endif
+/*
+#undef XFF_AVCODEC_SLICE_TABLE
+#define XFF_AVCODEC_SLICE_TABLE 1
+*/
+
#define VIDEOBUFSIZE (128*1024)
#define SLICE_BUFFER_SIZE (1194*1024)
@@ -148,11 +153,11 @@
int bufsize;
int size;
int skipframes;
-
+#if XFF_AVCODEC_SLICE_TABLE == 1
int *slice_offset_table;
int slice_offset_size;
int slice_offset_pos;
-
+#endif
AVFrame *av_frame;
AVFrame *av_frame2;
AVCodecContext *context;
@@ -238,6 +243,13 @@
#if XFF_VIDEO > 1
XFF_PACKET_DECL (avpkt);
#endif
+
+#if XFF_AVCODEC_SLICE_TABLE == 2
+ uint8_t *temp_buf;
+ uint32_t temp_size;
+ int slice_num;
+ uint8_t slice_table[1 + 256 * 8];
+#endif
};
/* import color matrix names */
@@ -1783,10 +1795,9 @@
this->size += buf->size;
if (buf->decoder_flags & BUF_FLAG_FRAME_END) {
- int codec_type;
+ uint32_t codec_type = buf->type & 0xFFFF0000;
lprintf ("header complete\n");
- codec_type = buf->type & 0xFFFF0000;
if (buf->decoder_flags & BUF_FLAG_STDHEADER) {
@@ -1912,33 +1923,44 @@
#endif
}
else if (buf->decoder_info[1] == BUF_SPECIAL_RV_CHUNK_TABLE) {
- /* o dear. Multiple decoding threads use individual contexts.
- av_decode_video2 () does only copy the _pointer_ to the offsets,
- not the offsets themselves. So we must not overwrite anything
- that another thread has not yet read. */
- int i, l, total;
-
- lprintf("BUF_SPECIAL_RV_CHUNK_TABLE\n");
- l = buf->decoder_info[2] + 1;
-
- total = l * this->class->thread_count;
- if (total < SLICE_OFFSET_SIZE)
- total = SLICE_OFFSET_SIZE;
- if (total > this->slice_offset_size) {
- this->slice_offset_table = realloc (this->slice_offset_table, total * sizeof (int));
- this->slice_offset_size = total;
- }
-
- if (this->slice_offset_pos + l > this->slice_offset_size)
- this->slice_offset_pos = 0;
- this->context->slice_offset = this->slice_offset_table + this->slice_offset_pos;
- this->context->slice_count = l;
-
- lprintf ("slice_count=%d\n", l);
- for (i = 0; i < l; i++) {
- this->slice_offset_table[this->slice_offset_pos++] =
- ((uint32_t *)buf->decoder_info_ptr[2])[(2 * i) + 1];
- lprintf("slice_offset[%d]=%d\n", i, this->context->slice_offset[i]);
+ {
+#if XFF_AVCODEC_SLICE_TABLE == 1
+ /* o dear. Multiple decoding threads use individual contexts.
+ * av_decode_video2 () does only copy the _pointer_ to the offsets,
+ * not the offsets themselves. So we must not overwrite anything
+ * that another thread has not yet read. */
+ int i, l, total;
+
+ lprintf("BUF_SPECIAL_RV_CHUNK_TABLE\n");
+ l = buf->decoder_info[2] + 1;
+
+ total = l * this->class->thread_count;
+ if (total < SLICE_OFFSET_SIZE)
+ total = SLICE_OFFSET_SIZE;
+ if (total > this->slice_offset_size) {
+ this->slice_offset_table = realloc (this->slice_offset_table, total * sizeof (int));
+ this->slice_offset_size = total;
+ }
+
+ if (this->slice_offset_pos + l > this->slice_offset_size)
+ this->slice_offset_pos = 0;
+ this->context->slice_offset = this->slice_offset_table + this->slice_offset_pos;
+ this->context->slice_count = l;
+
+ lprintf ("slice_count=%d\n", l);
+ for (i = 0; i < l; i++) {
+ this->slice_offset_table[this->slice_offset_pos++] =
+ ((uint32_t *)buf->decoder_info_ptr[2])[(2 * i) + 1];
+ lprintf("slice_offset[%d]=%d\n", i, this->context->slice_offset[i]);
+ }
+#elif XFF_AVCODEC_SLICE_TABLE == 2
+ /* (count-1):1, 1:4, (offs[0]):4, 1:4, (offs[1]:4, ... just in front of the frame bitstream.
+ * reverse engineered from ffmpeg/libavcodec/rv34.c. they seem to expect no
+ * external use of rv decoders, and did not document this. */
+ this->slice_table[0] = buf->decoder_info[2];
+ this->slice_num = this->slice_table[0] + 1;
+ memcpy (this->slice_table + 1, buf->decoder_info_ptr[2], 8 * this->slice_num);
+#endif
}
}
}
@@ -2004,6 +2026,7 @@
static int decode_video_wrapper (ff_video_decoder_t *this,
AVFrame *av_frame, int *err, void *buf, size_t buf_size) {
+ uint32_t tsize = 0;
int len;
#if ENABLE_VAAPI
@@ -2013,9 +2036,32 @@
}
#endif /* ENABLE_VAAPI */
+#if XFF_AVCODEC_SLICE_TABLE == 2
+ if ((this->slice_num > 0) && buf) {
+ uint32_t nsize;
+ tsize = 1 + this->slice_num * 8;
+ nsize = tsize + buf_size + AV_INPUT_BUFFER_PADDING_SIZE;
+ if (this->temp_size < nsize) {
+ nsize = nsize * 3 / 2;
+ free (this->temp_buf);
+ this->temp_buf = malloc (nsize);
+ if (!this->temp_buf)
+ nsize = 0;
+ this->temp_size = nsize;
+ nsize = tsize + buf_size + AV_INPUT_BUFFER_PADDING_SIZE;
+ }
+ if (this->temp_size >= nsize) {
+ memcpy (this->temp_buf, this->slice_table, tsize);
+ memcpy (this->temp_buf + tsize, buf, buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
+ buf = this->temp_buf;
+ }
+ this->slice_num = 0;
+ }
+#endif
+
#if XFF_VIDEO > 1
this->avpkt->data = buf;
- this->avpkt->size = buf_size;
+ this->avpkt->size = buf_size + tsize;
this->avpkt->flags = AV_PKT_FLAG_KEY;
# ifdef XFF_AVCODEC_FRAME_PTS
this->avpkt->pts = this->tagged_pts;
@@ -2486,7 +2532,6 @@
this->size -= len;
if (this->size > 0) {
- ff_check_bufsize(this, this->size);
memmove (this->buf, &chunk_buf[offset], this->size);
chunk_buf = this->buf;
/* take over pts for next access unit */
@@ -2615,8 +2660,8 @@
img->pts = ff_untag_pts(this, this->av_frame);
- /* workaround for weird 120fps streams */
- if( video_step_to_use == 750 ) {
+ /* workaround for weird 120fps streams, as well as some rv20 with frame duration 3pts. */
+ if (video_step_to_use <= 750) {
/* fallback to the VIDEO_PTS_MODE */
video_step_to_use = 0;
}
@@ -2837,7 +2882,7 @@
img->pts = ff_untag_pts (this, this->av_frame2);
- if (video_step_to_use == 750)
+ 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;
@@ -2941,6 +2986,9 @@
mpeg_parser_reset(this->mpeg_parser);
/* this->pts_tag_pass = 0; */
+#if XFF_AVCODEC_SLICE_TABLE == 2
+ this->slice_num = 0;
+#endif
}
static void ff_dispose (video_decoder_t *this_gen) {
@@ -2953,12 +3001,15 @@
rgb2yuy2_free (this->rgb2yuy2);
if (this->decoder_ok) {
+ uint8_t *ed;
pthread_mutex_lock(&ffmpeg_lock);
- _x_freep (&this->context->extradata);
+ ed = this->context->extradata;
+ this->context->extradata = NULL;
this->context->extradata_size = 0;
XFF_FREE_CONTEXT (this->context);
pthread_mutex_unlock(&ffmpeg_lock);
+ _x_freep (&ed);
#ifdef ENABLE_DIRECT_RENDERING
ff_free_dr1_frames (this, 1);
@@ -2972,9 +3023,11 @@
XFF_FREE_CONTEXT (this->context);
}
- if (this->slice_offset_table)
- free (this->slice_offset_table);
-
+#if XFF_AVCODEC_SLICE_TABLE == 1
+ free (this->slice_offset_table);
+#elif XFF_AVCODEC_SLICE_TABLE == 2
+ free (this->temp_buf);
+#endif
#if XFF_VIDEO > 1
XFF_PACKET_UNREF (this->avpkt);
@@ -3062,21 +3115,25 @@
this->decoder_ok = 0;
this->aspect_ratio = 0;
this->pts_tag_pass = 0;
-#ifdef HAVE_POSTPROC
+# ifdef HAVE_POSTPROC
this->pp_quality = 0;
this->our_context = NULL;
this->our_mode = NULL;
-#endif
+# endif
this->mpeg_parser = NULL;
this->set_stream_info = 0;
this->rgb2yuy2 = NULL;
-#ifdef ENABLE_VAAPI
+# ifdef ENABLE_VAAPI
this->accel = NULL;
this->accel_img = NULL;
-#endif
-#if XFF_VIDEO == 3
+# endif
+# if XFF_VIDEO == 3
this->flush_packet_sent = 0;
-#endif
+# endif
+# if XFF_AVCODEC_SLICE_TABLE == 2
+ this->temp_size = 0;
+ this->temp_buf = NULL;
+# endif
#endif
this->video_decoder.decode_data = ff_decode_data;
diff -r 1e7b18400886 -r 73b833e7fe35 src/combined/ffmpeg/ffmpeg_compat.h
--- a/src/combined/ffmpeg/ffmpeg_compat.h Mon May 06 21:55:55 2024 +0200
+++ b/src/combined/ffmpeg/ffmpeg_compat.h Wed May 08 11:34:45 2024 +0200
@@ -139,6 +139,14 @@
# define XFF_PALETTE 3
#endif
+#if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(59,42,100)
+/* AVCodecContext.slice_{offset,count} */
+# define XFF_AVCODEC_SLICE_TABLE 1
+#else
+/* inline offset table before the frame. */
+# define XFF_AVCODEC_SLICE_TABLE 2
+#endif
+
#if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(59,0,100) /** << revise this */
# define XFF_VAAPI 1 /** << libavcodec/vaapi.h */
#else

View File

@ -1,87 +0,0 @@
#!/bin/bash
if [ -z "$1" -o $# -ne 1 ]; then
echo "Usage: $0 <xine-version>"
exit 2
fi
version=$1
tarball="xine-lib-$version.tar.xz"
dir="xine-lib-$version"
modtarball="xine-lib-$version-pruned.tar.xz"
if [ ! -f $tarball ]; then
echo "Can't find $tarball !"
exit 1
fi
echo "Uncompressing $tarball..."
rm -rf $dir
tar -xJf $tarball
cd $dir
rmpluglib()
{
echo "removing src/$1/$2..."
rm -rf src/$1/$2
sed -i -e "s/SUBDIRS = \(.*\)$2\(.*\)/SUBDIRS = \1\2/g" src/$1/Makefile.am
sed -i -e "/^src\/$1\/$2/d" configure.ac
}
# Main libraries
for remove in libfaad libffmpeg libmad libmpeg2 libmpeg2new dxr3 liba52 libdts; do
echo "removing src/$remove..."
rm -rf src/$remove
sed -i -e "/$remove/d" src/Makefile.am
sed -i -e "/^src\/$remove/d" configure.ac
done
# Input plugin libraries
for remove in vcd; do
rmpluglib input vcd
done
for remove in ffmpeg; do
rmpluglib combined ffmpeg
done
# Input plugins
for p in dvd vcd mms; do
echo "removing $p input plugin..."
# Remove sources
for sourcefile in `awk '/^xineplug_inp_'$p'_la_SOURCES/ { $1=""; $2=""; print $0}' src/input/Makefile.am`; do
if [ "`grep -v '^EXTRA_DIST = ' src/input/Makefile.am | grep -c $sourcefile`" -le 1 ]; then # if this file is only used for this plugin
rm -f src/input/$sourcefile
fi
done
# Remove from Makefile
sed -i -e "/xineplug_inp_$p/d" src/input/Makefile.am
done
# Demuxers
# These are ok now ( http://bugzilla.redhat.com/213597 )
#for p in mpeg mpeg_block mpeg_ts mpeg_elem mpeg_pes yuv4mpeg2; do
# echo "removing $p demuxer..."
# [ -f src/demuxers/demux_$p.c ] && rm -f src/demuxers/demux_$p.c
# sed -i -e "/xineplug_dmx_$p/d" src/demuxers/Makefile.am
#done
# Postprocessors
echo "removing planar and deinterlace postprocessors..."
sed -i -e 's/deinterlace //g' src/post/Makefile.am # see comments in speedy.c
sed -i -e 's/planar //g' src/post/Makefile.am # requires libpostproc
sed -i -e '/post\/\(deinterlace\|planar\)/d' configure.ac
rm -rf src/post/{deinterlace,planar}
# NSF decoder
echo "removing NSF decoder..."
rm -rf src/libxineadec/{nosefart,nsf.c}
sed -i -e '/^xineplug_decode_nsf_la/,/^\s*$/d' \
-e /xineplug_decode_nsf/d \
-e 's/ nosefart//' \
src/libxineadec/Makefile.am
sed -i -e '/nosefart\/Makefile/d' configure.ac
# Patches for forbidden libraries
rm -fv misc/lib*.patch win32/scripts/*.patch
# All clean !
cd ..
echo "Generating $modtarball..."
tar -cJf $modtarball $dir
rm -rf $dir

View File

@ -0,0 +1,116 @@
configure: Add fake prototypes for C99 compatibility
The xxmc-related configure probes assume that the compiler
supports implicit function declarations because it tries to
call the functions without including the appropriate headers,
for link testing.
As the headers are not determined yet at this point, use
a fake prototype (the same that autoconf uses) to avoid
the implicit function declarations.
This avoids altering the outcome of these checks with future
compilers which do not support implicit function declarations.
Submitted upstream:
<https://sourceforge.net/p/xine/xine-lib-1.2/merge-requests/2/>
diff --git a/configure b/configure
index a4009e857777b5cf..3a83b40efda8fd5d 100755
--- a/configure
+++ b/configure
@@ -28563,7 +28563,7 @@ $as_echo "" >&6; }
LIBS="$XXMC_LIBS $X_LIBS $XV_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+char XvMCPutSlice(void);
int
main ()
{
@@ -28578,7 +28578,7 @@ else
LIBS="$XXMC_LIBS -lXvMC $X_LIBS $XV_LIBS $LIBS $DYNAMIC_LD_LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+char XvMCPutSlice(void);
int
main ()
{
@@ -28616,7 +28616,7 @@ done
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+char XvMCCreateContext(void);
int
main ()
{
@@ -28631,7 +28631,7 @@ else
LIBS="$XXMC_LIBS -lXvMC $X_LIBS $XV_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+char XvMCCreateContext(void);
int
main ()
{
@@ -28675,7 +28675,7 @@ $as_echo "" >&6; }
LIBS="$XVMC_LIBS $X_LIBS $XV_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+char XvMCCreateContext(void);
int
main ()
{
@@ -28690,7 +28690,7 @@ else
LIBS="$XVMC_LIBS -lXvMC $X_LIBS $XV_LIBS $LIBS $DYNAMIC_LD_LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+char XvMCCreateContext(void);
int
main ()
{
diff --git a/m4/video_out.m4 b/m4/video_out.m4
index 150b477697297c03..8aa1f4a3b9267ff9 100644
--- a/m4/video_out.m4
+++ b/m4/video_out.m4
@@ -496,9 +496,9 @@ AC_DEFUN([XINE_VIDEO_OUT_PLUGINS], [
AC_MSG_CHECKING([whether to enable the xxmc plugin with VLD extensions])
AC_MSG_RESULT([])
LIBS="$XXMC_LIBS $X_LIBS $XV_LIBS $LIBS"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[XvMCPutSlice()]])], [have_xxmc=yes],
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[char XvMCPutSlice(void);]], [[XvMCPutSlice()]])], [have_xxmc=yes],
[LIBS="$XXMC_LIBS -lXvMC $X_LIBS $XV_LIBS $LIBS $DYNAMIC_LD_LIBS"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[XvMCPutSlice()]])],
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[char XvMCPutSlice(void);]], [[XvMCPutSlice()]])],
[have_xxmc=yes XXMC_LIBS="$XXMC_LIBS -lXvMC"])])
if test x"$have_xxmc" = x"yes"; then
AC_CHECK_HEADERS([X11/extensions/vldXvMC.h],
@@ -506,9 +506,9 @@ AC_DEFUN([XINE_VIDEO_OUT_PLUGINS], [
AC_DEFINE([HAVE_VLDXVMC], 1, [Define if you have vldXvMC.h])],
[have_vldexts=no])
else
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[XvMCCreateContext()]])], [have_xxmc=yes],
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[char XvMCCreateContext(void);]], [[XvMCCreateContext()]])], [have_xxmc=yes],
[LIBS="$XXMC_LIBS -lXvMC $X_LIBS $XV_LIBS $LIBS"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[XvMCCreateContext()]])],
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[char XvMCCreateContext(void);]], [[XvMCCreateContext()]])],
[have_xxmc=yes XXMC_LIBS="$XXMC_LIBS -lXvMC"])])
fi
if test x"$have_xxmc" = x"yes"; then
@@ -521,9 +521,9 @@ AC_DEFUN([XINE_VIDEO_OUT_PLUGINS], [
AC_MSG_CHECKING([whether to enable the xvmc plugin])
AC_MSG_RESULT([])
LIBS="$XVMC_LIBS $X_LIBS $XV_LIBS $LIBS"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[XvMCCreateContext()]])], [have_xvmc=yes],
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[char XvMCCreateContext(void);]], [[XvMCCreateContext()]])], [have_xvmc=yes],
[LIBS="$XVMC_LIBS -lXvMC $X_LIBS $XV_LIBS $LIBS $DYNAMIC_LD_LIBS"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[XvMCCreateContext()]])],
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[char XvMCCreateContext(void);]], [[XvMCCreateContext()]])],
[have_xvmc=yes XVMC_LIBS="$XVMC_LIBS -lXvMC"])])
if test x"$have_xvmc" = x"yes"; then
AC_CHECK_HEADERS([X11/extensions/XvMC.h], [], [have_xvmc=no])

View File

@ -1,235 +1,215 @@
# TODO, sometime, maybe:
# - libstk: http://www.libstk.net/ - probably not, see 1.1.5 ChangeLog
# - drop the opengl video out plugin?
%define _legacy_common_support 1
%global plugin_abi 2.11
%global codecdir %{_libdir}/codecs
%define plugin_abi 1.30
%define codecdir %{_libdir}/codecs
%if 0%{?el7}
%global _without_dav1d 1
%global _without_gcrypt 1
%global _without_png 1
%global _with_xvmc 1
%endif
%if 0%{?el8}
%global _without_gcrypt 1
%endif
%if 0%{?fedora} || 0%{?rhel} >= 9
# Not permitted in Fedora, ffmpeg covers this anyway
%global _without_faad2 1
%global _without_fame 1
%endif
%ifarch %{ix86}
%define have_vidix 1
%global have_vidix 1
%else
%define have_vidix 0
%endif # ix86
%ifarch %{arm}
%define _without_directfb 1
%global have_vidix 0
%endif
%if 0%{?fedora} > 14
%define _disable_v4l1 1
%endif
%if 0%{?fedora} > 16
%define _without_esound 1
%endif
#global snapshot 1
%global date 20240508
%global revision 15289
Summary: A multimedia engine
Name: xine-lib
Version: 1.1.20.1
Release: 1%{?dist}
License: GPLv2+
Group: System Environment/Libraries
URL: http://www.xine-project.org/
# The tarball is generated from the upstream tarball using
# the script in SOURCE1. It prunes potentially patented code
#Source0: http://downloads.sourceforge.net/xine/xine-lib-%{version}.tar.xz
Source0: xine-lib-%{version}-pruned.tar.xz
Source1: xine-lib-cleanup-sources.sh
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Version: 1.2.13
Release: 17%{?snapshot:.%{date}hg%{revision}}%{?dist}
License: GPL-2.0-or-later
URL: https://www.xine-project.org/
%if ! 0%{?snapshot}
Source0: https://downloads.sourceforge.net/xine/xine-lib-%{version}.tar.xz
%else
Source0: xine-lib-%{version}-%{date}hg%{revision}.tar.xz
%endif
# Script to make a snapshot
Source1: make_xinelib_snapshot.sh
Patch0: xine-lib-1.1.19-no_autopoint.patch
Patch1: xine-lib-1.1.4-optflags.patch
# http://bugzilla.redhat.com/470568
Patch8: xine-lib-1.1.17-avsync_hack.patch
# http://bugzilla.redhat.com/477226
Patch9: xine-lib-1.1.16.2-multilib.patch
# ffmpeg6 compatibility
# See: https://sourceforge.net/p/xine/xine-lib-1.2/ci/771f4ae27e582123ff3500444718fc8f96186d74/
Patch0: xine-lib-1.2.13-ffmpeg6-compatibility.patch
#
Patch1: xine-lib-configure-c99.patch
# See: https://sourceforge.net/p/xine/xine-lib-1.2/ci/1e7b184008860c8be2289c3cefd9dee57f06193a/
Patch2: xine-lib-1.2.13-ffmpeg6-compatibility_2.patch
# See: https://sourceforge.net/p/xine/xine-lib-1.2/ci/73b833e7fe356cd2d9490dda4ebc9bfe16fce958/
Patch3: xine-lib-1.2.13-ffmpeg7-compatibility.patch
Provides: xine-lib(plugin-abi) = %{plugin_abi}
%{?_isa:Provides: xine-lib(plugin-abi)%{?_isa} = %{plugin_abi}}
Provides: xine-lib(plugin-abi) = %{plugin_abi}
Provides: xine-lib(plugin-abi)%{?_isa} = %{plugin_abi}
BuildRequires: autoconf automake libtool
# X11
BuildRequires: libX11-devel
BuildRequires: libXv-devel
BuildRequires: libXinerama-devel
BuildRequires: libXvMC-devel
BuildRequires: libGLU-devel
BuildRequires: libv4l-devel
BuildRequires: libxcb-devel
# Video
BuildRequires: SDL-devel
BuildRequires: libtheora-devel
BuildRequires: libmng-devel
BuildRequires: aalib-devel >= 1.4
BuildRequires: libcaca-devel >= 0.99-0.5.beta14
%if 0%{!?_without_directfb:1}
BuildRequires: directfb-devel
%endif # directfb
BuildRequires: ImageMagick-devel >= 6.2.4.6-1
%if 0%{?_with_freetype:1}
BuildRequires: fontconfig-devel
%endif # freetype
# Audio
BuildRequires: alsa-lib-devel >= 0.9.0
%if 0%{!?_without_esound:1}
BuildRequires: esound-devel
%endif # esound
Obsoletes: xine-lib-extras-freeworld < 1.1.21-10
Provides: xine-lib-extras-freeworld = %{version}-%{release}
BuildRequires: a52dec-devel
BuildRequires: aalib-devel
BuildRequires: alsa-lib-devel
%{!?_without_faad2:BuildRequires: faad2-devel}
%if 0%{?fedora} || 0%{?rhel} >= 9
BuildRequires: ffmpeg-free-devel
%else
BuildRequires: ffmpeg-devel
%endif
BuildRequires: flac-devel
BuildRequires: fontconfig-devel
BuildRequires: gcc
BuildRequires: gettext-devel
BuildRequires: gnutls-devel
# System lib cannot currently be used
#BuildRequires: gsm-devel
BuildRequires: gtk2-devel
%{!?_without_imagemagick:BuildRequires: ImageMagick-devel}
%if 0%{?fedora} || 0%{?rhel} >= 9
BuildRequires: pipewire-jack-audio-connection-kit-devel
%else
BuildRequires: jack-audio-connection-kit-devel
%endif
BuildRequires: libaom-devel >= 1.0.0
BuildRequires: libbluray-devel >= 0.2.1
BuildRequires: libcaca-devel
BuildRequires: libcdio-devel
%{!?_without_dav1d:BuildRequires: libdav1d-devel >= 0.3.1}
BuildRequires: libdca-devel
%{!?_without_dvdnav:BuildRequires: libdvdnav-devel}
BuildRequires: libdvdread-devel
%{!?_without_fame:BuildRequires: libfame-devel}
%{!?_without_gcrypt:BuildRequires: libgcrypt-devel}
BuildRequires: libGLU-devel
BuildRequires: libmad-devel
BuildRequires: libmng-devel
BuildRequires: libmodplug-devel
BuildRequires: libmpcdec-devel
BuildRequires: libvorbis-devel
BuildRequires: pulseaudio-lib-devel
BuildRequires: speex-devel
BuildRequires: wavpack-devel
# CDs
BuildRequires: libcdio-devel
# Other
BuildRequires: pkgconfig
BuildRequires: gtk2-devel
%{!?_without_nfs:BuildRequires: libnfs-devel}
%{!?_without_png:BuildRequires: libpng-devel >= 1.6.0}
BuildRequires: libsmbclient-devel
BuildRequires: libdvdnav-devel
BuildRequires: libdvdread-devel
BuildRequires: libssh2-devel
BuildRequires: libtheora-devel
BuildRequires: libtool
BuildRequires: libv4l-devel
BuildRequires: libva-devel
BuildRequires: libvdpau-devel
BuildRequires: libvorbis-devel
BuildRequires: libvpx-devel
BuildRequires: libX11-devel
BuildRequires: libxcb-devel
BuildRequires: libxdg-basedir-devel
BuildRequires: libXext-devel
BuildRequires: libXinerama-devel
BuildRequires: libXt-devel
BuildRequires: libXv-devel
%{?_with_xvmc:BuildRequires: libXvMC-devel}
BuildRequires: mesa-libEGL-devel
BuildRequires: openssl-devel >= 1.0.2
BuildRequires: pkgconfig(libpulse)
BuildRequires: SDL-devel
BuildRequires: speex-devel
BuildRequires: vcdimager-devel
BuildRequires: wavpack-devel
BuildRequires: wayland-devel
# Dropped in Fedora 9
Obsoletes: xine-lib-arts < %{version}-%{release}
# Included in main package since Fedora 12
Obsoletes: xine-lib-pulseaudio < 1.1.16.3-5
Provides: xine-lib-pulseaudio = %{version}-%{release}
%description
This package contains the Xine library. It can be used to play back
various media, decode multimedia files from local disk drives, and display
multimedia streamed over the Internet. It interprets many of the most
common multimedia formats available - and some uncommon formats, too.
common multimedia formats available - and some uncommon formats, too.
%package devel
Summary: Xine library development files
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: pkgconfig
Requires: zlib-devel
Requires: zlib-devel%{?_isa}
%description devel
This package contains development files for %{name}.
%package extras
Summary: Additional plugins for %{name}
Group: System Environment/Libraries
Summary: Additional plugins for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
#Requires: xine-lib(plugin-abi) = %{plugin_abi}
%description extras
This package contains extra plugins for %{name}:
%if 0%{!?_without_esound:1}
- EsounD
%endif # esound
- JACK
- GDK-Pixbuf
- SMB
- SDL
- AA-lib
- Libcaca
- Image decoding
%if 0%{!?_without_directfb:1}
- DirectFB output
%endif # directfb
%{!?_without_imagemagick: - Image decoding}
%prep
%setup -q
%patch0 -p1 -b .no_autopoint
# extra work for to omit old libtool-related crud
rm -f configure ltmain.sh libtool m4/libtool.m4 m4/ltoptions.m4 m4/ltversion.m4
%patch1 -p1 -b .optflags
%patch8 -p1 -b .avsync_hack
%patch9 -p1 -b .multilib
./autogen.sh noconfig
%autosetup -p1 %{?snapshot:-n %{name}-%{version}-%{date}hg%{revision}}
%build
export FFMPEG_CFLAGS=" " FFMPEG_LIBS=" "
export FFMPEG_POSTPROC_CFLAGS=" " FFMPEG_POSTPROC_LIBS=" "
export FFMPEG_UTIL_CFLAGS=" " FFMPEG_UTIL_LIBS=" "
export SDL_CFLAGS="$(sdl-config --cflags)" SDL_LIBS="$(sdl-config --libs)"
autoreconf -fiv
# Keep list of options in mostly the same order as ./configure --help.
%configure \
--disable-dependency-tracking \
--enable-ipv6 \
%if 0%{!?_without_directfb:1}
--enable-directfb \
%endif # directfb
--enable-v4l \
--enable-v4l2 \
--enable-libv4l \
--enable-xvmc \
%{?_with_xvmc: --enable-xvmc} \
--disable-gnomevfs \
--disable-a52dec \
--disable-mad \
--disable-vcd \
--disable-asf \
--disable-faad \
%if 0%{?_with_freetype:1}
%if 0%{?_with_antialiasing:1}
%{?_without_faad2:--disable-faad} \
--enable-antialiasing \
%endif # antialiasing
--with-freetype \
--with-fontconfig \
%endif # freetype
--with-caca \
--with-external-ffmpeg \
--with-external-dvdnav \
%{!?_without_dvdnav:--with-external-dvdnav} \
--with-xv-path=%{_libdir} \
--with-libflac \
--with-external-libmpcdec \
--without-arts \
%if 0%{?_without_esound:1}
--without-esound \
%endif
--with-wavpack \
--with-real-codecs-path=%{codecdir} \
--with-w32-path=%{codecdir}
make %{?_smp_mflags}
# Remove rpath
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%make_build
%install
rm -rf $RPM_BUILD_ROOT __docs
make install DESTDIR=$RPM_BUILD_ROOT
%find_lang libxine1
cp -pR $RPM_BUILD_ROOT%{_docdir}/xine-lib __docs
rm -rf $RPM_BUILD_ROOT%{_docdir}/xine-lib
%make_install
%find_lang libxine2
mv %{buildroot}%{_docdir}/xine-lib __docs
# Removing useless files
rm -Rf $RPM_BUILD_ROOT%{_libdir}/libxine.la __docs/README \
__docs/README.{freebsd,irix,solaris,MINGWCROSS,WIN32} \
__docs/README.{dxr3,network_dvd}
rm -Rf %{buildroot}%{_libdir}/libxine*.la __docs/README \
__docs/README.{freebsd,irix,macosx,solaris,MINGWCROSS,WIN32}
# Directory for binary codecs
mkdir -p $RPM_BUILD_ROOT%{codecdir}
# unpackaged files
%if 0%{?_disable_v4l1:1}
rm -fv $RPM_BUILD_ROOT%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_pvr.so
rm -fv $RPM_BUILD_ROOT%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_v4l.so
%endif
mkdir -p %{buildroot}%{codecdir}
%clean
rm -rf $RPM_BUILD_ROOT
%ldconfig_scriptlets
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files -f libxine1.lang
%defattr(-,root,root,-)
%doc AUTHORS COPYING COPYING.LIB CREDITS ChangeLog* README TODO
%files -f libxine2.lang
%doc AUTHORS CREDITS ChangeLog* README TODO
%doc __docs/README.* __docs/faq.*
%license COPYING COPYING.LIB
%dir %{codecdir}/
%{_datadir}/xine/
%{_libdir}/libxine.so.*
%{_datadir}/xine-lib/
%{_libdir}/libxine.so.2*
%{_mandir}/man5/xine.5*
%dir %{_libdir}/xine/
%dir %{_libdir}/xine/plugins/
@ -242,7 +222,9 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/xine/plugins/%{plugin_abi}/post/xineplug_post_audio_filters.so
%{_libdir}/xine/plugins/%{plugin_abi}/post/xineplug_post_goom.so
%{_libdir}/xine/plugins/%{plugin_abi}/post/xineplug_post_mosaico.so
%{_libdir}/xine/plugins/%{plugin_abi}/post/xineplug_post_planar.so
%{_libdir}/xine/plugins/%{plugin_abi}/post/xineplug_post_switch.so
%{_libdir}/xine/plugins/%{plugin_abi}/post/xineplug_post_tvtime.so
%{_libdir}/xine/plugins/%{plugin_abi}/post/xineplug_post_visualizations.so
%if %{have_vidix}
%dir %{_libdir}/xine/plugins/%{plugin_abi}/vidix/
@ -258,108 +240,106 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/xine/plugins/%{plugin_abi}/vidix/savage_vid.so
%{_libdir}/xine/plugins/%{plugin_abi}/vidix/sis_vid.so
%{_libdir}/xine/plugins/%{plugin_abi}/vidix/unichrome_vid.so
%endif # vidix
%endif
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_ao_out_alsa.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_ao_out_file.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_ao_out_none.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_ao_out_oss.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_ao_out_pulseaudio.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_bitplane.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_a52.so
%{!?_without_dav1d:%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_dav1d.so}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_dts.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_dvaudio.so
%{!?_without_faad2:%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_faad.so}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_ff.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_gsm610.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_libaom.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_libjpeg.so
%{!?_without_png:%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_libpng.so}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_libvpx.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_lpcm.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_mad.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_mpc.so
%ifarch %{ix86}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_qt.so
%endif # ix86
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_mpeg2.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_rawvideo.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_real.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_rgb.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_speex.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_spu.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_spucc.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_spucmml.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_spudvb.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_spuhdmv.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_sputext.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_theora.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_vorbis.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_to_spdif.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_vdpau.so
%ifarch %{ix86}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_w32dll.so
%endif # ix86
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_yuv.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_audio.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_avi.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_fli.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_flv.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_games.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_iff.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_image.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_matroska.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_mng.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_mpeg.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_mpeg_block.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_mpeg_elem.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_mpeg_pes.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_mpeg_ts.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_nsv.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_ogg.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_pva.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_qt.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_rawdv.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_real.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_slave.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_sputext.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_yuv_frames.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_yuv4mpeg2.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_flac.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_cdda.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_dvb.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_file.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_http.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_net.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_pnm.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_rtp.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_rtsp.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_stdin_fifo.so
%if ! 0%{?_disable_v4l1:1}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_pvr.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_v4l.so
%endif
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_asf.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_audio.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_fli.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_games.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_image.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_mng.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_modplug.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_nsv.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_playlist.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_pva.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_slave.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dmx_video.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_dxr3.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_flac.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_hw_frame_vaapi.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_bluray.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_cdda.so
%{!?_without_gcrypt:%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_crypto.so}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_dvb.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_dvd.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_mms.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_network.so
%{!?_without_nfs:%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_nfs.so}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_pvr.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_rtp.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_ssh.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_v4l2.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_vcd.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_vcdo.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_nsf.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_sputext.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_tls_gnutls.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_tls_openssl.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_va_display_drm.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_va_display_glx.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_va_display_wl.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_va_display_x11.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vdr.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_fb.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_none.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_gl_glx.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_gl_egl_x11.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_gl_egl_wl.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_opengl.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_opengl2.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_raw.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_syncfb.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_vaapi.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_vdpau.so
%if %{have_vidix}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_vidix.so
%endif # vidix
%endif
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_xcbshm.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_xcbxv.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_xshm.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_xv.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_xvmc.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_xxmc.so
%{?_with_xvmc:%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_xvmc.so}
%{?_with_xvmc:%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_xxmc.so}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_wavpack.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_xiph.so
%files extras
%defattr(-,root,root,-)
%if 0%{!?_without_esound:1}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_ao_out_esd.so
%endif # esound
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_ao_out_jack.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_gdk_pixbuf.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_image.so
%{!?_without_imagemagick:%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_image.so}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_inp_smb.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_aa.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_caca.so
%if 0%{!?_without_directfb:1}
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_directfb.so
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_xdirectfb.so
%endif # directfb
%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_sdl.so
%files devel
%defattr(-,root,root,-)
%doc __docs/hackersguide/*
%{_bindir}/xine-config
%{_bindir}/xine-list*
@ -373,6 +353,403 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Mon Sep 23 2024 Fabio Valentini <decathorpe@gmail.com> - 1.2.13-17
- Rebuild for ffmpeg 7
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.13-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Tue Jul 16 2024 Nicolas Chauvet <kwizart@gmail.com> - 1.2.13-15
- Rebuilt for libplacebo/vmaf
* Mon May 20 2024 Xavier Bachelot <xavier@bachelot.org>- 1.2.13-14
- Add patches for ffmpeg compatibility
* Wed Mar 13 2024 Sérgio Basto <sergio@serjux.com> - 1.2.13-13
- Rebuild for jpegxl (libjxl) 0.10.2
* Wed Feb 14 2024 Sérgio Basto <sergio@serjux.com> - 1.2.13-12
- Rebuild for jpegxl (libjxl) 0.9.2 with soname bump
* Thu Feb 08 2024 Pete Walter <pwalter@fedoraproject.org> - 1.2.13-11
- Rebuild for libvpx 1.14.x
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.13-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 12 2024 Fabio Valentini <decathorpe@gmail.com> - 1.2.13-9
- Rebuild for dav1d 1.3.0
* Tue Sep 26 2023 Xavier Bachelot <xavier@bachelot.org> - 1.2.13-8
- Enable nfs support for EL9
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.13-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Jun 18 2023 Sérgio Basto <sergio@serjux.com> - 1.2.13-6
- Mass rebuild for jpegxl-0.8.1
* Thu Jun 01 2023 Xavier Bachelot <xavier@bachelot.org> - 1.2.13-5
- Rebuild for new libnfs
* Sat Apr 15 2023 Florian Weimer <fweimer@redhat.com> - 1.2.13-4
- Port configure script to C99
* Sat Mar 18 2023 Xavier Bachelot <xavier@bachelot.org> - 1.2.13-3
- Enable external libdvdnav for EL9
- Restore specfile compatibility with RPM Fusion for EL7/8
- Restore building from snapshot
* Fri Mar 17 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 1.2.13-2
- Rebuilt for libmpcdec 1.3.0
* Sun Mar 12 2023 Neal Gompa <ngompa@fedoraproject.org> - 1.2.13-1
- Update to 1.2.13
- Enable DTS/DCA and VCD support plugins
* Wed Feb 15 2023 Tom Callaway <spot@fedoraproject.org> - 1.2.12-11
- rebuild for libvpx
* Mon Jan 23 2023 Neal Gompa <ngompa@fedoraproject.org> - 1.2.12-10
- Adapt for Fedora
* Sun Dec 04 2022 Sérgio Basto <sergio@serjux.com> - 1.2.12-9
- Rebuild for libjxl on el9
* Mon Sep 26 2022 Leigh Scott <leigh123linux@gmail.com> - 1.2.12-8
- Rebuild for new flac
* Sun Sep 04 2022 Leigh Scott <leigh123linux@gmail.com> - 1.2.12-7
- Add requires ffmpeg-libs
* Mon Aug 08 2022 RPM Fusion Release Engineering <sergiomb@rpmfusion.org> - 1.2.12-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg
5.1
* Sat Jul 23 2022 Leigh Scott <leigh123linux@gmail.com> - 1.2.12-5
- Rebuild for new ffmpeg
* Thu Jun 23 2022 Robert-André Mauchin <zebob.m@gmail.com> - 1.2.12-4
- Rebuilt for new AOM, dav1d and jpegxl
* Fri Mar 25 2022 Xavier Bachelot <xavier@bachelot.org> - 1.2.12-3
- Add patch for dav1d 1.0.0 support
* Thu Mar 10 2022 Xavier Bachelot <xavier@bachelot.org> - 1.2.12-2
- Fix build on EL7 and EL8
* Thu Mar 10 2022 Xavier Bachelot <xavier@bachelot.org> - 1.2.12-1
- Update to 1.2.12
* Tue Mar 08 2022 Xavier Bachelot <xavier@bachelot.org> 1.2.11-14.20220307hg15076
- Specfile clean up
- Update xine-lib snapshot
- Add support for EL9
* Sat Feb 05 2022 Leigh Scott <leigh123linux@gmail.com> - 1.2.11-13.20220131hg15030
- Update to xine-lib snapshot.
* Wed Jan 19 2022 Nicolas Chauvet <kwizart@gmail.com> - 1.2.11-12
- Rebuilt
* Sat Dec 11 2021 Sérgio Basto <sergio@serjux.com> - 1.2.11-11
- Rebuilt for new ImageMagick on F34
* Thu Dec 02 2021 Sérgio Basto <sergio@serjux.com> - 1.2.11-10
- Rebuilt for libjxl-0.6.1
* Mon Nov 22 2021 Sérgio Basto <sergio@serjux.com> - 1.2.11-9
- Rebuilt for new ImageMagick
* Tue Aug 03 2021 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.2.11-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Sun Jun 13 2021 Robert-André Mauchin <zebob.m@gmail.com> - 1.2.11-7
- Rebuild for new aom
* Thu Feb 04 2021 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.2.11-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Dec 31 2020 Leigh Scott <leigh123linux@gmail.com> - 1.2.11-5
- Rebuilt for new ffmpeg snapshot
* Mon Dec 14 2020 Leigh Scott <leigh123linux@gmail.com> - 1.2.11-4
- Actually do the dav1d rebuild
* Mon Dec 14 2020 Robert-André Mauchin <zebob.m@gmail.com> 1.2.11-3
- Rebuild for dav1d SONAME bump
* Fri Dec 11 2020 Xavier Bachelot <xavier@bachelot.org> 1.2.11-2
- Drop support for EOL distros
* Tue Dec 08 2020 Xavier Bachelot <xavier@bachelot.org> 1.2.11-1
- Update to 1.2.11
* Wed Oct 21 2020 Leigh Scott <leigh123linux@gmail.com> - 1.2.10-12
- Rebuild for new libdvdread
* Sat Oct 17 2020 Xavier Bachelot <xavier@bachelot.org> 1.2.10-11
- Re-enable libssh2 for EL8 and F31+
- Fix build if libssh2 support is disabled but libssh2-devel is installed (RFBZ#5796)
* Wed Aug 19 2020 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.2.10-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 08 2020 Leigh Scott <leigh123linux@gmail.com> - 1.2.10-9
- Rebuilt
* Wed Jul 01 2020 Leigh Scott <leigh123linux@gmail.com> - 1.2.10-8
- Rebuilt
* Sun May 24 2020 Leigh Scott <leigh123linux@gmail.com> - 1.2.10-7
- Rebuild for dav1d SONAME bump
* Wed May 20 2020 Sérgio Basto <sergio@serjux.com> - 1.2.10-6
- Rebuild for ImageMagick on el7
* Fri Apr 10 2020 Leigh Scott <leigh123linux@gmail.com> - 1.2.10-5
- Rebuild for new libcdio version
* Sat Feb 22 2020 RPM Fusion Release Engineering <leigh123linux@googlemail.com> - 1.2.10-4
- Rebuild for ffmpeg-4.3 git
* Wed Feb 05 2020 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.2.10-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jan 18 2020 Xavier Bachelot <xavier@bachelot.org> 1.2.10-2
- Disable libssh2 for EL8.
* Fri Dec 13 2019 Xavier Bachelot <xavier@bachelot.org> 1.2.10-1
- Update to 1.2.10.
- Enable aom for EL7.
- Enable libcaca and ImageMagick for EL8.
* Fri Nov 15 2019 Dominik 'Rathann' Mierzejewski <rpm@greysector.net> - 1.2.9-22.20190831hg14506
- rebuild for libdvdread ABI bump
* Thu Oct 24 2019 Leigh Scott <leigh123linux@gmail.com> - 1.2.9-21.20190831hg14506
- Rebuild for dav1d SONAME bump
* Wed Sep 11 2019 Leigh Scott <leigh123linux@googlemail.com> - 1.2.9-20.20190831hg14506
- Rebuild for new libnfs version
* Tue Sep 03 2019 Xavier Bachelot <xavier@bachelot.org> 1.2.9-19.20190831hg14506
- Fix 32 bits build.
* Tue Sep 03 2019 Xavier Bachelot <xavier@bachelot.org> 1.2.9-18.20190831hg14506
- Update xine-lib snapshot.
- Enable libpng based video decoder.
- Add XvMC support back.
- Enable libdav1d based video decoder (F31+).
- Rework features enablement.
- Disable currently missing features on EL8.
* Wed Aug 21 2019 Leigh Scott <leigh123linux@gmail.com> - 1.2.9-17.20190525hg14404
- Rebuild for aom SONAME bump
- Drop XvMC support (rfbz #5328)
* Tue Aug 06 2019 Leigh Scott <leigh123linux@gmail.com> - 1.2.9-16.20190525hg14404
- Rebuild for new ffmpeg version
* Mon May 27 2019 Xavier Bachelot <xavier@bachelot.org> 1.2.9-15.20190525hg14404
- Update xine-lib snapshot.
- Remove now unneeded 32 bits build fix.
- Cosmetic spec cleanup.
- Remove unneeded SDL build flags setting.
* Fri May 17 2019 Xavier Bachelot <xavier@bachelot.org> 1.2.9-14.20190516hg14396
- Update to xine-lib snapshot.
- Add script to make a snapshot.
- Enable EGL support.
- Enable mpeg2 encoding support for dxr3.
- Don't glob soname.
- Clean up and sort BuildRequires.
- Enable fontconfig support.
- No NFS support on EL6.
- Add patch to revert gettext version bump on EL6.
- No wayland nor openssl support on EL6.
* Tue Mar 05 2019 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.2.9-13.20181129hg14263
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Dec 10 2018 Xavier Bachelot <xavier@bachelot.org> 1.2.9-12.20181129hg14263
- Update to xine-lib snapshot.
- Enable SSH and NFS input plugins.
- Enable TLS support.
- Enable AV1 support through libaom (Fedora only).
- Add support for RPI.
* Thu Dec 06 2018 Antonio Trande <sagitter@fedoraproject.org> - 1.2.9-11
- Rebuild for ffmpeg-3.* on el7
* Wed Aug 29 2018 Xavier Bachelot <xavier@bachelot.org> 1.2.9-10.1
- Rebuilt for ImageMagick soname bump.
* Sun Aug 19 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.2.9-9
- Rebuilt for Fedora 29 Mass Rebuild binutils issue
* Fri Jul 27 2018 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.2.9-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Jul 20 2018 Xavier Bachelot <xavier@bachelot.org> 1.2.9-7
- Add BR: gcc.
* Thu Mar 08 2018 RPM Fusion Release Engineering <leigh123linux@googlemail.com> - 1.2.9-6
- Rebuilt for new ffmpeg snapshot
* Thu Mar 01 2018 RPM Fusion Release Engineering <leigh123linux@googlemail.com> - 1.2.9-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Jan 27 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.2.9-4
- Rebuild for new libcdio, libvpx and vcdimager
* Thu Jan 18 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.2.9-3
- Rebuilt for ffmpeg-3.5 git
* Mon Jan 15 2018 Nicolas Chauvet <kwizart@gmail.com> - 1.2.9-2
- Rebuilt for VA-API 1.0.0
* Fri Jan 12 2018 Xavier Bachelot <xavier@bachelot.org> 1.2.9-1
- Update to 1.2.9.
* Sun Aug 27 2017 Nicolas Chauvet <kwizart@gmail.com> - 1.2.8-4
- Rebuilt for ImageMagick
* Sat Apr 29 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.2.8-3
- Rebuild for ffmpeg update
* Tue Mar 21 2017 RPM Fusion Release Engineering <kwizart@rpmfusion.org> - 1.2.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Tue Feb 21 2017 Xavier Bachelot <xavier@bachelot.org> 1.2.8-1
- Update to 1.2.8.
- All patches are now upstream, remove them.
- Use %%license.
- Fix building on EL6.
- Drop now obsolete BR: gawk and sed.
* Fri Nov 18 2016 Adrian Reber <adrian@lisas.de> - 1.2.6-14
- Rebuilt for libcdio-0.94
* Sat Jul 30 2016 Julian Sikorski <belegdol@fedoraproject.org> - 1.2.6-13
- Rebuilt for ffmpeg-3.1.1
* Mon Jul 25 2016 Sérgio Basto <sergio@serjux.com> - 1.2.6-12
- Fix build with libxcb-1.12, https://bugs.xine-project.org/show_bug.cgi?id=573
* Fri Jul 08 2016 Sérgio Basto <sergio@serjux.com> - 1.2.6-11
- Build again with vcd support
* Fri Jul 01 2016 Sérgio Basto <sergio@serjux.com> - 1.2.6-10
- Remove BR: vcdimager-devel and disable vcd; package retired in F24
* Sun May 01 2016 Sérgio Basto <sergio@serjux.com> - 1.2.6-9
- Add patch to build with ffmpeg3
* Tue Nov 04 2014 Nicolas Chauvet <kwizart@gmail.com> - 1.2.6-8
- Rebuilt for vaapi 0.36
* Mon Oct 20 2014 Sérgio Basto <sergio@serjux.com> - 1.2.6-7
- Rebuilt for FFmpeg 2.4.3
* Wed Oct 01 2014 Sérgio Basto <sergio@serjux.com> - 1.2.6-6
- Rebuilt again for FFmpeg 2.3.x (with FFmpeg 2.3.x in build root)
* Wed Oct 01 2014 Sérgio Basto <sergio@serjux.com> - 1.2.6-5
- Rebuilt for FFmpeg 2.3.x (with FFmpeg 2.3.x in build root)
* Sat Sep 27 2014 kwizart <kwizart@gmail.com> - 1.2.6-4
- Rebuilt for FFmpeg 2.3x
* Thu Sep 25 2014 Xavier Bachelot <xavier@bachelot.org> 1.2.6-3
- Rebuild for ffmpeg 2.4.
* Thu Aug 07 2014 Sérgio Basto <sergio@serjux.com> - 1.2.6-2
- Rebuilt for ffmpeg-2.3
* Sun Jul 06 2014 Xavier Bachelot <xavier@bachelot.org> 1.2.6-1
- Update to 1.2.6.
* Tue Apr 08 2014 Xavier Bachelot <xavier@bachelot.org> 1.2.5-1
- Update to 1.2.5.
- Drop upstream'ed patch.
- Enable VP8/9 decoder through libvpx.
* Tue Mar 25 2014 Xavier Bachelot <xavier@bachelot.org> 1.2.4-5
- Rebuild for ffmpeg 2.2.
* Wed Feb 26 2014 Nicolas Chauvet <kwizart@gmail.com> - 1.2.4-4
- Rebuilt for libcdio
* Tue Nov 05 2013 Xavier Bachelot <xavier@bachelot.org> 1.2.4-3
- Rebuild for ffmpeg 2.1.
* Sat Oct 12 2013 Xavier Bachelot <xavier@bachelot.org> 1.2.4-2
- Make the build more verbose.
- Don't run autogen.sh gratuitously and drop BR: autoconf automake libtool.
Consequently, add a code snippet to remove rpath.
- Drop obsolete no autopoint patch and Requires: gettext-devel instead.
- Drop obsolete Requires: pkgconfig for -devel subpackage.
- Drop obsolete Group: tags.
- Bump xine-lib-extras-freeworld Obsoletes:.
* Tue Sep 24 2013 Xavier Bachelot <xavier@bachelot.org> 1.2.4-1
- Update to 1.2.4.
- Drop upstream'ed patches and hacks.
- More spec file cleanup.
* Fri Sep 20 2013 Xavier Bachelot <xavier@bachelot.org> 1.2.3-2
- Update to 1.2.3.
- Merge xine-lib and xine-lib-extras-freeworld.
- Use pristine source.
- Clean up old Obsoletes/Provides.
- Clean up old conditional building.
- Clean up spec.
- Enable VDPAU support.
- Enable VAAPI support.
- Add a patch to fix a lock up when vaapi plugin init fails.
- Move test input plugin to -extras.
* Fri Sep 20 2013 Xavier Bachelot <xavier@bachelot.org> 1.1.21-10
- Rebuild for libbluray-0.4.0.
* Sat Aug 31 2013 Till Maas <opensource@till.name> - 1.1.21-9
- Disable directfb support for Fedora 20 and newer, because it was retired
* Tue Aug 27 2013 Jon Ciesla <limburgher@gmail.com> - 1.1.21-8
- libmng rebuild.
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.21-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Sat Mar 30 2013 Kevin Fenzi <kevin@scrye.com> - 1.1.21-6
- Rebuild for broken deps in rawhide
* Tue Feb 12 2013 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.1.21-5
- find the Samba 4 libsmbclient.h using pkg-config, fixes FTBFS (#909825)
* Mon Sep 17 2012 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.1.21-4
- rebuild for new directfb
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.21-3.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jul 21 2012 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.1.21-2.1
- disable libbluray support on F16, libbluray too old
* Mon Jul 16 2012 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.1.21-2
- do not remove DVD plugin, not encumbered (only uses libdvdread/libdvdnav)
* Tue Jun 12 2012 Xavier Bachelot <xavier@bachelot.org> 1.1.21-1
- Update to 1.1.21.
- Enable libbluray support.
* Sat Mar 10 2012 Rex Dieter <rdieter@fedoraproject.org> 1.1.20.1-3
- rebuild (ImageMagick)
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.20.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Jan 03 2012 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.1.20.1-1
- update to 1.1.20.1 (bugfix release)
- drop upstreamed link-libdvdread patch