summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2011-11-22 21:12:14 +0200
committerPetri Hintukainen <phintuka@users.sourceforge.net>2011-11-22 21:12:14 +0200
commit35de4d1c31809b47059ec0bf038f803aae449d12 (patch)
tree6ed1f990bfa21807f7ee15f02e7169da51124aaf /src
parentd1355065fbe275296fee39a75fe4fabb6950401b (diff)
downloadxine-lib-35de4d1c31809b47059ec0bf038f803aae449d12.tar.gz
xine-lib-35de4d1c31809b47059ec0bf038f803aae449d12.tar.bz2
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
Diffstat (limited to 'src')
-rw-r--r--src/libxinevdec/image.c15
1 files changed, 15 insertions, 0 deletions
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);