diff --git a/meson.build b/meson.build index 42e6624c95..61b26871f1 100644 --- a/meson.build +++ b/meson.build @@ -1737,6 +1737,7 @@ conf_data.set10('HAVE_IOS_GL', ios_gl) conf_data.set10('HAVE_JACK', jack.found()) conf_data.set10('HAVE_JAVASCRIPT', javascript.found()) conf_data.set10('HAVE_JPEG', jpeg.found()) +conf_data.set10('HAVE_JPEGXL', ffmpeg['deps'][1].version().version_compare('>= 59.27.100')) conf_data.set10('HAVE_LCMS2', lcms2.found()) conf_data.set10('HAVE_LIBARCHIVE', libarchive.found()) conf_data.set10('HAVE_LIBAVDEVICE', libavdevice.found()) diff --git a/video/image_writer.c b/video/image_writer.c index d12394a5a9..b7a777ec22 100644 --- a/video/image_writer.c +++ b/video/image_writer.c @@ -20,10 +20,8 @@ #include #include -#include #include #include -#include #include "config.h" @@ -63,7 +61,7 @@ const struct m_opt_choice_alternatives mp_image_writer_formats[] = { {"jpeg", AV_CODEC_ID_MJPEG}, {"png", AV_CODEC_ID_PNG}, {"webp", AV_CODEC_ID_WEBP}, -#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59, 27, 100) +#if HAVE_JPEGXL {"jxl", AV_CODEC_ID_JPEGXL}, #endif {0} @@ -80,7 +78,7 @@ const struct m_option image_writer_opts[] = { {"webp-lossless", OPT_FLAG(webp_lossless)}, {"webp-quality", OPT_INT(webp_quality), M_RANGE(0, 100)}, {"webp-compression", OPT_INT(webp_compression), M_RANGE(0, 6)}, -#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59, 27, 100) +#if HAVE_JPEGXL {"jxl-distance", OPT_DOUBLE(jxl_distance), M_RANGE(0.0, 15.0)}, {"jxl-effort", OPT_INT(jxl_effort), M_RANGE(1, 9)}, #endif @@ -150,7 +148,7 @@ static bool write_lavc(struct image_writer_ctx *ctx, mp_image_t *image, FILE *fp AV_OPT_SEARCH_CHILDREN); av_opt_set_int(avctx, "quality", ctx->opts->webp_quality, AV_OPT_SEARCH_CHILDREN); -#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59, 27, 100) +#if HAVE_JPEGXL } else if (codec->id == AV_CODEC_ID_JPEGXL) { av_opt_set_double(avctx, "distance", ctx->opts->jxl_distance, AV_OPT_SEARCH_CHILDREN); diff --git a/wscript b/wscript index 5857414cf6..2532a86ae4 100644 --- a/wscript +++ b/wscript @@ -391,6 +391,10 @@ iconv support use --disable-iconv.", 'desc': 'SDL2 gamepad input', 'deps': 'sdl2', 'func': check_true, + }, { + 'name': 'jpegxl', + 'desc': 'JPEG XL support via libavcodec', + 'func': check_pkg_config('libavcodec >= 59.27.100'), } ]