Quoting Leo Izen (2022-03-19 18:26:44) > This commit adds support to libavformat for muxing > and demuxing Jpeg XL images as image2 streams. > --- > libavformat/allformats.c | 1 + > libavformat/img2.c | 1 + > libavformat/img2dec.c | 21 +++++++++++++++++++++ > libavformat/img2enc.c | 6 +++--- > libavformat/mov.c | 1 + > libavformat/version.h | 4 ++-- > 6 files changed, 29 insertions(+), 5 deletions(-) > > diff --git a/libavformat/allformats.c b/libavformat/allformats.c > index 587ad59b3c..941f3643f8 100644 > --- a/libavformat/allformats.c > +++ b/libavformat/allformats.c > @@ -510,6 +510,7 @@ extern const AVInputFormat ff_image_gif_pipe_demuxer; > extern const AVInputFormat ff_image_j2k_pipe_demuxer; > extern const AVInputFormat ff_image_jpeg_pipe_demuxer; > extern const AVInputFormat ff_image_jpegls_pipe_demuxer; > +extern const AVInputFormat ff_image_jpegxl_pipe_demuxer; > extern const AVInputFormat ff_image_pam_pipe_demuxer; > extern const AVInputFormat ff_image_pbm_pipe_demuxer; > extern const AVInputFormat ff_image_pcx_pipe_demuxer; > diff --git a/libavformat/img2.c b/libavformat/img2.c > index 4153102c92..13b1b997b8 100644 > --- a/libavformat/img2.c > +++ b/libavformat/img2.c > @@ -87,6 +87,7 @@ const IdStrMap ff_img_tags[] = { > { AV_CODEC_ID_GEM, "img" }, > { AV_CODEC_ID_GEM, "ximg" }, > { AV_CODEC_ID_GEM, "timg" }, > + { AV_CODEC_ID_JPEGXL, "jxl" }, > { AV_CODEC_ID_NONE, NULL } > }; > > diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c > index b9c06c5b54..32cadacb9d 100644 > --- a/libavformat/img2dec.c > +++ b/libavformat/img2dec.c > @@ -32,6 +32,7 @@ > #include "libavutil/parseutils.h" > #include "libavutil/intreadwrite.h" > #include "libavcodec/gif.h" > +#include "libavcodec/jpegxl.h" > #include "avformat.h" > #include "avio_internal.h" > #include "internal.h" > @@ -836,6 +837,25 @@ static int jpegls_probe(const AVProbeData *p) > return 0; > } > > +static int jpegxl_probe(const AVProbeData *p) > +{ > + const uint8_t *b = p->buf; > + > + /* ISOBMFF-based container */ > + /* 0x4a584c20 == "JXL " */ > + if (AV_RL64(b) == FF_JPEGXL_CONTAINER_SIGNATURE_LE) > + return AVPROBE_SCORE_EXTENSION + 1; > +#if CONFIG_JPEGXL_PARSER > + /* Raw codestreams all start with 0xff0a */ > + if (AV_RL16(b) != FF_JPEGXL_CODESTREAM_SIGNATURE_LE) > + return 0; > + if (avpriv_jpegxl_verify_codestream_header(NULL, p->buf, p->buf_size) == > 0)
This function is way too complicated for a probe function. Can you think of something simpler? -- Anton Khirnov _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".