Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [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