summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--m4/decoders.m43
-rw-r--r--src/video_dec/image.c13
-rw-r--r--src/xine-engine/load_plugins.c2
4 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index cda157444..7476039ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -69,6 +69,7 @@ xine-lib (1.1.90) (Unreleased)
colour controls, zooming, colour keying.
xine-lib (1.1.17) 2009-??-??
+ * Build fixes related to ImageMagick 6.4 & later.
* Enable libmpeg2new. This is not yet production code; the old mpeg2
decoder remains the default.
diff --git a/m4/decoders.m4 b/m4/decoders.m4
index d8e3ac571..203d651b5 100644
--- a/m4/decoders.m4
+++ b/m4/decoders.m4
@@ -113,6 +113,9 @@ AC_DEFUN([XINE_DECODER_PLUGINS], [
[test x"$withval" != x"no" && with_imagemagick="yes"])
if test x"$with_imagemagick" != x"no"; then
PKG_CHECK_MODULES([WAND], [Wand], [have_imagemagick=yes], [have_imagemagick=no])
+ if test "x$with_imagemagick" = 'xno'; then
+ PKG_CHECK_MODULES([WAND], [MagickWand], [have_imagemagick=yes], [have_imagemagick=no])
+ fi
if test x"$with_imagemagick" = x"yes" && test x"$have_imagemagick" = x"no"; then
AC_MSG_ERROR([ImageMagick support requested, but ImageMagick not found])
fi
diff --git a/src/video_dec/image.c b/src/video_dec/image.c
index f4d39b5dc..8ef8329cf 100644
--- a/src/video_dec/image.c
+++ b/src/video_dec/image.c
@@ -50,6 +50,15 @@
#include <xine/xineutils.h>
#include "bswap.h"
+/* In 6.4.5.4 MagickGetImagePixels changed to MagickGetAuthenticPixels
+ * But upstream did not update their deprecated compat stuff.
+ * So do a fun hack to make it work.
+ * - 2008/11/26 Robin H. Johnson <robbat2@gentoo.org>
+ */
+#if MagickLibVersion >= 0x645
+#define MagickGetImagePixels MagickGetAuthenticPixels
+#endif
+
typedef struct {
video_decoder_class_t decoder_class;
@@ -88,7 +97,7 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
if (buf->decoder_flags & BUF_FLAG_FRAME_END) {
int width, height, i;
- MagickBooleanType status;
+ int status;
MagickWand *wand;
uint8_t *img_buf, *img_buf_ptr;
yuv_planes_t yuv_planes;
@@ -101,7 +110,7 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
status = MagickReadImageBlob(wand, this->image, this->index);
this->index = 0;
- if (status == MagickFalse) {
+ if (!status) {
DestroyMagickWand(wand);
lprintf("error loading image\n");
return;
diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c
index 6f5653cb9..ec8af4637 100644
--- a/src/xine-engine/load_plugins.c
+++ b/src/xine-engine/load_plugins.c
@@ -493,7 +493,7 @@ static void _register_plugins_internal(xine_t *this, plugin_file_t *file,
while ( info && info->type != PLUGIN_NONE ) {
- if (file)
+ if (file && file->filename)
xine_log (this, XINE_LOG_PLUGIN,
_("load_plugins: plugin %s found\n"), file->filename);
else