diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 46d7ce2..0000000 --- a/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -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 diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..ba9f9cf --- /dev/null +++ b/dead.package @@ -0,0 +1,3 @@ +2016-11-20: Retired because it depends on directfb, which was +retired, because it was orphaned for more than six weeks. + diff --git a/make_xinelib_snapshot.sh b/make_xinelib_snapshot.sh deleted file mode 100644 index c802a01..0000000 --- a/make_xinelib_snapshot.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/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" diff --git a/sources b/sources deleted file mode 100644 index 4f5e02e..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (xine-lib-1.2.13.tar.xz) = 088a446dd962c3cef621b56edd48fa2e1b47566108b4097d74899a9e5316a1f205993041d3070f45b706f168837579811e5e98c7e52ec278c683379407084bc4 diff --git a/xine-lib-1.2.13-ffmpeg6-compatibility.patch b/xine-lib-1.2.13-ffmpeg6-compatibility.patch deleted file mode 100644 index 11056aa..0000000 --- a/xine-lib-1.2.13-ffmpeg6-compatibility.patch +++ /dev/null @@ -1,196 +0,0 @@ -# HG changeset patch -# User Torsten Jager -# 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 - * - * 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++] = '['; diff --git a/xine-lib-1.2.13-ffmpeg6-compatibility_2.patch b/xine-lib-1.2.13-ffmpeg6-compatibility_2.patch deleted file mode 100644 index d5003ca..0000000 --- a/xine-lib-1.2.13-ffmpeg6-compatibility_2.patch +++ /dev/null @@ -1,475 +0,0 @@ -# HG changeset patch -# User Torsten Jager -# 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; diff --git a/xine-lib-1.2.13-ffmpeg7-compatibility.patch b/xine-lib-1.2.13-ffmpeg7-compatibility.patch deleted file mode 100644 index 1367504..0000000 --- a/xine-lib-1.2.13-ffmpeg7-compatibility.patch +++ /dev/null @@ -1,318 +0,0 @@ -# HG changeset patch -# User Torsten Jager -# 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 diff --git a/xine-lib-1.2.13-ffmpeg8-compatibility.patch b/xine-lib-1.2.13-ffmpeg8-compatibility.patch deleted file mode 100644 index 97ec03d..0000000 --- a/xine-lib-1.2.13-ffmpeg8-compatibility.patch +++ /dev/null @@ -1,148 +0,0 @@ -# HG changeset patch -# User Torsten Jager -# Date 1757753985 -7200 -# Sat Sep 13 10:59:45 2025 +0200 -# Node ID 9bb3977ea7e2b652742b3cdd200b0a4a72eb48bc -# Parent 9e326869fe0faf21957642c8c7c5cac9ed4f445c -FFmpeg compatibilty update. - -diff -r 9e326869fe0f -r 9bb3977ea7e2 src/combined/ffmpeg/ff_video_decoder.c ---- a/src/combined/ffmpeg/ff_video_decoder.c Sat May 31 15:55:00 2025 +0200 -+++ b/src/combined/ffmpeg/ff_video_decoder.c Sat Sep 13 10:59:45 2025 +0200 -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2001-2024 the xine project -+ * Copyright (C) 2001-2025 the xine project - * - * This file is part of xine, a free video player. - * -@@ -60,6 +60,10 @@ - - #include "ffmpeg_compat.h" - -+#if XFF_FRAME_RATE == 2 -+# include -+#endif -+ - #if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(59,0,100) - # undef HAVE_POSTPROC - #endif -@@ -2289,8 +2293,8 @@ - } - - /* transfer some more frame settings for deinterlacing */ -- img->progressive_frame = !this->av_frame->interlaced_frame; -- img->top_field_first = this->av_frame->top_field_first; -+ img->progressive_frame = !XFF_FRAME_IS_INTERLACED (this->av_frame); -+ img->top_field_first = !!XFF_FRAME_IS_TOP_FIELD_FIRST (this->av_frame); - - /* get back reordered pts */ - img->pts = ff_untag_pts (this, this->av_frame); -@@ -2370,20 +2374,29 @@ - - static int ff_video_step_get (ff_video_decoder_t *this) { - /* use externally provided video_step or fall back to stream's time_base otherwise */ -- int step = this->video_step; -+ int step = this->video_step, num_fields; - if (step || !this->context->time_base.den) - return step; - -+#if XFF_FRAME_RATE == 1 -+ num_fields = this->context->ticks_per_frame; -+#else /* XFF_FRAME_RATE == 2 */ -+ { -+ const AVCodecDescriptor *desc = avcodec_descriptor_get (this->context->codec_id); -+ if (desc) -+ num_fields = (desc->props & AV_CODEC_PROP_FIELDS) ? 2 : 1; -+ else -+ num_fields = 2; -+ } -+#endif - /* good: 2 * 1001 / 48000. */ -- step = (int64_t)90000 * this->context->ticks_per_frame -- * this->context->time_base.num / this->context->time_base.den; -+ step = (int64_t)90000 * num_fields * this->context->time_base.num / this->context->time_base.den; - if (step >= 90) - return step; - - /* bad: 2 * 1 / 60000. seen this once from broken h.264 video usability info (VUI). - * VAAPI seems to apply a similar HACK.*/ -- step = (int64_t)90000000 * this->context->ticks_per_frame -- * this->context->time_base.num / this->context->time_base.den; -+ step = (int64_t)90000000 * num_fields * this->context->time_base.num / this->context->time_base.den; - return step; - } - -@@ -2680,8 +2693,8 @@ - img->duration = video_step_to_use; - - /* transfer some more frame settings for deinterlacing */ -- img->progressive_frame = !this->av_frame->interlaced_frame; -- img->top_field_first = this->av_frame->top_field_first; -+ img->progressive_frame = !XFF_FRAME_IS_INTERLACED (this->av_frame); -+ img->top_field_first = !!XFF_FRAME_IS_TOP_FIELD_FIRST (this->av_frame); - - this->skipframes = img->draw(img, this->stream); - this->state = STATE_FRAME_SENT; -@@ -2894,8 +2907,8 @@ - if (video_step_to_use <= 750) - video_step_to_use = 0; - img->duration = this->av_frame2->repeat_pict ? video_step_to_use * 3 / 2 : video_step_to_use; -- img->progressive_frame = !this->av_frame2->interlaced_frame; -- img->top_field_first = this->av_frame2->top_field_first; -+ img->progressive_frame = !XFF_FRAME_IS_INTERLACED (this->av_frame2); -+ img->top_field_first = !!XFF_FRAME_IS_TOP_FIELD_FIRST (this->av_frame2); - - this->skipframes = img->draw (img, this->stream); - if (free_img) -diff -r 9e326869fe0f -r 9bb3977ea7e2 src/combined/ffmpeg/ffmpeg_compat.h ---- a/src/combined/ffmpeg/ffmpeg_compat.h Sat May 31 15:55:00 2025 +0200 -+++ b/src/combined/ffmpeg/ffmpeg_compat.h Sat Sep 13 10:59:45 2025 +0200 -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2000-2024 the xine project -+ * Copyright (C) 2000-2025 the xine project - * - * This file is part of xine, a unix video player. - * -@@ -319,4 +319,20 @@ - # error avcodec.h must be included first ! - #endif /* defined(LIBAVCODEC_VERSION_INT) */ - -+#if LIBAVUTIL_VERSION_INT >= XFF_INT_VERSION(58,7,0) -+# define XFF_FRAME_IS_INTERLACED(_frame) ((_frame)->flags & AV_FRAME_FLAG_INTERLACED) -+# define XFF_FRAME_IS_TOP_FIELD_FIRST(_frame) ((_frame)->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST) -+# define XFF_FRAME_IS_KEY(_frame) ((_frame)->flags & AV_FRAME_FLAG_KEY) -+#else -+# define XFF_FRAME_IS_INTERLACED(_frame) ((_frame)->interlaced_frame) -+# define XFF_FRAME_IS_TOP_FIELD_FIRST(_frame) ((_frame)->top_field_first) -+# define XFF_FRAME_IS_KEY(_frame) ((_frame)->key_frame) -+#endif -+ -+#if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(60,0,0) -+# define XFF_FRAME_RATE 2 /* AV_CODEC_PROP_FIELDS */ -+#else -+# define XFF_FRAME_RATE 1 /* AVCodecContext.ticks_per_frame */ -+#endif -+ - #endif /* XINE_AVCODEC_COMPAT_H */ -# HG changeset patch -# User Xavier Bachelot -# Date 1758280185 -7200 -# Fri Sep 19 13:09:45 2025 +0200 -# Node ID a8fffd1193b2247c7f732d4df83dcc03fce96dbe -# Parent 9bb3977ea7e2b652742b3cdd200b0a4a72eb48bc -Fix FFmpeg compatibilty update. - -diff -r 9bb3977ea7e2 -r a8fffd1193b2 src/combined/ffmpeg/ff_video_decoder.c ---- a/src/combined/ffmpeg/ff_video_decoder.c Sat Sep 13 10:59:45 2025 +0200 -+++ b/src/combined/ffmpeg/ff_video_decoder.c Fri Sep 19 13:09:45 2025 +0200 -@@ -61,7 +61,7 @@ - #include "ffmpeg_compat.h" - - #if XFF_FRAME_RATE == 2 --# include -+# include - #endif - - #if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(59,0,100) diff --git a/xine-lib-1.2.13-fix_libnfs6.patch b/xine-lib-1.2.13-fix_libnfs6.patch deleted file mode 100644 index 174d710..0000000 --- a/xine-lib-1.2.13-fix_libnfs6.patch +++ /dev/null @@ -1,32 +0,0 @@ -# HG changeset patch -# User Torsten Jager -# Date 1734473730 -3600 -# Tue Dec 17 23:15:30 2024 +0100 -# Node ID ea7071a960a1ca8719422e80e130994c8f549731 -# Parent 439d26b4081e3f31f21052049e9564082fc80076 -Attempt to fix build with libnfs 6. -Thanks to Xavier Bachelot . - -diff -r 439d26b4081e -r ea7071a960a1 src/input/input_nfs.c ---- a/src/input/input_nfs.c Tue Dec 17 23:15:25 2024 +0100 -+++ b/src/input/input_nfs.c Tue Dec 17 23:15:30 2024 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2000-2020 the xine project -+ * Copyright (C) 2000-2024 the xine project - * Copyright (C) 2018 Petri Hintukainen - * - * This file is part of xine, a free video player. -@@ -134,7 +134,11 @@ - int rc; - - while (got < len) { -- rc = nfs_read(this->nfs, this->nfsfh, len - got, buf + got); -+#ifdef LIBNFS_API_V2 -+ rc = nfs_read (this->nfs, this->nfsfh, buf + got, len - got); -+#else -+ rc = nfs_read (this->nfs, this->nfsfh, len - got, buf + got); -+#endif - if (rc <= 0) { - if (errno == EAGAIN || errno == EINTR) - continue; diff --git a/xine-lib-1.2.13-gcc_15-w32dll.patch b/xine-lib-1.2.13-gcc_15-w32dll.patch deleted file mode 100644 index aab887e..0000000 --- a/xine-lib-1.2.13-gcc_15-w32dll.patch +++ /dev/null @@ -1,60 +0,0 @@ -# HG changeset patch -# User Torsten Jager -# Date 1741126505 -3600 -# Tue Mar 04 23:15:05 2025 +0100 -# Node ID 5a68e8b08fd5378780f76c3ab957d790209388db -# Parent b5fd08a878bb80072ba5b71e30391ab52698c22f -(Attempt to) Fix gcc 15 error. -That one no longer accepts "type foo ();" as a prototype -for any set of function parameters. -Thanks to Xavier Bachelot . - -diff -r b5fd08a878bb -r 5a68e8b08fd5 src/libw32dll/wine/win32.c ---- a/src/libw32dll/wine/win32.c Thu Feb 06 23:30:40 2025 +0100 -+++ b/src/libw32dll/wine/win32.c Tue Mar 04 23:15:05 2025 +0100 -@@ -2517,10 +2517,10 @@ - } - - static int WINAPI expEnumDisplayMonitors(void *dc, RECT *r, -- int WINAPI (*callback_proc)(), void *callback_param) -+ int WINAPI (*callback_proc) (int n, void *dc, RECT *r, void *param), void *callback_param) - { - dbgprintf("EnumDisplayMonitors(%p, %p, %p, %p) => ?\n", -- dc, r, callback_proc, callback_param); -+ dc, (void *)r, (void *)callback_proc, callback_param); - return callback_proc(0, dc, r, callback_param); - } - -@@ -2617,10 +2617,10 @@ - return 0; - } - --static int WINAPI expEnumWindows(int (*callback_func)(), void *callback_param) -+static int WINAPI expEnumWindows(int (*callback_func) (int n, void *param), void *callback_param) - { - int i, i2; -- dbgprintf("EnumWindows(%p, %p) => 1\n", callback_func, callback_param); -+ dbgprintf("EnumWindows(%p, %p) => 1\n", (void *)callback_func, callback_param); - i = callback_func(0, callback_param); - i2 = callback_func(1, callback_param); - return i && i2; -@@ -3506,13 +3506,14 @@ - } - if(strstr(cs1, ".qtx")) - { -- int result; -+ int result = -1; - char* x=strrchr(cs1,'\\'); - char* tmp; -- asprintf(&tmp,"%s/%s",win32_def_path,x?(x+1):cs1); --// printf("### Open: %s -> %s\n",cs1,tmp); -- result=open(tmp, O_RDONLY); -- free(tmp); -+ if (asprintf (&tmp,"%s/%s",win32_def_path,x?(x+1):cs1) >= 0) { -+ // printf("### Open: %s -> %s\n",cs1,tmp); -+ result = open (tmp, O_RDONLY); -+ free (tmp); -+ } - return result; - } - #endif diff --git a/xine-lib-1.2.13-gcc_15.patch b/xine-lib-1.2.13-gcc_15.patch deleted file mode 100644 index d439eb6..0000000 --- a/xine-lib-1.2.13-gcc_15.patch +++ /dev/null @@ -1,160 +0,0 @@ -# HG changeset patch -# User Torsten Jager -# Date 1738622090 -3600 -# Mon Feb 03 23:34:50 2025 +0100 -# Node ID a38be398e202da7b8e414969b74fbd65eb34798d -# Parent ea7071a960a1ca8719422e80e130994c8f549731 -Fix qsort compare func. -gcc 15 no longer accepts type (*func) () as a generic pointer -to any fuction returning type, and sometimes also bails on -obvious type pun then dereference. -Thanks to Xavier Bachelot . - -diff -r ea7071a960a1 -r a38be398e202 contrib/libfaad/sbr_fbt.c ---- a/contrib/libfaad/sbr_fbt.c Tue Dec 17 23:15:30 2024 +0100 -+++ b/contrib/libfaad/sbr_fbt.c Mon Feb 03 23:34:50 2025 +0100 -@@ -105,9 +105,11 @@ - } - } - --static int longcmp(const void *a, const void *b) --{ -- return ((int)(*(int32_t*)a - *(int32_t*)b)); -+static int longcmp (const void *a, const void *b) { -+ const int32_t *d = (const int32_t *)a; -+ const int32_t *e = (const int32_t *)b; -+ -+ return (int)(*d - *e); - } - - /* calculate the stop QMF channel for the master frequency band table */ -diff -r ea7071a960a1 -r a38be398e202 src/input/input_file.c ---- a/src/input/input_file.c Tue Dec 17 23:15:30 2024 +0100 -+++ b/src/input/input_file.c Mon Feb 03 23:34:50 2025 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2000-2022 the xine project -+ * Copyright (C) 2000-2025 the xine project - * - * This file is part of xine, a free video player. - * -@@ -649,10 +649,13 @@ - } - - /* -- * Wrapper to file_input_strverscmp() for qsort() calls, which sort mrl_t type array. -+ * Wrapper to file_input_strverscmp () for qsort () calls, which sort mrl_t type array. - */ --static int file_input_sortfiles_default (const xine_mrl_t *s1, const xine_mrl_t *s2) { -- return(file_input_strverscmp(s1->mrl, s2->mrl)); -+static int file_input_sortfiles_default (const void *a, const void *b) { -+ const xine_mrl_t *d = (const xine_mrl_t *)a; -+ const xine_mrl_t *e = (const xine_mrl_t *)b; -+ -+ return file_input_strverscmp (d->mrl, e->mrl); - } - - /* -@@ -735,7 +738,7 @@ - int num_dir_files = 0; - int num_norm_files = 0; - int num_files = -1; -- int (*func) () = file_input_sortfiles_default; -+ int (*cmp) (const void *a, const void *b) = file_input_sortfiles_default; - int already_tried = 0; - int show_hidden_files; - -@@ -914,14 +917,14 @@ - /* - * Sort arrays - */ -- if(num_dir_files) -- qsort(dir_files, num_dir_files, sizeof(xine_mrl_t), func); -+ if (num_dir_files) -+ qsort (dir_files, num_dir_files, sizeof (xine_mrl_t), cmp); - -- if(num_hide_files) -- qsort(hide_files, num_hide_files, sizeof(xine_mrl_t), func); -+ if (num_hide_files) -+ qsort (hide_files, num_hide_files, sizeof (xine_mrl_t), cmp); - -- if(num_norm_files) -- qsort(norm_files, num_norm_files, sizeof(xine_mrl_t), func); -+ if (num_norm_files) -+ qsort (norm_files, num_norm_files, sizeof (xine_mrl_t), cmp); - - /* - * Add directories entries -diff -r ea7071a960a1 -r a38be398e202 src/input/input_smb.c ---- a/src/input/input_smb.c Tue Dec 17 23:15:30 2024 +0100 -+++ b/src/input/input_smb.c Mon Feb 03 23:34:50 2025 +0100 -@@ -229,10 +229,13 @@ - } - - /* -- * Wrapper to _strverscmp() for qsort() calls, which sort mrl_t type array. -+ * Wrapper to _strverscmp () for qsort () calls, which sort mrl_t type array. - */ --static int _sortfiles_default(const xine_mrl_t *s1, const xine_mrl_t *s2) { -- return(_strverscmp(s1->mrl, s2->mrl)); -+static int smb_input_sortfiles_default (const void *a, const void *b) { -+ const xine_mrl_t *d = (const xine_mrl_t *)a; -+ const xine_mrl_t *e = (const xine_mrl_t *)b; -+ -+ return file_input_strverscmp (d->mrl, e->mrl); - } - - -@@ -240,7 +243,7 @@ - const char *filename, int *nFiles) { - - smb_input_class_t *this = (smb_input_class_t *) this_gen; -- int (*func) () = _sortfiles_default; -+ int (*cmp) (const void *a, const void *b) = smb_input_sortfiles_default; - int dir; - int i; - struct smbc_dirent *pdirent; -@@ -338,11 +341,11 @@ - /* - * Sort arrays - */ -- if(num_dir_files) -- qsort(dir_files, num_dir_files, sizeof(xine_mrl_t), func); -+ if (num_dir_files) -+ qsort (dir_files, num_dir_files, sizeof (xine_mrl_t), cmp); - -- if(num_norm_files) -- qsort(norm_files, num_norm_files, sizeof(xine_mrl_t), func); -+ if (num_norm_files) -+ qsort (norm_files, num_norm_files, sizeof (xine_mrl_t), cmp); - - /* - * Add directories entries -# HG changeset patch -# User Torsten Jager -# Date 1738881040 -3600 -# Thu Feb 06 23:30:40 2025 +0100 -# Node ID b5fd08a878bb80072ba5b71e30391ab52698c22f -# Parent a38be398e202da7b8e414969b74fbd65eb34798d -Fix qsort compare func 2. -Thanks to Xavier Bachelot . - -diff -r a38be398e202 -r b5fd08a878bb src/input/input_smb.c ---- a/src/input/input_smb.c Mon Feb 03 23:34:50 2025 +0100 -+++ b/src/input/input_smb.c Thu Feb 06 23:30:40 2025 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2008-2020 the xine project -+ * Copyright (C) 2008-2025 the xine project - * - * This file is part of xine, a free video player. - * -@@ -235,7 +235,7 @@ - const xine_mrl_t *d = (const xine_mrl_t *)a; - const xine_mrl_t *e = (const xine_mrl_t *)b; - -- return file_input_strverscmp (d->mrl, e->mrl); -+ return _strverscmp (d->mrl, e->mrl); - } - - diff --git a/xine-lib-configure-c99.patch b/xine-lib-configure-c99.patch deleted file mode 100644 index a6bf2e6..0000000 --- a/xine-lib-configure-c99.patch +++ /dev/null @@ -1,116 +0,0 @@ -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: - - - -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]) diff --git a/xine-lib.spec b/xine-lib.spec deleted file mode 100644 index 635d46d..0000000 --- a/xine-lib.spec +++ /dev/null @@ -1,1099 +0,0 @@ -%global build_type_safety_c 2 -%define _legacy_common_support 1 -%global plugin_abi 2.11 -%global codecdir %{_libdir}/codecs - -%if 0%{?el8} - %global _without_gcrypt 1 -%endif - -%if 0%{?fedora} || 0%{?rhel} >= 9 -%global _without_fame 1 -%endif - -%ifarch %{ix86} - %global have_vidix 1 -%else - %global have_vidix 0 -%endif - -#global snapshot 1 -%global date 20250206 -%global revision 15304 - -Summary: A multimedia engine -Name: xine-lib -Version: 1.2.13 -Release: 27%{?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 - -# 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 -# See: https://sourceforge.net/p/xine/xine-lib-1.2/ci/ea7071a960a1ca8719422e80e130994c8f549731/ -Patch4: xine-lib-1.2.13-fix_libnfs6.patch -# See: -# https://sourceforge.net/p/xine/xine-lib-1.2/ci/a38be398e202da7b8e414969b74fbd65eb34798d/ -# https://sourceforge.net/p/xine/xine-lib-1.2/ci/b5fd08a878bb80072ba5b71e30391ab52698c22f/ -Patch5: xine-lib-1.2.13-gcc_15.patch -# https://sourceforge.net/p/xine/xine-lib-1.2/ci/5a68e8b08fd5378780f76c3ab957d790209388db/ -Patch6: xine-lib-1.2.13-gcc_15-w32dll.patch -# https://sourceforge.net/p/xine/xine-lib-1.2/ci/9bb3977ea7e2b652742b3cdd200b0a4a72eb48bc/ -# https://sourceforge.net/p/xine/xine-lib-1.2/ci/a8fffd1193b2247c7f732d4df83dcc03fce96dbe/ -Patch7: xine-lib-1.2.13-ffmpeg8-compatibility.patch - -Provides: xine-lib(plugin-abi) = %{plugin_abi} -Provides: xine-lib(plugin-abi)%{?_isa} = %{plugin_abi} - -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 -%{!?_without_nfs:BuildRequires: libnfs-devel} -%{!?_without_png:BuildRequires: libpng-devel >= 1.6.0} -BuildRequires: libsmbclient-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 - - -%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. - -%package devel -Summary: Xine library development files -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: zlib-devel%{?_isa} -%description devel -This package contains development files for %{name}. - -%package extras -Summary: Additional plugins for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} -%description extras -This package contains extra plugins for %{name}: - - JACK - - GDK-Pixbuf - - SMB - - SDL - - AA-lib - - Libcaca -%{!?_without_imagemagick: - Image decoding} - - -%prep -%if ! 0%{?snapshot} -%autosetup -p1 -%else -%setup -n %{name}-%{version}-%{date}hg%{revision} -%endif - - -%build -autoreconf -fiv -# Keep list of options in mostly the same order as ./configure --help. -%configure \ - --disable-dependency-tracking \ - --enable-ipv6 \ - --enable-v4l2 \ - --enable-libv4l \ -%{?_with_xvmc: --enable-xvmc} \ - --disable-gnomevfs \ - %{?_without_faad2:--disable-faad} \ - --enable-antialiasing \ - --with-freetype \ - --with-fontconfig \ - --with-caca \ - %{!?_without_dvdnav:--with-external-dvdnav} \ - --with-xv-path=%{_libdir} \ - --with-libflac \ - --without-esound \ - --with-wavpack \ -%{?_without_w32dll: --enable-w32dll=no} \ - --with-real-codecs-path=%{codecdir} \ - --with-w32-path=%{codecdir} - -# 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 -%make_install -%find_lang libxine2 -mv %{buildroot}%{_docdir}/xine-lib __docs - -# Removing useless files -rm -Rf %{buildroot}%{_libdir}/libxine*.la __docs/README \ - __docs/README.{freebsd,irix,macosx,solaris,MINGWCROSS,WIN32} - -# Directory for binary codecs -mkdir -p %{buildroot}%{codecdir} - - -%ldconfig_scriptlets - - -%files -f libxine2.lang -%doc AUTHORS CREDITS ChangeLog* README TODO -%doc __docs/README.* __docs/faq.* -%license COPYING COPYING.LIB -%dir %{codecdir}/ -%{_datadir}/xine-lib/ -%{_libdir}/libxine.so.2* -%{_mandir}/man5/xine.5* -%dir %{_libdir}/xine/ -%dir %{_libdir}/xine/plugins/ -%dir %{_libdir}/xine/plugins/%{plugin_abi}/ -%{_libdir}/xine/plugins/%{plugin_abi}/mime.types -# Listing every plugin separately for better control over binary packages -# containing exactly the plugins we want, nothing accidentally snuck in -# nor dropped. -%dir %{_libdir}/xine/plugins/%{plugin_abi}/post/ -%{_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/ -%{_libdir}/xine/plugins/%{plugin_abi}/vidix/cyberblade_vid.so -%{_libdir}/xine/plugins/%{plugin_abi}/vidix/mach64_vid.so -%{_libdir}/xine/plugins/%{plugin_abi}/vidix/mga_crtc2_vid.so -%{_libdir}/xine/plugins/%{plugin_abi}/vidix/mga_vid.so -%{_libdir}/xine/plugins/%{plugin_abi}/vidix/nvidia_vid.so -%{_libdir}/xine/plugins/%{plugin_abi}/vidix/pm2_vid.so -%{_libdir}/xine/plugins/%{plugin_abi}/vidix/pm3_vid.so -%{_libdir}/xine/plugins/%{plugin_abi}/vidix/radeon_vid.so -%{_libdir}/xine/plugins/%{plugin_abi}/vidix/rage128_vid.so -%{_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 -%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_ao_out_alsa.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_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 -%{_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_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_to_spdif.so -%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_vdpau.so -%ifarch %{ix86} -%{!?_without_w32dll:%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_w32dll.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_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_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 -%{_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 -%{?_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 -%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_ao_out_jack.so -%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_decode_gdk_pixbuf.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 -%{_libdir}/xine/plugins/%{plugin_abi}/xineplug_vo_out_sdl.so - -%files devel -%doc __docs/hackersguide/* -%{_bindir}/xine-config -%{_bindir}/xine-list* -%{_datadir}/aclocal/xine.m4 -%{_includedir}/xine.h -%{_includedir}/xine/ -%{_libdir}/libxine.so -%{_libdir}/pkgconfig/libxine.pc -%{_mandir}/man1/xine-config.1* -%{_mandir}/man1/xine-list*.1* - - -%changelog -* Tue Nov 04 2025 Dominik Mierzejewski - 1.2.13-27 -- Rebuilt for FFmpeg 8 - -* Mon Sep 15 2025 Xavier Bachelot - 1.2.13-26 -- Add upstream patch for ffmpeg 8 compatibility - -* Fri Jul 25 2025 Fedora Release Engineering - 1.2.13-25 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Wed Jun 25 2025 Dominik Mierzejewski - 1.2.13-24 -- Enable FAAD2 support - -* Tue May 27 2025 Jitka Plesnikova - 1.2.13-23 -- Rebuilt for flac 1.5.0 - -* Wed Mar 05 2025 Xavier Bachelot - 1.2.13-22 -- Add upstream patch to fix win32dll build with gcc15 - -* Fri Feb 07 2025 Xavier Bachelot - 1.2.13-21 -- Add upstream patch for gcc 15 -- Disable w32dll for F42+ - -* Wed Feb 05 2025 Robert-André Mauchin - 1.2.13-20 -- Rebuilt for aom 3.11.0 - -* Sun Jan 19 2025 Fedora Release Engineering - 1.2.13-19 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild -- Fix build using global build_type_safety_c 2 more information in - /usr/share/doc/redhat-rpm-config/buildflags.md "Controlling Type Safety" - -* Mon Dec 30 2024 Xavier Bachelot - 1.2.13-18 -- Rebuild for libnfs 6 -- Drop support for EL7 - -* Mon Sep 23 2024 Fabio Valentini - 1.2.13-17 -- Rebuild for ffmpeg 7 - -* Sat Jul 20 2024 Fedora Release Engineering - 1.2.13-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Tue Jul 16 2024 Nicolas Chauvet - 1.2.13-15 -- Rebuilt for libplacebo/vmaf - -* Mon May 20 2024 Xavier Bachelot - 1.2.13-14 -- Add patches for ffmpeg compatibility - -* Wed Mar 13 2024 Sérgio Basto - 1.2.13-13 -- Rebuild for jpegxl (libjxl) 0.10.2 - -* Wed Feb 14 2024 Sérgio Basto - 1.2.13-12 -- Rebuild for jpegxl (libjxl) 0.9.2 with soname bump - -* Thu Feb 08 2024 Pete Walter - 1.2.13-11 -- Rebuild for libvpx 1.14.x - -* Sat Jan 27 2024 Fedora Release Engineering - 1.2.13-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 12 2024 Fabio Valentini - 1.2.13-9 -- Rebuild for dav1d 1.3.0 - -* Tue Sep 26 2023 Xavier Bachelot - 1.2.13-8 -- Enable nfs support for EL9 - -* Sat Jul 22 2023 Fedora Release Engineering - 1.2.13-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sun Jun 18 2023 Sérgio Basto - 1.2.13-6 -- Mass rebuild for jpegxl-0.8.1 - -* Thu Jun 01 2023 Xavier Bachelot - 1.2.13-5 -- Rebuild for new libnfs - -* Sat Apr 15 2023 Florian Weimer - 1.2.13-4 -- Port configure script to C99 - -* Sat Mar 18 2023 Xavier Bachelot - 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 - 1.2.13-2 -- Rebuilt for libmpcdec 1.3.0 - -* Sun Mar 12 2023 Neal Gompa - 1.2.13-1 -- Update to 1.2.13 -- Enable DTS/DCA and VCD support plugins - -* Wed Feb 15 2023 Tom Callaway - 1.2.12-11 -- rebuild for libvpx - -* Mon Jan 23 2023 Neal Gompa - 1.2.12-10 -- Adapt for Fedora - -* Sun Dec 04 2022 Sérgio Basto - 1.2.12-9 -- Rebuild for libjxl on el9 - -* Mon Sep 26 2022 Leigh Scott - 1.2.12-8 -- Rebuild for new flac - -* Sun Sep 04 2022 Leigh Scott - 1.2.12-7 -- Add requires ffmpeg-libs - -* Mon Aug 08 2022 RPM Fusion Release Engineering - 1.2.12-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg - 5.1 - -* Sat Jul 23 2022 Leigh Scott - 1.2.12-5 -- Rebuild for new ffmpeg - -* Thu Jun 23 2022 Robert-André Mauchin - 1.2.12-4 -- Rebuilt for new AOM, dav1d and jpegxl - -* Fri Mar 25 2022 Xavier Bachelot - 1.2.12-3 -- Add patch for dav1d 1.0.0 support - -* Thu Mar 10 2022 Xavier Bachelot - 1.2.12-2 -- Fix build on EL7 and EL8 - -* Thu Mar 10 2022 Xavier Bachelot - 1.2.12-1 -- Update to 1.2.12 - -* Tue Mar 08 2022 Xavier Bachelot 1.2.11-14.20220307hg15076 -- Specfile clean up -- Update xine-lib snapshot -- Add support for EL9 - -* Sat Feb 05 2022 Leigh Scott - 1.2.11-13.20220131hg15030 -- Update to xine-lib snapshot. - -* Wed Jan 19 2022 Nicolas Chauvet - 1.2.11-12 -- Rebuilt - -* Sat Dec 11 2021 Sérgio Basto - 1.2.11-11 -- Rebuilt for new ImageMagick on F34 - -* Thu Dec 02 2021 Sérgio Basto - 1.2.11-10 -- Rebuilt for libjxl-0.6.1 - -* Mon Nov 22 2021 Sérgio Basto - 1.2.11-9 -- Rebuilt for new ImageMagick - -* Tue Aug 03 2021 RPM Fusion Release Engineering - 1.2.11-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Sun Jun 13 2021 Robert-André Mauchin - 1.2.11-7 -- Rebuild for new aom - -* Thu Feb 04 2021 RPM Fusion Release Engineering - 1.2.11-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Thu Dec 31 2020 Leigh Scott - 1.2.11-5 -- Rebuilt for new ffmpeg snapshot - -* Mon Dec 14 2020 Leigh Scott - 1.2.11-4 -- Actually do the dav1d rebuild - -* Mon Dec 14 2020 Robert-André Mauchin 1.2.11-3 -- Rebuild for dav1d SONAME bump - -* Fri Dec 11 2020 Xavier Bachelot 1.2.11-2 -- Drop support for EOL distros - -* Tue Dec 08 2020 Xavier Bachelot 1.2.11-1 -- Update to 1.2.11 - -* Wed Oct 21 2020 Leigh Scott - 1.2.10-12 -- Rebuild for new libdvdread - -* Sat Oct 17 2020 Xavier Bachelot 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 - 1.2.10-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jul 08 2020 Leigh Scott - 1.2.10-9 -- Rebuilt - -* Wed Jul 01 2020 Leigh Scott - 1.2.10-8 -- Rebuilt - -* Sun May 24 2020 Leigh Scott - 1.2.10-7 -- Rebuild for dav1d SONAME bump - -* Wed May 20 2020 Sérgio Basto - 1.2.10-6 -- Rebuild for ImageMagick on el7 - -* Fri Apr 10 2020 Leigh Scott - 1.2.10-5 -- Rebuild for new libcdio version - -* Sat Feb 22 2020 RPM Fusion Release Engineering - 1.2.10-4 -- Rebuild for ffmpeg-4.3 git - -* Wed Feb 05 2020 RPM Fusion Release Engineering - 1.2.10-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sat Jan 18 2020 Xavier Bachelot 1.2.10-2 -- Disable libssh2 for EL8. - -* Fri Dec 13 2019 Xavier Bachelot 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 - 1.2.9-22.20190831hg14506 -- rebuild for libdvdread ABI bump - -* Thu Oct 24 2019 Leigh Scott - 1.2.9-21.20190831hg14506 -- Rebuild for dav1d SONAME bump - -* Wed Sep 11 2019 Leigh Scott - 1.2.9-20.20190831hg14506 -- Rebuild for new libnfs version - -* Tue Sep 03 2019 Xavier Bachelot 1.2.9-19.20190831hg14506 -- Fix 32 bits build. - -* Tue Sep 03 2019 Xavier Bachelot 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 - 1.2.9-17.20190525hg14404 -- Rebuild for aom SONAME bump -- Drop XvMC support (rfbz #5328) - -* Tue Aug 06 2019 Leigh Scott - 1.2.9-16.20190525hg14404 -- Rebuild for new ffmpeg version - -* Mon May 27 2019 Xavier Bachelot 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 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 - 1.2.9-13.20181129hg14263 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Dec 10 2018 Xavier Bachelot 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 - 1.2.9-11 -- Rebuild for ffmpeg-3.* on el7 - -* Wed Aug 29 2018 Xavier Bachelot 1.2.9-10.1 -- Rebuilt for ImageMagick soname bump. - -* Sun Aug 19 2018 Leigh Scott - 1.2.9-9 -- Rebuilt for Fedora 29 Mass Rebuild binutils issue - -* Fri Jul 27 2018 RPM Fusion Release Engineering - 1.2.9-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Jul 20 2018 Xavier Bachelot 1.2.9-7 -- Add BR: gcc. - -* Thu Mar 08 2018 RPM Fusion Release Engineering - 1.2.9-6 -- Rebuilt for new ffmpeg snapshot - -* Thu Mar 01 2018 RPM Fusion Release Engineering - 1.2.9-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sat Jan 27 2018 Leigh Scott - 1.2.9-4 -- Rebuild for new libcdio, libvpx and vcdimager - -* Thu Jan 18 2018 Leigh Scott - 1.2.9-3 -- Rebuilt for ffmpeg-3.5 git - -* Mon Jan 15 2018 Nicolas Chauvet - 1.2.9-2 -- Rebuilt for VA-API 1.0.0 - -* Fri Jan 12 2018 Xavier Bachelot 1.2.9-1 -- Update to 1.2.9. - -* Sun Aug 27 2017 Nicolas Chauvet - 1.2.8-4 -- Rebuilt for ImageMagick - -* Sat Apr 29 2017 Leigh Scott - 1.2.8-3 -- Rebuild for ffmpeg update - -* Tue Mar 21 2017 RPM Fusion Release Engineering - 1.2.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Tue Feb 21 2017 Xavier Bachelot 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 - 1.2.6-14 -- Rebuilt for libcdio-0.94 - -* Sat Jul 30 2016 Julian Sikorski - 1.2.6-13 -- Rebuilt for ffmpeg-3.1.1 - -* Mon Jul 25 2016 Sérgio Basto - 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 - 1.2.6-11 -- Build again with vcd support - -* Fri Jul 01 2016 Sérgio Basto - 1.2.6-10 -- Remove BR: vcdimager-devel and disable vcd; package retired in F24 - -* Sun May 01 2016 Sérgio Basto - 1.2.6-9 -- Add patch to build with ffmpeg3 - -* Tue Nov 04 2014 Nicolas Chauvet - 1.2.6-8 -- Rebuilt for vaapi 0.36 - -* Mon Oct 20 2014 Sérgio Basto - 1.2.6-7 -- Rebuilt for FFmpeg 2.4.3 - -* Wed Oct 01 2014 Sérgio Basto - 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 - 1.2.6-5 -- Rebuilt for FFmpeg 2.3.x (with FFmpeg 2.3.x in build root) - -* Sat Sep 27 2014 kwizart - 1.2.6-4 -- Rebuilt for FFmpeg 2.3x - -* Thu Sep 25 2014 Xavier Bachelot 1.2.6-3 -- Rebuild for ffmpeg 2.4. - -* Thu Aug 07 2014 Sérgio Basto - 1.2.6-2 -- Rebuilt for ffmpeg-2.3 - -* Sun Jul 06 2014 Xavier Bachelot 1.2.6-1 -- Update to 1.2.6. - -* Tue Apr 08 2014 Xavier Bachelot 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 1.2.4-5 -- Rebuild for ffmpeg 2.2. - -* Wed Feb 26 2014 Nicolas Chauvet - 1.2.4-4 -- Rebuilt for libcdio - -* Tue Nov 05 2013 Xavier Bachelot 1.2.4-3 -- Rebuild for ffmpeg 2.1. - -* Sat Oct 12 2013 Xavier Bachelot 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 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 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 1.1.21-10 -- Rebuild for libbluray-0.4.0. - -* Sat Aug 31 2013 Till Maas - 1.1.21-9 -- Disable directfb support for Fedora 20 and newer, because it was retired - -* Tue Aug 27 2013 Jon Ciesla - 1.1.21-8 -- libmng rebuild. - -* Sun Aug 04 2013 Fedora Release Engineering - 1.1.21-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Sat Mar 30 2013 Kevin Fenzi - 1.1.21-6 -- Rebuild for broken deps in rawhide - -* Tue Feb 12 2013 Kevin Kofler 1.1.21-5 -- find the Samba 4 libsmbclient.h using pkg-config, fixes FTBFS (#909825) - -* Mon Sep 17 2012 Kevin Kofler 1.1.21-4 -- rebuild for new directfb - -* Sun Jul 22 2012 Fedora Release Engineering - 1.1.21-3.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Sat Jul 21 2012 Kevin Kofler 1.1.21-2.1 -- disable libbluray support on F16, libbluray too old - -* Mon Jul 16 2012 Kevin Kofler 1.1.21-2 -- do not remove DVD plugin, not encumbered (only uses libdvdread/libdvdnav) - -* Tue Jun 12 2012 Xavier Bachelot 1.1.21-1 -- Update to 1.1.21. -- Enable libbluray support. - -* Sat Mar 10 2012 Rex Dieter 1.1.20.1-3 -- rebuild (ImageMagick) - -* Sat Jan 14 2012 Fedora Release Engineering - 1.1.20.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Tue Jan 03 2012 Kevin Kofler 1.1.20.1-1 -- update to 1.1.20.1 (bugfix release) -- drop upstreamed link-libdvdread patch - -* Sun Nov 20 2011 Kevin Kofler 1.1.20-1 -- update to 1.1.20 (#753758) -- use .xz tarball -- drop old conditionals -- drop ESD (esound) support on F17+ (native PulseAudio just works) -- drop autotools patch, run autogen.sh in %%prep instead -- drop unused deepbind patch -- drop xvmclib_header patch, fixed upstream -- use the system libdvdnav (and libdvdread) instead of the bundled one -- fix system libdvdnav support to also link libdvdread -- plugin ABI is now 1.30 - -* Fri Jul 15 2011 Kevin Kofler 1.1.19-7 -- rebuild for new DirectFB (1.5.0) - -* Mon Feb 14 2011 Rex Dieter 1.1.19-6 -- split v4l, libv4l handling -- omit v4l(1) bits (f15+) - -* Mon Feb 07 2011 Fedora Release Engineering - 1.1.19-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Mon Jan 24 2011 Rex Dieter - 1.1.19-4 -- xvmclib header changes, fixes ftbfs (#635653,#661071) - -* Sun Nov 28 2010 Kevin Kofler - 1.1.19-3 -- rebuild for new directfb (1.4.11) - -* Wed Sep 15 2010 Rex Dieter - 1.1.19-2 -- rebuild (ImageMagick) - -* Sun Jul 25 2010 Rex Dieter - 1.1.19-1 -- 1.1.19 - -* Mon Jul 19 2010 Rex Dieter - 1.1.18.1-3 -- no directfb on arm (yet) - -* Tue Jun 1 2010 Ville Skyttä - 1.1.18.1-2 -- Rebuild. - -* Sun Mar 07 2010 Rex Dieter - 1.1.18.1-1 -- xine-lib-1.1.18.1 - -* Sun Mar 07 2010 Rex Dieter - 1.1.18-2 -- rebuild (ImageMagick) - -* Wed Feb 24 2010 Rex Dieter - 1.1.18-1 -- xine-lib-1.1.18, plugin-abi 1.28 (#567913) - -* Sat Dec 12 2009 Rex Dieter - 1.1.17-3 -- bump flac_decoder priority (rh#301861,xine#225) - -* Mon Dec 07 2009 Bastien Nocera 1.1.17-2 -- Remove gnome-vfs2 plugin, it's mostly useless - -* Wed Dec 02 2009 Rex Dieter - 1.1.17-1 -- xine-lib-1.1.17, plugin-abi 1.27 - -* Sun Nov 29 2009 Rex Dieter - 1.1.16.3-5 -- move -pulseaudio into main pkg (f12+) -- update URL - -* Mon Jul 27 2009 Fedora Release Engineering - 1.1.16.3-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Thu Jul 02 2009 Rex Dieter - 1.1.16.3-3 -- rebuild (DirectFB) - -* Fri Apr 17 2009 Rex Dieter - 1.1.16.3-2.1 -- drop old_caca hacks/patches (F-9) - -* Fri Apr 10 2009 Rex Dieter - 1.1.16.3-2 -- fix modtracker mimetypes - -* Fri Apr 03 2009 Rex Dieter - 1.1.16.3-1 -- xine-lib-1.1.16.3, plugin-abi 1.26 - -* Thu Mar 26 2009 Rex Dieter - 1.1.16.2-6 -- add-mime-for-mod.patch - -* Tue Mar 10 2009 Kevin Kofler - 1.1.16.2-5 -- rebuild for new ImageMagick - -* Thu Feb 26 2009 Fedora Release Engineering - 1.1.16.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Fri Feb 20 2009 Rex Dieter - 1.1.16.2-3 -- xine-lib-devel muiltilib conflict (#477226) - -* Tue Feb 17 2009 Rex Dieter - 1.1.16.2-2 -- xine-lib-safe-audio-pause3 patch (#486255, kdebug#180339) - -* Tue Feb 10 2009 Kevin Kofler - 1.1.16.2-1.1 -- also patch the caca version check in configure(.ac) - -* Tue Feb 10 2009 Rex Dieter - 1.1.16.2-1 -- xine-lib-1.1.16.2 - -* Mon Feb 09 2009 Rex Dieter - 1.1.16.1-4 -- gapless-race-fix patch (kdebug#180339) - -* Sat Feb 07 2009 Rex Dieter - 1.1.16.1-3 -- safe-audio-pause patch (kdebug#180339) - -* Mon Jan 26 2009 Rex Dieter - 1.1.16.1-2 -- Provides: xine-lib(plugin-abi)%%{?_isa} = %%{plugin_abi} -- touchup Summary/Description - -* Fri Jan 23 2009 Rex Dieter - 1.1.16.1-1 -- xine-lib-1.1.16.1 -- include avsync patch (#470568) - -* Sun Jan 18 2009 Rex Dieter - 1.1.16-2 -- drop deepbind patch (#480504) -- caca support (EPEL) - -* Wed Jan 07 2009 Kevin Kofler - 1.1.16-1.1 -- patch for old libcaca in F9- - -* Wed Jan 07 2009 Rex Dieter - 1.1.16-1 -- xine-lib-1.1.16, plugin ABI 1.25 -- --with-external-libdvdnav, include mpeg demuxers (#213597) - -* Fri Dec 12 2008 Rex Dieter - 1.1.15-4 -- rebuild for pkgconfig deps - -* Tue Oct 28 2008 Kevin Kofler - 1.1.15-3 -- rebuild for new libcaca - -* Thu Oct 23 2008 Rex Dieter - 1.1.15-2 -- respin - -* Wed Aug 20 2008 Rex Dieter - 1.1.15-1 -- xine-lib-1.1.15, plugin ABI 1.24 (rh#455752, CVE-2008-3231) -- Obsoletes: -arts (f9+) - -* Sun Apr 27 2008 Kevin Kofler - 1.1.12-3 -- rebuild for new ImageMagick (6.4.0.10) - -* Thu Apr 24 2008 Rex Dieter - 1.1.12-2 -- CVE-2008-1878 - -* Wed Apr 16 2008 Ville Skyttä - 1.1.12-1 -- 1.1.12 (plugin ABI 1.21); qt, mkv, and pulseaudio patches applied upstream. - -* Wed Apr 9 2008 Ville Skyttä - 1.1.11.1-3 -- Apply upstream fixes for Quicktime (#441705) and Matroska regressions - introduced in 1.1.11.1. - -* Mon Apr 07 2008 Rex Dieter - 1.1.11.1-2 -- pulse-rework2 patch (#439731) -- -pulseaudio subpkg (#439731) - -* Sun Mar 30 2008 Ville Skyttä - 1.1.11.1-1 -- 1.1.11.1 (security update, #438663, CVE-2008-1482). -- Provide versioned xine-lib(plugin-abi) so 3rd party packages installing - plugins can use it instead of requiring a version of xine-lib. - -* Wed Mar 19 2008 Ville Skyttä - 1.1.11-1 -- 1.1.11 (security update, #438182, CVE-2008-0073). -- Drop jack and wavpack build conditionals. -- Specfile cleanups. - -* Fri Mar 7 2008 Rex Dieter - 1.1.10.1-1.1 -- xcb support for f7+ (#373411) - -* Fri Feb 8 2008 Ville Skyttä - 1.1.10.1-1 -- 1.1.10.1 (security update, #431541). - -* Sun Jan 27 2008 Ville Skyttä - 1.1.10-2 -- Include spu, spucc, and spucmml decoders (#213597). - -* Sun Jan 27 2008 Ville Skyttä - 1.1.10-1 -- 1.1.10 (security update). - -* Mon Jan 21 2008 Ville Skyttä - 1.1.9.1-3 -- Fix version number in libxine.pc (#429487). - -* Sun Jan 20 2008 Ville Skyttä - 1.1.9.1-2 -- Disable upstream "discard buffers on ao close" 1.1.9 changeset (#429182). - -* Sat Jan 12 2008 Ville Skyttä - 1.1.9.1-1 -- 1.1.9.1 (security update). - -* Sun Jan 6 2008 Ville Skyttä - 1.1.9-1 -- 1.1.9. - -* Thu Sep 27 2007 Ville Skyttä - 1.1.8-6 -- Enable wavpack support by default for all distros. - -* Sun Sep 23 2007 Ville Skyttä - 1.1.8-5 -- Enable JACK support by default for all distros. - -* Wed Sep 19 2007 Ville Skyttä - 1.1.8-4 -- Fix "--without wavpack" build. - -* Sat Sep 15 2007 Ville Skyttä - 1.1.8-3 -- Move XCB plugins to the main package. -- Make aalib, caca, pulseaudio, jack, and wavpack support optional at build - time in preparation for the first EPEL build. - -* Sun Sep 09 2007 Aurelien Bompard 1.1.8-2 -- remove the dependency from -extras to -arts, and use Obsoletes to - provide an upgrade path - -* Thu Aug 30 2007 Ville Skyttä - 1.1.8-1 -- 1.1.8, "open" patch applied upstream. -- Build XCB plugins by default for Fedora 8+ only. - -* Sat Aug 25 2007 Aurelien Bompard 1.1.7-3 -- Split the aRts plugin into its own subpackage - -* Tue Aug 14 2007 Ville Skyttä - 1.1.7-2 -- Include XCB output plugins (in -extras at least for now). -- Protect "open" with glibc 2.6.90 and -D_FORTIFY_SOURCE=2. -- Clean up %%configure options. -- License: GPLv2+ - -* Thu Jun 7 2007 Ville Skyttä - 1.1.7-1 -- 1.1.7. - -* Wed Jun 06 2007 Rex Dieter - 1.1.6-3 -- respin (for libmpcdec) - -* Wed Apr 25 2007 Ville Skyttä - 1.1.6-2 -- Make Real codec search path /usr/lib(64)/codecs again (#237743). - -* Wed Apr 18 2007 Ville Skyttä - 1.1.6-1 -- 1.1.6. - -* Wed Apr 11 2007 Ville Skyttä - 1.1.5-1 -- 1.1.5. -- Include GSM 06.10 decoder (#228186). -- Re-enable CACA support. - -* Sun Apr 8 2007 Ville Skyttä -- Exclude vidix dir on systems that don't have vidix. -- Specfile cleanups. - -* Mon Mar 26 2007 Ville Skyttä - 1.1.4-4 -- Add PulseAudio support (in -extras, #234035/Jost Diederichs). -- Adjust Samba build dependencies to work for both <= and > FC6. -- Add --with freetype and --with antialiasing build time options, - default disabled, and an upstream patch for FreeType memory leak (#233194). - -* Sat Mar 10 2007 Ville Skyttä - 1.1.4-3 -- Apply upstream fix for CVE-2007-1246. - -* Wed Feb 14 2007 Ville Skyttä - 1.1.4-2 -- Rebuild. - -* Wed Jan 31 2007 Ville Skyttä - 1.1.4-1 -- 1.1.4, with wavpack and system libmpcdec support. - -* Thu Jan 18 2007 Aurelien Bompard 1.1.3-4 -- rebuild - -* Wed Jan 3 2007 Ville Skyttä - 1.1.3-3 -- Fix libflac decoder with FLAC < 1.1.3 (#220961). -- Apply upstream patch for FLAC >= 1.1.3. - -* Sun Dec 17 2006 Ville Skyttä - 1.1.3-2 -- Don't run autotools during build. - -* Mon Dec 04 2006 Aurelien Bompard 1.1.3-1 -- version 1.1.3 -- patch2 applied upstream -- Disable CACA support by default, needs newer than what's in FE ATM. -- Split extras plugins in a separate package -- Enable JACK support (in extras subpackage) -- Enable DirectFB support (in extras subpackage) - -* Sat Nov 11 2006 Aurelien Bompard 1.1.2-18 -- Make shn files available to amarok. References: - http://xine.cvs.sourceforge.net/xine/xine-lib/src/demuxers/demux_shn.c?r1=1.1.2.2&r2=1.2 - https://launchpad.net/distros/ubuntu/+source/xine-lib/+bug/63130 - -* Wed Oct 18 2006 Aurelien Bompard 1.1.2-17 -- cleanup docs -- remove mms -- delete more source files in the cleanup script -- drop patch3 (affecting mms) - -* Tue Oct 17 2006 Aurelien Bompard 1.1.2-16 -- fix files list -- add BR gtk2-devel -- remove xineplug_decode_gdk_pixbuf.so from x86-only - -* Mon Oct 16 2006 Aurelien Bompard 1.1.2-15 -- removed libdts -- drop dxr patch (it's removed from tarball) -- list xineplug_decode_gdk_pixbuf.so and xineplug_vo_out_vidix.so only on x86 - -* Sun Oct 15 2006 Aurelien Bompard 1.1.2-14 -- update SOURCE1 to remove liba52 from tarball (patented) - -* Tue Sep 12 2006 Aurelien Bompard 1.1.2-13 -- drop patches 2 and 4 - -* Fri Sep 08 2006 Aurelien Bompard 1.1.2-12 -- initial Fedora Extras package