From aa1158569ca90be850e206fadb222a8c4503278d Mon Sep 17 00:00:00 2001 From: Leo Izen Date: Thu, 28 Apr 2022 23:16:13 -0400 Subject: [PATCH] build: add avcodec jpegxl dependency versions Add the libavcodec version check for AV_CODEC_ID_JPEGXL to the build system rather than to any file that references it. --- meson.build | 1 + video/image_writer.c | 8 +++----- wscript | 4 ++++ 3 files changed, 8 insertions(+), 5 deletions(-) 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'), } ]