} ; fi
+if test $with_libavcodec = "yes" ; then {
+ AC_ARG_WITH(libswscale,
+ [AS_HELP_STRING([--without-libswscale],
+ [disable support for libswscale (Default=auto)])],
+ [],
+ [with_libswscale="yes"]
+ )
+
+ if test $with_libswscale != "no" ; then {
+ AC_CHECK_LIB(swscale, sws_getContext, [], [echo no; with_libswscale="no"], [])
+ } ; fi
+
+ if test $with_libswscale = "yes" ; then {
+ LIBAVCODEC_LIBS="$LIBAVCODEC_LIBS -lswscale"
+ AM_CONDITIONAL(HAVE_LIBSWSCALE, true)
+ } else {
+ AM_CONDITIONAL(HAVE_LIBSWSCALE, false)
+ AC_CHECK_LIB(avcodec, img_convert,
+ [AC_MSG_RESULT([ *** Using deprecated function img_convert.])],
+ [AC_MSG_FAILURE([Neither libswscale nor function img_convert was found.])],
+ []
+ )
+ } ; fi
+} else {
+ AM_CONDITIONAL(HAVE_LIBSWSCALE, false)
+} ; fi
+
# FREETYPE2 CHECK--------------------
FreeType2 ------------------------> $with_freetype
fontconfig -----------------------> $with_fontconfig
libavcodec -----------------------> $with_libavcodec
+libswscale -----------------------> $with_libswscale
vImage ---------------------------> $with_vimage
ImageMagick ----------------------> $with_imagemagick
Magick++ -------------------------> $with_magickpp
extern "C"
{
#include <avformat.h>
+#ifdef HAVE_LIBSWSCALE
+# include <ffmpeg/swscale.h>
+#endif
}
#include <synfig/general.h>
if ( pict && context->pix_fmt != PIX_FMT_RGB24 )
{
//We're using RGBA at the moment, write custom conversion code later (get less accuracy errors)
+#ifdef HAVE_LIBSWSCALE
+ struct SwsContext* img_convert_ctx =
+ sws_getContext(context->width, context->height, PIX_FMT_RGB24,
+ context->width, context->height, context->pix_fmt,
+ SWS_BICUBIC, NULL, NULL, NULL);
+
+ sws_scale(img_convert_ctx, pict->data, pict->linesize,
+
+ 0, context->height, encodable->data,
+ encodable->linesize);
+
+ sws_freeContext (img_convert_ctx);
+#else
img_convert((AVPicture *)encodable, context->pix_fmt,
(AVPicture *)pict, PIX_FMT_RGB24,
context->width, context->height);
+#endif
pict = encodable;
}