[arch-commits] Commit in xine-lib/repos (10 files)

Eric Bélanger eric at archlinux.org
Mon Oct 31 22:51:19 EDT 2011


    Date: Monday, October 31, 2011 @ 22:51:18
  Author: eric
Revision: 141637

archrelease: copy trunk to staging-i686, staging-x86_64

Added:
  xine-lib/repos/staging-i686/
  xine-lib/repos/staging-i686/PKGBUILD
    (from rev 141636, xine-lib/trunk/PKGBUILD)
  xine-lib/repos/staging-i686/xine-lib-1.1.1-configure-no-mcpu-march.patch
    (from rev 141636, xine-lib/trunk/xine-lib-1.1.1-configure-no-mcpu-march.patch)
  xine-lib/repos/staging-i686/xine-lib-1.1.19-ffmpeg.patch
    (from rev 141636, xine-lib/trunk/xine-lib-1.1.19-ffmpeg.patch)
  xine-lib/repos/staging-i686/xine-lib-1.1.19-xvmc.patch
    (from rev 141636, xine-lib/trunk/xine-lib-1.1.19-xvmc.patch)
  xine-lib/repos/staging-x86_64/
  xine-lib/repos/staging-x86_64/PKGBUILD
    (from rev 141636, xine-lib/trunk/PKGBUILD)
  xine-lib/repos/staging-x86_64/xine-lib-1.1.1-configure-no-mcpu-march.patch
    (from rev 141636, xine-lib/trunk/xine-lib-1.1.1-configure-no-mcpu-march.patch)
  xine-lib/repos/staging-x86_64/xine-lib-1.1.19-ffmpeg.patch
    (from rev 141636, xine-lib/trunk/xine-lib-1.1.19-ffmpeg.patch)
  xine-lib/repos/staging-x86_64/xine-lib-1.1.19-xvmc.patch
    (from rev 141636, xine-lib/trunk/xine-lib-1.1.19-xvmc.patch)

-------------------------------------------------------------+
 staging-i686/PKGBUILD                                       |   56 +
 staging-i686/xine-lib-1.1.1-configure-no-mcpu-march.patch   |   13 
 staging-i686/xine-lib-1.1.19-ffmpeg.patch                   |  380 ++++++++++
 staging-i686/xine-lib-1.1.19-xvmc.patch                     |   17 
 staging-x86_64/PKGBUILD                                     |   56 +
 staging-x86_64/xine-lib-1.1.1-configure-no-mcpu-march.patch |   13 
 staging-x86_64/xine-lib-1.1.19-ffmpeg.patch                 |  380 ++++++++++
 staging-x86_64/xine-lib-1.1.19-xvmc.patch                   |   17 
 8 files changed, 932 insertions(+)

Copied: xine-lib/repos/staging-i686/PKGBUILD (from rev 141636, xine-lib/trunk/PKGBUILD)
===================================================================
--- staging-i686/PKGBUILD	                        (rev 0)
+++ staging-i686/PKGBUILD	2011-11-01 02:51:18 UTC (rev 141637)
@@ -0,0 +1,56 @@
+# $Id$
+# Maintainer: Eric Bélanger <eric at archlinux.org>
+
+pkgname=xine-lib
+pkgver=1.1.19
+pkgrel=6
+pkgdesc="A multimedia playback engine"
+arch=('i686' 'x86_64')
+url="http://www.xine-project.org"
+license=('LGPL' 'GPL')
+depends=('libxvmc' 'flac' 'ffmpeg' 'libxinerama' 'libmodplug')
+makedepends=('wavpack' 'faad2' 'libmng' 'imagemagick' 'smbclient' 'mesa'
+             'v4l-utils' 'vcdimager' 'jack' 'gdk-pixbuf2' 'libpulse' 'speex' 'aalib')
+optdepends=('imagemagick: for using the imagemagick plugin' \
+            'smbclient: for using the smb plugin' \
+            'jack: for using the jack plugin' \
+            'vcdimager: for using the vcd plugin' \
+            'gdk-pixbuf2: for using the gdk-pixbuf plugin' \
+            'mesa: for using the opengl plugin' \
+            'libpulse: for using the pulseaudio plugin' \
+            'speex: for using the speex plugin' \
+            'v4l-utils: for using the v4l plugin' \
+            'wavpack: for using the wavpack plugin' \
+            'faad2: for using the faad plugin' \
+            'libmng: for using the mng plugin' \
+            'aalib: for using the aalib plugin')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/xine/${pkgname}-${pkgver}.tar.xz
+        xine-lib-1.1.1-configure-no-mcpu-march.patch xine-lib-1.1.19-xvmc.patch
+        xine-lib-1.1.19-ffmpeg.patch)
+sha1sums=('f65f762d2e16adf04b9d715c91ee0bc02c322a7d'
+          '121a8358d7919b2e51067412373f52848290338a'
+          '920bf27e6e3523dfe4cc9c802ff713e9688a3f34'
+          'd70f14c3dbb59b65c581575fa1fe13aeeb38f1b1')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -p0 -i "${srcdir}/xine-lib-1.1.1-configure-no-mcpu-march.patch"
+  patch -p0 -i "${srcdir}/xine-lib-1.1.19-xvmc.patch"
+  patch -p1 -i "${srcdir}/xine-lib-1.1.19-ffmpeg.patch"
+  sed -i 's|linux/videodev.h|libv4l1-videodev.h|' \
+    configure.ac src/input/input_v4l.c src/video_out/video_out_syncfb.h
+
+  libtoolize --force --copy
+  aclocal -I m4
+  autoconf
+  automake --add-missing
+
+  ./configure --prefix=/usr --with-wavpack --with-external-ffmpeg --with-external-libfaad
+  make
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+}

