From: Leo Izen <leo.izen@gmail.com>
To: ffmpeg-devel@ffmpeg.org
Cc: Leo Izen <leo.izen@gmail.com>
Subject: [FFmpeg-devel] [PATCH v7 0/5] JPEG XL Parser (and bug fixes)
Date: Wed, 2 Aug 2023 16:33:29 -0400
Message-ID: <20230802203334.23640-1-leo.izen@gmail.com> (raw)
Changes from v6:
- Added dummy stub libavformat/jpegxl_parse.c to fix shared builds
Changes from v5:
- Attached an extra commit to fix existing bug with libjxldec
- Made various changes based on comments by Andreas Reinhardt
-- removed jpegxl_parse.c from avformat, and jpegxl_parse.o from avformat/Makefile/OBJS
-- checked for failure in init_vlc_lengths
-- used a macro to initialize VLCElem structs
-- used heap allocations for a buffer of size 250k, instead of stack
-- renamed "code" to "len"
- Fix demuxer to avoid using avio_size, breaking piped input
- Fix some parser bugs discovered during more extensive testing
Changes from v4:
- Added an entropy decoder and full parser, which finds the
boundaries between files correctly
- Removed unnecessary logging in libjxldec
Changes from v3:
- Don't remove AV_CODEC_CAP_DR1 from libjxldec
- jpegxl_parse.o added to STLIBOBJS in avcodec/Makefile
- add pipe demuxer to avformat/Makefile's SHLIBOBJS
Changes from v2:
- Fix libjxldec to work with packets that are smaller than one frame
- Change how code is shared between libavcodec and libavformat to be more sensible.
- Fix the parser to work with large headers that proceed the codestream in a container format
(for example, if several-KB Exif boxes preceed the codestream.)
- Modify the parser to set width/height instead of avctx
Note: avctx->pix_fmt and s->format are both set, because otherwise the CLI tools won't print
the pixel format without libjxl enabled.
- Update the fate test based on the new parser's packetization
This test relies on FATE samples that haven't been uploaded yet. To test, unzip
the following zipfile[1] in the FATE_SAMPLES directory, placing the test images in jxl/.
[1]: https://buzo.us/y.zip
sha256sum: 43a2eeb0dfdf471b47a9fdfb1653974fa156ceceb776891cc137569a8ebf0e75
signature: https://buzo.us/R.asc
Leo Izen (5):
avcodec/libjxldec: fix errors when decoding grayscale after rgb
avcodec/libjxldec: use internal AVFrame as buffered space
avcodec/jpegxl_parser: add JPEG XL parser
avformat/jpegxl: remove jpegxl_probe, instead call
avcodec/jpegxl_parse
fate/jpegxl_anim: add demuxer fate test for jpegxl_anim
libavcodec/Makefile | 3 +
libavcodec/jpegxl.h | 94 ++
libavcodec/jpegxl_parse.c | 520 ++++++
libavcodec/jpegxl_parse.h | 72 +
libavcodec/jpegxl_parser.c | 1477 +++++++++++++++++
libavcodec/libjxldec.c | 41 +-
libavcodec/parsers.c | 1 +
libavcodec/version.h | 2 +-
libavformat/Makefile | 6 +-
libavformat/img2dec.c | 4 +-
libavformat/jpegxl_anim_dec.c | 132 +-
.../{jpegxl_probe.h => jpegxl_parse.c} | 21 +-
libavformat/jpegxl_probe.c | 412 -----
libavformat/version.h | 2 +-
tests/Makefile | 1 +
tests/fate/jxl.mak | 16 +
tests/ref/fate/jxl-anim-demux-belgium | 6 +
tests/ref/fate/jxl-anim-demux-icos4d | 6 +
tests/ref/fate/jxl-anim-demux-lenna256 | 6 +
tests/ref/fate/jxl-anim-demux-newton | 6 +
20 files changed, 2273 insertions(+), 555 deletions(-)
create mode 100644 libavcodec/jpegxl.h
create mode 100644 libavcodec/jpegxl_parse.c
create mode 100644 libavcodec/jpegxl_parse.h
create mode 100644 libavcodec/jpegxl_parser.c
rename libavformat/{jpegxl_probe.h => jpegxl_parse.c} (55%)
delete mode 100644 libavformat/jpegxl_probe.c
create mode 100644 tests/fate/jxl.mak
create mode 100644 tests/ref/fate/jxl-anim-demux-belgium
create mode 100644 tests/ref/fate/jxl-anim-demux-icos4d
create mode 100644 tests/ref/fate/jxl-anim-demux-lenna256
create mode 100644 tests/ref/fate/jxl-anim-demux-newton
--
2.41.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next reply other threads:[~2023-08-02 20:33 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-02 20:33 Leo Izen [this message]
2023-08-02 20:33 ` [FFmpeg-devel] [PATCH v7 1/5] avcodec/libjxldec: fix errors when decoding grayscale after rgb Leo Izen
2023-08-02 20:33 ` [FFmpeg-devel] [PATCH v7 2/5] avcodec/libjxldec: use internal AVFrame as buffered space Leo Izen
2023-08-02 20:33 ` [FFmpeg-devel] [PATCH v7 3/5] avcodec/jpegxl_parser: add JPEG XL parser Leo Izen
2023-08-02 20:33 ` [FFmpeg-devel] [PATCH v7 4/5] avformat/jpegxl: remove jpegxl_probe, instead call avcodec/jpegxl_parse Leo Izen
2023-08-02 20:33 ` [FFmpeg-devel] [PATCH v7 5/5] fate/jpegxl_anim: add demuxer fate test for jpegxl_anim Leo Izen
2023-08-09 21:56 ` [FFmpeg-devel] [PATCH v7 0/5] JPEG XL Parser (and bug fixes) Leo Izen
2023-08-16 4:25 ` Leo Izen
2023-08-24 19:22 ` Leo Izen
2023-08-27 5:40 ` Leo Izen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230802203334.23640-1-leo.izen@gmail.com \
--to=leo.izen@gmail.com \
--cc=ffmpeg-devel@ffmpeg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git