* [FFmpeg-devel] [PR] tests/fate: add FATE tests for film_grain_params, CNG roundtrip, aderivative/aintegral (PR #22258)
@ 2026-02-22 17:34 MarcosAsh via ffmpeg-devel
0 siblings, 0 replies; only message in thread
From: MarcosAsh via ffmpeg-devel @ 2026-02-22 17:34 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: MarcosAsh
PR #22258 opened by MarcosAsh
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22258
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22258.patch
### 1. `film_grain_params` (libavutil)
- Unit test covering `av_film_grain_params_alloc`, `av_film_grain_params_create_side_data`, and `av_film_grain_params_select` for both AV1 and H.274 film grain parameter types (22 test cases).
### 2. CNG encoder roundtrip (voice)
- Encode/decode roundtrip test for the Comfort Noise Generator codec using the NUT container, validating that the codec pipeline works end-to-end.
### 3. `aderivative` and `aintegral` audio filters
- framecrc tests covering `aderivative` (s16, fltp, s32p with timeline editing) and `aintegral` (s16, dblp) filters.
*Submitted as part of a GSoC 2026 qualification task for the "Improving FATE Test Coverage" project.*
>From f8240c71ab4dc24c1215ffb0b9020ee4e2ec3765 Mon Sep 17 00:00:00 2001
From: marcos ashton <marcosashiglesias@gmail.com>
Date: Fri, 20 Feb 2026 15:48:15 +0000
Subject: [PATCH 1/3] tests/fate/libavutil: add FATE test for film_grain_params
Add a unit test covering alloc, create_side_data, and select
for AV1 and H.274 film grain parameter types (22 cases).
Signed-off-by: marcos ashton <marcosashiglesias@gmail.com>
---
libavutil/Makefile | 1 +
libavutil/tests/film_grain_params.c | 240 ++++++++++++++++++++++++++++
tests/fate/libavutil.mak | 4 +
tests/ref/fate/film_grain_params | 30 ++++
4 files changed, 275 insertions(+)
create mode 100644 libavutil/tests/film_grain_params.c
create mode 100644 tests/ref/fate/film_grain_params
diff --git a/libavutil/Makefile b/libavutil/Makefile
index c5241895ff..6526d4d73d 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -277,6 +277,7 @@ TESTPROGS = adler32 \
eval \
file \
fifo \
+ film_grain_params \
hash \
hmac \
hwdevice \
diff --git a/libavutil/tests/film_grain_params.c b/libavutil/tests/film_grain_params.c
new file mode 100644
index 0000000000..043c2bf3a9
--- /dev/null
+++ b/libavutil/tests/film_grain_params.c
@@ -0,0 +1,240 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdio.h>
+
+#include "libavutil/film_grain_params.c"
+
+static AVFrame *create_frame(enum AVPixelFormat format, int width, int height)
+{
+ AVFrame *frame = av_frame_alloc();
+ if (!frame)
+ return NULL;
+ frame->format = format;
+ frame->width = width;
+ frame->height = height;
+ return frame;
+}
+
+static AVFilmGrainParams *add_grain(AVFrame *frame,
+ enum AVFilmGrainParamsType type,
+ int width, int height,
+ int sub_x, int sub_y,
+ int bd_luma, int bd_chroma)
+{
+ AVFilmGrainParams *fgp = av_film_grain_params_create_side_data(frame);
+ if (!fgp)
+ return NULL;
+ fgp->type = type;
+ fgp->width = width;
+ fgp->height = height;
+ fgp->subsampling_x = sub_x;
+ fgp->subsampling_y = sub_y;
+ fgp->bit_depth_luma = bd_luma;
+ fgp->bit_depth_chroma = bd_chroma;
+ return fgp;
+}
+
+int main(void)
+{
+ AVFilmGrainParams *fgp;
+ const AVFilmGrainParams *sel;
+ AVFrame *frame;
+ size_t size;
+
+ printf("Testing av_film_grain_params_alloc()\n");
+
+ fgp = av_film_grain_params_alloc(&size);
+ printf("alloc with size: %s\n", (fgp && size > 0) ? "OK" : "FAIL");
+ av_free(fgp);
+
+ fgp = av_film_grain_params_alloc(NULL);
+ printf("alloc without size: %s\n", fgp ? "OK" : "FAIL");
+ av_free(fgp);
+
+ printf("\nTesting av_film_grain_params_create_side_data()\n");
+
+ frame = av_frame_alloc();
+ fgp = av_film_grain_params_create_side_data(frame);
+ printf("create: %s\n", fgp ? "OK" : "FAIL");
+ printf("defaults: range=%d pri=%d trc=%d space=%d\n",
+ fgp->color_range, fgp->color_primaries,
+ fgp->color_trc, fgp->color_space);
+ av_frame_free(&frame);
+
+ printf("\nTesting av_film_grain_params_select()\n");
+
+ /* invalid format */
+ frame = av_frame_alloc();
+ frame->format = -1;
+ sel = av_film_grain_params_select(frame);
+ printf("invalid format: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* no side data */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ sel = av_film_grain_params_select(frame);
+ printf("no side data: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* NONE type - skipped */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_NONE, 0, 0, 1, 1, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("NONE type: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* AV1 exact subsampling match (YUV420P: sub 1,1) */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("AV1 match: %s\n", sel ? "OK" : "FAIL");
+ av_frame_free(&frame);
+
+ /* AV1 subsampling mismatch */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 0, 0, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("AV1 sub mismatch: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* H274 exact match */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_H274, 0, 0, 1, 1, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("H274 match: %s\n", sel ? "OK" : "FAIL");
+ av_frame_free(&frame);
+
+ /* H274 lower subsampling OK (grain sub 0,0 < YUV420P sub 1,1) */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_H274, 0, 0, 0, 0, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("H274 lower sub: %s\n", sel ? "OK" : "FAIL");
+ av_frame_free(&frame);
+
+ /* H274 higher subsampling FAIL (grain sub 1,1 > YUV444P sub 0,0) */
+ frame = create_frame(AV_PIX_FMT_YUV444P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_H274, 0, 0, 1, 1, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("H274 higher sub: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* width too large */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 3840, 0, 1, 1, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("width too large: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* height too large */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 2160, 1, 1, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("height too large: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* width/height = 0 (unspecified) - passes */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("size unspecified: %s\n", sel ? "OK" : "FAIL");
+ av_frame_free(&frame);
+
+ /* bit_depth_luma mismatch (grain=10, YUV420P=8) */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 10, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("bd_luma mismatch: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* bit_depth_chroma mismatch (grain=10, YUV420P=8) */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 0, 10);
+ sel = av_film_grain_params_select(frame);
+ printf("bd_chroma mismatch: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* bit_depth = 0 (unspecified) - passes */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("bd unspecified: %s\n", sel ? "OK" : "FAIL");
+ av_frame_free(&frame);
+
+ /* bit_depth exact match (grain=8, YUV420P=8) */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 8, 8);
+ sel = av_film_grain_params_select(frame);
+ printf("bd exact match: %s\n", sel ? "OK" : "FAIL");
+ av_frame_free(&frame);
+
+ /* color_range mismatch */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ frame->color_range = AVCOL_RANGE_MPEG;
+ fgp = add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 0, 0);
+ fgp->color_range = AVCOL_RANGE_JPEG;
+ sel = av_film_grain_params_select(frame);
+ printf("color_range mismatch: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* color_primaries mismatch */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ frame->color_primaries = AVCOL_PRI_BT709;
+ fgp = add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 0, 0);
+ fgp->color_primaries = AVCOL_PRI_BT470M;
+ sel = av_film_grain_params_select(frame);
+ printf("color_primaries mismatch: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* color_trc mismatch */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ frame->color_trc = AVCOL_TRC_BT709;
+ fgp = add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 0, 0);
+ fgp->color_trc = AVCOL_TRC_GAMMA22;
+ sel = av_film_grain_params_select(frame);
+ printf("color_trc mismatch: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* color_space mismatch */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ frame->colorspace = AVCOL_SPC_BT709;
+ fgp = add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 0, 0);
+ fgp->color_space = AVCOL_SPC_BT470BG;
+ sel = av_film_grain_params_select(frame);
+ printf("color_space mismatch: %s\n", sel ? "FAIL" : "NULL");
+ av_frame_free(&frame);
+
+ /* color properties UNSPECIFIED - passes */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 0, 0, 1, 1, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("color unspecified: %s\n", sel ? "OK" : "FAIL");
+ av_frame_free(&frame);
+
+ /* multiple entries - best selection by size */
+ frame = create_frame(AV_PIX_FMT_YUV420P, 1920, 1080);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 640, 480, 1, 1, 0, 0);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 1280, 720, 1, 1, 0, 0);
+ add_grain(frame, AV_FILM_GRAIN_PARAMS_AV1, 1000, 1080, 1, 1, 0, 0);
+ sel = av_film_grain_params_select(frame);
+ printf("best selection: width=%d height=%d\n",
+ sel ? sel->width : -1, sel ? sel->height : -1);
+ av_frame_free(&frame);
+
+ return 0;
+}
diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak
index 6bf03b2438..4992f4e64f 100644
--- a/tests/fate/libavutil.mak
+++ b/tests/fate/libavutil.mak
@@ -87,6 +87,10 @@ FATE_LIBAVUTIL += fate-fifo
fate-fifo: libavutil/tests/fifo$(EXESUF)
fate-fifo: CMD = run libavutil/tests/fifo$(EXESUF)
+FATE_LIBAVUTIL += fate-film_grain_params
+fate-film_grain_params: libavutil/tests/film_grain_params$(EXESUF)
+fate-film_grain_params: CMD = run libavutil/tests/film_grain_params$(EXESUF)
+
FATE_LIBAVUTIL += fate-hash
fate-hash: libavutil/tests/hash$(EXESUF)
fate-hash: CMD = run libavutil/tests/hash$(EXESUF)
diff --git a/tests/ref/fate/film_grain_params b/tests/ref/fate/film_grain_params
new file mode 100644
index 0000000000..1b3f8f2b30
--- /dev/null
+++ b/tests/ref/fate/film_grain_params
@@ -0,0 +1,30 @@
+Testing av_film_grain_params_alloc()
+alloc with size: OK
+alloc without size: OK
+
+Testing av_film_grain_params_create_side_data()
+create: OK
+defaults: range=0 pri=2 trc=2 space=2
+
+Testing av_film_grain_params_select()
+invalid format: NULL
+no side data: NULL
+NONE type: NULL
+AV1 match: OK
+AV1 sub mismatch: NULL
+H274 match: OK
+H274 lower sub: OK
+H274 higher sub: NULL
+width too large: NULL
+height too large: NULL
+size unspecified: OK
+bd_luma mismatch: NULL
+bd_chroma mismatch: NULL
+bd unspecified: OK
+bd exact match: OK
+color_range mismatch: NULL
+color_primaries mismatch: NULL
+color_trc mismatch: NULL
+color_space mismatch: NULL
+color unspecified: OK
+best selection: width=1000 height=1080
--
2.52.0
>From 5cb03fa975ba2bb6ba230d69bd97361a9bce656d Mon Sep 17 00:00:00 2001
From: marcos ashton <marcosashiglesias@gmail.com>
Date: Fri, 20 Feb 2026 15:48:32 +0000
Subject: [PATCH 2/3] tests/fate/voice: add FATE test for CNG encoder roundtrip
Add an encode/decode roundtrip test for the CNG codec using
the NUT container. Added to FATE_FFMPEG since it uses generated
data, not external samples.
Signed-off-by: marcos ashton <marcosashiglesias@gmail.com>
---
tests/fate/voice.mak | 8 ++++
tests/ref/fate/cng-encode | 84 +++++++++++++++++++++++++++++++++++++++
2 files changed, 92 insertions(+)
create mode 100644 tests/ref/fate/cng-encode
diff --git a/tests/fate/voice.mak b/tests/fate/voice.mak
index 945b8624ac..21db08ddc1 100644
--- a/tests/fate/voice.mak
+++ b/tests/fate/voice.mak
@@ -1,3 +1,11 @@
+FATE_CNG-$(call FRAMEMD5, WAV, COMFORTNOISE, NUT_MUXER NUT_DEMUXER COMFORTNOISE_ENCODER PCM_S16LE_DECODER) += fate-cng-encode
+fate-cng-encode: tests/data/asynth-8000-1.wav
+fate-cng-encode: SRC = tests/data/asynth-8000-1.wav
+fate-cng-encode: CMD = enc_dec_pcm nut framemd5 s16le $(SRC) -c:a comfortnoise
+
+FATE_FFMPEG += $(FATE_CNG-yes)
+fate-cng: $(FATE_CNG-yes)
+
FATE_G722-$(call FRAMECRC, G722, ADPCM_G722) += fate-g722dec-1
fate-g722dec-1: CMD = framecrc -i $(TARGET_SAMPLES)/g722/conf-adminmenu-162.g722
diff --git a/tests/ref/fate/cng-encode b/tests/ref/fate/cng-encode
new file mode 100644
index 0000000000..47ec43d55f
--- /dev/null
+++ b/tests/ref/fate/cng-encode
@@ -0,0 +1,84 @@
+#format: frame checksums
+#version: 2
+#hash: MD5
+#tb 0: 1/8000
+#media_type 0: audio
+#codec_id 0: pcm_s16le
+#sample_rate 0: 8000
+#channel_layout_name 0: mono
+#stream#, dts, pts, duration, size, hash
+0, 0, 0, 640, 1280, 941c49e6a56933f663a83b5b2bde64d3
+0, 640, 640, 640, 1280, d1268ca433a0d01e2a6c1f1de5e6317d
+0, 1280, 1280, 640, 1280, c9608efb1df4cfedaa7a78c815514376
+0, 1920, 1920, 640, 1280, 45dbde137f46b0a3a347d48586f5c9e0
+0, 2560, 2560, 640, 1280, add64ee46ac49109ad90f80af9c1b823
+0, 3200, 3200, 640, 1280, 4d424b644b380aebc4fcabe6294d36c4
+0, 3840, 3840, 640, 1280, cf80a6fea238b405e93b66109ee2cf45
+0, 4480, 4480, 640, 1280, 0bdcee2800e3636132f20bb9ff41e9a0
+0, 5120, 5120, 640, 1280, 5d91e6ea16fde757fd8d3482a7659cda
+0, 5760, 5760, 640, 1280, 02d2033f1a56ae27f0b394643741ed4c
+0, 6400, 6400, 640, 1280, 293d9a686e809c814a95ba2e123be024
+0, 7040, 7040, 640, 1280, 90245e7394f999cc2fef5eccee6f8b65
+0, 7680, 7680, 640, 1280, f42fd806b3f29c44c47117c43c39d046
+0, 8320, 8320, 640, 1280, 8d5f671fdb9e1978f1a1e0edaa2b2558
+0, 8960, 8960, 640, 1280, 1b4d436cff37b0eb3b6ed39ac2f734c5
+0, 9600, 9600, 640, 1280, 3605b9b00dc7886d2d21ba45d3ddf93f
+0, 10240, 10240, 640, 1280, fbe4cc371c09ffdc4c708a6fc5d98e72
+0, 10880, 10880, 640, 1280, d29cf29e3d88b370ed230863aa20395d
+0, 11520, 11520, 640, 1280, 45d5ba56a767ceac95d70a2bf1809d9a
+0, 12160, 12160, 640, 1280, f2c657802964d2a47c2bd5f016358b3f
+0, 12800, 12800, 640, 1280, 5fcd623714d0ce5a2af787fa2248b688
+0, 13440, 13440, 640, 1280, 8301f4336a5b3906dccc5ad64da1a27f
+0, 14080, 14080, 640, 1280, 9b2bb84866d022b7e324f5246b02f87c
+0, 14720, 14720, 640, 1280, d5ea40516bc18acc1758a996839d9264
+0, 15360, 15360, 640, 1280, 35e67297233ad55bad1cbf0ae00ecea4
+0, 16000, 16000, 640, 1280, d139db647c14b1f8aaa14af734a4246b
+0, 16640, 16640, 640, 1280, 7432f1186f23685aa50287c39da9c6cb
+0, 17280, 17280, 640, 1280, 26df0d4d915feec640510d6be4633267
+0, 17920, 17920, 640, 1280, f1cc82f71f6d5a44168ab438e8ff1b5e
+0, 18560, 18560, 640, 1280, 64373fdf85396c7cd0925ae5f0cf2ea1
+0, 19200, 19200, 640, 1280, eeb9e6c7c48aa008cd312156371d5866
+0, 19840, 19840, 640, 1280, da33a214c23b8f618fb7305f435a21af
+0, 20480, 20480, 640, 1280, 05131d541dec3a691a803dcc3cf71fdf
+0, 21120, 21120, 640, 1280, a197fec6f3b77746818ca3765c39ccd7
+0, 21760, 21760, 640, 1280, 48907fa4891809908f9d3fffd5f9f772
+0, 22400, 22400, 640, 1280, dcde835643294d688a9e419d928f5f9a
+0, 23040, 23040, 640, 1280, b155f7e7b6be9dbf2ec9e57d4670104a
+0, 23680, 23680, 640, 1280, f44a985a6a77d3ce50b1aa3681f1ab58
+0, 24320, 24320, 640, 1280, 283578e55246ca9bb246cef45b16e011
+0, 24960, 24960, 640, 1280, 2e3c1e249a75f83a61a0a641cae00c52
+0, 25600, 25600, 640, 1280, 5e7f18c94614d3bc5f0d8db117ecfe79
+0, 26240, 26240, 640, 1280, 600da4aedd04939c02eff33cffefd28e
+0, 26880, 26880, 640, 1280, e75e908f21713a0645fde30d458a57e7
+0, 27520, 27520, 640, 1280, 1d7da87f74ea3765e8824730f32e663a
+0, 28160, 28160, 640, 1280, c5b085d6d20c2a95dbd7bd5a4482d247
+0, 28800, 28800, 640, 1280, c5f889c232bc402f7caa8678b914cd76
+0, 29440, 29440, 640, 1280, 570ecd19b56729becb21a6064bb28dcf
+0, 30080, 30080, 640, 1280, a0658fbfc910f9870066f23ecc80acde
+0, 30720, 30720, 640, 1280, f73a9dd50ca3d5fbfca3929eaf1857c3
+0, 31360, 31360, 640, 1280, fe65a3edd5fff4b250998ba49bac83a2
+0, 32000, 32000, 640, 1280, 5937007a0b2f5fc77bbcfad87696b561
+0, 32640, 32640, 640, 1280, 20185e49dcafcd0bdaec48c4b959efb4
+0, 33280, 33280, 640, 1280, efd9a78f37dc6d5ef0b6c707f2a42ef6
+0, 33920, 33920, 640, 1280, 29bf0f623d7b2bc059e82c044321a0b2
+0, 34560, 34560, 640, 1280, 5247ea3adb87b63123edc4d8aa1cd7d9
+0, 35200, 35200, 640, 1280, 26e874e6e7fa996a10e745d1458041aa
+0, 35840, 35840, 640, 1280, ae05627e46a57fb012e3ad7385e7209f
+0, 36480, 36480, 640, 1280, 8071ebfb305857752be7c6c2ec6fcfe6
+0, 37120, 37120, 640, 1280, aea2f9485c033775069e26742e6c5b10
+0, 37760, 37760, 640, 1280, da39227c2783ff9c93bda0f76721351d
+0, 38400, 38400, 640, 1280, 0fdc873f2ae38eead6b7288bbd6284c6
+0, 39040, 39040, 640, 1280, cb914ed339a329e745fa1be133c8cb49
+0, 39680, 39680, 640, 1280, 310c838ba6bd4d1516c5d58ff56101c1
+0, 40320, 40320, 640, 1280, e6778cef302e53f2876c159d46c20ba7
+0, 40960, 40960, 640, 1280, 188783c00724734f36290b829ad43090
+0, 41600, 41600, 640, 1280, cad5cb529a714be1001812e4f7f85c09
+0, 42240, 42240, 640, 1280, 49160e719471d3cee87693c007716385
+0, 42880, 42880, 640, 1280, f727d1f4aeadf282ba4289b96f619959
+0, 43520, 43520, 640, 1280, 86f2dce79aa48682c6244a32eb7626d9
+0, 44160, 44160, 640, 1280, cf5b904813aa083dbd55fb71c36f8fa4
+0, 44800, 44800, 640, 1280, 720be14ab39550a8865ec14a441a794c
+0, 45440, 45440, 640, 1280, 3b70bcf20fb3a643053be658a3eda306
+0, 46080, 46080, 640, 1280, f8de057282a2172f5a641a6ecb55a446
+0, 46720, 46720, 640, 1280, e906b77a617f7403d5065957ec21cf0f
+0, 47360, 47360, 640, 1280, 53a7c92afa0942581c1639c5cd289173
--
2.52.0
>From a0ef957b48b27e4c8b0d29e8c7d38c159ae56f61 Mon Sep 17 00:00:00 2001
From: marcos ashton <marcosashiglesias@gmail.com>
Date: Fri, 20 Feb 2026 15:53:54 +0000
Subject: [PATCH 3/3] tests/fate/filter-audio: add FATE tests for aderivative
and aintegral
Add framecrc tests covering aderivative (s16, fltp, s32p with
timeline editing) and aintegral (s16, dblp) filters.
Signed-off-by: marcos ashton <marcosashiglesias@gmail.com>
---
tests/fate/filter-audio.mak | 25 +++++++++
tests/ref/fate/filter-aderivative | 70 ++++++++++++++++++++++++++
tests/ref/fate/filter-aderivative-fltp | 70 ++++++++++++++++++++++++++
tests/ref/fate/filter-aderivative-s32p | 70 ++++++++++++++++++++++++++
tests/ref/fate/filter-aintegral | 70 ++++++++++++++++++++++++++
tests/ref/fate/filter-aintegral-dblp | 70 ++++++++++++++++++++++++++
6 files changed, 375 insertions(+)
create mode 100644 tests/ref/fate/filter-aderivative
create mode 100644 tests/ref/fate/filter-aderivative-fltp
create mode 100644 tests/ref/fate/filter-aderivative-s32p
create mode 100644 tests/ref/fate/filter-aintegral
create mode 100644 tests/ref/fate/filter-aintegral-dblp
diff --git a/tests/fate/filter-audio.mak b/tests/fate/filter-audio.mak
index 526645a634..ea812530d6 100644
--- a/tests/fate/filter-audio.mak
+++ b/tests/fate/filter-audio.mak
@@ -3,6 +3,31 @@ fate-filter-adelay: tests/data/asynth-44100-2.wav
fate-filter-adelay: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
fate-filter-adelay: CMD = framecrc -i $(SRC) -af aresample,adelay=42,aresample
+FATE_AFILTER-$(call FILTERDEMDECENCMUX, ADERIVATIVE ARESAMPLE, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-aderivative
+fate-filter-aderivative: tests/data/asynth-44100-2.wav
+fate-filter-aderivative: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
+fate-filter-aderivative: CMD = framecrc -i $(SRC) -af aresample,aderivative,aresample
+
+FATE_AFILTER-$(call FILTERDEMDECENCMUX, ADERIVATIVE ARESAMPLE AFORMAT, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-aderivative-fltp
+fate-filter-aderivative-fltp: tests/data/asynth-44100-2.wav
+fate-filter-aderivative-fltp: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
+fate-filter-aderivative-fltp: CMD = framecrc -i $(SRC) -af aresample,aformat=sample_fmts=fltp,aderivative,aresample
+
+FATE_AFILTER-$(call FILTERDEMDECENCMUX, ADERIVATIVE ARESAMPLE AFORMAT, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-aderivative-s32p
+fate-filter-aderivative-s32p: tests/data/asynth-44100-2.wav
+fate-filter-aderivative-s32p: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
+fate-filter-aderivative-s32p: CMD = framecrc -i $(SRC) -af "aresample,aformat=sample_fmts=s32p,aderivative=enable=lt(t\,0.5),aresample"
+
+FATE_AFILTER-$(call FILTERDEMDECENCMUX, AINTEGRAL ARESAMPLE, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-aintegral
+fate-filter-aintegral: tests/data/asynth-44100-2.wav
+fate-filter-aintegral: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
+fate-filter-aintegral: CMD = framecrc -i $(SRC) -af aresample,aintegral,aresample
+
+FATE_AFILTER-$(call FILTERDEMDECENCMUX, AINTEGRAL ARESAMPLE AFORMAT, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-aintegral-dblp
+fate-filter-aintegral-dblp: tests/data/asynth-44100-2.wav
+fate-filter-aintegral-dblp: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
+fate-filter-aintegral-dblp: CMD = framecrc -i $(SRC) -af aresample,aformat=sample_fmts=dblp,aintegral,aresample
+
FATE_AFILTER-$(call FILTERDEMDECENCMUX, AECHO ARESAMPLE, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-aecho
fate-filter-aecho: tests/data/asynth-44100-2.wav
fate-filter-aecho: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
diff --git a/tests/ref/fate/filter-aderivative b/tests/ref/fate/filter-aderivative
new file mode 100644
index 0000000000..29c1fdb30e
--- /dev/null
+++ b/tests/ref/fate/filter-aderivative
@@ -0,0 +1,70 @@
+#tb 0: 1/44100
+#media_type 0: audio
+#codec_id 0: pcm_s16le
+#sample_rate 0: 44100
+#channel_layout_name 0: stereo
+0, 0, 0, 4096, 16384, 0xd6c0e8e3
+0, 4096, 4096, 4096, 16384, 0xe7dbe5b9
+0, 8192, 8192, 4096, 16384, 0xeeeee63d
+0, 12288, 12288, 4096, 16384, 0x7da1e701
+0, 16384, 16384, 4096, 16384, 0xfebbda7d
+0, 20480, 20480, 4096, 16384, 0xef1fdc07
+0, 24576, 24576, 4096, 16384, 0xa84cdb83
+0, 28672, 28672, 4096, 16384, 0x154fdcbd
+0, 32768, 32768, 4096, 16384, 0x5818e941
+0, 36864, 36864, 4096, 16384, 0xe7dbe5b9
+0, 40960, 40960, 4096, 16384, 0x9737843a
+0, 45056, 45056, 4096, 16384, 0x9572d907
+0, 49152, 49152, 4096, 16384, 0x330714d2
+0, 53248, 53248, 4096, 16384, 0x645daa75
+0, 57344, 57344, 4096, 16384, 0x5322f1b9
+0, 61440, 61440, 4096, 16384, 0x89080f7c
+0, 65536, 65536, 4096, 16384, 0x435cd08b
+0, 69632, 69632, 4096, 16384, 0x36bfa3af
+0, 73728, 73728, 4096, 16384, 0x3fbce4eb
+0, 77824, 77824, 4096, 16384, 0xc30b1b0c
+0, 81920, 81920, 4096, 16384, 0xb5e9cd43
+0, 86016, 86016, 4096, 16384, 0x74ba710f
+0, 90112, 90112, 4096, 16384, 0xabc2fbec
+0, 94208, 94208, 4096, 16384, 0x62c80705
+0, 98304, 98304, 4096, 16384, 0x9dd85c4d
+0, 102400, 102400, 4096, 16384, 0x21d0b07a
+0, 106496, 106496, 4096, 16384, 0x47abf156
+0, 110592, 110592, 4096, 16384, 0xa403e5ef
+0, 114688, 114688, 4096, 16384, 0x33a90708
+0, 118784, 118784, 4096, 16384, 0xda843c02
+0, 122880, 122880, 4096, 16384, 0x7139fac7
+0, 126976, 126976, 4096, 16384, 0x8e60ddf9
+0, 131072, 131072, 4096, 16384, 0x36e0c49d
+0, 135168, 135168, 4096, 16384, 0xa4f2e58f
+0, 139264, 139264, 4096, 16384, 0x801bd3c9
+0, 143360, 143360, 4096, 16384, 0xa393ca4e
+0, 147456, 147456, 4096, 16384, 0x0d8ee23c
+0, 151552, 151552, 4096, 16384, 0x3aacdc2b
+0, 155648, 155648, 4096, 16384, 0x42f6e56d
+0, 159744, 159744, 4096, 16384, 0xd459e432
+0, 163840, 163840, 4096, 16384, 0x71fcf11c
+0, 167936, 167936, 4096, 16384, 0x8f0fed4a
+0, 172032, 172032, 4096, 16384, 0x2f92dc12
+0, 176128, 176128, 4096, 16384, 0x4dc349a0
+0, 180224, 180224, 4096, 16384, 0x28cacefd
+0, 184320, 184320, 4096, 16384, 0xfc18a542
+0, 188416, 188416, 4096, 16384, 0x6f50ba16
+0, 192512, 192512, 4096, 16384, 0x923bc233
+0, 196608, 196608, 4096, 16384, 0x54efbcdd
+0, 200704, 200704, 4096, 16384, 0x846a9aa0
+0, 204800, 204800, 4096, 16384, 0x614ad5c1
+0, 208896, 208896, 4096, 16384, 0xd839bd90
+0, 212992, 212992, 4096, 16384, 0x28cacefd
+0, 217088, 217088, 4096, 16384, 0xfc18a542
+0, 221184, 221184, 4096, 16384, 0x6f50ba16
+0, 225280, 225280, 4096, 16384, 0x923bc233
+0, 229376, 229376, 4096, 16384, 0x54efbcdd
+0, 233472, 233472, 4096, 16384, 0x846a9aa0
+0, 237568, 237568, 4096, 16384, 0x614ad5c1
+0, 241664, 241664, 4096, 16384, 0xd839bd90
+0, 245760, 245760, 4096, 16384, 0x28cacefd
+0, 249856, 249856, 4096, 16384, 0xfc18a542
+0, 253952, 253952, 4096, 16384, 0x6f50ba16
+0, 258048, 258048, 4096, 16384, 0x923bc233
+0, 262144, 262144, 2456, 9824, 0x83fa1b45
diff --git a/tests/ref/fate/filter-aderivative-fltp b/tests/ref/fate/filter-aderivative-fltp
new file mode 100644
index 0000000000..471b731e30
--- /dev/null
+++ b/tests/ref/fate/filter-aderivative-fltp
@@ -0,0 +1,70 @@
+#tb 0: 1/44100
+#media_type 0: audio
+#codec_id 0: pcm_s16le
+#sample_rate 0: 44100
+#channel_layout_name 0: stereo
+0, 0, 0, 4096, 16384, 0xd6c0e8e3
+0, 4096, 4096, 4096, 16384, 0xe7dbe5b9
+0, 8192, 8192, 4096, 16384, 0xeeeee63d
+0, 12288, 12288, 4096, 16384, 0x7da1e701
+0, 16384, 16384, 4096, 16384, 0xfebbda7d
+0, 20480, 20480, 4096, 16384, 0xef1fdc07
+0, 24576, 24576, 4096, 16384, 0xa84cdb83
+0, 28672, 28672, 4096, 16384, 0x154fdcbd
+0, 32768, 32768, 4096, 16384, 0x5818e941
+0, 36864, 36864, 4096, 16384, 0xe7dbe5b9
+0, 40960, 40960, 4096, 16384, 0x9737843a
+0, 45056, 45056, 4096, 16384, 0x9572d907
+0, 49152, 49152, 4096, 16384, 0x330714d2
+0, 53248, 53248, 4096, 16384, 0x645daa75
+0, 57344, 57344, 4096, 16384, 0x5322f1b9
+0, 61440, 61440, 4096, 16384, 0x89080f7c
+0, 65536, 65536, 4096, 16384, 0x435cd08b
+0, 69632, 69632, 4096, 16384, 0x36bfa3af
+0, 73728, 73728, 4096, 16384, 0x3fbce4eb
+0, 77824, 77824, 4096, 16384, 0xc30b1b0c
+0, 81920, 81920, 4096, 16384, 0xb5e9cd43
+0, 86016, 86016, 4096, 16384, 0x74ba710f
+0, 90112, 90112, 4096, 16384, 0xabc2fbec
+0, 94208, 94208, 4096, 16384, 0x62c80705
+0, 98304, 98304, 4096, 16384, 0x9dd85c4d
+0, 102400, 102400, 4096, 16384, 0x21d0b07a
+0, 106496, 106496, 4096, 16384, 0xe1ebea58
+0, 110592, 110592, 4096, 16384, 0xf9a9ed19
+0, 114688, 114688, 4096, 16384, 0x9097fadf
+0, 118784, 118784, 4096, 16384, 0x8687615e
+0, 122880, 122880, 4096, 16384, 0xe6d1f30b
+0, 126976, 126976, 4096, 16384, 0xdc16b7db
+0, 131072, 131072, 4096, 16384, 0x2475aac5
+0, 135168, 135168, 4096, 16384, 0xa4f2e58f
+0, 139264, 139264, 4096, 16384, 0x801bd3c9
+0, 143360, 143360, 4096, 16384, 0xa393ca4e
+0, 147456, 147456, 4096, 16384, 0x0d8ee23c
+0, 151552, 151552, 4096, 16384, 0x3aacdc2b
+0, 155648, 155648, 4096, 16384, 0x42f6e56d
+0, 159744, 159744, 4096, 16384, 0xd459e432
+0, 163840, 163840, 4096, 16384, 0x71fcf11c
+0, 167936, 167936, 4096, 16384, 0x8f0fed4a
+0, 172032, 172032, 4096, 16384, 0x2f92dc12
+0, 176128, 176128, 4096, 16384, 0x4dc349a0
+0, 180224, 180224, 4096, 16384, 0x28cacefd
+0, 184320, 184320, 4096, 16384, 0xfc18a542
+0, 188416, 188416, 4096, 16384, 0x6f50ba16
+0, 192512, 192512, 4096, 16384, 0x923bc233
+0, 196608, 196608, 4096, 16384, 0x54efbcdd
+0, 200704, 200704, 4096, 16384, 0x846a9aa0
+0, 204800, 204800, 4096, 16384, 0x614ad5c1
+0, 208896, 208896, 4096, 16384, 0xd839bd90
+0, 212992, 212992, 4096, 16384, 0x28cacefd
+0, 217088, 217088, 4096, 16384, 0xfc18a542
+0, 221184, 221184, 4096, 16384, 0x6f50ba16
+0, 225280, 225280, 4096, 16384, 0x923bc233
+0, 229376, 229376, 4096, 16384, 0x54efbcdd
+0, 233472, 233472, 4096, 16384, 0x846a9aa0
+0, 237568, 237568, 4096, 16384, 0x614ad5c1
+0, 241664, 241664, 4096, 16384, 0xd839bd90
+0, 245760, 245760, 4096, 16384, 0x28cacefd
+0, 249856, 249856, 4096, 16384, 0xfc18a542
+0, 253952, 253952, 4096, 16384, 0x6f50ba16
+0, 258048, 258048, 4096, 16384, 0x923bc233
+0, 262144, 262144, 2456, 9824, 0x83fa1b45
diff --git a/tests/ref/fate/filter-aderivative-s32p b/tests/ref/fate/filter-aderivative-s32p
new file mode 100644
index 0000000000..7656493d3d
--- /dev/null
+++ b/tests/ref/fate/filter-aderivative-s32p
@@ -0,0 +1,70 @@
+#tb 0: 1/44100
+#media_type 0: audio
+#codec_id 0: pcm_s16le
+#sample_rate 0: 44100
+#channel_layout_name 0: stereo
+0, 0, 0, 4096, 16384, 0xd6c0e8e3
+0, 4096, 4096, 4096, 16384, 0xe7dbe5b9
+0, 8192, 8192, 4096, 16384, 0xeeeee63d
+0, 12288, 12288, 4096, 16384, 0x7da1e701
+0, 16384, 16384, 4096, 16384, 0xfebbda7d
+0, 20480, 20480, 4096, 16384, 0xef1fdc07
+0, 24576, 24576, 4096, 16384, 0xabf6df0f
+0, 28672, 28672, 4096, 16384, 0xedefe76f
+0, 32768, 32768, 4096, 16384, 0x02ebe66b
+0, 36864, 36864, 4096, 16384, 0x35bfe081
+0, 40960, 40960, 4096, 16384, 0xdbc2b3b9
+0, 45056, 45056, 4096, 16384, 0xe92bd835
+0, 49152, 49152, 4096, 16384, 0x1126dca3
+0, 53248, 53248, 4096, 16384, 0x9647edcf
+0, 57344, 57344, 4096, 16384, 0x5cc345aa
+0, 61440, 61440, 4096, 16384, 0x19d7bd51
+0, 65536, 65536, 4096, 16384, 0x19eccef7
+0, 69632, 69632, 4096, 16384, 0x4b68eeed
+0, 73728, 73728, 4096, 16384, 0x0b3d1bfc
+0, 77824, 77824, 4096, 16384, 0xe9b2e069
+0, 81920, 81920, 4096, 16384, 0xcaa5590e
+0, 86016, 86016, 4096, 16384, 0x47d0b227
+0, 90112, 90112, 4096, 16384, 0x446ba7a4
+0, 94208, 94208, 4096, 16384, 0x299b2e17
+0, 98304, 98304, 4096, 16384, 0xc51affa2
+0, 102400, 102400, 4096, 16384, 0xb4970fcf
+0, 106496, 106496, 4096, 16384, 0xe48af9fc
+0, 110592, 110592, 4096, 16384, 0xc2beffbb
+0, 114688, 114688, 4096, 16384, 0xb9d99627
+0, 118784, 118784, 4096, 16384, 0xb65a2086
+0, 122880, 122880, 4096, 16384, 0x6386714b
+0, 126976, 126976, 4096, 16384, 0x92a3171e
+0, 131072, 131072, 4096, 16384, 0x78bad1e2
+0, 135168, 135168, 4096, 16384, 0x63301330
+0, 139264, 139264, 4096, 16384, 0xd663b943
+0, 143360, 143360, 4096, 16384, 0xdcafe377
+0, 147456, 147456, 4096, 16384, 0xfb2cd701
+0, 151552, 151552, 4096, 16384, 0x91c30201
+0, 155648, 155648, 4096, 16384, 0xf23da341
+0, 159744, 159744, 4096, 16384, 0xe8d5fa0a
+0, 163840, 163840, 4096, 16384, 0x519bdfef
+0, 167936, 167936, 4096, 16384, 0xf2fcd803
+0, 172032, 172032, 4096, 16384, 0xd5ceccbc
+0, 176128, 176128, 4096, 16384, 0xd48ada43
+0, 180224, 180224, 4096, 16384, 0x5a4ac40f
+0, 184320, 184320, 4096, 16384, 0x29db868a
+0, 188416, 188416, 4096, 16384, 0xa2a0002b
+0, 192512, 192512, 4096, 16384, 0xbb0bd9f6
+0, 196608, 196608, 4096, 16384, 0x338dffa4
+0, 200704, 200704, 4096, 16384, 0x970b71f5
+0, 204800, 204800, 4096, 16384, 0x0521c397
+0, 208896, 208896, 4096, 16384, 0xff5ec9de
+0, 212992, 212992, 4096, 16384, 0x5a4ac40f
+0, 217088, 217088, 4096, 16384, 0x29db868a
+0, 221184, 221184, 4096, 16384, 0xa2a0002b
+0, 225280, 225280, 4096, 16384, 0xbb0bd9f6
+0, 229376, 229376, 4096, 16384, 0x338dffa4
+0, 233472, 233472, 4096, 16384, 0x970b71f5
+0, 237568, 237568, 4096, 16384, 0x0521c397
+0, 241664, 241664, 4096, 16384, 0xff5ec9de
+0, 245760, 245760, 4096, 16384, 0x5a4ac40f
+0, 249856, 249856, 4096, 16384, 0x29db868a
+0, 253952, 253952, 4096, 16384, 0xa2a0002b
+0, 258048, 258048, 4096, 16384, 0xbb0bd9f6
+0, 262144, 262144, 2456, 9824, 0xb3f84641
diff --git a/tests/ref/fate/filter-aintegral b/tests/ref/fate/filter-aintegral
new file mode 100644
index 0000000000..33b9cc6655
--- /dev/null
+++ b/tests/ref/fate/filter-aintegral
@@ -0,0 +1,70 @@
+#tb 0: 1/44100
+#media_type 0: audio
+#codec_id 0: pcm_s16le
+#sample_rate 0: 44100
+#channel_layout_name 0: stereo
+0, 0, 0, 4096, 16384, 0x7b6eaba2
+0, 4096, 4096, 4096, 16384, 0x54892376
+0, 8192, 8192, 4096, 16384, 0x66d1e047
+0, 12288, 12288, 4096, 16384, 0xdaea9baf
+0, 16384, 16384, 4096, 16384, 0x62974a85
+0, 20480, 20480, 4096, 16384, 0x4fbdc8bc
+0, 24576, 24576, 4096, 16384, 0xd8ea692c
+0, 28672, 28672, 4096, 16384, 0x07690588
+0, 32768, 32768, 4096, 16384, 0xa04cc6e1
+0, 36864, 36864, 4096, 16384, 0x75946719
+0, 40960, 40960, 4096, 16384, 0xcc39945e
+0, 45056, 45056, 4096, 16384, 0xdd5cf68e
+0, 49152, 49152, 4096, 16384, 0x80644455
+0, 53248, 53248, 4096, 16384, 0xa7bd5317
+0, 57344, 57344, 4096, 16384, 0x051f760c
+0, 61440, 61440, 4096, 16384, 0xa0f0d9fc
+0, 65536, 65536, 4096, 16384, 0x3f9cd25a
+0, 69632, 69632, 4096, 16384, 0x9c4311de
+0, 73728, 73728, 4096, 16384, 0x0d152283
+0, 77824, 77824, 4096, 16384, 0x7d002ed8
+0, 81920, 81920, 4096, 16384, 0x82829598
+0, 86016, 86016, 4096, 16384, 0x955dec75
+0, 90112, 90112, 4096, 16384, 0x04b0735b
+0, 94208, 94208, 4096, 16384, 0xf49c45cf
+0, 98304, 98304, 4096, 16384, 0x4d9f6220
+0, 102400, 102400, 4096, 16384, 0x2c843253
+0, 106496, 106496, 4096, 16384, 0x6f17c2c1
+0, 110592, 110592, 4096, 16384, 0x7855e9f3
+0, 114688, 114688, 4096, 16384, 0x0ec05ba9
+0, 118784, 118784, 4096, 16384, 0x6f17c2c1
+0, 122880, 122880, 4096, 16384, 0x6f17c2c1
+0, 126976, 126976, 4096, 16384, 0x6f17c2c1
+0, 131072, 131072, 4096, 16384, 0x6f17c2c1
+0, 135168, 135168, 4096, 16384, 0x6f17c2c1
+0, 139264, 139264, 4096, 16384, 0x6f17c2c1
+0, 143360, 143360, 4096, 16384, 0x6f17c2c1
+0, 147456, 147456, 4096, 16384, 0x6f17c2c1
+0, 151552, 151552, 4096, 16384, 0x6f17c2c1
+0, 155648, 155648, 4096, 16384, 0x6f17c2c1
+0, 159744, 159744, 4096, 16384, 0x6f17c2c1
+0, 163840, 163840, 4096, 16384, 0x6f17c2c1
+0, 167936, 167936, 4096, 16384, 0x6f17c2c1
+0, 172032, 172032, 4096, 16384, 0x6f17c2c1
+0, 176128, 176128, 4096, 16384, 0x6f17c2c1
+0, 180224, 180224, 4096, 16384, 0x6f17c2c1
+0, 184320, 184320, 4096, 16384, 0x6f17c2c1
+0, 188416, 188416, 4096, 16384, 0x6f17c2c1
+0, 192512, 192512, 4096, 16384, 0x6f17c2c1
+0, 196608, 196608, 4096, 16384, 0x6f17c2c1
+0, 200704, 200704, 4096, 16384, 0x6f17c2c1
+0, 204800, 204800, 4096, 16384, 0x6f17c2c1
+0, 208896, 208896, 4096, 16384, 0x6f17c2c1
+0, 212992, 212992, 4096, 16384, 0x6f17c2c1
+0, 217088, 217088, 4096, 16384, 0x6f17c2c1
+0, 221184, 221184, 4096, 16384, 0x6f17c2c1
+0, 225280, 225280, 4096, 16384, 0x6f17c2c1
+0, 229376, 229376, 4096, 16384, 0x6f17c2c1
+0, 233472, 233472, 4096, 16384, 0x6f17c2c1
+0, 237568, 237568, 4096, 16384, 0x6f17c2c1
+0, 241664, 241664, 4096, 16384, 0x6f17c2c1
+0, 245760, 245760, 4096, 16384, 0x6f17c2c1
+0, 249856, 249856, 4096, 16384, 0x6f17c2c1
+0, 253952, 253952, 4096, 16384, 0x6f17c2c1
+0, 258048, 258048, 4096, 16384, 0x6f17c2c1
+0, 262144, 262144, 2456, 9824, 0x7e40a344
diff --git a/tests/ref/fate/filter-aintegral-dblp b/tests/ref/fate/filter-aintegral-dblp
new file mode 100644
index 0000000000..33b9cc6655
--- /dev/null
+++ b/tests/ref/fate/filter-aintegral-dblp
@@ -0,0 +1,70 @@
+#tb 0: 1/44100
+#media_type 0: audio
+#codec_id 0: pcm_s16le
+#sample_rate 0: 44100
+#channel_layout_name 0: stereo
+0, 0, 0, 4096, 16384, 0x7b6eaba2
+0, 4096, 4096, 4096, 16384, 0x54892376
+0, 8192, 8192, 4096, 16384, 0x66d1e047
+0, 12288, 12288, 4096, 16384, 0xdaea9baf
+0, 16384, 16384, 4096, 16384, 0x62974a85
+0, 20480, 20480, 4096, 16384, 0x4fbdc8bc
+0, 24576, 24576, 4096, 16384, 0xd8ea692c
+0, 28672, 28672, 4096, 16384, 0x07690588
+0, 32768, 32768, 4096, 16384, 0xa04cc6e1
+0, 36864, 36864, 4096, 16384, 0x75946719
+0, 40960, 40960, 4096, 16384, 0xcc39945e
+0, 45056, 45056, 4096, 16384, 0xdd5cf68e
+0, 49152, 49152, 4096, 16384, 0x80644455
+0, 53248, 53248, 4096, 16384, 0xa7bd5317
+0, 57344, 57344, 4096, 16384, 0x051f760c
+0, 61440, 61440, 4096, 16384, 0xa0f0d9fc
+0, 65536, 65536, 4096, 16384, 0x3f9cd25a
+0, 69632, 69632, 4096, 16384, 0x9c4311de
+0, 73728, 73728, 4096, 16384, 0x0d152283
+0, 77824, 77824, 4096, 16384, 0x7d002ed8
+0, 81920, 81920, 4096, 16384, 0x82829598
+0, 86016, 86016, 4096, 16384, 0x955dec75
+0, 90112, 90112, 4096, 16384, 0x04b0735b
+0, 94208, 94208, 4096, 16384, 0xf49c45cf
+0, 98304, 98304, 4096, 16384, 0x4d9f6220
+0, 102400, 102400, 4096, 16384, 0x2c843253
+0, 106496, 106496, 4096, 16384, 0x6f17c2c1
+0, 110592, 110592, 4096, 16384, 0x7855e9f3
+0, 114688, 114688, 4096, 16384, 0x0ec05ba9
+0, 118784, 118784, 4096, 16384, 0x6f17c2c1
+0, 122880, 122880, 4096, 16384, 0x6f17c2c1
+0, 126976, 126976, 4096, 16384, 0x6f17c2c1
+0, 131072, 131072, 4096, 16384, 0x6f17c2c1
+0, 135168, 135168, 4096, 16384, 0x6f17c2c1
+0, 139264, 139264, 4096, 16384, 0x6f17c2c1
+0, 143360, 143360, 4096, 16384, 0x6f17c2c1
+0, 147456, 147456, 4096, 16384, 0x6f17c2c1
+0, 151552, 151552, 4096, 16384, 0x6f17c2c1
+0, 155648, 155648, 4096, 16384, 0x6f17c2c1
+0, 159744, 159744, 4096, 16384, 0x6f17c2c1
+0, 163840, 163840, 4096, 16384, 0x6f17c2c1
+0, 167936, 167936, 4096, 16384, 0x6f17c2c1
+0, 172032, 172032, 4096, 16384, 0x6f17c2c1
+0, 176128, 176128, 4096, 16384, 0x6f17c2c1
+0, 180224, 180224, 4096, 16384, 0x6f17c2c1
+0, 184320, 184320, 4096, 16384, 0x6f17c2c1
+0, 188416, 188416, 4096, 16384, 0x6f17c2c1
+0, 192512, 192512, 4096, 16384, 0x6f17c2c1
+0, 196608, 196608, 4096, 16384, 0x6f17c2c1
+0, 200704, 200704, 4096, 16384, 0x6f17c2c1
+0, 204800, 204800, 4096, 16384, 0x6f17c2c1
+0, 208896, 208896, 4096, 16384, 0x6f17c2c1
+0, 212992, 212992, 4096, 16384, 0x6f17c2c1
+0, 217088, 217088, 4096, 16384, 0x6f17c2c1
+0, 221184, 221184, 4096, 16384, 0x6f17c2c1
+0, 225280, 225280, 4096, 16384, 0x6f17c2c1
+0, 229376, 229376, 4096, 16384, 0x6f17c2c1
+0, 233472, 233472, 4096, 16384, 0x6f17c2c1
+0, 237568, 237568, 4096, 16384, 0x6f17c2c1
+0, 241664, 241664, 4096, 16384, 0x6f17c2c1
+0, 245760, 245760, 4096, 16384, 0x6f17c2c1
+0, 249856, 249856, 4096, 16384, 0x6f17c2c1
+0, 253952, 253952, 4096, 16384, 0x6f17c2c1
+0, 258048, 258048, 4096, 16384, 0x6f17c2c1
+0, 262144, 262144, 2456, 9824, 0x7e40a344
--
2.52.0
_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-02-22 18:13 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-22 17:34 [FFmpeg-devel] [PR] tests/fate: add FATE tests for film_grain_params, CNG roundtrip, aderivative/aintegral (PR #22258) MarcosAsh via ffmpeg-devel
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