]> git.pld-linux.org Git - packages/xine-lib.git/commitdiff
- up to 1.2.13
authorJan Rękorajski <baggins@pld-linux.org>
Sat, 21 Oct 2023 11:51:02 +0000 (13:51 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Sat, 21 Oct 2023 11:51:02 +0000 (13:51 +0200)
extern.patch [deleted file]
ffmpeg4.patch [deleted file]
ffmpeg6.patch [new file with mode: 0644]
imagemagick7.patch [deleted file]
x32.patch [deleted file]
xine-lib-ac.patch [deleted file]
xine-lib-vdpau-hooks.patch [deleted file]
xine-lib.spec

diff --git a/extern.patch b/extern.patch
deleted file mode 100644 (file)
index 761b86b..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---- xine-lib-1.2.8/src/xine-engine/builtins.h~ 2017-02-21 12:13:13.000000000 +0100
-+++ xine-lib-1.2.8/src/xine-engine/builtins.h  2021-02-14 19:27:45.032199127 +0100
-@@ -31,7 +31,7 @@
- #include <xine/xine_internal.h>
--const plugin_info_t xine_builtin_plugin_info[7];
-+extern const plugin_info_t xine_builtin_plugin_info[7];
- #endif
---- xine-lib-1.2.8/src/libreal/real_common.h~  2017-02-21 12:13:13.000000000 +0100
-+++ xine-lib-1.2.8/src/libreal/real_common.h   2021-02-14 19:30:25.662805757 +0100
-@@ -75,10 +75,10 @@
-                        const char *const codec_name,
-                        const char *const codec_alternate);
--const decoder_info_t dec_info_realvideo;
-+extern const decoder_info_t dec_info_realvideo;
- void *init_realvdec (xine_t *xine, void *data);
--const decoder_info_t dec_info_realaudio;
-+extern const decoder_info_t dec_info_realaudio;
- void *init_realadec (xine_t *xine, void *data);
- #endif
diff --git a/ffmpeg4.patch b/ffmpeg4.patch
deleted file mode 100644 (file)
index 850a8fe..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
---- xine-lib-1.2.8/src/combined/ffmpeg/ff_audio_decoder.c~     2017-02-21 12:13:13.000000000 +0100
-+++ xine-lib-1.2.8/src/combined/ffmpeg/ff_audio_decoder.c      2018-04-29 00:29:06.993144238 +0200
-@@ -221,7 +221,7 @@
-     xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
-             _("ffmpeg_audio_dec: increasing buffer to %d to avoid overflow.\n"),
-             this->bufsize);
--    this->buf = xine_realloc_aligned (this->buf, this->bufsize + FF_INPUT_BUFFER_PADDING_SIZE);
-+    this->buf = xine_realloc_aligned (this->buf, this->bufsize + AV_INPUT_BUFFER_PADDING_SIZE);
-   }
- }
-@@ -232,9 +232,9 @@
-     free (this->context->extradata);
-     this->context->extradata_size = buf->decoder_info[2];
--    this->context->extradata = malloc (buf->decoder_info[2] + FF_INPUT_BUFFER_PADDING_SIZE);
-+    this->context->extradata = malloc (buf->decoder_info[2] + AV_INPUT_BUFFER_PADDING_SIZE);
-     memcpy (this->context->extradata, buf->decoder_info_ptr[2], buf->decoder_info[2]);
--    memset (this->context->extradata + buf->decoder_info[2], 0, FF_INPUT_BUFFER_PADDING_SIZE);
-+    memset (this->context->extradata + buf->decoder_info[2], 0, AV_INPUT_BUFFER_PADDING_SIZE);
-     ff_aac_mode_set (this, 0);
-   }
-@@ -451,10 +451,10 @@
-             this->ff_channels, this->ff_bits, this->ff_sample_rate,
-             this->context->block_align);
-           if (!data_len) break;
--          e = malloc (data_len + FF_INPUT_BUFFER_PADDING_SIZE);
-+          e = malloc (data_len + AV_INPUT_BUFFER_PADDING_SIZE);
-           if (!e) break;
-           xine_fast_memcpy (e, p, data_len);
--          memset (e + data_len, 0, FF_INPUT_BUFFER_PADDING_SIZE);
-+          memset (e + data_len, 0, AV_INPUT_BUFFER_PADDING_SIZE);
-           this->context->extradata = e;
-           this->context->extradata_size = data_len;
-           break;
-@@ -1008,7 +1008,7 @@
-       offset = 0;
-       /* pad input data */
--      memset(&this->buf[this->size], 0, FF_INPUT_BUFFER_PADDING_SIZE);
-+      memset(&this->buf[this->size], 0, AV_INPUT_BUFFER_PADDING_SIZE);
-       while (this->size>=0) {
---- xine-lib-1.2.8/src/combined/ffmpeg/ff_video_decoder.c.orig 2017-02-21 12:13:13.000000000 +0100
-+++ xine-lib-1.2.8/src/combined/ffmpeg/ff_video_decoder.c      2018-04-29 00:35:47.244275385 +0200
-@@ -869,16 +869,12 @@
-   this->stream->video_out->open (this->stream->video_out, this->stream);
-   this->edge = 0;
--  if(this->codec->capabilities & CODEC_CAP_DR1 && this->class->enable_dri) {
-+  if(this->codec->capabilities & AV_CODEC_CAP_DR1 && this->class->enable_dri) {
-     if (this->stream->video_out->get_capabilities (this->stream->video_out) & VO_CAP_CROP) {
-       /* We can crop. Fine. Lets allow decoders to paint over the frame edges.
-          This will be slightly faster. And it is also a workaround for buggy
-          v54 who likes to ignore EMU_EDGE for wmv2 and xvid. */
-       this->edge = XFF_EDGE_WIDTH ();
--    } else {
--      /* Some codecs (eg rv10) copy flags in init so it's necessary to set
--       * this flag here in case we are going to use direct rendering */
--      this->context->flags |= CODEC_FLAG_EMU_EDGE;
-     }
-   }
-@@ -887,7 +883,7 @@
-   this->context->codec_type = this->codec->type;
-   if (this->class->choose_speed_over_accuracy)
--    this->context->flags2 |= CODEC_FLAG2_FAST;
-+    this->context->flags2 |= AV_CODEC_FLAG2_FAST;
-   this->context->skip_loop_filter = skip_loop_filter_enum_values[this->class->skip_loop_filter_enum];
-@@ -912,7 +908,7 @@
-   /* enable direct rendering by default */
-   this->output_format = XINE_IMGFMT_YV12;
- #ifdef ENABLE_DIRECT_RENDERING
--  if( this->codec->capabilities & CODEC_CAP_DR1 && this->class->enable_dri ) {
-+  if( this->codec->capabilities & AV_CODEC_CAP_DR1 && this->class->enable_dri ) {
- #ifdef XFF_AV_BUFFER
-     this->context->get_buffer2 = get_buffer;
-     this->context->thread_safe_callbacks = 1;
-@@ -1456,7 +1452,7 @@
-     xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
-           _("ffmpeg_video_dec: increasing buffer to %d to avoid overflow.\n"),
-           this->bufsize);
--    this->buf = realloc(this->buf, this->bufsize + FF_INPUT_BUFFER_PADDING_SIZE );
-+    this->buf = realloc(this->buf, this->bufsize + AV_INPUT_BUFFER_PADDING_SIZE );
-   }
- }
-@@ -1467,7 +1463,7 @@
-   if (!p[0] && !p[1] && p[2] == 1 && p[3] == 0x0f) {
-     int i;
--    this->context->extradata = calloc(1, buf->size + FF_INPUT_BUFFER_PADDING_SIZE);
-+    this->context->extradata = calloc(1, buf->size + AV_INPUT_BUFFER_PADDING_SIZE);
-     this->context->extradata_size = 0;
-     for (i = 0; i < buf->size && i < 128; i++) {
-@@ -1596,10 +1592,10 @@
-       if (this->bih.biSize > sizeof(xine_bmiheader)) {
-       this->context->extradata_size = this->bih.biSize - sizeof(xine_bmiheader);
-         this->context->extradata = malloc(this->context->extradata_size +
--                                          FF_INPUT_BUFFER_PADDING_SIZE);
-+                                          AV_INPUT_BUFFER_PADDING_SIZE);
-         memcpy(this->context->extradata, this->buf + sizeof(xine_bmiheader),
-               this->context->extradata_size);
--        memset(this->context->extradata + this->context->extradata_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
-+        memset(this->context->extradata + this->context->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
-       }
-       this->context->bits_per_sample = this->bih.biBitCount;
-@@ -1620,7 +1616,7 @@
-       if (this->context->extradata_size < 8) {
-         this->context->extradata_size= 8;
-         this->context->extradata = calloc(1, this->context->extradata_size +
--                                          FF_INPUT_BUFFER_PADDING_SIZE);
-+                                          AV_INPUT_BUFFER_PADDING_SIZE);
-           ((uint32_t *)this->context->extradata)[0] = 0;
-         if (codec_type == BUF_VIDEO_RV10)
-            ((uint32_t *)this->context->extradata)[1] = 0x10000000;
-@@ -1628,10 +1624,10 @@
-            ((uint32_t *)this->context->extradata)[1] = 0x10003001;
-       } else {
-           this->context->extradata = malloc(this->context->extradata_size +
--                                          FF_INPUT_BUFFER_PADDING_SIZE);
-+                                          AV_INPUT_BUFFER_PADDING_SIZE);
-         memcpy(this->context->extradata, this->buf + 26,
-                this->context->extradata_size);
--          memset(this->context->extradata + this->context->extradata_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
-+          memset(this->context->extradata + this->context->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
-       }
-       xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
-@@ -1663,10 +1659,10 @@
-     lprintf("BUF_SPECIAL_STSD_ATOM\n");
-     this->context->extradata_size = buf->decoder_info[2];
-     this->context->extradata = malloc(buf->decoder_info[2] +
--                                    FF_INPUT_BUFFER_PADDING_SIZE);
-+                                    AV_INPUT_BUFFER_PADDING_SIZE);
-     memcpy(this->context->extradata, buf->decoder_info_ptr[2],
-       buf->decoder_info[2]);
--    memset(this->context->extradata + this->context->extradata_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
-+    memset(this->context->extradata + this->context->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
-   } else if (buf->decoder_info[1] == BUF_SPECIAL_DECODER_CONFIG &&
-             !this->context->extradata_size) {
-@@ -1674,10 +1670,10 @@
-     lprintf("BUF_SPECIAL_DECODER_CONFIG\n");
-     this->context->extradata_size = buf->decoder_info[2];
-     this->context->extradata = malloc(buf->decoder_info[2] +
--                                    FF_INPUT_BUFFER_PADDING_SIZE);
-+                                    AV_INPUT_BUFFER_PADDING_SIZE);
-     memcpy(this->context->extradata, buf->decoder_info_ptr[2],
-       buf->decoder_info[2]);
--    memset(this->context->extradata + this->context->extradata_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
-+    memset(this->context->extradata + this->context->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
-   }
-   else if (buf->decoder_info[1] == BUF_SPECIAL_PALETTE) {
-     unsigned int i;
-@@ -2085,7 +2081,7 @@
-   /* data accumulation */
-   if (buf->size > 0) {
-     if ((this->size == 0) &&
--      ((buf->size + FF_INPUT_BUFFER_PADDING_SIZE) < buf->max_size) &&
-+      ((buf->size + AV_INPUT_BUFFER_PADDING_SIZE) < buf->max_size) &&
-       (buf->decoder_flags & BUF_FLAG_FRAME_END)) {
-       /* buf contains a complete frame */
-       /* no memcpy needed */
-@@ -2121,7 +2117,7 @@
-     /* note: bitstream, alt bitstream reader or something will cause
-      * severe mpeg4 artifacts if padding is less than 32 bits.
-      */
--    memset(&chunk_buf[this->size], 0, FF_INPUT_BUFFER_PADDING_SIZE);
-+    memset(&chunk_buf[this->size], 0, AV_INPUT_BUFFER_PADDING_SIZE);
-     while (this->size > 0) {
-@@ -2732,7 +2728,7 @@
-   this->decoder_ok        = 0;
-   this->decoder_init_mode = 1;
--  this->buf               = calloc(1, VIDEOBUFSIZE + FF_INPUT_BUFFER_PADDING_SIZE);
-+  this->buf               = calloc(1, VIDEOBUFSIZE + AV_INPUT_BUFFER_PADDING_SIZE);
-   this->bufsize           = VIDEOBUFSIZE;
-   this->is_mpeg12         = 0;
---- xine-lib-1.2.8/src/combined/ffmpeg/ff_mpeg_parser.c~       2017-02-21 12:13:13.000000000 +0100
-+++ xine-lib-1.2.8/src/combined/ffmpeg/ff_mpeg_parser.c        2018-04-29 00:36:37.109002910 +0200
-@@ -50,7 +50,7 @@
- void mpeg_parser_init (mpeg_parser_t *parser)
- {
--  parser->chunk_buffer = malloc(BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE);
-+  parser->chunk_buffer = malloc(BUFFER_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);
-   mpeg_parser_reset(parser);
- }
---- xine-lib-1.2.8/src/dxr3/ffmpeg_encoder.c~  2017-02-21 12:13:13.000000000 +0100
-+++ xine-lib-1.2.8/src/dxr3/ffmpeg_encoder.c   2018-04-29 01:12:12.480759214 +0200
-@@ -207,7 +207,6 @@
-   this->context->height = frame->oheight;
-   this->context->gop_size = 0; /*intra frames only */
--  this->context->me_method = ME_ZERO; /*motion estimation type*/
-   this->context->time_base.den = 90000;
-   if (frame->vo_frame.duration > 90000 / 24)
diff --git a/ffmpeg6.patch b/ffmpeg6.patch
new file mode 100644 (file)
index 0000000..11056aa
--- /dev/null
@@ -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++] = '[';
diff --git a/imagemagick7.patch b/imagemagick7.patch
deleted file mode 100644 (file)
index d050323..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- xine-lib-1.2.6/src/video_dec/image.c.orig  2016-12-20 09:28:28.640838595 +0100
-+++ xine-lib-1.2.6/src/video_dec/image.c       2016-12-20 09:28:39.754382554 +0100
-@@ -39,7 +39,7 @@
- #define LOG
- */
--#include <wand/magick_wand.h>
-+#include <MagickWand/MagickWand.h>
- #ifdef PACKAGE_NAME
- #undef PACKAGE_BUGREPORT
- #undef PACKAGE_NAME
diff --git a/x32.patch b/x32.patch
deleted file mode 100644 (file)
index f660b15..0000000
--- a/x32.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urNp -x '*.orig' xine-lib-1.2.8.org/src/post/goom/convolve_fx.c xine-lib-1.2.8/src/post/goom/convolve_fx.c
---- xine-lib-1.2.8.org/src/post/goom/convolve_fx.c     2017-02-21 12:13:13.000000000 +0100
-+++ xine-lib-1.2.8/src/post/goom/convolve_fx.c 2022-02-14 00:14:02.757106126 +0100
-@@ -152,7 +152,7 @@ static void create_output_with_brightnes
-     yprime += c;
- #if defined(HAVE_MMX) && !defined(__sun)
--#if defined(ARCH_X86_64)
-+#if defined(ARCH_X86_64) && !defined(__ILP32__)
-     /* 64-bit os version. */
-     __asm__ __volatile__
-       ("\n\t pxor  %%mm7,  %%mm7"  /* mm7 = 0   */
-diff -urNp -x '*.orig' xine-lib-1.2.8.org/src/post/planar/noise.c xine-lib-1.2.8/src/post/planar/noise.c
---- xine-lib-1.2.8.org/src/post/planar/noise.c 2017-02-21 12:13:13.000000000 +0100
-+++ xine-lib-1.2.8/src/post/planar/noise.c     2022-02-14 00:14:02.757106126 +0100
-@@ -31,7 +31,7 @@
- #include <math.h>
- #include <pthread.h>
--#ifdef ARCH_X86_64
-+#if defined(ARCH_X86_64) && !defined(__ILP32__)
- #  define REG_a  "rax"
- #  define intarch_t int64_t
- #else
diff --git a/xine-lib-ac.patch b/xine-lib-ac.patch
deleted file mode 100644 (file)
index 3d813e2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- xine-lib-1.2.1/configure.ac~       2012-02-15 09:07:21.000000000 +0100
-+++ xine-lib-1.2.1/configure.ac        2012-02-15 09:11:13.049069705 +0100
-@@ -164,6 +164,7 @@
- AC_PROG_CC
- AM_PROG_CC_C_O
-+AC_PROG_CXX
- AC_GNU_SOURCE
- AC_ISC_POSIX
diff --git a/xine-lib-vdpau-hooks.patch b/xine-lib-vdpau-hooks.patch
deleted file mode 100644 (file)
index 79773e1..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-diff -urNp -x '*.orig' xine-lib-1.2.8.org/src/video_out/Makefile.am xine-lib-1.2.8/src/video_out/Makefile.am
---- xine-lib-1.2.8.org/src/video_out/Makefile.am       2017-02-21 12:13:13.000000000 +0100
-+++ xine-lib-1.2.8/src/video_out/Makefile.am   2022-02-14 00:14:01.953771680 +0100
-@@ -48,6 +48,9 @@ endif
- if ENABLE_VDPAU
- vdpau_module = xineplug_vo_out_vdpau.la
-+
-+xine_includedir = $(includedir)/xine
-+xine_include_HEADERS = video_out_vdpau.h
- endif
- if ENABLE_VAAPI
-diff -urNp -x '*.orig' xine-lib-1.2.8.org/src/video_out/video_out_vdpau.c xine-lib-1.2.8/src/video_out/video_out_vdpau.c
---- xine-lib-1.2.8.org/src/video_out/video_out_vdpau.c 2017-02-21 12:13:13.000000000 +0100
-+++ xine-lib-1.2.8/src/video_out/video_out_vdpau.c     2022-02-14 00:14:01.953771680 +0100
-@@ -51,6 +51,7 @@
- #include <vdpau/vdpau_x11.h>
- #include "accel_vdpau.h"
-+#include "video_out_vdpau.h"
- #define NUM_FRAMES_BACK 1
-@@ -2637,6 +2638,7 @@ static vo_driver_t *vdpau_open_plugin (v
- {
-   vdpau_class_t       *class   = (vdpau_class_t *) class_gen;
-   x11_visual_t        *visual  = (x11_visual_t *) visual_gen;
-+  x11_visual_vdpau_t  *vdpau   = visual->d ? NULL : (x11_visual_vdpau_t *) visual_gen;
-   vdpau_driver_t      *this;
-   config_values_t      *config  = class->xine->config;
-   int i;
-@@ -2713,15 +2715,22 @@ static vo_driver_t *vdpau_open_plugin (v
-   this->ovl_src_rect.x0 = 0;
-   this->ovl_src_rect.y0 = 0;
--  VdpStatus st = vdp_device_create_x11( visual->display, visual->screen, &vdp_device, &vdp_get_proc_address );
--  if ( st != VDP_STATUS_OK ) {
--    fprintf(stderr, "vo_vdpau: Can't create vdp device : " );
--    if ( st == VDP_STATUS_NO_IMPLEMENTATION )
--      fprintf(stderr, "No vdpau implementation.\n" );
--    else
--      fprintf(stderr, "unsupported GPU?\n" );
--    vdpau_dispose( &this->vo_driver );
--    return NULL;
-+  VdpStatus st;
-+  if (vdpau) {
-+    vdp_device           = vdpau->device;
-+    vdp_get_proc_address = vdpau->vdp_get_proc_address;
-+  }
-+  else {
-+    st = vdp_device_create_x11( visual->display, visual->screen, &vdp_device, &vdp_get_proc_address );
-+    if ( st != VDP_STATUS_OK ) {
-+      fprintf(stderr, "vo_vdpau: Can't create vdp device : " );
-+      if ( st == VDP_STATUS_NO_IMPLEMENTATION )
-+        fprintf(stderr, "No vdpau implementation.\n" );
-+      else
-+        fprintf(stderr, "unsupported GPU?\n" );
-+      vdpau_dispose( &this->vo_driver );
-+      return NULL;
-+    }
-   }
-   st = vdp_get_proc_address( vdp_device, VDP_FUNC_ID_GET_ERROR_STRING , (void*)&vdp_get_error_string );
-   if ( vdpau_init_error( st, "Can't get GET_ERROR_STRING proc address !!", &this->vo_driver, 0 ) )
-@@ -2929,6 +2938,22 @@ static vo_driver_t *vdpau_open_plugin (v
-   if ( vdpau_init_error( st, "Can't get PREEMPTION_CALLBACK_REGISTER proc address !!", &this->vo_driver, 1 ) )
-     return NULL;
-+  /* Check for extended initialization */
-+  if (vdpau) {
-+    vdp_queue_target_create_x11       = vdpau->vdp_queue_target_create_x11;
-+    vdp_queue_target_destroy          = vdpau->vdp_queue_target_destroy;
-+    vdp_queue_create                  = vdpau->vdp_queue_create;
-+    vdp_queue_destroy                 = vdpau->vdp_queue_destroy;
-+    vdp_queue_display                 = vdpau->vdp_queue_display;
-+    vdp_queue_block                   = vdpau->vdp_queue_block;
-+    vdp_queue_set_background_color    = vdpau->vdp_queue_set_background_color;
-+    vdp_queue_get_time                = vdpau->vdp_queue_get_time;
-+    vdp_queue_query_surface_status    = vdpau->vdp_queue_query_surface_status;
-+
-+    vdp_preemption_callback_register  = vdpau->vdp_preemption_callback_register;
-+  }
-+
-+
-   st = vdp_preemption_callback_register(vdp_device, &vdp_preemption_callback, (void*)this);
-   if ( vdpau_init_error( st, "Can't register preemption callback !!", &this->vo_driver, 1 ) )
-     return NULL;
-diff -urNp -x '*.orig' xine-lib-1.2.8.org/src/video_out/video_out_vdpau.h xine-lib-1.2.8/src/video_out/video_out_vdpau.h
---- xine-lib-1.2.8.org/src/video_out/video_out_vdpau.h 1970-01-01 01:00:00.000000000 +0100
-+++ xine-lib-1.2.8/src/video_out/video_out_vdpau.h     2022-02-14 00:14:01.953771680 +0100
-@@ -0,0 +1,58 @@
-+/*
-+ * kate: space-indent on; indent-width 2; mixedindent off; indent-mode cstyle; remove-trailing-space on;
-+ * Copyright (C) 2008 the xine project
-+ * Copyright (C) 2008 Christophe Thommeret <hftom@free.fr>
-+ *
-+ * This file is part of xine, a free video player.
-+ *
-+ * xine is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * xine is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
-+ *
-+ *
-+ * video_out_vdpau.c, a video output plugin
-+ * using VDPAU (Video Decode and Presentation Api for Unix)
-+ *
-+ *
-+ */
-+
-+#ifndef __VIDEO_OUT__VDPAU_H__
-+#define __VIDEO_OUT__VDPAU_H__
-+
-+#include <xine.h>
-+
-+#include <vdpau/vdpau_x11.h>
-+
-+
-+typedef struct {
-+  x11_visual_t  x11;  // if x11.d (drawable) is zero, it will use this extended struct
-+
-+  VdpDevice device;
-+
-+  VdpGetProcAddress *vdp_get_proc_address;
-+
-+  VdpPresentationQueueTargetCreateX11 *vdp_queue_target_create_x11;
-+  VdpPresentationQueueTargetDestroy *vdp_queue_target_destroy;
-+  VdpPresentationQueueCreate *vdp_queue_create;
-+  VdpPresentationQueueDestroy *vdp_queue_destroy;
-+  VdpPresentationQueueDisplay *vdp_queue_display;
-+  VdpPresentationQueueBlockUntilSurfaceIdle *vdp_queue_block;
-+  VdpPresentationQueueSetBackgroundColor *vdp_queue_set_background_color;
-+  VdpPresentationQueueGetTime *vdp_queue_get_time;
-+  VdpPresentationQueueQuerySurfaceStatus *vdp_queue_query_surface_status;
-+
-+  VdpPreemptionCallbackRegister *vdp_preemption_callback_register;
-+} x11_visual_vdpau_t;
-+
-+#endif
-+
index 41c8eb1214f4888961748580d3cee46e57ff4dce..55d59ef8a02a47852ceb13136c89178610f8912a 100644 (file)
@@ -40,24 +40,18 @@ Summary(ko.UTF-8):  공개 동영상 플레이어
 Summary(pl.UTF-8):     Odtwarzacz filmów
 Summary(pt_BR.UTF-8):  Xine, um player de video
 Name:          xine-lib
-Version:       1.2.8
-Release:       22
+Version:       1.2.13
+Release:       1
 Epoch:         2
 License:       GPL v2+
 Group:         Libraries
-Source0:       http://downloads.sourceforge.net/xine/%{name}-%{version}.tar.xz
-# Source0-md5: 427cc4568632eea725d5169a4a50ff22
+Source0:       https://downloads.sourceforge.net/xine/%{name}-%{version}.tar.xz
+# Source0-md5: 9e1be39857b7a3cd7cc0f2b96331ff22
 Patch0:                %{name}-nolibs.patch
 Patch1:                %{name}-win32-path.patch
 Patch2:                %{name}-sh.patch
-Patch3:                %{name}-ac.patch
-# from DirectFB 1.7.0
-Patch4:                %{name}-vdpau-hooks.patch
-Patch5:                x32.patch
-Patch6:                ffmpeg4.patch
-Patch8:                imagemagick7.patch
-Patch9:                extern.patch
-URL:           http://xine.sourceforge.net/
+Patch3:                ffmpeg6.patch
+URL:           https://xine.sourceforge.net/
 %{?with_directfb:BuildRequires:        DirectFB-devel >= 0.9.22}
 %{?with_fusionsound:BuildRequires:     FusionSound-devel >= 0.9.23}
 BuildRequires: ImageMagick-devel >= 1:6.0.0
@@ -131,7 +125,7 @@ Obsoletes:  xine-output-video-syncfb
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 # based on libtool numbers
-%define                xine_pluginsdir %{_libdir}/xine/plugins/2.6
+%define                xine_pluginsdir %{_libdir}/xine/plugins/2.11
 
 %define                specflags       -fomit-frame-pointer
 
@@ -968,11 +962,6 @@ XINE - wtyczka postprocessingu oparta na libpostproc z pakietu FFmpeg.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch8 -p1
-%patch9 -p1
 
 %build
 %{__gettextize}
@@ -1057,13 +1046,13 @@ rm -rf $RPM_BUILD_ROOT
 
 # input plugins
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_cdda.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_crypto.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_dvb.so
-%attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_http.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_mms.so
-%attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_net.so
-%attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_pnm.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_network.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_nfs.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_rtp.so
-%attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_rtsp.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_ssh.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_inp_vcdo.so
 
 # demuxer plugins
@@ -1079,23 +1068,38 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_dmx_video.so
 
 # decoder plugins
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_dav1d.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_dvaudio.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_gsm610.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_libaom.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_libpng.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_lpcm.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_mpeg2.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_rawvideo.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_real.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_spucc.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_spucmml.so
-%attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_spuhdmv.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_spudvb.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_spuhdmv.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_decode_to_spdif.so
+
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_va_display_drm.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_va_display_glx.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_va_display_wl.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_va_display_x11.so
 
 # output plugins
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_vo_gl_egl_wl.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_vo_gl_egl_x11.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_vo_gl_glx.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_vo_out_raw.so
 
 # ?
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_hw_frame_vaapi.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_nsf.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_sputext.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_tls_gnutls.so
+%attr(755,root,root) %{xine_pluginsdir}/xineplug_tls_openssl.so
 %attr(755,root,root) %{xine_pluginsdir}/xineplug_vdr.so
 
 %files devel
This page took 0.355373 seconds and 4 git commands to generate.