I have just done an NMU of xine-lib: to fix two issues causing an FTBFS
and for which the bugs are opened for some time. Please find the diff
below.

diff -Nru xine-lib-1.1.19/debian/changelog xine-lib-1.1.19/debian/changelog
--- xine-lib-1.1.19/debian/changelog    2011-01-23 17:50:35.000000000 +0100
+++ xine-lib-1.1.19/debian/changelog    2011-09-10 15:49:23.000000000 +0200
@@ -1,3 +1,13 @@
+xine-lib (1.1.19-3.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Add patch from Reinhard Tartler to fix FTBFS with libav 0.7.  Closes:
+    #628197.
+  * Add patch from Loic Dachary to remove pvr from the plugins now that v4l
+    is gone. Enable v4l on linux instead of on !linux.  Closes: #623595.
+
+ -- Aurelien Jarno <aure...@debian.org>  Sat, 10 Sep 2011 15:21:31 +0200
+
 xine-lib (1.1.19-3) unstable; urgency=low
 
   * add missing #include<X11/extensions/XvMClib.h> to avoid FTBFS,
diff -Nru xine-lib-1.1.19/debian/libxine1-misc-plugins.install 
xine-lib-1.1.19/debian/libxine1-misc-plugins.install
--- xine-lib-1.1.19/debian/libxine1-misc-plugins.install        2011-01-23 
17:18:48.000000000 +0100
+++ xine-lib-1.1.19/debian/libxine1-misc-plugins.install        2011-09-10 
15:46:15.000000000 +0200
@@ -7,7 +7,6 @@
 debian/tmp/usr/lib/xine/plugins/*/xineplug_inp_mms.so
 debian/tmp/usr/lib/xine/plugins/*/xineplug_inp_net.so
 debian/tmp/usr/lib/xine/plugins/*/xineplug_inp_pnm.so
-debian/tmp/usr/lib/xine/plugins/*/xineplug_inp_pvr.so
 debian/tmp/usr/lib/xine/plugins/*/xineplug_inp_rtp.so
 debian/tmp/usr/lib/xine/plugins/*/xineplug_inp_rtsp.so
 debian/tmp/usr/lib/xine/plugins/*/xineplug_inp_smb.so
diff -Nru xine-lib-1.1.19/debian/patches/libav-0.7 
xine-lib-1.1.19/debian/patches/libav-0.7
--- xine-lib-1.1.19/debian/patches/libav-0.7    1970-01-01 01:00:00.000000000 
+0100
+++ xine-lib-1.1.19/debian/patches/libav-0.7    2011-09-10 15:21:29.000000000 
+0200
@@ -0,0 +1,237 @@
+From: Reinhard Tartler <siret...@tauware.de>
+Subject: unbreak compilation with Libav 0.7
+
+Index: xine-lib/src/combined/ffmpeg/ff_video_decoder.c
+===================================================================
+--- xine-lib.orig/src/combined/ffmpeg/ff_video_decoder.c       2011-05-27 
19:46:33.550935020 +0200
++++ xine-lib/src/combined/ffmpeg/ff_video_decoder.c    2011-05-27 
19:58:40.030934613 +0200
+@@ -58,12 +58,28 @@
+ 
+ #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
+ # undef AVCODEC_HAS_REORDERED_OPAQUE
+ #endif
+ 
++#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
++
+ typedef struct ff_video_decoder_s ff_video_decoder_t;
+ 
+ typedef struct ff_video_class_s {
+@@ -116,8 +132,8 @@
+ 
+   int               pp_quality;
+   int               pp_flags;
+-  pp_context_t     *pp_context;
+-  pp_mode_t        *pp_mode;
++  pp_context       *pp_context;
++  pp_mode          *pp_mode;
+ 
+   /* mpeg-es parsing */
+   mpeg_parser_t    *mpeg_parser;
+@@ -1055,12 +1071,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 +1142,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 +1340,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);
+Index: xine-lib/src/input/input_cdda.c
+===================================================================
+--- xine-lib.orig/src/input/input_cdda.c       2011-05-27 19:46:33.570934872 
+0200
++++ xine-lib/src/input/input_cdda.c    2011-05-27 19:46:38.340934964 +0200
+@@ -89,6 +89,14 @@
+ #define CD_LEADOUT_TRACK        0xAA
+ #define CD_BLOCK_OFFSET         150
+ 
++#ifdef HAVE_LIBAVUTIL_SHA1_H
++/* old libavutil/sha1.h was found... */
++#define AVSHA AVSHA1
++#  define av_sha_init(c,b)    av_sha1_init(c)
++#  define av_sha_update               av_sha1_update
++#  define av_sha_final                av_sha1_final
++#endif
++
+ typedef struct _cdrom_toc_entry {
+   int   track_mode;
+   int   first_frame;
+Index: xine-lib/src/post/planar/pp.c
+===================================================================
+--- xine-lib.orig/src/post/planar/pp.c 2011-05-27 19:46:33.540935109 +0200
++++ xine-lib/src/post/planar/pp.c      2011-05-27 19:51:21.830934917 +0200
+@@ -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,8 +82,8 @@
+ 
+   /* libpostproc specific stuff */
+   int                pp_flags;
+-  pp_context_t      *pp_context;
+-  pp_mode_t         *pp_mode;
++  pp_context        *pp_context;
++  pp_mode           *pp_mode;
+ 
+   pthread_mutex_t    lock;
+ };
+Index: xine-lib/src/combined/ffmpeg/ff_audio_decoder.c
+===================================================================
+--- xine-lib.orig/src/combined/ffmpeg/ff_audio_decoder.c       2011-05-27 
19:53:22.700933869 +0200
++++ xine-lib/src/combined/ffmpeg/ff_audio_decoder.c    2011-05-27 
19:55:40.820939483 +0200
+@@ -46,6 +46,13 @@
+ 
+ #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 +262,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 +296,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 +331,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 -Nru xine-lib-1.1.19/debian/patches/series 
xine-lib-1.1.19/debian/patches/series
--- xine-lib-1.1.19/debian/patches/series       2011-01-23 17:33:05.000000000 
+0100
+++ xine-lib-1.1.19/debian/patches/series       2011-09-10 15:21:29.000000000 
+0200
@@ -1 +1,2 @@
 debian-changes
+libav-0.7
diff -Nru xine-lib-1.1.19/debian/rules xine-lib-1.1.19/debian/rules
--- xine-lib-1.1.19/debian/rules        2011-01-23 17:18:48.000000000 +0100
+++ xine-lib-1.1.19/debian/rules        2011-09-10 15:21:29.000000000 +0200
@@ -32,7 +32,7 @@
        DEB_BUILD_CONFIG_OPTIONS += --disable-optimizations
 endif
 
-ifeq (,$(findstring linux,$(DEB_HOST_GNU_TYPE)))
+ifneq (,$(findstring linux,$(DEB_HOST_GNU_TYPE)))
        DEB_BUILD_CONFIG_OPTIONS += --enable-libv4l
 endif
 
 

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurel...@aurel32.net                 http://www.aurel32.net



-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to