Compare commits
42 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
1f48720efe | ||
|
e88dba6c2e | ||
|
fc1834bfb9 | ||
|
05b4a7f596 | ||
|
bacd9126e2 | ||
|
4558856309 | ||
|
315c057d47 | ||
|
ac9527abbc | ||
|
43b312a619 | ||
|
b22f497ee3 | ||
|
4a975777a0 | ||
|
6485375a82 | ||
|
8fc8302c8d | ||
|
30df5ec749 | ||
|
db2aa192a6 | ||
|
778d088338 | ||
|
c6cc98ac45 | ||
|
7dff0e2b47 | ||
|
a3a2a8a9ca | ||
|
a17e342948 | ||
|
6de5350a6f | ||
|
86d512f4c7 | ||
|
58be036c26 | ||
|
833c4969df | ||
|
e51141ce46 | ||
|
4ca2250176 | ||
|
195a4e285b | ||
|
e9cb3c5637 | ||
|
5d28f1e7d9 | ||
|
9f705b6884 | ||
|
1b121475e0 | ||
|
1b31029cd5 | ||
|
7e6058d0e7 | ||
|
98180e81b4 | ||
|
84b672c560 | ||
|
93d016bc79 | ||
|
7537d5e2da | ||
|
ad948d47c8 | ||
|
50ba62cfcd | ||
|
175663444c | ||
|
069aba18f7 | ||
|
3843e1c31b |
3
.gitignore
vendored
3
.gitignore
vendored
@ -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
|
||||
|
21
Makefile
21
Makefile
@ -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
20
make_xinelib_snapshot.sh
Normal 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"
|
2
sources
2
sources
@ -1 +1 @@
|
||||
46d9f91395feb50237ac385aa6654b26 xine-lib-1.1.20.1-pruned.tar.xz
|
||||
SHA512 (xine-lib-1.2.13.tar.xz) = 088a446dd962c3cef621b56edd48fa2e1b47566108b4097d74899a9e5316a1f205993041d3070f45b706f168837579811e5e98c7e52ec278c683379407084bc4
|
||||
|
@ -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
|
@ -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);
|
||||
|
@ -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"
|
||||
|
@ -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
|
196
xine-lib-1.2.13-ffmpeg6-compatibility.patch
Normal file
196
xine-lib-1.2.13-ffmpeg6-compatibility.patch
Normal 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++] = '[';
|
475
xine-lib-1.2.13-ffmpeg6-compatibility_2.patch
Normal file
475
xine-lib-1.2.13-ffmpeg6-compatibility_2.patch
Normal 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;
|
318
xine-lib-1.2.13-ffmpeg7-compatibility.patch
Normal file
318
xine-lib-1.2.13-ffmpeg7-compatibility.patch
Normal 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
|
@ -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
|
116
xine-lib-configure-c99.patch
Normal file
116
xine-lib-configure-c99.patch
Normal 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])
|
821
xine-lib.spec
821
xine-lib.spec
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user