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