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

Reply via email to