tags 739458 + pending thanks Dear maintainer,
I've prepared an NMU for xine-lib-1.2 (versioned as 1.2.4-2.1) and uploaded it to DELAYED/5 to experimental and compiled it against libav10. Please feel free to tell me if I should delay it longer. Regards.
diff -Nru xine-lib-1.2-1.2.4/debian/changelog xine-lib-1.2-1.2.4/debian/changelog --- xine-lib-1.2-1.2.4/debian/changelog 2013-10-01 16:32:41.000000000 -0400 +++ xine-lib-1.2-1.2.4/debian/changelog 2014-04-06 16:27:56.000000000 -0400 @@ -1,3 +1,10 @@ +xine-lib-1.2 (1.2.4-2.1) experimental; urgency=low + + * Non-maintainer upload. + * Add patch by Anton Khirnov and compile against libav10 (Closes: #739458) + + -- Reinhard Tartler <siret...@tauware.de> Sun, 06 Apr 2014 16:27:54 -0400 + xine-lib-1.2 (1.2.4-2) unstable; urgency=low * vaapi isn't built (by default) on kfreebsd-*, so don't try to install it. diff -Nru xine-lib-1.2-1.2.4/debian/control xine-lib-1.2-1.2.4/debian/control --- xine-lib-1.2-1.2.4/debian/control 2013-09-23 20:35:39.000000000 -0400 +++ xine-lib-1.2-1.2.4/debian/control 2014-04-06 16:27:19.000000000 -0400 @@ -4,7 +4,7 @@ Maintainer: Darren Salt <devs...@moreofthesa.me.uk> Uploaders: Reinhard Tartler <siret...@tauware.de> Build-Depends: debhelper (>= 5.0.1), binutils (>= 2.12.90.0.9), pkg-config, - libavcodec-dev (>= 4:0.7~), libavformat-dev (>= 4:0.7~), libpostproc-dev (>= 4:0.7~), + libavcodec-dev (>= 6:10~), libavformat-dev (>= 6:10~), libpostproc-dev, libvdpau-dev, libva-dev, libxcb-xv0-dev, libxcb-shm0-dev, libxcb-shape0-dev, libxinerama-dev, libxv-dev, libxvmc-dev, libxt-dev, diff -Nru xine-lib-1.2-1.2.4/debian/patches/libav10.patch xine-lib-1.2-1.2.4/debian/patches/libav10.patch --- xine-lib-1.2-1.2.4/debian/patches/libav10.patch 1969-12-31 19:00:00.000000000 -0500 +++ xine-lib-1.2-1.2.4/debian/patches/libav10.patch 2014-04-06 16:28:20.000000000 -0400 @@ -0,0 +1,176 @@ +From: an...@khirnov.net +To: 739...@bugs.debian.org +Subject: Re: FTBFS with libav10 +Date: Sun, 23 Feb 2014 15:15:23 +0100 + +--- xine-lib-1.2-1.2.4.orig/src/dxr3/ffmpeg_encoder.c ++++ xine-lib-1.2-1.2.4/src/dxr3/ffmpeg_encoder.c +@@ -49,11 +49,6 @@ + + #include "../combined/ffmpeg/ffmpeg_compat.h" + +-/* buffer size for encoded mpeg1 stream; will hold one intra frame +- * at 640x480 typical sizes are <50 kB. 512 kB should be plenty */ +-#define DEFAULT_BUFFER_SIZE 512*1024 +- +- + /* functions required by encoder api */ + static int lavc_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame); + static int lavc_on_display_frame(dxr3_driver_t *drv, dxr3_frame_t *frame); +@@ -64,7 +59,6 @@ typedef struct lavc_data_s { + encoder_data_t encoder_data; + AVCodecContext *context; /* handle for encoding */ + int width, height; /* width and height of the video frame */ +- uint8_t *ffmpeg_buffer; /* lavc buffer */ + AVFrame *picture; /* picture to be encoded */ + uint8_t *out[3]; /* aligned buffer for YV12 data */ + uint8_t *buf; /* base address of YV12 buffer */ +@@ -142,7 +136,7 @@ static int lavc_on_update_format(dxr3_dr + } + + /* get mpeg codec handle */ +- codec = avcodec_find_encoder(CODEC_ID_MPEG1VIDEO); ++ codec = avcodec_find_encoder(AV_CODEC_ID_MPEG1VIDEO); + if (!codec) { + xprintf(drv->class->xine, XINE_VERBOSITY_LOG, + "dxr3_mpeg_encoder: lavc MPEG1 codec not found\n"); +@@ -225,20 +219,13 @@ static int lavc_on_update_format(dxr3_dr + } + lprintf("dxr3_mpeg_encoder: lavc MPEG1 codec opened.\n"); + +- if (!this->ffmpeg_buffer) +- this->ffmpeg_buffer = (unsigned char *)malloc(DEFAULT_BUFFER_SIZE); /* why allocate more than needed ?! */ +- if (!this->ffmpeg_buffer) { +- xprintf(drv->class->xine, XINE_VERBOSITY_LOG, +- "dxr3_mpeg_encoder: Couldn't allocate temp buffer for mpeg data\n"); +- return 0; +- } +- + return 1; + } + + static int lavc_on_display_frame(dxr3_driver_t *drv, dxr3_frame_t *frame) + { +- int size; ++ AVPacket pkt = { 0 }; ++ int ret, got_output; + lavc_data_t* this = (lavc_data_t *)drv->enc; + ssize_t written; + +@@ -254,25 +241,28 @@ static int lavc_on_display_frame(dxr3_dr + lavc_prepare_frame(this, drv, frame); + + /* do the encoding */ +- size = avcodec_encode_video(this->context, this->ffmpeg_buffer, DEFAULT_BUFFER_SIZE, this->picture); ++ ret = avcodec_encode_video2(this->context, &pkt, this->picture, &got_output); + + frame->vo_frame.free(&frame->vo_frame); + +- if (size < 0) { ++ if (ret < 0) { + xprintf(drv->class->xine, XINE_VERBOSITY_LOG, + "dxr3_mpeg_encoder: encoding failed\n"); + return 0; +- } ++ } else if (!got_output) ++ return 1; + +- written = write(drv->fd_video, this->ffmpeg_buffer, size); ++ written = write(drv->fd_video, pkt.data, pkt.size); + if (written < 0) { ++ av_packet_unref(&pkt); + xprintf(drv->class->xine, XINE_VERBOSITY_LOG, + "dxr3_mpeg_encoder: video device write failed (%s)\n", strerror(errno)); + return 0; + } +- if (written != size) ++ if (written != pkt.size) + xprintf(drv->class->xine, XINE_VERBOSITY_LOG, +- "dxr3_mpeg_encoder: Could only write %zd of %d mpeg bytes.\n", written, size); ++ "dxr3_mpeg_encoder: Could only write %zd of %d mpeg bytes.\n", written, pkt.size); ++ av_packet_unref(&pkt); + return 1; + } + +--- xine-lib-1.2-1.2.4.orig/src/combined/ffmpeg/ff_video_decoder.c ++++ xine-lib-1.2-1.2.4/src/combined/ffmpeg/ff_video_decoder.c +@@ -593,7 +593,7 @@ static void init_video_codec (ff_video_d + + #ifdef DEPRECATED_AVCODEC_THREAD_INIT + if (this->class->thread_count > 1) { +- if (this->codec->id != CODEC_ID_SVQ3) ++ if (this->codec->id != AV_CODEC_ID_SVQ3) + this->context->thread_count = this->class->thread_count; + } + #endif +@@ -644,7 +644,7 @@ static void init_video_codec (ff_video_d + return; + } + +- if (this->codec->id == CODEC_ID_VC1 && ++ if (this->codec->id == AV_CODEC_ID_VC1 && + (!this->bih.biWidth || !this->bih.biHeight)) { + /* VC1 codec must be re-opened with correct width and height. */ + avcodec_close(this->context); +@@ -663,7 +663,7 @@ static void init_video_codec (ff_video_d + + #ifndef DEPRECATED_AVCODEC_THREAD_INIT + if (this->class->thread_count > 1) { +- if (this->codec->id != CODEC_ID_SVQ3 ++ if (this->codec->id != AV_CODEC_ID_SVQ3 + && avcodec_thread_init(this->context, this->class->thread_count) != -1) + this->context->thread_count = this->class->thread_count; + } +@@ -793,12 +793,12 @@ static void init_postprocess (ff_video_d + + /* Allow post processing on mpeg-4 (based) codecs */ + switch(this->codec->id) { +- case CODEC_ID_MPEG4: +- case CODEC_ID_MSMPEG4V1: +- case CODEC_ID_MSMPEG4V2: +- case CODEC_ID_MSMPEG4V3: +- case CODEC_ID_WMV1: +- case CODEC_ID_WMV2: ++ case AV_CODEC_ID_MPEG4: ++ case AV_CODEC_ID_MSMPEG4V1: ++ case AV_CODEC_ID_MSMPEG4V2: ++ case AV_CODEC_ID_MSMPEG4V3: ++ case AV_CODEC_ID_WMV1: ++ case AV_CODEC_ID_WMV2: + this->pp_available = 1; + break; + default: +@@ -1106,7 +1106,7 @@ static int ff_vc1_find_header(ff_video_d + uint8_t *outbuf; + int outsize; + +- parser_context = av_parser_init(CODEC_ID_VC1); ++ parser_context = av_parser_init(AV_CODEC_ID_VC1); + if (!parser_context) { + xprintf(this->stream->xine, XINE_VERBOSITY_LOG, + "ffmpeg_video_dec: couldn't init VC1 parser\n"); +--- xine-lib-1.2-1.2.4.orig/src/video_out/video_out_vaapi.c ++++ xine-lib-1.2-1.2.4/src/video_out/video_out_vaapi.c +@@ -1151,14 +1151,14 @@ static const struct { + enum CodecID codec_id; + #endif + } conversion_map[] = { +- {IMGFMT_VAAPI_MPEG2, PIX_FMT_VAAPI_VLD, CODEC_ID_MPEG2VIDEO}, +- {IMGFMT_VAAPI_MPEG2_IDCT,PIX_FMT_VAAPI_IDCT, CODEC_ID_MPEG2VIDEO}, +- {IMGFMT_VAAPI_MPEG2_MOCO,PIX_FMT_VAAPI_MOCO, CODEC_ID_MPEG2VIDEO}, +- {IMGFMT_VAAPI_MPEG4, PIX_FMT_VAAPI_VLD, CODEC_ID_MPEG4}, +- {IMGFMT_VAAPI_H263, PIX_FMT_VAAPI_VLD, CODEC_ID_H263}, +- {IMGFMT_VAAPI_H264, PIX_FMT_VAAPI_VLD, CODEC_ID_H264}, +- {IMGFMT_VAAPI_WMV3, PIX_FMT_VAAPI_VLD, CODEC_ID_WMV3}, +- {IMGFMT_VAAPI_VC1, PIX_FMT_VAAPI_VLD, CODEC_ID_VC1}, ++ {IMGFMT_VAAPI_MPEG2, PIX_FMT_VAAPI_VLD, AV_CODEC_ID_MPEG2VIDEO}, ++ {IMGFMT_VAAPI_MPEG2_IDCT,PIX_FMT_VAAPI_IDCT, AV_CODEC_ID_MPEG2VIDEO}, ++ {IMGFMT_VAAPI_MPEG2_MOCO,PIX_FMT_VAAPI_MOCO, AV_CODEC_ID_MPEG2VIDEO}, ++ {IMGFMT_VAAPI_MPEG4, PIX_FMT_VAAPI_VLD, AV_CODEC_ID_MPEG4}, ++ {IMGFMT_VAAPI_H263, PIX_FMT_VAAPI_VLD, AV_CODEC_ID_H263}, ++ {IMGFMT_VAAPI_H264, PIX_FMT_VAAPI_VLD, AV_CODEC_ID_H264}, ++ {IMGFMT_VAAPI_WMV3, PIX_FMT_VAAPI_VLD, AV_CODEC_ID_WMV3}, ++ {IMGFMT_VAAPI_VC1, PIX_FMT_VAAPI_VLD, AV_CODEC_ID_VC1}, + {0, PIX_FMT_NONE} + }; + diff -Nru xine-lib-1.2-1.2.4/debian/patches/series xine-lib-1.2-1.2.4/debian/patches/series --- xine-lib-1.2-1.2.4/debian/patches/series 2013-10-14 11:42:52.000000000 -0400 +++ xine-lib-1.2-1.2.4/debian/patches/series 2014-04-06 16:28:46.000000000 -0400 @@ -1,2 +1,3 @@ 0001-xvmc.patch 0002-upstream-vaapi-delay.patch +libav10.patch