Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH] fate: add various FFv1 tests for 1024 slices
Date: Wed, 16 Apr 2025 12:22:27 +0200
Message-ID: <GV1P250MB073722AFD2D5F371896B876B8FBD2@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <20250416095508.210533-1-dev@lynne.ee>

Lynne:
> This lets us test features that were broken earlier, as well as
> test the hardware decoder by using the HWACCEL=vulkan option.

Can't you just adjust some of vsynth FFV1 tests to use this many slices?
(Can one even use 1024 slices for such a low resolution?)

> ---
>  tests/Makefile                      |  1 +
>  tests/fate/ffv1.mak                 | 53 +++++++++++++++++++++++++++++
>  tests/ref/fate/ffv1-s1024-bgra      |  4 +++
>  tests/ref/fate/ffv1-s1024-bgra-r    |  4 +++
>  tests/ref/fate/ffv1-s1024-gbrp16    |  4 +++
>  tests/ref/fate/ffv1-s1024-gray8     |  4 +++
>  tests/ref/fate/ffv1-s1024-gray8-r   |  4 +++
>  tests/ref/fate/ffv1-s1024-yuv444p   |  4 +++
>  tests/ref/fate/ffv1-s1024-yuv444p-r |  4 +++
>  9 files changed, 82 insertions(+)
>  create mode 100644 tests/fate/ffv1.mak
>  create mode 100644 tests/ref/fate/ffv1-s1024-bgra
>  create mode 100644 tests/ref/fate/ffv1-s1024-bgra-r
>  create mode 100644 tests/ref/fate/ffv1-s1024-gbrp16
>  create mode 100644 tests/ref/fate/ffv1-s1024-gray8
>  create mode 100644 tests/ref/fate/ffv1-s1024-gray8-r
>  create mode 100644 tests/ref/fate/ffv1-s1024-yuv444p
>  create mode 100644 tests/ref/fate/ffv1-s1024-yuv444p-r
> 
> diff --git a/tests/Makefile b/tests/Makefile
> index f9f5fc07f3..b2386febd7 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -180,6 +180,7 @@ include $(SRC_PATH)/tests/fate/enc_external.mak
>  # Must be included after lavf-video.mak
>  include $(SRC_PATH)/tests/fate/ffmpeg.mak
>  include $(SRC_PATH)/tests/fate/ffprobe.mak
> +include $(SRC_PATH)/tests/fate/ffv1.mak
>  include $(SRC_PATH)/tests/fate/fifo-muxer.mak
>  include $(SRC_PATH)/tests/fate/filter-audio.mak
>  # Must be included after vcodec.mak
> diff --git a/tests/fate/ffv1.mak b/tests/fate/ffv1.mak
> new file mode 100644
> index 0000000000..16660b5ac2
> --- /dev/null
> +++ b/tests/fate/ffv1.mak
> @@ -0,0 +1,53 @@
> +FATE_FFV1 += fate-ffv1-s1024-gray8
> +fate-ffv1-s1024-gray8: tests/data/vsynth1.yuv
> +fate-ffv1-s1024-gray8: CMD = enc_dec \
> +  "rawvideo -s 352x288 -pix_fmt gray8" tests/data/vsynth1.yuv \

Seems like you are treating the input file as gray8 (as opposed to
converting it to gray8). Is this intended? Can't this cause problems
because the size of the input file is not necessarily a multiple of the
size expected for a 352x288 gray8 frame?