Copied: xine-lib/repos/staging-i686/xine-lib-1.1.1-configure-no-mcpu-march.patch (from rev 141636, xine-lib/trunk/xine-lib-1.1.1-configure-no-mcpu-march.patch)
===================================================================
--- staging-i686/xine-lib-1.1.1-configure-no-mcpu-march.patch	                        (rev 0)
+++ staging-i686/xine-lib-1.1.1-configure-no-mcpu-march.patch	2011-11-01 02:51:18 UTC (rev 141637)
@@ -0,0 +1,13 @@
+--- m4/optimizations.m4.orig	2005-11-27 01:20:08.000000000 +0100
++++ m4/optimizations.m4	2005-11-27 01:22:56.000000000 +0100
+@@ -161,10 +161,6 @@
+                   ;;
+ 
+               esac
+-              if test x"$archopt_val" != x; then
+-                  CFLAGS="$sarchopt=$archopt_val $CFLAGS"
+-                  DEBUG_CFLAGS="$sarchopt=$archopt_val $DEBUG_CFLAGS"
+-              fi
+             fi
+           else
+             dnl we have the Intel compiler

Copied: xine-lib/repos/staging-i686/xine-lib-1.1.19-ffmpeg.patch (from rev 141636, xine-lib/trunk/xine-lib-1.1.19-ffmpeg.patch)
===================================================================
--- staging-i686/xine-lib-1.1.19-ffmpeg.patch	                        (rev 0)
+++ staging-i686/xine-lib-1.1.19-ffmpeg.patch	2011-11-01 02:51:18 UTC (rev 141637)
@@ -0,0 +1,380 @@
+diff -r 717450d734f7 src/combined/ffmpeg/ff_audio_decoder.c
+--- a/src/combined/ffmpeg/ff_audio_decoder.c	Mon May 16 15:49:02 2011 +0100
++++ b/src/combined/ffmpeg/ff_audio_decoder.c	Mon May 16 19:46:49 2011 -0400
+@@ -46,6 +46,12 @@
+ 
+ #define AUDIOBUFSIZE (64 * 1024)
+ 
++#if LIBAVCODEC_VERSION_MAJOR >= 53 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 32)
++#  define AVAUDIO 3
++#else
++#  define AVAUDIO 2
++#endif
++
+ typedef struct {
+   audio_decoder_class_t   decoder_class;
+ } ff_audio_class_t;
+@@ -255,6 +261,9 @@
+       buf->decoder_info[2]);
+ 
+   } else if (!(buf->decoder_flags & BUF_FLAG_SPECIAL)) {
++#if AVAUDIO > 2
++    AVPacket avpkt;
++#endif
+ 
+     if( !this->decoder_ok ) {
+       if ( ! this->context || ! this->codec ) {
+@@ -286,11 +295,21 @@
+     if (!this->output_open) {
+       if (!this->audio_bits || !this->audio_sample_rate || !this->audio_channels) {
+         decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
++#if AVAUDIO > 2
++	av_init_packet (&avpkt);
++	avpkt.data = (uint8_t *)&this->buf[0];
++	avpkt.size = this->size;
++	avpkt.flags = AV_PKT_FLAG_KEY;
++	avcodec_decode_audio3 (this->context,
++			       (int16_t *)this->decode_buffer,
++			       &decode_buffer_size, &avpkt);
++#else
+         avcodec_decode_audio2 (this->context,
+                               (int16_t *)this->decode_buffer,
+                               &decode_buffer_size,
+                               &this->buf[0],
+                               this->size);
++#endif
+ 	this->audio_bits = this->context->bits_per_sample;
+ 	this->audio_sample_rate = this->context->sample_rate;
+ 	this->audio_channels = this->context->channels;
+@@ -311,12 +330,21 @@
+       offset = 0;
+       while (this->size>0) {
+         decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
++#if AVAUDIO > 2
++	av_init_packet (&avpkt);
++	avpkt.data = (uint8_t *)&this->buf[offset];
++	avpkt.size = this->size;
++	avpkt.flags = AV_PKT_FLAG_KEY;
++	bytes_consumed = avcodec_decode_audio3 (this->context,
++						(int16_t *)this->decode_buffer,
++						&decode_buffer_size, &avpkt);
++#else
+         bytes_consumed = avcodec_decode_audio2 (this->context,
+                                                (int16_t *)this->decode_buffer,
+                                                &decode_buffer_size,
+                                                &this->buf[offset],
+                                                this->size);
+-
++#endif
+         if (bytes_consumed<0) {
+           xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+                    "ffmpeg_audio_dec: error decompressing audio frame\n");
+diff -r 717450d734f7 src/combined/ffmpeg/ff_video_decoder.c
+--- a/src/combined/ffmpeg/ff_video_decoder.c	Mon May 16 15:49:02 2011 +0100
++++ b/src/combined/ffmpeg/ff_video_decoder.c	Mon May 16 19:46:49 2011 -0400
+@@ -58,6 +58,14 @@
+ 
+ #define ENABLE_DIRECT_RENDERING
+ 
++#if LIBAVCODEC_VERSION_MAJOR >= 53 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 32)
++#  define AVVIDEO 2
++#else
++#  define AVVIDEO 1
++#  define pp_context	pp_context_t
++#  define pp_mode	pp_mode_t
++#endif
++
+ /* reordered_opaque appeared in libavcodec 51.68.0 */
+ #define AVCODEC_HAS_REORDERED_OPAQUE
+ #if LIBAVCODEC_VERSION_INT < 0x334400
+@@ -116,8 +124,8 @@
+ 
+   int               pp_quality;
+   int               pp_flags;
+-  pp_context_t     *pp_context;
+-  pp_mode_t        *pp_mode;
++  pp_context       *our_context;
++  pp_mode          *our_mode;
+ 
+   /* mpeg-es parsing */
+   mpeg_parser_t    *mpeg_parser;
+@@ -444,23 +452,23 @@
+   this->pp_quality = this->class->pp_quality;
+ 
+   if(this->pp_available && this->pp_quality) {
+-    if(!this->pp_context && this->context)
+-      this->pp_context = pp_get_context(this->context->width, this->context->height,
++    if(!this->our_context && this->context)
++      this->our_context = pp_get_context(this->context->width, this->context->height,
+                                         this->pp_flags);
+-    if(this->pp_mode)
+-      pp_free_mode(this->pp_mode);
++    if(this->our_mode)
++      pp_free_mode(this->our_mode);
+ 
+-    this->pp_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a",
++    this->our_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a",
+                                                     this->pp_quality);
+   } else {
+-    if(this->pp_mode) {
+-      pp_free_mode(this->pp_mode);
+-      this->pp_mode = NULL;
++    if(this->our_mode) {
++      pp_free_mode(this->our_mode);
++      this->our_mode = NULL;
+     }
+ 
+-    if(this->pp_context) {
+-      pp_free_context(this->pp_context);
+-      this->pp_context = NULL;
++    if(this->our_context) {
++      pp_free_context(this->our_context);
++      this->our_context = NULL;
+     }
+   }
+ }
+@@ -1055,12 +1063,26 @@
+     }
+ 
+     /* skip decoding b frames if too late */
++#if AVVIDEO > 1
++    this->context->skip_frame = (this->skipframes > 0) ? AVDISCARD_NONREF : AVDISCARD_DEFAULT;
++#else
+     this->context->hurry_up = (this->skipframes > 0);
++#endif
+ 
+     lprintf("avcodec_decode_video: size=%d\n", this->mpeg_parser->buffer_size);
++#if AVVIDEO > 1
++    AVPacket avpkt;
++    av_init_packet(&avpkt);
++    avpkt.data = (uint8_t *)this->mpeg_parser->chunk_buffer;
++    avpkt.size = this->mpeg_parser->buffer_size;
++    avpkt.flags = AV_PKT_FLAG_KEY;
++    len = avcodec_decode_video2 (this->context, this->av_frame,
++				 &got_picture, &avpkt);
++#else
+     len = avcodec_decode_video (this->context, this->av_frame,
+                                 &got_picture, this->mpeg_parser->chunk_buffer,
+                                 this->mpeg_parser->buffer_size);
++#endif
+     lprintf("avcodec_decode_video: decoded_size=%d, got_picture=%d\n",
+             len, got_picture);
+     len = current - buf->content - offset;
+@@ -1112,7 +1134,13 @@
+ 
+     } else {
+ 
+-      if (this->context->hurry_up) {
++      if (
++#if AVVIDEO > 1
++	  this->context->skip_frame != AVDISCARD_DEFAULT
++#else
++	  this->context->hurry_up
++#endif
++	 ) {
+         /* skipped frame, output a bad frame */
+         img = this->stream->video_out->get_frame (this->stream->video_out,
+                                                   this->bih.biWidth,
+@@ -1304,13 +1332,25 @@
+         got_picture = 0;
+       } else {
+         /* skip decoding b frames if too late */
++#if AVVIDEO > 1
++	this->context->skip_frame = (this->skipframes > 0) ? AVDISCARD_NONREF : AVDISCARD_DEFAULT;
++#else
+         this->context->hurry_up = (this->skipframes > 0);
+-
++#endif
+         lprintf("buffer size: %d\n", this->size);
++#if AVVIDEO > 1
++	AVPacket avpkt;
++	av_init_packet(&avpkt);
++	avpkt.data = (uint8_t *)&chunk_buf[offset];
++	avpkt.size = this->size;
++	avpkt.flags = AV_PKT_FLAG_KEY;
++	len = avcodec_decode_video2 (this->context, this->av_frame,
++				     &got_picture, &avpkt);
++#else
+         len = avcodec_decode_video (this->context, this->av_frame,
+                                     &got_picture, &chunk_buf[offset],
+                                     this->size);
+-
++#endif
+ #ifdef AVCODEC_HAS_REORDERED_OPAQUE
+         /* reset consumed pts value */
+         this->context->reordered_opaque = ff_tag_pts(this, 0);
+@@ -1432,7 +1472,7 @@
+                         img->base, img->pitches,
+                         img->width, img->height,
+                         this->av_frame->qscale_table, this->av_frame->qstride,
+-                        this->pp_mode, this->pp_context,
++                        this->our_mode, this->our_context,
+                         this->av_frame->pict_type);
+ 
+         } else if (!this->av_frame->opaque) {
+@@ -1676,11 +1716,11 @@
+     free(this->buf);
+   this->buf = NULL;
+ 
+-  if(this->pp_context)
+-    pp_free_context(this->pp_context);
++  if(this->our_context)
++    pp_free_context(this->our_context);
+ 
+-  if(this->pp_mode)
+-    pp_free_mode(this->pp_mode);
++  if(this->our_mode)
++    pp_free_mode(this->our_mode);
+ 
+   mpeg_parser_dispose(this->mpeg_parser);
+ 
+@@ -1721,8 +1761,8 @@
+   this->aspect_ratio      = 0;
+ 
+   this->pp_quality        = 0;
+-  this->pp_context        = NULL;
+-  this->pp_mode           = NULL;
++  this->our_context       = NULL;
++  this->our_mode          = NULL;
+ 
+   this->mpeg_parser       = NULL;
+ 
+diff -r 717450d734f7 src/post/planar/pp.c
+--- a/src/post/planar/pp.c	Mon May 16 15:49:02 2011 +0100
++++ b/src/post/planar/pp.c	Mon May 16 19:46:49 2011 -0400
+@@ -35,6 +35,12 @@
+ #  include <libpostproc/postprocess.h>
+ #endif
+ 
++#if LIBPOSTPROC_VERSION_MAJOR < 52
++#  define pp_context	pp_context_t
++#  define pp_mode	pp_mode_t
++#  define PP_PARAMETERS_T
++#endif
++
+ #define PP_STRING_SIZE 256 /* size of pp mode string (including all options) */
+ 
+ /* plugin class initialization function */
+@@ -76,14 +82,15 @@
+ 
+   /* libpostproc specific stuff */
+   int                pp_flags;
+-  pp_context_t      *pp_context;
+-  pp_mode_t         *pp_mode;
++  pp_context        *our_context;
++  pp_mode           *our_mode;
+ 
+   pthread_mutex_t    lock;
+ };
+ 
+ 
+ static int set_parameters (xine_post_t *this_gen, void *param_gen) {
++#ifdef PP_PARAMETERS_T
+   post_plugin_pp_t *this = (post_plugin_pp_t *)this_gen;
+   pp_parameters_t *param = (pp_parameters_t *)param_gen;
+ 
+@@ -92,17 +99,18 @@
+   memcpy( &this->params, param, sizeof(pp_parameters_t) );
+ 
+   pthread_mutex_unlock (&this->lock);
+-
++#endif
+   return 1;
+ }
+ 
+ static int get_parameters (xine_post_t *this_gen, void *param_gen) {
++#ifdef PP_PARAMETERS_T
+   post_plugin_pp_t *this = (post_plugin_pp_t *)this_gen;
+   pp_parameters_t *param = (pp_parameters_t *)param_gen;
+ 
+ 
+   memcpy( param, &this->params, sizeof(pp_parameters_t) );
+-
++#endif
+   return 1;
+ }
+ 
+@@ -202,8 +210,8 @@
+   if(cpu_caps & MM_ACCEL_X86_3DNOW)
+     this->pp_flags |= PP_CPU_CAPS_3DNOW;
+ 
+-  this->pp_mode = NULL;
+-  this->pp_context = NULL;
++  this->our_mode = NULL;
++  this->our_context = NULL;
+ 
+   pthread_mutex_init (&this->lock, NULL);
+ 
+@@ -248,13 +256,13 @@
+   post_plugin_pp_t *this = (post_plugin_pp_t *)this_gen;
+ 
+   if (_x_post_dispose(this_gen)) {
+-    if(this->pp_mode) {
+-      pp_free_mode(this->pp_mode);
+-      this->pp_mode = NULL;
++    if(this->our_mode) {
++      pp_free_mode(this->our_mode);
++      this->our_mode = NULL;
+     }
+-    if(this->pp_context) {
+-      pp_free_context(this->pp_context);
+-      this->pp_context = NULL;
++    if(this->our_context) {
++      pp_free_context(this->our_context);
++      this->our_context = NULL;
+     }
+     free(this);
+   }
+@@ -304,7 +312,7 @@
+ 
+     pthread_mutex_lock (&this->lock);
+ 
+-    if( !this->pp_context ||
++    if( !this->our_context ||
+         this->frame_width != yv12_frame->width ||
+         this->frame_height != yv12_frame->height ) {
+ 
+@@ -312,32 +320,32 @@
+       this->frame_height = yv12_frame->height;
+       pp_flags = this->pp_flags;
+ 
+-      if(this->pp_context)
+-        pp_free_context(this->pp_context);
++      if(this->our_context)
++        pp_free_context(this->our_context);
+ 
+-      this->pp_context = pp_get_context(frame->width, frame->height, pp_flags);
++      this->our_context = pp_get_context(frame->width, frame->height, pp_flags);
+ 
+-      if(this->pp_mode) {
+-        pp_free_mode(this->pp_mode);
+-        this->pp_mode = NULL;
++      if(this->our_mode) {
++        pp_free_mode(this->our_mode);
++        this->our_mode = NULL;
+       }
+     }
+ 
+-    if(!this->pp_mode)
+-      this->pp_mode = pp_get_mode_by_name_and_quality(this->params.mode,
++    if(!this->our_mode)
++      this->our_mode = pp_get_mode_by_name_and_quality(this->params.mode,
+                                                       this->params.quality);
+ 
+-    if(this->pp_mode)
++    if(this->our_mode)
+       pp_postprocess(yv12_frame->base, yv12_frame->pitches,
+                      out_frame->base, out_frame->pitches,
+                      (frame->width+7)&(~7), frame->height,
+                      NULL, 0,
+-                     this->pp_mode, this->pp_context,
++                     this->our_mode, this->our_context,
+                      0 /*this->av_frame->pict_type*/);
+ 
+     pthread_mutex_unlock (&this->lock);
+ 
+-    if(this->pp_mode) {
++    if(this->our_mode) {
+       skip = out_frame->draw(out_frame, stream);
+       _x_post_frame_copy_up(frame, out_frame);
+     } else {

Copied: xine-lib/repos/staging-i686/xine-lib-1.1.19-xvmc.patch (from rev 141636, xine-lib/trunk/xine-lib-1.1.19-xvmc.patch)
===================================================================
--- staging-i686/xine-lib-1.1.19-xvmc.patch	                        (rev 0)
+++ staging-i686/xine-lib-1.1.19-xvmc.patch	2011-11-01 02:51:18 UTC (rev 141637)
@@ -0,0 +1,17 @@
+Quoting ChangeLog of X11's videoproto package:
+vldXvMC.h: stop uselessly including XvMClib.h
+
+--- src/video_out/xxmc.h
++++ src/video_out/xxmc.h
+@@ -77,10 +77,10 @@
+ #include <X11/extensions/XShm.h>
+ #include <X11/extensions/Xv.h>
+ #include <X11/extensions/Xvlib.h>
++#include <X11/extensions/XvMClib.h>
+ #ifdef HAVE_VLDXVMC
+   #include <X11/extensions/vldXvMC.h>
+ #else
+-  #include <X11/extensions/XvMClib.h>
+   #include <X11/extensions/XvMC.h>
+ #endif
+ 

Copied: xine-lib/repos/staging-x86_64/PKGBUILD (from rev 141636, xine-lib/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD	                        (rev 0)
+++ staging-x86_64/PKGBUILD	2011-11-01 02:51:18 UTC (rev 141637)
@@ -0,0 +1,56 @@
+# $Id$
+# Maintainer: Eric Bélanger <eric at archlinux.org>
+
+pkgname=xine-lib
+pkgver=1.1.19
+pkgrel=6
+pkgdesc="A multimedia playback engine"
+arch=('i686' 'x86_64')
+url="http://www.xine-project.org"
+license=('LGPL' 'GPL')
+depends=('libxvmc' 'flac' 'ffmpeg' 'libxinerama' 'libmodplug')
+makedepends=('wavpack' 'faad2' 'libmng' 'imagemagick' 'smbclient' 'mesa'
+             'v4l-utils' 'vcdimager' 'jack' 'gdk-pixbuf2' 'libpulse' 'speex' 'aalib')
+optdepends=('imagemagick: for using the imagemagick plugin' \
+            'smbclient: for using the smb plugin' \
+            'jack: for using the jack plugin' \
+            'vcdimager: for using the vcd plugin' \
+            'gdk-pixbuf2: for using the gdk-pixbuf plugin' \
+            'mesa: for using the opengl plugin' \
+            'libpulse: for using the pulseaudio plugin' \
+            'speex: for using the speex plugin' \
+            'v4l-utils: for using the v4l plugin' \
+            'wavpack: for using the wavpack plugin' \
+            'faad2: for using the faad plugin' \
+            'libmng: for using the mng plugin' \
+            'aalib: for using the aalib plugin')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/xine/${pkgname}-${pkgver}.tar.xz
+        xine-lib-1.1.1-configure-no-mcpu-march.patch xine-lib-1.1.19-xvmc.patch
+        xine-lib-1.1.19-ffmpeg.patch)
+sha1sums=('f65f762d2e16adf04b9d715c91ee0bc02c322a7d'
+          '121a8358d7919b2e51067412373f52848290338a'
+          '920bf27e6e3523dfe4cc9c802ff713e9688a3f34'
+          'd70f14c3dbb59b65c581575fa1fe13aeeb38f1b1')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -p0 -i "${srcdir}/xine-lib-1.1.1-configure-no-mcpu-march.patch"
+  patch -p0 -i "${srcdir}/xine-lib-1.1.19-xvmc.patch"
+  patch -p1 -i "${srcdir}/xine-lib-1.1.19-ffmpeg.patch"
+  sed -i 's|linux/videodev.h|libv4l1-videodev.h|' \
+    configure.ac src/input/input_v4l.c src/video_out/video_out_syncfb.h
+
+  libtoolize --force --copy
+  aclocal -I m4
+  autoconf
+  automake --add-missing
+
+  ./configure --prefix=/usr --with-wavpack --with-external-ffmpeg --with-external-libfaad
+  make
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+}

Copied: xine-lib/repos/staging-x86_64/xine-lib-1.1.1-configure-no-mcpu-march.patch (from rev 141636, xine-lib/trunk/xine-lib-1.1.1-configure-no-mcpu-march.patch)
===================================================================
--- staging-x86_64/xine-lib-1.1.1-configure-no-mcpu-march.patch	                        (rev 0)
+++ staging-x86_64/xine-lib-1.1.1-configure-no-mcpu-march.patch	2011-11-01 02:51:18 UTC (rev 141637)
@@ -0,0 +1,13 @@
+--- m4/optimizations.m4.orig	2005-11-27 01:20:08.000000000 +0100
++++ m4/optimizations.m4	2005-11-27 01:22:56.000000000 +0100
+@@ -161,10 +161,6 @@
+                   ;;
+ 
+               esac
+-              if test x"$archopt_val" != x; then
+-                  CFLAGS="$sarchopt=$archopt_val $CFLAGS"
+-                  DEBUG_CFLAGS="$sarchopt=$archopt_val $DEBUG_CFLAGS"
+-              fi
+             fi
+           else
+             dnl we have the Intel compiler

Copied: xine-lib/repos/staging-x86_64/xine-lib-1.1.19-ffmpeg.patch (from rev 141636, xine-lib/trunk/xine-lib-1.1.19-ffmpeg.patch)
===================================================================
--- staging-x86_64/xine-lib-1.1.19-ffmpeg.patch	                        (rev 0)
+++ staging-x86_64/xine-lib-1.1.19-ffmpeg.patch	2011-11-01 02:51:18 UTC (rev 141637)
@@ -0,0 +1,380 @@
+diff -r 717450d734f7 src/combined/ffmpeg/ff_audio_decoder.c
+--- a/src/combined/ffmpeg/ff_audio_decoder.c	Mon May 16 15:49:02 2011 +0100
++++ b/src/combined/ffmpeg/ff_audio_decoder.c	Mon May 16 19:46:49 2011 -0400
+@@ -46,6 +46,12 @@
+ 
+ #define AUDIOBUFSIZE (64 * 1024)
+ 
++#if LIBAVCODEC_VERSION_MAJOR >= 53 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 32)
++#  define AVAUDIO 3
++#else
++#  define AVAUDIO 2
++#endif
++
+ typedef struct {
+   audio_decoder_class_t   decoder_class;
+ } ff_audio_class_t;
+@@ -255,6 +261,9 @@
+       buf->decoder_info[2]);
+ 
+   } else if (!(buf->decoder_flags & BUF_FLAG_SPECIAL)) {
++#if AVAUDIO > 2
++    AVPacket avpkt;
++#endif
+ 
+     if( !this->decoder_ok ) {
+       if ( ! this->context || ! this->codec ) {
+@@ -286,11 +295,21 @@
+     if (!this->output_open) {
+       if (!this->audio_bits || !this->audio_sample_rate || !this->audio_channels) {
+         decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
++#if AVAUDIO > 2
++	av_init_packet (&avpkt);
++	avpkt.data = (uint8_t *)&this->buf[0];
++	avpkt.size = this->size;
++	avpkt.flags = AV_PKT_FLAG_KEY;
++	avcodec_decode_audio3 (this->context,
++			       (int16_t *)this->decode_buffer,
++			       &decode_buffer_size, &avpkt);
++#else
+         avcodec_decode_audio2 (this->context,
+                               (int16_t *)this->decode_buffer,
+                               &decode_buffer_size,
+                               &this->buf[0],
+                               this->size);
++#endif
+ 	this->audio_bits = this->context->bits_per_sample;
+ 	this->audio_sample_rate = this->context->sample_rate;
+ 	this->audio_channels = this->context->channels;
+@@ -311,12 +330,21 @@
+       offset = 0;
+       while (this->size>0) {
+         decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
++#if AVAUDIO > 2
++	av_init_packet (&avpkt);
++	avpkt.data = (uint8_t *)&this->buf[offset];
++	avpkt.size = this->size;
++	avpkt.flags = AV_PKT_FLAG_KEY;
++	bytes_consumed = avcodec_decode_audio3 (this->context,
++						(int16_t *)this->decode_buffer,
++						&decode_buffer_size, &avpkt);
++#else
+         bytes_consumed = avcodec_decode_audio2 (this->context,
+                                                (int16_t *)this->decode_buffer,
+                                                &decode_buffer_size,
+                                                &this->buf[offset],
+                                                this->size);
+-
++#endif
+         if (bytes_consumed<0) {
+           xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+                    "ffmpeg_audio_dec: error decompressing audio frame\n");
+diff -r 717450d734f7 src/combined/ffmpeg/ff_video_decoder.c
+--- a/src/combined/ffmpeg/ff_video_decoder.c	Mon May 16 15:49:02 2011 +0100
++++ b/src/combined/ffmpeg/ff_video_decoder.c	Mon May 16 19:46:49 2011 -0400
+@@ -58,6 +58,14 @@
+ 
+ #define ENABLE_DIRECT_RENDERING
+ 
++#if LIBAVCODEC_VERSION_MAJOR >= 53 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 32)
++#  define AVVIDEO 2
++#else
++#  define AVVIDEO 1
++#  define pp_context	pp_context_t
++#  define pp_mode	pp_mode_t
++#endif
++
+ /* reordered_opaque appeared in libavcodec 51.68.0 */
+ #define AVCODEC_HAS_REORDERED_OPAQUE
+ #if LIBAVCODEC_VERSION_INT < 0x334400
+@@ -116,8 +124,8 @@
+ 
+   int               pp_quality;
+   int               pp_flags;
+-  pp_context_t     *pp_context;
+-  pp_mode_t        *pp_mode;
++  pp_context       *our_context;
++  pp_mode          *our_mode;
+ 
+   /* mpeg-es parsing */
+   mpeg_parser_t    *mpeg_parser;
+@@ -444,23 +452,23 @@
+   this->pp_quality = this->class->pp_quality;
+ 
+   if(this->pp_available && this->pp_quality) {
+-    if(!this->pp_context && this->context)
+-      this->pp_context = pp_get_context(this->context->width, this->context->height,
++    if(!this->our_context && this->context)
++      this->our_context = pp_get_context(this->context->width, this->context->height,
+                                         this->pp_flags);
+-    if(this->pp_mode)
+-      pp_free_mode(this->pp_mode);
++    if(this->our_mode)
++      pp_free_mode(this->our_mode);
+ 
+-    this->pp_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a",
++    this->our_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a",
+                                                     this->pp_quality);
+   } else {
+-    if(this->pp_mode) {
+-      pp_free_mode(this->pp_mode);
+-      this->pp_mode = NULL;
++    if(this->our_mode) {
++      pp_free_mode(this->our_mode);
++      this->our_mode = NULL;
+     }
+ 
+-    if(this->pp_context) {
+-      pp_free_context(this->pp_context);
+-      this->pp_context = NULL;
++    if(this->our_context) {
++      pp_free_context(this->our_context);
++      this->our_context = NULL;
+     }
+   }
+ }
+@@ -1055,12 +1063,26 @@
+     }
+ 
+     /* skip decoding b frames if too late */
++#if AVVIDEO > 1
++    this->context->skip_frame = (this->skipframes > 0) ? AVDISCARD_NONREF : AVDISCARD_DEFAULT;
++#else
+     this->context->hurry_up = (this->skipframes > 0);
++#endif
+ 
+     lprintf("avcodec_decode_video: size=%d\n", this->mpeg_parser->buffer_size);
++#if AVVIDEO > 1
++    AVPacket avpkt;
++    av_init_packet(&avpkt);
++    avpkt.data = (uint8_t *)this->mpeg_parser->chunk_buffer;
++    avpkt.size = this->mpeg_parser->buffer_size;
++    avpkt.flags = AV_PKT_FLAG_KEY;
++    len = avcodec_decode_video2 (this->context, this->av_frame,
++				 &got_picture, &avpkt);
++#else
+     len = avcodec_decode_video (this->context, this->av_frame,
+                                 &got_picture, this->mpeg_parser->chunk_buffer,
+                                 this->mpeg_parser->buffer_size);
++#endif
+     lprintf("avcodec_decode_video: decoded_size=%d, got_picture=%d\n",
+             len, got_picture);
+     len = current - buf->content - offset;
+@@ -1112,7 +1134,13 @@
+ 
+     } else {
+ 
+-      if (this->context->hurry_up) {
++      if (
++#if AVVIDEO > 1
++	  this->context->skip_frame != AVDISCARD_DEFAULT
++#else
++	  this->context->hurry_up
++#endif
++	 ) {
+         /* skipped frame, output a bad frame */
+         img = this->stream->video_out->get_frame (this->stream->video_out,
+                                                   this->bih.biWidth,
+@@ -1304,13 +1332,25 @@
+         got_picture = 0;
+       } else {
+         /* skip decoding b frames if too late */
++#if AVVIDEO > 1
++	this->context->skip_frame = (this->skipframes > 0) ? AVDISCARD_NONREF : AVDISCARD_DEFAULT;
++#else
+         this->context->hurry_up = (this->skipframes > 0);
+-
++#endif
+         lprintf("buffer size: %d\n", this->size);
++#if AVVIDEO > 1
++	AVPacket avpkt;
++	av_init_packet(&avpkt);
++	avpkt.data = (uint8_t *)&chunk_buf[offset];
++	avpkt.size = this->size;
++	avpkt.flags = AV_PKT_FLAG_KEY;
++	len = avcodec_decode_video2 (this->context, this->av_frame,
++				     &got_picture, &avpkt);
++#else
+         len = avcodec_decode_video (this->context, this->av_frame,
+                                     &got_picture, &chunk_buf[offset],
+                                     this->size);
+-
++#endif
+ #ifdef AVCODEC_HAS_REORDERED_OPAQUE
+         /* reset consumed pts value */
+         this->context->reordered_opaque = ff_tag_pts(this, 0);
+@@ -1432,7 +1472,7 @@
+                         img->base, img->pitches,
+                         img->width, img->height,
+                         this->av_frame->qscale_table, this->av_frame->qstride,
+-                        this->pp_mode, this->pp_context,
++                        this->our_mode, this->our_context,
+                         this->av_frame->pict_type);
+ 
+         } else if (!this->av_frame->opaque) {
+@@ -1676,11 +1716,11 @@
+     free(this->buf);
+   this->buf = NULL;
+ 
+-  if(this->pp_context)
+-    pp_free_context(this->pp_context);
++  if(this->our_context)
++    pp_free_context(this->our_context);
+ 
+-  if(this->pp_mode)
+-    pp_free_mode(this->pp_mode);
++  if(this->our_mode)
++    pp_free_mode(this->our_mode);
+ 
+   mpeg_parser_dispose(this->mpeg_parser);
+ 
+@@ -1721,8 +1761,8 @@
+   this->aspect_ratio      = 0;
+ 
+   this->pp_quality        = 0;
+-  this->pp_context        = NULL;
+-  this->pp_mode           = NULL;
++  this->our_context       = NULL;
++  this->our_mode          = NULL;
+ 
+   this->mpeg_parser       = NULL;
+ 
+diff -r 717450d734f7 src/post/planar/pp.c
+--- a/src/post/planar/pp.c	Mon May 16 15:49:02 2011 +0100
++++ b/src/post/planar/pp.c	Mon May 16 19:46:49 2011 -0400
+@@ -35,6 +35,12 @@
+ #  include <libpostproc/postprocess.h>
+ #endif
+ 
++#if LIBPOSTPROC_VERSION_MAJOR < 52
++#  define pp_context	pp_context_t
++#  define pp_mode	pp_mode_t
++#  define PP_PARAMETERS_T
++#endif
++
+ #define PP_STRING_SIZE 256 /* size of pp mode string (including all options) */
+ 
+ /* plugin class initialization function */
+@@ -76,14 +82,15 @@
+ 
+   /* libpostproc specific stuff */
+   int                pp_flags;
+-  pp_context_t      *pp_context;
+-  pp_mode_t         *pp_mode;
++  pp_context        *our_context;
++  pp_mode           *our_mode;
+ 
+   pthread_mutex_t    lock;
+ };
+ 
+ 
+ static int set_parameters (xine_post_t *this_gen, void *param_gen) {
++#ifdef PP_PARAMETERS_T
+   post_plugin_pp_t *this = (post_plugin_pp_t *)this_gen;
+   pp_parameters_t *param = (pp_parameters_t *)param_gen;
+ 
+@@ -92,17 +99,18 @@
+   memcpy( &this->params, param, sizeof(pp_parameters_t) );
+ 
+   pthread_mutex_unlock (&this->lock);
+-
++#endif
+   return 1;
+ }
+ 
+ static int get_parameters (xine_post_t *this_gen, void *param_gen) {
++#ifdef PP_PARAMETERS_T
+   post_plugin_pp_t *this = (post_plugin_pp_t *)this_gen;
+   pp_parameters_t *param = (pp_parameters_t *)param_gen;
+ 
+ 
+   memcpy( param, &this->params, sizeof(pp_parameters_t) );
+-
++#endif
+   return 1;
+ }
+ 
+@@ -202,8 +210,8 @@
+   if(cpu_caps & MM_ACCEL_X86_3DNOW)
+     this->pp_flags |= PP_CPU_CAPS_3DNOW;
+ 
+-  this->pp_mode = NULL;
+-  this->pp_context = NULL;
++  this->our_mode = NULL;
++  this->our_context = NULL;
+ 
+   pthread_mutex_init (&this->lock, NULL);
+ 
+@@ -248,13 +256,13 @@
+   post_plugin_pp_t *this = (post_plugin_pp_t *)this_gen;
+ 
+   if (_x_post_dispose(this_gen)) {
+-    if(this->pp_mode) {
+-      pp_free_mode(this->pp_mode);
+-      this->pp_mode = NULL;
++    if(this->our_mode) {
++      pp_free_mode(this->our_mode);
++      this->our_mode = NULL;
+     }
+-    if(this->pp_context) {
+-      pp_free_context(this->pp_context);
+-      this->pp_context = NULL;
++    if(this->our_context) {
++      pp_free_context(this->our_context);
++      this->our_context = NULL;
+     }
+     free(this);
+   }
+@@ -304,7 +312,7 @@
+ 
+     pthread_mutex_lock (&this->lock);
+ 
+-    if( !this->pp_context ||
++    if( !this->our_context ||
+         this->frame_width != yv12_frame->width ||
+         this->frame_height != yv12_frame->height ) {
+ 
+@@ -312,32 +320,32 @@
+       this->frame_height = yv12_frame->height;
+       pp_flags = this->pp_flags;
+ 
+-      if(this->pp_context)
+-        pp_free_context(this->pp_context);
++      if(this->our_context)
++        pp_free_context(this->our_context);
+ 
+-      this->pp_context = pp_get_context(frame->width, frame->height, pp_flags);
++      this->our_context = pp_get_context(frame->width, frame->height, pp_flags);
+ 
+-      if(this->pp_mode) {
+-        pp_free_mode(this->pp_mode);
+-        this->pp_mode = NULL;
++      if(this->our_mode) {
++        pp_free_mode(this->our_mode);
++        this->our_mode = NULL;
+       }
+     }
+ 
+-    if(!this->pp_mode)
+-      this->pp_mode = pp_get_mode_by_name_and_quality(this->params.mode,
++    if(!this->our_mode)
++      this->our_mode = pp_get_mode_by_name_and_quality(this->params.mode,
+                                                       this->params.quality);
+ 
+-    if(this->pp_mode)
++    if(this->our_mode)
+       pp_postprocess(yv12_frame->base, yv12_frame->pitches,
+                      out_frame->base, out_frame->pitches,
+                      (frame->width+7)&(~7), frame->height,
+                      NULL, 0,
+-                     this->pp_mode, this->pp_context,
++                     this->our_mode, this->our_context,
+                      0 /*this->av_frame->pict_type*/);
+ 
+     pthread_mutex_unlock (&this->lock);
+ 
+-    if(this->pp_mode) {
++    if(this->our_mode) {
+       skip = out_frame->draw(out_frame, stream);
+       _x_post_frame_copy_up(frame, out_frame);
+     } else {

Copied: xine-lib/repos/staging-x86_64/xine-lib-1.1.19-xvmc.patch (from rev 141636, xine-lib/trunk/xine-lib-1.1.19-xvmc.patch)
===================================================================
--- staging-x86_64/xine-lib-1.1.19-xvmc.patch	                        (rev 0)
+++ staging-x86_64/xine-lib-1.1.19-xvmc.patch	2011-11-01 02:51:18 UTC (rev 141637)
@@ -0,0 +1,17 @@
+Quoting ChangeLog of X11's videoproto package:
+vldXvMC.h: stop uselessly including XvMClib.h
+
+--- src/video_out/xxmc.h
++++ src/video_out/xxmc.h
+@@ -77,10 +77,10 @@
+ #include <X11/extensions/XShm.h>
+ #include <X11/extensions/Xv.h>
+ #include <X11/extensions/Xvlib.h>
++#include <X11/extensions/XvMClib.h>
+ #ifdef HAVE_VLDXVMC
+   #include <X11/extensions/vldXvMC.h>
+ #else
+-  #include <X11/extensions/XvMClib.h>
+   #include <X11/extensions/XvMC.h>
+ #endif
+ 



More information about the arch-commits mailing list