[FFmpeg-devel] [PATCH v3 4/4] fate/jpegxl_anim: add demuxer fate test for jpegxl_anim

James Almer jamrial at gmail.com
Sat Jun 24 15:26:16 EEST 2023


On 6/24/2023 1:38 AM, Leo Izen wrote:
> Adds a fate test for the jpegxl_anim demuxer, that should allow testing
> for true positives and false positives for animated jpegxl files. Note
> that two of the test cases are not animated, in order to help sort out
> false positives.
> 
> Signed-off-by: <leo.izen at gmail.com>
> ---
>   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 |  7 +++++++
>   tests/ref/fate/jxl-anim-demux-newton   |  6 ++++++
>   6 files changed, 42 insertions(+)
>   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
> 
> diff --git a/tests/Makefile b/tests/Makefile
> index e09f30a0fc..7b80762e81 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -201,6 +201,7 @@ include $(SRC_PATH)/tests/fate/image.mak
>   include $(SRC_PATH)/tests/fate/imf.mak
>   include $(SRC_PATH)/tests/fate/indeo.mak
>   include $(SRC_PATH)/tests/fate/jpeg2000.mak
> +include $(SRC_PATH)/tests/fate/jxl.mak
>   include $(SRC_PATH)/tests/fate/libavcodec.mak
>   include $(SRC_PATH)/tests/fate/libavdevice.mak
>   include $(SRC_PATH)/tests/fate/libavformat.mak
> diff --git a/tests/fate/jxl.mak b/tests/fate/jxl.mak
> new file mode 100644
> index 0000000000..057d3be0e1
> --- /dev/null
> +++ b/tests/fate/jxl.mak
> @@ -0,0 +1,16 @@
> +# These two are animated JXL files
> +FATE_JPEGXL_ANIM_DEMUX += fate-jxl-anim-demux-newton
> +fate-jxl-anim-demux-newton: CMD = framecrc -i $(TARGET_SAMPLES)/jxl/newton.jxl -c copy
> +FATE_JPEGXL_ANIM_DEMUX += fate-jxl-anim-demux-icos4d
> +fate-jxl-anim-demux-icos4d: CMD = framecrc -i $(TARGET_SAMPLES)/jxl/icos4d.jxl -c copy
> +
> +# These two are not animated JXL. They are here to check false positives.
> +FATE_JPEGXL_ANIM_DEMUX += fate-jxl-anim-demux-belgium
> +fate-jxl-anim-demux-belgium: CMD = framecrc -i $(TARGET_SAMPLES)/jxl/belgium.jxl -c copy
> +FATE_JPEGXL_ANIM_DEMUX += fate-jxl-anim-demux-lenna256
> +fate-jxl-anim-demux-lenna256: CMD = framecrc -i $(TARGET_SAMPLES)/jxl/lenna-256.jxl -c copy
> +
> +FATE_JPEGXL_ANIM_DEMUX += $(FATE_JPEGXL_ANIM_DEMUX-yes)
> +
> +FATE_SAMPLES_FFMPEG-$(call FRAMECRC, JPEGXL_ANIM) += $(FATE_JPEGXL_ANIM_DEMUX)
> +fate-jxl-anim-demux: $(FATE_JPEGXL_ANIM_DEMUX)
> diff --git a/tests/ref/fate/jxl-anim-demux-belgium b/tests/ref/fate/jxl-anim-demux-belgium
> new file mode 100644
> index 0000000000..b2fe5035ac
> --- /dev/null
> +++ b/tests/ref/fate/jxl-anim-demux-belgium
> @@ -0,0 +1,6 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: jpegxl
> +#dimensions 0: 768x512
> +#sar 0: 0/1
> +0,          0,          0,        1,       32, 0xa2930a20
> diff --git a/tests/ref/fate/jxl-anim-demux-icos4d b/tests/ref/fate/jxl-anim-demux-icos4d
> new file mode 100644
> index 0000000000..eff6ff1f1b
> --- /dev/null
> +++ b/tests/ref/fate/jxl-anim-demux-icos4d
> @@ -0,0 +1,6 @@
> +#tb 0: 1/1000
> +#media_type 0: video
> +#codec_id 0: jpegxl
> +#dimensions 0: 48x48
> +#sar 0: 0/1
> +0,          0,          0,        0,    67898, 0x53b6516b
> diff --git a/tests/ref/fate/jxl-anim-demux-lenna256 b/tests/ref/fate/jxl-anim-demux-lenna256
> new file mode 100644
> index 0000000000..0bd286a451
> --- /dev/null
> +++ b/tests/ref/fate/jxl-anim-demux-lenna256
> @@ -0,0 +1,7 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: jpegxl
> +#dimensions 0: 256x256
> +#sar 0: 0/1
> +0,          0,          0,        1,     4096, 0x2409e9e3
> +0,          1,          1,        1,     3992, 0x966dbfcb

Why is this returning two frames when it's not an animation? And why the 
two animated files are returning only one frame? Do the latter have the 
animation bits in the header but still are a single frame?

> diff --git a/tests/ref/fate/jxl-anim-demux-newton b/tests/ref/fate/jxl-anim-demux-newton
> new file mode 100644
> index 0000000000..6fcb85c41e
> --- /dev/null
> +++ b/tests/ref/fate/jxl-anim-demux-newton
> @@ -0,0 +1,6 @@
> +#tb 0: 1/1000
> +#media_type 0: video
> +#codec_id 0: jpegxl
> +#dimensions 0: 128x96
> +#sar 0: 0/1
> +0,          0,          0,        0,    43376, 0xb2296182


More information about the ffmpeg-devel mailing list