> +  nut "-c ffv1 -g 1 -slices 1024 -coder ac" \
> +  framecrc "" ""
> +
> +FATE_FFV1 += fate-ffv1-s1024-gray8-r
> +fate-ffv1-s1024-gray8-r: tests/data/vsynth1.yuv
> +fate-ffv1-s1024-gray8-r: CMD = enc_dec \
> +  "rawvideo -s 352x288 -pix_fmt gray8" tests/data/vsynth1.yuv \
> +  nut "-c ffv1 -g 1 -slices 1024 -coder rice" \
> +  framecrc "" ""
> +
> +FATE_FFV1 += fate-ffv1-s1024-yuv444p
> +fate-ffv1-s1024-yuv444p: tests/data/vsynth1.yuv
> +fate-ffv1-s1024-yuv444p: CMD = enc_dec \
> +  "rawvideo -s 352x288 -pix_fmt yuv444p" tests/data/vsynth1.yuv \
> +  nut "-c ffv1 -g 1 -slices 1024 -coder ac" \
> +  framecrc "" ""
> +
> +FATE_FFV1 += fate-ffv1-s1024-yuv444p-r
> +fate-ffv1-s1024-yuv444p-r: tests/data/vsynth1.yuv
> +fate-ffv1-s1024-yuv444p-r: CMD = enc_dec \
> +  "rawvideo -s 352x288 -pix_fmt yuv444p" tests/data/vsynth1.yuv \
> +  nut "-c ffv1 -g 1 -slices 1024 -coder rice" \
> +  framecrc "" ""
> +
> +FATE_FFV1 += fate-ffv1-s1024-bgra
> +fate-ffv1-s1024-bgra: tests/data/vsynth1.yuv
> +fate-ffv1-s1024-bgra: CMD = enc_dec \
> +  "rawvideo -s 352x288 -pix_fmt bgra" tests/data/vsynth1.yuv \
> +  nut "-c ffv1 -g 1 -slices 1024 -coder ac" \
> +  framecrc "" ""
> +
> +FATE_FFV1 += fate-ffv1-s1024-bgra-r
> +fate-ffv1-s1024-bgra-r: tests/data/vsynth1.yuv
> +fate-ffv1-s1024-bgra-r: CMD = enc_dec \
> +  "rawvideo -s 352x288 -pix_fmt bgra" tests/data/vsynth1.yuv \
> +  nut "-c ffv1 -g 1 -slices 1024 -coder rice" \
> +  framecrc "" ""
> +
> +FATE_FFV1 += fate-ffv1-s1024-gbrp16
> +fate-ffv1-s1024-gbrp16: tests/data/vsynth1.yuv
> +fate-ffv1-s1024-gbrp16: CMD = enc_dec \
> +  "rawvideo -s 352x288 -pix_fmt gbrp16" tests/data/vsynth1.yuv \
> +  nut "-c ffv1 -g 1 -slices 1024 -coder ac" \
> +  framecrc "" ""

Won't this test cause issues on BE?

> +
> +FATE_FFV1-$(call ENCDEC, FFV1, NUT) += $(FATE_FFV1)
> +FATE_FFV1_ALL = $(FATE_FFV1-yes)
> +FATE_SAMPLES_FFMPEG += $(FATE_FFV1_ALL)
> +fate-ffv1: $(FATE_FFV1_ALL)
> diff --git a/tests/ref/fate/ffv1-s1024-bgra b/tests/ref/fate/ffv1-s1024-bgra
> new file mode 100644
> index 0000000000..9e8ecb0d17
> --- /dev/null
> +++ b/tests/ref/fate/ffv1-s1024-bgra
> @@ -0,0 +1,4 @@
> +b5374eb750c4eb58be89e56adba70294 *tests/data/fate/ffv1-s1024-bgra.nut
> +5952517 tests/data/fate/ffv1-s1024-bgra.nut
> +5a62bfcd55a764b27412ff4aa710d43a *tests/data/fate/ffv1-s1024-bgra.out.framecrc
> +stddev:28579.81 PSNR:  7.21 MAXDIFF:60652 bytes:  7603200/     1134

Why does this show differences given that FFV1 is a lossless encoder? Is
it due to the input file size not being a multiple of the expected size
for a 352x288 frame of type bgra?

