From 35de4d1c31809b47059ec0bf038f803aae449d12 Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Tue, 22 Nov 2011 21:12:14 +0200 Subject: Use current ImageMagick API --HG-- branch : point-release extra : transplant_source : %3F%D8u%A8%97%F1R%3FtU%27%CB%EA%F5%26%18%EC-%C6%9E --- src/libxinevdec/image.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src') diff --git a/src/libxinevdec/image.c b/src/libxinevdec/image.c index d5a9cfff5..d8064d200 100644 --- a/src/libxinevdec/image.c +++ b/src/libxinevdec/image.c @@ -101,14 +101,23 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { /* * this->image -> rgb data */ +#if !defined(MagickLibVersion) || MagickLibVersion < 0x671 InitializeMagick(NULL); +#else + MagickWandGenesis(); +#endif wand = NewMagickWand(); status = MagickReadImageBlob(wand, this->image, this->index); + this->index = 0; if (!status) { DestroyMagickWand(wand); +#if !defined(MagickLibVersion) || MagickLibVersion < 0x671 DestroyMagick(); +#else + MagickWandTerminus(); +#endif lprintf("error loading image\n"); return; } @@ -116,9 +125,15 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { width = MagickGetImageWidth(wand) & ~1; /* must be even for init_yuv_planes */ height = MagickGetImageHeight(wand); img_buf = malloc(width * height * 3); +#if !defined(MagickLibVersion) || MagickLibVersion < 0x671 MagickGetImagePixels(wand, 0, 0, width, height, "RGB", CharPixel, img_buf); DestroyMagickWand(wand); DestroyMagick(); +#else + MagickExportImagePixels(wand, 0, 0, width, height, "RGB", CharPixel, img_buf); + DestroyMagickWand(wand); + MagickWandTerminus(); +#endif _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_WIDTH, width); _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HEIGHT, height); -- cgit v1.2.3 From cb766fad28e81704d6408aab27beacd976cd1731 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Tue, 22 Nov 2011 22:10:01 +0000 Subject: Fix up ImageMagick API selection in the presence of GraphicsMagick; changelog. --HG-- branch : point-release --- src/libxinevdec/image.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/libxinevdec/image.c b/src/libxinevdec/image.c index d8064d200..5e166382b 100644 --- a/src/libxinevdec/image.c +++ b/src/libxinevdec/image.c @@ -54,6 +54,17 @@ #include "xineutils.h" #include "bswap.h" +#ifdef HAVE_GRAPHICSMAGICK +# define MAGICK_VERSION 0x670 +#else +# if !defined(MagickLibVersion) || MagickLibVersion < 0x671 +# define MAGICK_VERSION 0x670 +#else +# define MAGICK_VERSION MagickLibVersion +# endif +#endif + + typedef struct { video_decoder_class_t decoder_class; @@ -101,7 +112,7 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { /* * this->image -> rgb data */ -#if !defined(MagickLibVersion) || MagickLibVersion < 0x671 +#if MAGICK_VERSION < 0x671 InitializeMagick(NULL); #else MagickWandGenesis(); @@ -113,7 +124,7 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { if (!status) { DestroyMagickWand(wand); -#if !defined(MagickLibVersion) || MagickLibVersion < 0x671 +#if MAGICK_VERSION < 0x671 DestroyMagick(); #else MagickWandTerminus(); @@ -125,7 +136,7 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { width = MagickGetImageWidth(wand) & ~1; /* must be even for init_yuv_planes */ height = MagickGetImageHeight(wand); img_buf = malloc(width * height * 3); -#if !defined(MagickLibVersion) || MagickLibVersion < 0x671 +#if MAGICK_VERSION < 0x671 MagickGetImagePixels(wand, 0, 0, width, height, "RGB", CharPixel, img_buf); DestroyMagickWand(wand); DestroyMagick(); -- cgit v1.2.3