Package: lives
Version: 2.4.0~ds0-1
Severity: important
Tags: patch
User: pkg-multimedia-maintainers@lists.alioth.debian.org
Usertags: ffmpeg2.9

Dear Maintainer,

your package fails to build with the upcoming ffmpeg 2.9.
This bug will become release-critical at some point when the
ffmpeg2.9 transition gets closer.

Attached is a patch replacing the deprecated functionality.
It also works with ffmpeg 2.8.
Please apply this patch and forward it upstream, if necessary.

These changes are non-trivial and should be runtime-tested.

Best regards,
Andreas

diff --git a/debian/patches/ffmpeg_2.9.patch b/debian/patches/ffmpeg_2.9.patch
new file mode 100644
index 0000000..2f651c4
--- /dev/null
+++ b/debian/patches/ffmpeg_2.9.patch
@@ -0,0 +1,265 @@
+Description: Replace deprecated FFmpeg API
+Author: Andreas Cadhalpun <andreas.cadhal...@googlemail.com>
+Last-Update: <2015-11-02>
+
+--- lives-2.4.0~ds0.orig/libweed/weed-compat.h
++++ lives-2.4.0~ds0/libweed/weed-compat.h
+@@ -590,44 +590,44 @@ const AVCodecTag codec_bmp_tags[] = {
+ #include <weed/weed-palettes.h>
+ #endif
+ 
+-int avi_pix_fmt_to_weed_palette(enum PixelFormat pix_fmt, int *clamped) {
++int avi_pix_fmt_to_weed_palette(enum AVPixelFormat pix_fmt, int *clamped) {
+   // clamped may be set to NULL if you are not interested in the value
+ 
+   switch (pix_fmt) {
+-  case PIX_FMT_RGB24:
++  case AV_PIX_FMT_RGB24:
+       return WEED_PALETTE_RGB24;
+-  case PIX_FMT_BGR24:
++  case AV_PIX_FMT_BGR24:
+     return WEED_PALETTE_BGR24;
+-  case PIX_FMT_RGBA:
++  case AV_PIX_FMT_RGBA:
+     return WEED_PALETTE_RGBA32;
+-  case PIX_FMT_BGRA:
++  case AV_PIX_FMT_BGRA:
+     return WEED_PALETTE_BGRA32;
+-  case PIX_FMT_ARGB:
++  case AV_PIX_FMT_ARGB:
+     return WEED_PALETTE_ARGB32;
+-  case PIX_FMT_YUV444P:
++  case AV_PIX_FMT_YUV444P:
+     return WEED_PALETTE_YUV444P;
+-  case PIX_FMT_YUV422P:
++  case AV_PIX_FMT_YUV422P:
+     return WEED_PALETTE_YUV422P;
+-  case PIX_FMT_YUV420P:
++  case AV_PIX_FMT_YUV420P:
+     return WEED_PALETTE_YUV420P;
+-  case PIX_FMT_YUYV422:
++  case AV_PIX_FMT_YUYV422:
+     return WEED_PALETTE_YUYV;
+-  case PIX_FMT_UYVY422:
++  case AV_PIX_FMT_UYVY422:
+     return WEED_PALETTE_UYVY;
+-  case PIX_FMT_UYYVYY411:
++  case AV_PIX_FMT_UYYVYY411:
+     return WEED_PALETTE_YUV411;
+-  case PIX_FMT_GRAY8:
++  case AV_PIX_FMT_GRAY8:
+     return WEED_PALETTE_A8;
+-  case PIX_FMT_MONOWHITE:
+-  case PIX_FMT_MONOBLACK:
++  case AV_PIX_FMT_MONOWHITE:
++  case AV_PIX_FMT_MONOBLACK:
+     return WEED_PALETTE_A1;
+-  case PIX_FMT_YUVJ422P:
++  case AV_PIX_FMT_YUVJ422P:
+     if (clamped) *clamped=WEED_YUV_CLAMPING_UNCLAMPED;
+     return WEED_PALETTE_YUV422P;
+-  case PIX_FMT_YUVJ444P:
++  case AV_PIX_FMT_YUVJ444P:
+     if (clamped) *clamped=WEED_YUV_CLAMPING_UNCLAMPED;
+     return WEED_PALETTE_YUV444P;
+-  case PIX_FMT_YUVJ420P:
++  case AV_PIX_FMT_YUVJ420P:
+     if (clamped) *clamped=WEED_YUV_CLAMPING_UNCLAMPED;
+     return WEED_PALETTE_YUV420P;
+ 
+@@ -639,48 +639,48 @@ int avi_pix_fmt_to_weed_palette(enum Pix
+ 
+ 
+ 
+-enum PixelFormat weed_palette_to_avi_pix_fmt(int pal, int *clamped) {
++enum AVPixelFormat weed_palette_to_avi_pix_fmt(int pal, int *clamped) {
+ 
+   switch (pal) {
+   case WEED_PALETTE_RGB24:
+-      return PIX_FMT_RGB24;
++      return AV_PIX_FMT_RGB24;
+   case WEED_PALETTE_BGR24:
+-    return PIX_FMT_BGR24;
++    return AV_PIX_FMT_BGR24;
+   case WEED_PALETTE_RGBA32:
+-    return PIX_FMT_RGBA;
++    return AV_PIX_FMT_RGBA;
+   case WEED_PALETTE_BGRA32:
+-    return PIX_FMT_BGRA;
++    return AV_PIX_FMT_BGRA;
+   case WEED_PALETTE_ARGB32:
+-    return PIX_FMT_ARGB;
++    return AV_PIX_FMT_ARGB;
+   case WEED_PALETTE_YUV444P:
+     if (clamped && *clamped==WEED_YUV_CLAMPING_UNCLAMPED)
+-      return PIX_FMT_YUVJ444P;
+-    return PIX_FMT_YUV444P;
++      return AV_PIX_FMT_YUVJ444P;
++    return AV_PIX_FMT_YUV444P;
+   case WEED_PALETTE_YUV422P:
+     if (clamped && *clamped==WEED_YUV_CLAMPING_UNCLAMPED)
+-      return PIX_FMT_YUVJ422P;
+-    return PIX_FMT_YUV422P;
++      return AV_PIX_FMT_YUVJ422P;
++    return AV_PIX_FMT_YUV422P;
+   case WEED_PALETTE_YUV420P:
+     if (clamped && *clamped==WEED_YUV_CLAMPING_UNCLAMPED)
+-      return PIX_FMT_YUVJ420P;
+-    return PIX_FMT_YUV420P;
++      return AV_PIX_FMT_YUVJ420P;
++    return AV_PIX_FMT_YUV420P;
+   case WEED_PALETTE_YUYV:
+-    return PIX_FMT_YUYV422;
++    return AV_PIX_FMT_YUYV422;
+   case WEED_PALETTE_UYVY:
+-    return PIX_FMT_UYVY422;
++    return AV_PIX_FMT_UYVY422;
+   case WEED_PALETTE_YUV411:
+-    return PIX_FMT_UYYVYY411;
++    return AV_PIX_FMT_UYYVYY411;
+ 
+   case WEED_PALETTE_A8:
+-    return PIX_FMT_GRAY8;
++    return AV_PIX_FMT_GRAY8;
+   case WEED_PALETTE_A1:
+-    return PIX_FMT_MONOBLACK;
++    return AV_PIX_FMT_MONOBLACK;
+ 
+   default:
+-    return PIX_FMT_NONE;
++    return AV_PIX_FMT_NONE;
+   }
+ 
+-  return PIX_FMT_NONE;
++  return AV_PIX_FMT_NONE;
+ 
+ }
+ 
+--- lives-2.4.0~ds0.orig/lives-plugins/plugins/decoders/avformat_decoder.c
++++ lives-2.4.0~ds0/lives-plugins/plugins/decoders/avformat_decoder.c
+@@ -70,45 +70,45 @@ static int stream_peek(int fd, unsigned
+ 
+ 
+ 
+-static int pix_fmt_to_palette(enum PixelFormat pix_fmt, int *clamped) {
++static int pix_fmt_to_palette(enum AVPixelFormat pix_fmt, int *clamped) {
+   if (clamped) *clamped=WEED_YUV_CLAMPING_CLAMPED;
+ 
+   switch (pix_fmt) {
+-  case PIX_FMT_RGB24:
++  case AV_PIX_FMT_RGB24:
+     return WEED_PALETTE_RGB24;
+-  case PIX_FMT_BGR24:
++  case AV_PIX_FMT_BGR24:
+     return WEED_PALETTE_BGR24;
+-  case PIX_FMT_RGBA:
++  case AV_PIX_FMT_RGBA:
+     return WEED_PALETTE_RGBA32;
+-  case PIX_FMT_BGRA:
++  case AV_PIX_FMT_BGRA:
+     return WEED_PALETTE_BGRA32;
+-  case PIX_FMT_ARGB:
++  case AV_PIX_FMT_ARGB:
+     return WEED_PALETTE_ARGB32;
+-  case PIX_FMT_YUV444P:
++  case AV_PIX_FMT_YUV444P:
+     return WEED_PALETTE_YUV444P;
+-  case PIX_FMT_YUV422P:
++  case AV_PIX_FMT_YUV422P:
+     return WEED_PALETTE_YUV422P;
+-  case PIX_FMT_YUV420P:
++  case AV_PIX_FMT_YUV420P:
+     return WEED_PALETTE_YUV420P;
+-  case PIX_FMT_YUYV422:
++  case AV_PIX_FMT_YUYV422:
+     return WEED_PALETTE_YUYV;
+-  case PIX_FMT_UYVY422:
++  case AV_PIX_FMT_UYVY422:
+     return WEED_PALETTE_UYVY;
+-  case PIX_FMT_UYYVYY411:
++  case AV_PIX_FMT_UYYVYY411:
+     return WEED_PALETTE_YUV411;
+-  case PIX_FMT_GRAY8:
+-  case PIX_FMT_Y400A:
++  case AV_PIX_FMT_GRAY8:
++  case AV_PIX_FMT_Y400A:
+     return WEED_PALETTE_A8;
+-  case PIX_FMT_MONOWHITE:
+-  case PIX_FMT_MONOBLACK:
++  case AV_PIX_FMT_MONOWHITE:
++  case AV_PIX_FMT_MONOBLACK:
+     return WEED_PALETTE_A1;
+-  case PIX_FMT_YUVJ422P:
++  case AV_PIX_FMT_YUVJ422P:
+     if (clamped) *clamped=WEED_YUV_CLAMPING_UNCLAMPED;
+     return WEED_PALETTE_YUV422P;
+-  case PIX_FMT_YUVJ444P:
++  case AV_PIX_FMT_YUVJ444P:
+     if (clamped) *clamped=WEED_YUV_CLAMPING_UNCLAMPED;
+     return WEED_PALETTE_YUV444P;
+-  case PIX_FMT_YUVJ420P:
++  case AV_PIX_FMT_YUVJ420P:
+     if (clamped) *clamped=WEED_YUV_CLAMPING_UNCLAMPED;
+     return WEED_PALETTE_YUV420P;
+ 
+--- lives-2.4.0~ds0.orig/lives-plugins/plugins/decoders/mkv_decoder.c
++++ lives-2.4.0~ds0/lives-plugins/plugins/decoders/mkv_decoder.c
+@@ -901,7 +901,7 @@ static int matroska_merge_packets(AVPack
+   out->data = newdata;
+   memcpy(out->data+out->size, in->data, in->size);
+   out->size += in->size;
+-  av_destruct_packet(in);
++  av_free_packet(in);
+   av_free(in);
+   return 0;
+ }
+--- lives-2.4.0~ds0.orig/lives-plugins/plugins/decoders/mpegts_decoder.c
++++ lives-2.4.0~ds0/lives-plugins/plugins/decoders/mpegts_decoder.c
+@@ -1023,7 +1023,6 @@ static int mpegts_set_stream_info(lives_
+ static void new_pes_packet(PESContext *pes, AVPacket *pkt) {
+   av_init_packet(pkt);
+ 
+-  pkt->destruct = av_destruct_packet;
+   pkt->data = pes->buffer;
+   pkt->size = pes->data_index;
+ 
+--- lives-2.4.0~ds0.orig/src/colourspace.c
++++ lives-2.4.0~ds0/src/colourspace.c
+@@ -79,8 +79,8 @@ struct _swscale_ctx {
+   int iheight;
+   int width;
+   int height;
+-  enum PixelFormat ipixfmt;
+-  enum PixelFormat opixfmt;
++  enum AVPixelFormat ipixfmt;
++  enum AVPixelFormat opixfmt;
+   int flags;
+   struct SwsContext *ctx;
+ };
+@@ -10179,7 +10179,7 @@ void compact_rowstrides(weed_plant_t *la
+ 
+ static struct SwsContext *swscale_find_context(int iwidth, int iheight,
+     int width, int height,
+-    enum PixelFormat ipixfmt, enum PixelFormat opixfmt, int flags) {
++    enum AVPixelFormat ipixfmt, enum AVPixelFormat opixfmt, int flags) {
+   register int i;
+   struct _swscale_ctx tmpctx;
+ 
+@@ -10217,7 +10217,7 @@ static struct SwsContext *swscale_find_c
+ }
+ 
+ 
+-static void swscale_add_context(int iwidth, int iheight, int width, int height, enum PixelFormat ipixfmt, enum PixelFormat opixfmt,
++static void swscale_add_context(int iwidth, int iheight, int width, int height, enum AVPixelFormat ipixfmt, enum AVPixelFormat opixfmt,
+                                 int flags, struct SwsContext *ctx) {
+   // add at head of list
+   register int i;
+@@ -10364,7 +10364,7 @@ boolean resize_layer(weed_plant_t *layer
+       weed_palette_is_resizable(opal_hint, oclamp_hint, FALSE)) {
+     struct SwsContext *swscale;
+ 
+-    enum PixelFormat ipixfmt,opixfmt;
++    enum AVPixelFormat ipixfmt,opixfmt;
+ 
+     void **pd_array;
+     void **in_pixel_data,**out_pixel_data;
diff --git a/debian/patches/series b/debian/patches/series
index 2801844..300e98b 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,3 +5,4 @@
 05-gcc-5.patch
 parallel-build.patch
 9990-buildsystem.patch
+ffmpeg_2.9.patch
_______________________________________________
pkg-multimedia-maintainers mailing list
pkg-multimedia-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers

Reply via email to