> diff --git a/tests/ref/fate/ffv1-s1024-bgra-r b/tests/ref/fate/ffv1-s1024-bgra-r
> new file mode 100644
> index 0000000000..6432fc11c5
> --- /dev/null
> +++ b/tests/ref/fate/ffv1-s1024-bgra-r
> @@ -0,0 +1,4 @@
> +7d4a469b945db6a6a0020390742cfed0 *tests/data/fate/ffv1-s1024-bgra-r.nut
> +7393681 tests/data/fate/ffv1-s1024-bgra-r.nut
> +5a62bfcd55a764b27412ff4aa710d43a *tests/data/fate/ffv1-s1024-bgra-r.out.framecrc
> +stddev:28579.81 PSNR:  7.21 MAXDIFF:60652 bytes:  7603200/     1134
> diff --git a/tests/ref/fate/ffv1-s1024-gbrp16 b/tests/ref/fate/ffv1-s1024-gbrp16
> new file mode 100644
> index 0000000000..182d969afa
> --- /dev/null
> +++ b/tests/ref/fate/ffv1-s1024-gbrp16
> @@ -0,0 +1,4 @@
> +0da1f15bc7dbfb960cbb37b7554b9fd4 *tests/data/fate/ffv1-s1024-gbrp16.nut
> +9611659 tests/data/fate/ffv1-s1024-gbrp16.nut
> +40d9a119d8571e60e7bcd453ad211ca8 *tests/data/fate/ffv1-s1024-gbrp16.out.framecrc
> +stddev:28754.89 PSNR:  7.16 MAXDIFF:60652 bytes:  7603200/      786
> diff --git a/tests/ref/fate/ffv1-s1024-gray8 b/tests/ref/fate/ffv1-s1024-gray8
> new file mode 100644
> index 0000000000..4d12d826c7
> --- /dev/null
> +++ b/tests/ref/fate/ffv1-s1024-gray8
> @@ -0,0 +1,4 @@
> +8c29422462a2c36f812f2c7f83d7194f *tests/data/fate/ffv1-s1024-gray8.nut
> +5256256 tests/data/fate/ffv1-s1024-gray8.nut
> +8b63ba6c862fd9fbf8f843ebffc1efe0 *tests/data/fate/ffv1-s1024-gray8.out.framecrc
> +stddev:27758.05 PSNR:  7.46 MAXDIFF:60652 bytes:  7603200/     4440
> diff --git a/tests/ref/fate/ffv1-s1024-gray8-r b/tests/ref/fate/ffv1-s1024-gray8-r
> new file mode 100644
> index 0000000000..2d7ca446de
> --- /dev/null
> +++ b/tests/ref/fate/ffv1-s1024-gray8-r
> @@ -0,0 +1,4 @@
> +53c546bc16903911d83f9b85b0db63c1 *tests/data/fate/ffv1-s1024-gray8-r.nut
> +6096362 tests/data/fate/ffv1-s1024-gray8-r.nut
> +8b63ba6c862fd9fbf8f843ebffc1efe0 *tests/data/fate/ffv1-s1024-gray8-r.out.framecrc
> +stddev:27758.05 PSNR:  7.46 MAXDIFF:60652 bytes:  7603200/     4440
> diff --git a/tests/ref/fate/ffv1-s1024-yuv444p b/tests/ref/fate/ffv1-s1024-yuv444p
> new file mode 100644
> index 0000000000..35b34c45c3
> --- /dev/null
> +++ b/tests/ref/fate/ffv1-s1024-yuv444p
> @@ -0,0 +1,4 @@
> +a0aaa5cf8d09196dab2d7eb6ba354377 *tests/data/fate/ffv1-s1024-yuv444p.nut
> +4640669 tests/data/fate/ffv1-s1024-yuv444p.nut
> +11763ee488e7ec55b7d8a7b5b1bfd6ca *tests/data/fate/ffv1-s1024-yuv444p.out.framecrc
> +stddev:28620.03 PSNR:  7.20 MAXDIFF:60652 bytes:  7603200/     1540
> diff --git a/tests/ref/fate/ffv1-s1024-yuv444p-r b/tests/ref/fate/ffv1-s1024-yuv444p-r
> new file mode 100644
> index 0000000000..7d95a31a39
> --- /dev/null
> +++ b/tests/ref/fate/ffv1-s1024-yuv444p-r
> @@ -0,0 +1,4 @@
> +0e8606ceaad521d2e33b14d608f7e266 *tests/data/fate/ffv1-s1024-yuv444p-r.nut
> +5426601 tests/data/fate/ffv1-s1024-yuv444p-r.nut
> +11763ee488e7ec55b7d8a7b5b1bfd6ca *tests/data/fate/ffv1-s1024-yuv444p-r.out.framecrc
> +stddev:28620.03 PSNR:  7.20 MAXDIFF:60652 bytes:  7603200/     1540

_______________________________________________
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".

  reply	other threads:[~2025-04-16 10:22 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-16  9:55 Lynne
2025-04-16 10:22 ` Andreas Rheinhardt [this message]
2025-04-16 10:39   ` Lynne

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=GV1P250MB073722AFD2D5F371896B876B8FBD2@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM \
    --to=andreas.rheinhardt@outlook.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