avcodec/libjxl.h: include version.h

This file has been exported since our minimum required version (0.7.0),
but it wasn't documented. Instead it was transitively included by
<jxl/decode.h> (but not jxl/encode.h), which ffmpeg relied on.

libjxl broke its API in libjxl/libjxl@66b9592393 by removing
the transitive include of version.h, and they do not plan on adding
it back. Instead they are choosing to leave the API backwards-
incompatible with downstream callers written for some fairly recent
versions of their API.

As a result, we include <jxl/version.h> to continue to build against
more recent versions of libjxl. The version macros removed are also
present in that file, so we no longer need to redefine them.

Signed-off-by: Leo Izen <leo.izen@gmail.com>
This commit is contained in:
Leo Izen 2024-01-23 17:29:14 -05:00
parent 9d4eda8040
commit ac06190a5a
No known key found for this signature in database
GPG Key ID: 764E48EA48221833
1 changed files with 1 additions and 12 deletions

View File

@ -27,19 +27,8 @@
#ifndef AVCODEC_LIBJXL_H
#define AVCODEC_LIBJXL_H
#include <jxl/decode.h>
#include <jxl/memory_manager.h>
/*
* libjxl version 0.7.0 and earlier doesn't contain these macros at all
* so to detect version 0.7.0 versus 0.8.0 we need to define them ourselves
*/
#ifndef JPEGXL_COMPUTE_NUMERIC_VERSION
#define JPEGXL_COMPUTE_NUMERIC_VERSION(major,minor,patch) ((major<<24) | (minor<<16) | (patch<<8) | 0)
#endif
#ifndef JPEGXL_NUMERIC_VERSION
#define JPEGXL_NUMERIC_VERSION JPEGXL_COMPUTE_NUMERIC_VERSION(0, 7, 0)
#endif
#include <jxl/version.h>
/**
* Transform threadcount in ffmpeg to one used by libjxl.