Package: xjadeo
Version: 0.8.4-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 have little regression potential.

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..f91ea98
--- /dev/null
+++ b/debian/patches/ffmpeg_2.9.patch
@@ -0,0 +1,351 @@
+Description: Replace deprecated FFmpeg API
+Author: Andreas Cadhalpun <andreas.cadhal...@googlemail.com>
+Last-Update: <2015-11-02>
+
+--- xjadeo-0.8.4.orig/src/xjadeo/display.c
++++ xjadeo-0.8.4/src/xjadeo/display.c
+@@ -194,8 +194,8 @@ void rgb2abgr (uint8_t *rgbabuffer, uint
+ 
+ // see xjadeo.h VideoModes
+ const vidout VO[] = {
+-	{ PIX_FMT_RGB24,   1, 		"NULL", NULLOUTPUT}, // NULL is --vo 0 -> autodetect
+-	{ PIX_FMT_BGRA32,   SUP_OPENGL,   "OpenGL",
++	{ AV_PIX_FMT_RGB24,   1, 		"NULL", NULLOUTPUT}, // NULL is --vo 0 -> autodetect
++	{ AV_PIX_FMT_BGRA32,   SUP_OPENGL,   "OpenGL",
+ #ifdef HAVE_GL
+ 		&gl_render, &gl_open_window, & gl_close_window,
+ 		&gl_handle_events, &gl_newsrc,
+@@ -209,7 +209,7 @@ const vidout VO[] = {
+ 			NULLOUTPUT
+ #endif
+ 	},
+-	{ PIX_FMT_YUV420P, SUP_LIBXV, "XV - X11 video extension",
++	{ AV_PIX_FMT_YUV420P, SUP_LIBXV, "XV - X11 video extension",
+ #if HAVE_LIBXV
+ 		&render_xv, &open_window_xv, &close_window_xv,
+ 		&handle_X_events_xv, &newsrc_xv, &resize_xv,
+@@ -220,7 +220,7 @@ const vidout VO[] = {
+ 			NULLOUTPUT
+ #endif
+ 	},
+-	{ PIX_FMT_YUV420P, SUP_SDL, "SDL",
++	{ AV_PIX_FMT_YUV420P, SUP_SDL, "SDL",
+ #ifdef HAVE_SDL
+ 		&render_sdl, &open_window_sdl, &close_window_sdl,
+ 		&handle_X_events_sdl, &newsrc_sdl, &resize_sdl,
+@@ -233,9 +233,9 @@ const vidout VO[] = {
+ 	},
+ 	{
+ #ifdef IMLIB2RGBA
+-		PIX_FMT_BGRA32,   SUP_IMLIB2,   "ImLib2/x11 (RGBA32)",
++		AV_PIX_FMT_BGRA32,   SUP_IMLIB2,   "ImLib2/x11 (RGBA32)",
+ #else
+-		PIX_FMT_RGB24,   SUP_IMLIB2,   "ImLib2/x11 (RGB24)",
++		AV_PIX_FMT_RGB24,   SUP_IMLIB2,   "ImLib2/x11 (RGB24)",
+ #endif
+ #if HAVE_IMLIB2
+ 		&render_imlib2, &open_window_imlib2, &close_window_imlib2,
+@@ -247,7 +247,7 @@ const vidout VO[] = {
+ 			NULLOUTPUT
+ #endif
+ 	},
+-	{ PIX_FMT_UYVY422,   SUP_MACOSX,   "Mac OSX - quartz",
++	{ AV_PIX_FMT_UYVY422,   SUP_MACOSX,   "Mac OSX - quartz",
+ #if defined PLATFORM_OSX && (defined __i386 || defined __ppc__)
+ 		&render_mac, &open_window_mac, &close_window_mac,
+ 		&handle_X_events_mac, &newsrc_mac, &resize_mac,
+@@ -342,17 +342,17 @@ extern int ST_top;
+ #define PB_W (movie_width - 2 * PB_X)
+ 
+ #define SET_RFMT(FORMAT, POINTER, VARS, FUNC) \
+-	if ((FORMAT) == PIX_FMT_YUV420P) \
++	if ((FORMAT) == AV_PIX_FMT_YUV420P) \
+ 		(POINTER) = &_##FUNC##_YUV; \
+-	else if ((FORMAT) == PIX_FMT_UYVY422) \
++	else if ((FORMAT) == AV_PIX_FMT_UYVY422) \
+ 		(POINTER) = &_##FUNC##_YUV422; \
+-	else if ((FORMAT) == PIX_FMT_RGB24) { \
++	else if ((FORMAT) == AV_PIX_FMT_RGB24) { \
+ 		 (POINTER) = &_##FUNC##_RGB; \
+ 		VARS.bpp = 3; \
+-	} else if ((FORMAT) == PIX_FMT_RGBA32) { \
++	} else if ((FORMAT) == AV_PIX_FMT_RGBA32) { \
+ 		(POINTER) = &_##FUNC##_RGB; \
+ 		VARS.bpp = 4; \
+-	} else if ((FORMAT) == PIX_FMT_BGRA32) { \
++	} else if ((FORMAT) == AV_PIX_FMT_BGRA32) { \
+ 		(POINTER) = &_##FUNC##_RGB; \
+ 		VARS.bpp = 4; \
+ 	} else return ;
+--- xjadeo-0.8.4.orig/src/xjadeo/display_mac.c
++++ xjadeo-0.8.4/src/xjadeo/display_mac.c
+@@ -553,16 +553,16 @@ void window_resized_mac() {
+   }
+ 
+   switch (image_format) {
+-    case PIX_FMT_RGB24:
+-    case PIX_FMT_RGBA32:
++    case AV_PIX_FMT_RGB24:
++    case AV_PIX_FMT_RGBA32:
+     {
+       bounds = CGRectMake(dstRect.left, dstRect.top, dstRect.right-dstRect.left, dstRect.bottom-dstRect.top);
+       CreateCGContextForPort (GetWindowPort (theWindow), &context);
+       break;
+     }
+-    case PIX_FMT_YUV420P:
+-    case PIX_FMT_YUYV422:
+-    case PIX_FMT_UYVY422:
++    case AV_PIX_FMT_YUV420P:
++    case AV_PIX_FMT_YUYV422:
++    case AV_PIX_FMT_UYVY422:
+     {
+       long scale_X = FixDiv(Long2Fix(dstRect.right - dstRect.left),Long2Fix(imgRect.right));
+       long scale_Y = FixDiv(Long2Fix(dstRect.bottom - dstRect.top),Long2Fix(imgRect.bottom));
+@@ -849,16 +849,16 @@ static void flip_page(void) {
+ 
+ 
+   switch (image_format) {
+-    case PIX_FMT_RGB24:
+-    case PIX_FMT_RGBA32:
++    case AV_PIX_FMT_RGB24:
++    case AV_PIX_FMT_RGBA32:
+     {
+       CGContextDrawImage (context, bounds, image);
+     }
+     break;
+ 
+-    case PIX_FMT_YUV420P:
+-    case PIX_FMT_YUYV422:
+-    case PIX_FMT_UYVY422:
++    case AV_PIX_FMT_YUV420P:
++    case AV_PIX_FMT_YUYV422:
++    case AV_PIX_FMT_UYVY422:
+     {
+       OSErr qterr;
+       CodecFlags flags = 0;
+@@ -919,14 +919,14 @@ static void flip_page(void) {
+ static int draw_frame(uint8_t *src) {
+   //printf("draw_frame\n");
+   switch (image_format) {
+-    case PIX_FMT_RGB24:
+-    case PIX_FMT_RGBA32:
++    case AV_PIX_FMT_RGB24:
++    case AV_PIX_FMT_RGBA32:
+       memcpy(image_data,src,image_size);
+       return 0;
+ 
+-    case PIX_FMT_YUV420P:
+-    case PIX_FMT_YUYV422:
+-    case PIX_FMT_UYVY422:
++    case AV_PIX_FMT_YUV420P:
++    case AV_PIX_FMT_YUYV422:
++    case AV_PIX_FMT_UYVY422:
+ #ifdef CROPIMG
+ {
+       stride_memcpy(yuvbuf, src+(xoffset*2),
+@@ -954,8 +954,8 @@ int open_window_mac (void) {
+   uint32_t d_width = ffctv_width;
+ 
+   device_id = 0;
+-  image_format = PIX_FMT_YUV420P;
+-  //image_format = PIX_FMT_RGBA32;
++  image_format = AV_PIX_FMT_YUV420P;
++  //image_format = AV_PIX_FMT_RGBA32;
+ 
+   WindowAttributes windowAttrs;
+   OSErr qterr = 0;
+@@ -982,15 +982,15 @@ int open_window_mac (void) {
+ 
+   switch (image_format)
+   {
+-    case PIX_FMT_RGBA32:
++    case AV_PIX_FMT_RGBA32:
+       image_depth = 32;
+       break;
+-    case PIX_FMT_RGB24:
++    case AV_PIX_FMT_RGB24:
+       image_depth = 24;
+       break;
+-  case PIX_FMT_YUV420P:
+-  case PIX_FMT_YUYV422:
+-  case PIX_FMT_UYVY422:
++  case AV_PIX_FMT_YUV420P:
++  case AV_PIX_FMT_YUYV422:
++  case AV_PIX_FMT_UYVY422:
+       image_depth = 16;
+       break;
+   }
+@@ -1037,8 +1037,8 @@ int open_window_mac (void) {
+   }
+ 
+   switch (image_format) {
+-    case PIX_FMT_RGB24:
+-    case PIX_FMT_RGBA32:
++    case AV_PIX_FMT_RGB24:
++    case AV_PIX_FMT_RGBA32:
+     {
+       CreateCGContextForPort (GetWindowPort (theWindow), &context);
+ 
+@@ -1054,9 +1054,9 @@ int open_window_mac (void) {
+                                dataProviderRef, 0, 1, kCGRenderingIntentDefault);
+         break;
+     }
+-    case PIX_FMT_YUYV422:
+-    case PIX_FMT_UYVY422:
+-    case PIX_FMT_YUV420P:
++    case AV_PIX_FMT_YUYV422:
++    case AV_PIX_FMT_UYVY422:
++    case AV_PIX_FMT_YUV420P:
+     {
+       SetIdentityMatrix(&matrix);
+       if ((d_width != width) || (d_height != height)) {
+@@ -1144,7 +1144,7 @@ int open_window_mac (void) {
+         case IMGFMT_IYUV:
+         case IMGFMT_I420:
+       */
+-        case PIX_FMT_YUV420P: //XXX
++        case AV_PIX_FMT_YUV420P: //XXX
+           P->componentInfoY.offset  = be2me_32(sizeof(PlanarPixmapInfoYUV420));
+           P->componentInfoCb.offset = be2me_32(be2me_32(P->componentInfoY.offset) + image_size / 2);
+           P->componentInfoCr.offset = be2me_32(be2me_32(P->componentInfoCb.offset) + image_size / 4);
+@@ -1157,8 +1157,8 @@ int open_window_mac (void) {
+         case IMGFMT_UYVY:
+         case IMGFMT_YUY2:
+         */
+-        case PIX_FMT_YUYV422 : //XXX
+-        case PIX_FMT_UYVY422:
++        case AV_PIX_FMT_YUYV422 : //XXX
++        case AV_PIX_FMT_UYVY422:
+           image_buffer_size = image_size;
+           break;
+       }
+--- xjadeo-0.8.4.orig/src/xjadeo/main.c
++++ xjadeo-0.8.4/src/xjadeo/main.c
+@@ -137,7 +137,7 @@ AVFrame           *pFrame = NULL;
+ AVFrame           *pFrameFMT = NULL;
+ uint8_t           *buffer = NULL;
+ 
+-int               render_fmt = PIX_FMT_YUV420P; ///< needs to be set before calling movie_open
++int               render_fmt = AV_PIX_FMT_YUV420P; ///< needs to be set before calling movie_open
+ 
+ /* Video File Info */
+ double  duration = 1;
+--- xjadeo-0.8.4.orig/src/xjadeo/xjadeo.c
++++ xjadeo-0.8.4/src/xjadeo/xjadeo.c
+@@ -1433,7 +1433,7 @@ int open_movie (char* file_name) {
+ 		ffctv_height = ((int)rint (pCodecCtx->width / movie_aspect));
+ 	}
+ 
+-	if (render_fmt == PIX_FMT_RGB24 || render_fmt == PIX_FMT_BGRA32) {
++	if (render_fmt == AV_PIX_FMT_RGB24 || render_fmt == AV_PIX_FMT_BGRA32) {
+ 		;
+ 	} else {
+ 		// YV12 needs 2x2 area for color
+@@ -1553,18 +1553,18 @@ int open_movie (char* file_name) {
+ static void render_empty_frame (int blit, int splashagain) {
+ 	if (!buffer) return;
+ 	// clear image (black / or YUV green)
+-	if (render_fmt == PIX_FMT_UYVY422) {
++	if (render_fmt == AV_PIX_FMT_UYVY422) {
+ 		int i;
+ 		for (i=0;i<movie_width*movie_height*2;i+=2) {
+ 			buffer[i]=0x80;
+ 			buffer[i+1]=0x00;
+ 		}
+ 	}
+-	else if (render_fmt == PIX_FMT_YUV420P) {
++	else if (render_fmt == AV_PIX_FMT_YUV420P) {
+ 		size_t Ylen  = movie_width * movie_height;
+ 		memset (buffer, 0, Ylen);
+ 		memset (buffer + Ylen, 0x80, Ylen / 2);
+-	} else if (render_fmt == PIX_FMT_RGBA32) {
++	} else if (render_fmt == AV_PIX_FMT_RGBA32) {
+ 		int i;
+ 		for (i=0; i < movie_width * movie_height * 4; i+=4) {
+ 			buffer[i]   = 0x00;
+@@ -1572,7 +1572,7 @@ static void render_empty_frame (int blit
+ 			buffer[i+2] = 0x00;
+ 			buffer[i+3] = 0xff;
+ 		}
+-	} else if (render_fmt == PIX_FMT_BGRA32) {
++	} else if (render_fmt == AV_PIX_FMT_BGRA32) {
+ 		int i;
+ 		for (i = 0; i < movie_width * movie_height * 4; i += 4) {
+ 			buffer[i]   = 0x00;
+@@ -1585,7 +1585,7 @@ static void render_empty_frame (int blit
+ 	}
+ #ifdef DRAW_CROSS
+ 	int x,y;
+-	if (render_fmt == PIX_FMT_UYVY422)
++	if (render_fmt == AV_PIX_FMT_UYVY422)
+ 		for (x = 0, y = 0;x < movie_width - 1; ++x, y = movie_height * x / movie_width) {
+ 			int off = (2 * x + 2 * movie_width * y);
+ 			buffer[off]=127; buffer[off+1]=127;
+@@ -1593,7 +1593,7 @@ static void render_empty_frame (int blit
+ 			off = (2 * x + 2 * movie_width * (movie_height - y - 1));
+ 			buffer[off]=127; buffer[off+1]=127;
+ 		}
+-	if (render_fmt == PIX_FMT_YUV420P)
++	if (render_fmt == AV_PIX_FMT_YUV420P)
+ 		for (x = 0, y = 0; x < movie_width - 1; ++x, y = movie_height * x / movie_width) {
+ 			int yoff = (x + movie_width * y);
+ 			buffer[yoff]=127; buffer[yoff+1]=127;
+@@ -1601,7 +1601,7 @@ static void render_empty_frame (int blit
+ 			yoff = (x + movie_width * (movie_height - y - 1));
+ 			buffer[yoff]=127; buffer[yoff+1]=127;
+ 		}
+-	if (render_fmt == PIX_FMT_RGB24)
++	if (render_fmt == AV_PIX_FMT_RGB24)
+ 		for (x = 0, y = 0; x < movie_width - 1; ++x, y = movie_height * x / movie_width) {
+ 			int yoff = 3 * (x + movie_width * y);
+ 			buffer[yoff]=127;
+@@ -1612,7 +1612,7 @@ static void render_empty_frame (int blit
+ 			buffer[yoff+1]=127;
+ 			buffer[yoff+2]=127;
+ 		}
+-	if (render_fmt == PIX_FMT_RGBA32 || render_fmt == PIX_FMT_BGRA32)
++	if (render_fmt == AV_PIX_FMT_RGBA32 || render_fmt == AV_PIX_FMT_BGRA32)
+ 		for (x = 0, y = 0; x < movie_width - 1; ++x, y = movie_height * x / movie_width) {
+ 			int yoff = 4 * (x + movie_width * y);
+ 			buffer[yoff]=127;
+@@ -1749,17 +1749,17 @@ void display_frame (int64_t timestamp, i
+ 		// TODO: this can be done once per Video output.
+ 		int dstStride[8] = {0,0,0,0,0,0,0,0};
+ 		switch (render_fmt) {
+-			case PIX_FMT_RGBA32:
+-			case PIX_FMT_BGRA32:
++			case AV_PIX_FMT_RGBA32:
++			case AV_PIX_FMT_BGRA32:
+ 				dstStride[0] = movie_width*4;
+ 				break;
+-			case PIX_FMT_BGR24:
++			case AV_PIX_FMT_BGR24:
+ 				dstStride[0] = movie_width*3;
+ 				break;
+-			case PIX_FMT_UYVY422:
++			case AV_PIX_FMT_UYVY422:
+ 				dstStride[0] = movie_width*2;
+ 				break;
+-			case PIX_FMT_YUV420P:
++			case AV_PIX_FMT_YUV420P:
+ 			default:
+ 				dstStride[0] = movie_width;
+ 				dstStride[1] = movie_width/2;
+--- xjadeo-0.8.4.orig/src/xjadeo/xjadeo.h
++++ xjadeo-0.8.4/src/xjadeo/xjadeo.h
+@@ -27,11 +27,11 @@
+ #include <libavutil/mathematics.h>
+ #include <libavutil/mem.h>
+ 
+-#ifndef PIX_FMT_BGRA32
+-#define PIX_FMT_BGRA32 PIX_FMT_BGRA
++#ifndef AV_PIX_FMT_BGRA32
++#define AV_PIX_FMT_BGRA32 AV_PIX_FMT_BGRA
+ #endif
+-#ifndef PIX_FMT_RGBA32
+-#define PIX_FMT_RGBA32 PIX_FMT_RGBA
++#ifndef AV_PIX_FMT_RGBA32
++#define AV_PIX_FMT_RGBA32 AV_PIX_FMT_RGBA
+ #endif
+ 
+ /* xjadeo seek modes */
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..a827249
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+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