PR #22347 opened by sohamukute
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22347
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22347.patch

Add FATE test coverage for three files across three libraries,
each previously under 50% branch coverage:

- libavutil/stereo3d.c: 25% -> 91.67% branches taken
- libavformat/vorbiscomment.c: 35.7% -> 75% branches taken
- libavfilter/vf_colorlevels.c: 8.9% -> 61.67% branches taken

Submitted as part of the GSoC 2026 qualification task.


>From cca616b403d328d081f472f53dd2c78d9bf00fbf Mon Sep 17 00:00:00 2001
From: Soham Kute <[email protected]>
Date: Mon, 2 Mar 2026 10:09:27 +0530
Subject: [PATCH 1/3] avutil/tests/stereo3d: add branch coverage for stereo3d
 API

Add a unit test covering all public stereo3d API functions not
exercised by existing tests: type/view/eye name lookups, round-trip
from_name checks, alloc with and without size output, and
create_side_data default field verification.

Signed-off-by: Soham Kute <[email protected]>
---
 libavutil/Makefile         |   1 +
 libavutil/tests/stereo3d.c | 178 +++++++++++++++++++++++++++++++++++++
 tests/fate/libavutil.mak   |   4 +
 tests/ref/fate/stereo3d    |  43 +++++++++
 4 files changed, 226 insertions(+)
 create mode 100644 libavutil/tests/stereo3d.c
 create mode 100644 tests/ref/fate/stereo3d

diff --git a/libavutil/Makefile b/libavutil/Makefile
index c5241895ff..389b7255c1 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -299,6 +299,7 @@ TESTPROGS = adler32                                         
            \
             sha                                                         \
             sha512                                                      \
             side_data_array                                             \
+            stereo3d                                                    \
             softfloat                                                   \
             tree                                                        \
             twofish                                                     \
diff --git a/libavutil/tests/stereo3d.c b/libavutil/tests/stereo3d.c
new file mode 100644
index 0000000000..56d646b11a
--- /dev/null
+++ b/libavutil/tests/stereo3d.c
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2026 Soham Kute
+ *
+ * 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 <stddef.h>
+#include <stdio.h>
+
+#include "libavutil/stereo3d.c"
+
+static int test_alloc(void)
+{
+    AVStereo3D *s;
+    size_t size;
+
+    /* av_stereo3d_alloc: NULL size path */
+    s = av_stereo3d_alloc();
+    if (!s) {
+        fprintf(stderr, "av_stereo3d_alloc failed\n");
+        return 1;
+    }
+    printf("alloc: type=%d flags=%d view=%d eye=%d\n",
+           s->type, s->flags, s->view, s->primary_eye);
+    printf("alloc: disparity=%d/%d fov=%d/%d\n",
+           s->horizontal_disparity_adjustment.num,
+           s->horizontal_disparity_adjustment.den,
+           s->horizontal_field_of_view.num,
+           s->horizontal_field_of_view.den);
+    av_free(s);
+
+    /* av_stereo3d_alloc_size: non-NULL size path */
+    size = 0;
+    s = av_stereo3d_alloc_size(&size);
+    if (!s) {
+        fprintf(stderr, "av_stereo3d_alloc_size failed\n");
+        return 1;
+    }
+    if (size != sizeof(AVStereo3D)) {
+        fprintf(stderr, "alloc_size: wrong size %zu, expected %zu\n", size, 
sizeof(AVStereo3D));
+        av_free(s);
+        return 1;
+    }
+    printf("alloc_size: size=ok\n");
+    av_free(s);
+    return 0;
+}
+
+static void test_type_names(void)
+{
+    static const int types[] = {
+        AV_STEREO3D_2D,
+        AV_STEREO3D_SIDEBYSIDE,
+        AV_STEREO3D_TOPBOTTOM,
+        AV_STEREO3D_FRAMESEQUENCE,
+        AV_STEREO3D_CHECKERBOARD,
+        AV_STEREO3D_SIDEBYSIDE_QUINCUNX,
+        AV_STEREO3D_LINES,
+        AV_STEREO3D_COLUMNS,
+        AV_STEREO3D_UNSPEC,
+    };
+
+    for (int i = 0; i < FF_ARRAY_ELEMS(types); i++)
+        printf("type_name(%d): %s\n", types[i], 
av_stereo3d_type_name(types[i]));
+
+    /* out-of-bounds -> "unknown" */
+    printf("type_name(9999): %s\n", av_stereo3d_type_name(9999));
+
+    /* from_name: round-trip each valid name */
+    for (int i = 0; i < FF_ARRAY_ELEMS(types); i++) {
+        const char *name = av_stereo3d_type_name(types[i]);
+        printf("from_name(%s): %d\n", name, av_stereo3d_from_name(name));
+    }
+
+    /* from_name: no match -> -1 */
+    printf("from_name(invalid): %d\n", av_stereo3d_from_name("invalid"));
+}
+
+static void test_view_names(void)
+{
+    static const int views[] = {
+        AV_STEREO3D_VIEW_PACKED,
+        AV_STEREO3D_VIEW_LEFT,
+        AV_STEREO3D_VIEW_RIGHT,
+        AV_STEREO3D_VIEW_UNSPEC,
+    };
+
+    for (int i = 0; i < FF_ARRAY_ELEMS(views); i++)
+        printf("view_name(%d): %s\n", views[i], 
av_stereo3d_view_name(views[i]));
+
+    /* out-of-bounds -> "unknown" */
+    printf("view_name(9999): %s\n", av_stereo3d_view_name(9999));
+
+    for (int i = 0; i < FF_ARRAY_ELEMS(views); i++) {
+        const char *name = av_stereo3d_view_name(views[i]);
+        printf("view_from_name(%s): %d\n", name, 
av_stereo3d_view_from_name(name));
+    }
+
+    printf("view_from_name(invalid): %d\n", 
av_stereo3d_view_from_name("invalid"));
+}
+
+static void test_eye_names(void)
+{
+    static const int eyes[] = {
+        AV_PRIMARY_EYE_NONE,
+        AV_PRIMARY_EYE_LEFT,
+        AV_PRIMARY_EYE_RIGHT,
+    };
+
+    for (int i = 0; i < FF_ARRAY_ELEMS(eyes); i++)
+        printf("eye_name(%d): %s\n", eyes[i], 
av_stereo3d_primary_eye_name(eyes[i]));
+
+    /* out-of-bounds -> "unknown" */
+    printf("eye_name(9999): %s\n", av_stereo3d_primary_eye_name(9999));
+
+    for (int i = 0; i < FF_ARRAY_ELEMS(eyes); i++) {
+        const char *name = av_stereo3d_primary_eye_name(eyes[i]);
+        printf("eye_from_name(%s): %d\n", name, 
av_stereo3d_primary_eye_from_name(name));
+    }
+
+    printf("eye_from_name(invalid): %d\n", 
av_stereo3d_primary_eye_from_name("invalid"));
+}
+
+static int test_create_side_data(void)
+{
+    AVFrame *frame = av_frame_alloc();
+    AVStereo3D *s;
+
+    if (!frame) {
+        fprintf(stderr, "av_frame_alloc failed\n");
+        return 1;
+    }
+
+    s = av_stereo3d_create_side_data(frame);
+    if (!s) {
+        fprintf(stderr, "av_stereo3d_create_side_data failed\n");
+        av_frame_free(&frame);
+        return 1;
+    }
+
+    printf("side_data: type=%d flags=%d view=%d eye=%d\n",
+           s->type, s->flags, s->view, s->primary_eye);
+    printf("side_data: disparity=%d/%d fov=%d/%d\n",
+           s->horizontal_disparity_adjustment.num,
+           s->horizontal_disparity_adjustment.den,
+           s->horizontal_field_of_view.num,
+           s->horizontal_field_of_view.den);
+
+    av_frame_free(&frame);
+    return 0;
+}
+
+int main(void)
+{
+    int ret = 0;
+
+    ret |= test_alloc();
+    test_type_names();
+    test_view_names();
+    test_eye_names();
+    ret |= test_create_side_data();
+
+    return ret;
+}
\ No newline at end of file
diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak
index 6bf03b2438..e16b63c9ab 100644
--- a/tests/fate/libavutil.mak
+++ b/tests/fate/libavutil.mak
@@ -136,6 +136,10 @@ FATE_LIBAVUTIL += fate-random_seed
 fate-random_seed: libavutil/tests/random_seed$(EXESUF)
 fate-random_seed: CMD = run libavutil/tests/random_seed$(EXESUF)
 
+FATE_LIBAVUTIL += fate-stereo3d
+fate-stereo3d: libavutil/tests/stereo3d$(EXESUF)
+fate-stereo3d: CMD = run libavutil/tests/stereo3d$(EXESUF)
+
 FATE_LIBAVUTIL += fate-ripemd
 fate-ripemd: libavutil/tests/ripemd$(EXESUF)
 fate-ripemd: CMD = run libavutil/tests/ripemd$(EXESUF)
diff --git a/tests/ref/fate/stereo3d b/tests/ref/fate/stereo3d
new file mode 100644
index 0000000000..1854d66e43
--- /dev/null
+++ b/tests/ref/fate/stereo3d
@@ -0,0 +1,43 @@
+alloc: type=0 flags=0 view=0 eye=0
+alloc: disparity=0/1 fov=0/1
+alloc_size: size=ok
+type_name(0): 2D
+type_name(1): side by side
+type_name(2): top and bottom
+type_name(3): frame alternate
+type_name(4): checkerboard
+type_name(5): side by side (quincunx subsampling)
+type_name(6): interleaved lines
+type_name(7): interleaved columns
+type_name(8): unspecified
+type_name(9999): unknown
+from_name(2D): 0
+from_name(side by side): 1
+from_name(top and bottom): 2
+from_name(frame alternate): 3
+from_name(checkerboard): 4
+from_name(side by side (quincunx subsampling)): 1
+from_name(interleaved lines): 6
+from_name(interleaved columns): 7
+from_name(unspecified): 8
+from_name(invalid): -1
+view_name(0): packed
+view_name(1): left
+view_name(2): right
+view_name(3): unspecified
+view_name(9999): unknown
+view_from_name(packed): 0
+view_from_name(left): 1
+view_from_name(right): 2
+view_from_name(unspecified): 3
+view_from_name(invalid): -1
+eye_name(0): none
+eye_name(1): left
+eye_name(2): right
+eye_name(9999): unknown
+eye_from_name(none): 0
+eye_from_name(left): 1
+eye_from_name(right): 2
+eye_from_name(invalid): -1
+side_data: type=0 flags=0 view=0 eye=0
+side_data: disparity=0/1 fov=0/1
-- 
2.52.0


>From 6b228a211230db9683d4fb8908e19bbf7d39c068 Mon Sep 17 00:00:00 2001
From: Soham Kute <[email protected]>
Date: Mon, 2 Mar 2026 10:09:27 +0530
Subject: [PATCH 2/3] avformat/tests: cover vorbiscomment metadata and chapter
 branches via FATE

Add FATE entries for ff_vorbiscomment_write() branches not covered
by existing ogg mux tests: tag writing with metadata, null metadata
path (avio_wl32 zero count), and chapter writing with title/non-title
keys using opus-in-ogg.

Signed-off-by: Soham Kute <[email protected]>
---
 tests/Makefile                        |  1 +
 tests/fate/vorbiscomment.mak          | 19 +++++++++++++++++++
 tests/ref/fate/vorbiscomment-chapters |  1 +
 tests/ref/fate/vorbiscomment-meta     |  1 +
 tests/ref/fate/vorbiscomment-no-meta  |  1 +
 tests/vorbiscomment-chapters.ffmeta   | 13 +++++++++++++
 6 files changed, 36 insertions(+)
 create mode 100644 tests/fate/vorbiscomment.mak
 create mode 100644 tests/ref/fate/vorbiscomment-chapters
 create mode 100644 tests/ref/fate/vorbiscomment-meta
 create mode 100644 tests/ref/fate/vorbiscomment-no-meta
 create mode 100644 tests/vorbiscomment-chapters.ffmeta

diff --git a/tests/Makefile b/tests/Makefile
index 4b3fa6a54a..39cd9743a6 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -229,6 +229,7 @@ include $(SRC_PATH)/tests/fate/mxf.mak
 include $(SRC_PATH)/tests/fate/ogg-vorbis.mak
 include $(SRC_PATH)/tests/fate/ogg-flac.mak
 include $(SRC_PATH)/tests/fate/ogg-opus.mak
+include $(SRC_PATH)/tests/fate/vorbiscomment.mak
 include $(SRC_PATH)/tests/fate/oma.mak
 include $(SRC_PATH)/tests/fate/opus.mak
 include $(SRC_PATH)/tests/fate/pcm.mak
diff --git a/tests/fate/vorbiscomment.mak b/tests/fate/vorbiscomment.mak
new file mode 100644
index 0000000000..70b87ed7f0
--- /dev/null
+++ b/tests/fate/vorbiscomment.mak
@@ -0,0 +1,19 @@
+FATE_VORBISCOMMENT-$(call ENCMUX, FLAC, OGG, FLAC_DECODER OGG_DEMUXER 
LAVFI_INDEV) += fate-vorbiscomment-meta
+fate-vorbiscomment-meta: CMD = md5 -f lavfi -i "sine=frequency=440:duration=1" 
\
+    -metadata title=lavftest -metadata artist=testartist \
+    -c:a flac -f ogg -flags +bitexact -fflags +bitexact
+
+FATE_VORBISCOMMENT-$(call ENCMUX, FLAC, OGG, FLAC_DECODER OGG_DEMUXER 
LAVFI_INDEV) += fate-vorbiscomment-no-meta
+fate-vorbiscomment-no-meta: CMD = md5 -f lavfi -i 
"sine=frequency=440:duration=1" \
+    -map_metadata -1 \
+    -c:a flac -f ogg -flags +bitexact -fflags +bitexact
+
+FATE_VORBISCOMMENT-$(call ALLYES, OGG_MUXER OPUS_DECODER OGG_DEMUXER 
LAVFI_INDEV FFMETADATA_DEMUXER ARESAMPLE_FILTER) += fate-vorbiscomment-chapters
+fate-vorbiscomment-chapters: CMD = md5 \
+    -f lavfi -i "sine=frequency=440:duration=4" \
+    -f ffmetadata -i $(SRC_PATH)/tests/vorbiscomment-chapters.ffmeta \
+    -map 0:a -map_metadata 1 -map_chapters 1 \
+    -af aresample=48000 -c:a opus -strict -2 -f ogg -flags +bitexact -fflags 
+bitexact
+
+FATE_FFMPEG += $(FATE_VORBISCOMMENT-yes)
+fate-vorbiscomment: $(FATE_VORBISCOMMENT-yes)
diff --git a/tests/ref/fate/vorbiscomment-chapters 
b/tests/ref/fate/vorbiscomment-chapters
new file mode 100644
index 0000000000..187b4dac38
--- /dev/null
+++ b/tests/ref/fate/vorbiscomment-chapters
@@ -0,0 +1 @@
+8a3c8a784eb645e3e1b72120c0fd8faa
diff --git a/tests/ref/fate/vorbiscomment-meta 
b/tests/ref/fate/vorbiscomment-meta
new file mode 100644
index 0000000000..3f049a728b
--- /dev/null
+++ b/tests/ref/fate/vorbiscomment-meta
@@ -0,0 +1 @@
+f738dae5389f16a464e703c8b2ebfe8d
diff --git a/tests/ref/fate/vorbiscomment-no-meta 
b/tests/ref/fate/vorbiscomment-no-meta
new file mode 100644
index 0000000000..1af4ea5d6c
--- /dev/null
+++ b/tests/ref/fate/vorbiscomment-no-meta
@@ -0,0 +1 @@
+d43acbb4b3eeb2e05755b754a25b42dc
diff --git a/tests/vorbiscomment-chapters.ffmeta 
b/tests/vorbiscomment-chapters.ffmeta
new file mode 100644
index 0000000000..4cb6af3f87
--- /dev/null
+++ b/tests/vorbiscomment-chapters.ffmeta
@@ -0,0 +1,13 @@
+;FFMETADATA1
+
+[CHAPTER]
+TIMEBASE=1/1000
+START=0
+END=2000
+title=FirstChapter
+
+[CHAPTER]
+TIMEBASE=1/1000
+START=2000
+END=4000
+artist=TestArtist
-- 
2.52.0


>From a79df7d742bf1c50c859d7774520d1df23fc0d16 Mon Sep 17 00:00:00 2001
From: Soham Kute <[email protected]>
Date: Mon, 2 Mar 2026 10:09:27 +0530
Subject: [PATCH 3/3] avfilter/tests: cover colorlevels planar, preserve and
 autodetect branches via FATE

Add FATE entries for vf_colorlevels branches not covered by existing
tests: planar pixel formats (gbrp 8/9/10/12/14/16/32, gbrap, gbrap16),
packed formats with alpha (rgba, rgba64), preserve_color mode for
packed and planar formats, and auto-detection of input min/max
(rimin=-1/rimax=-1) for 8-bit, 16-bit and float paths.

Signed-off-by: Soham Kute <[email protected]>
---
 tests/fate/filter-video.mak                   | 43 +++++++++++++++
 tests/ref/fate/filter-colorlevels-autodetect  | 55 +++++++++++++++++++
 .../ref/fate/filter-colorlevels-autodetect-16 | 55 +++++++++++++++++++
 tests/ref/fate/filter-colorlevels-gbrap       | 55 +++++++++++++++++++
 tests/ref/fate/filter-colorlevels-gbrap16     | 55 +++++++++++++++++++
 tests/ref/fate/filter-colorlevels-gbrp        | 55 +++++++++++++++++++
 tests/ref/fate/filter-colorlevels-gbrp10      | 55 +++++++++++++++++++
 tests/ref/fate/filter-colorlevels-gbrp12      | 55 +++++++++++++++++++
 tests/ref/fate/filter-colorlevels-gbrp14      | 55 +++++++++++++++++++
 tests/ref/fate/filter-colorlevels-gbrp16      | 55 +++++++++++++++++++
 tests/ref/fate/filter-colorlevels-gbrp9       | 55 +++++++++++++++++++
 .../fate/filter-colorlevels-preserve-gbrap16  | 55 +++++++++++++++++++
 .../fate/filter-colorlevels-preserve-gbrp12   | 55 +++++++++++++++++++
 .../fate/filter-colorlevels-preserve-gbrp14   | 55 +++++++++++++++++++
 .../fate/filter-colorlevels-preserve-gbrp9    | 55 +++++++++++++++++++
 .../ref/fate/filter-colorlevels-preserve-lum  | 55 +++++++++++++++++++
 .../ref/fate/filter-colorlevels-preserve-max  | 55 +++++++++++++++++++
 .../ref/fate/filter-colorlevels-preserve-pwr  | 55 +++++++++++++++++++
 .../ref/fate/filter-colorlevels-preserve-rgba | 55 +++++++++++++++++++
 .../fate/filter-colorlevels-preserve-rgba64   | 55 +++++++++++++++++++
 tests/ref/fate/filter-colorlevels-rgba        | 55 +++++++++++++++++++
 tests/ref/fate/filter-colorlevels-rgba64      | 55 +++++++++++++++++++
 22 files changed, 1198 insertions(+)
 create mode 100644 tests/ref/fate/filter-colorlevels-autodetect
 create mode 100644 tests/ref/fate/filter-colorlevels-autodetect-16
 create mode 100644 tests/ref/fate/filter-colorlevels-gbrap
 create mode 100644 tests/ref/fate/filter-colorlevels-gbrap16
 create mode 100644 tests/ref/fate/filter-colorlevels-gbrp
 create mode 100644 tests/ref/fate/filter-colorlevels-gbrp10
 create mode 100644 tests/ref/fate/filter-colorlevels-gbrp12
 create mode 100644 tests/ref/fate/filter-colorlevels-gbrp14
 create mode 100644 tests/ref/fate/filter-colorlevels-gbrp16
 create mode 100644 tests/ref/fate/filter-colorlevels-gbrp9
 create mode 100644 tests/ref/fate/filter-colorlevels-preserve-gbrap16
 create mode 100644 tests/ref/fate/filter-colorlevels-preserve-gbrp12
 create mode 100644 tests/ref/fate/filter-colorlevels-preserve-gbrp14
 create mode 100644 tests/ref/fate/filter-colorlevels-preserve-gbrp9
 create mode 100644 tests/ref/fate/filter-colorlevels-preserve-lum
 create mode 100644 tests/ref/fate/filter-colorlevels-preserve-max
 create mode 100644 tests/ref/fate/filter-colorlevels-preserve-pwr
 create mode 100644 tests/ref/fate/filter-colorlevels-preserve-rgba
 create mode 100644 tests/ref/fate/filter-colorlevels-preserve-rgba64
 create mode 100644 tests/ref/fate/filter-colorlevels-rgba
 create mode 100644 tests/ref/fate/filter-colorlevels-rgba64

diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak
index 07b8632c6f..56f79e7a76 100644
--- a/tests/fate/filter-video.mak
+++ b/tests/fate/filter-video.mak
@@ -517,6 +517,49 @@ fate-filter-vflip: CMD = video_filter "vflip"
 FATE_FILTER_VSYNTH_PGMYUV-$(call ALLYES, SCALE_FILTER FORMAT_FILTER 
COLORLEVELS_FILTER) += fate-filter-colorlevels fate-filter-colorlevels-16
 fate-filter-colorlevels: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=rgb24,colorlevels -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
 fate-filter-colorlevels-16: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=rgb48,colorlevels,scale -pix_fmt rgb48le -flags +bitexact 
-sws_flags +accurate_rnd+bitexact
+FATE_FILTER_VSYNTH_PGMYUV-$(call ALLYES, SCALE_FILTER FORMAT_FILTER 
COLORLEVELS_FILTER) += \
+    fate-filter-colorlevels-gbrp \
+    fate-filter-colorlevels-gbrp10 \
+    fate-filter-colorlevels-gbrp16 \
+    fate-filter-colorlevels-gbrap \
+    fate-filter-colorlevels-preserve-lum \
+    fate-filter-colorlevels-preserve-max \
+    fate-filter-colorlevels-preserve-pwr \
+    fate-filter-colorlevels-autodetect \
+    fate-filter-colorlevels-autodetect-16 \
+    fate-filter-colorlevels-rgba \
+    fate-filter-colorlevels-rgba64 \
+    fate-filter-colorlevels-gbrap16 \
+    fate-filter-colorlevels-preserve-rgba \
+    fate-filter-colorlevels-preserve-rgba64 \
+    fate-filter-colorlevels-preserve-gbrap16 \
+    fate-filter-colorlevels-gbrp9 \
+    fate-filter-colorlevels-gbrp12 \
+    fate-filter-colorlevels-gbrp14 \
+    fate-filter-colorlevels-preserve-gbrp9 \
+    fate-filter-colorlevels-preserve-gbrp12 \
+    fate-filter-colorlevels-preserve-gbrp14
+fate-filter-colorlevels-gbrp: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrp,colorlevels -flags +bitexact -sws_flags +accurate_rnd+bitexact
+fate-filter-colorlevels-gbrp10: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrp10,colorlevels -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-gbrp16: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrp16,colorlevels -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-gbrap: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrap,colorlevels -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-preserve-lum: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrp,colorlevels=preserve=lum -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-preserve-max: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrp10,colorlevels=preserve=max -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-preserve-pwr: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrp16,colorlevels=preserve=pwr -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-autodetect: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=rgb24,colorlevels=rimin=-1:rimax=-1:gimin=-1:gimax=-1:bimin=-1:bimax=-1
 -flags +bitexact -sws_flags +accurate_rnd+bitexact
+fate-filter-colorlevels-autodetect-16: CMD = framecrc -c:v pgmyuv -i $(SRC) 
-vf 
scale,format=rgb48,colorlevels=rimin=-1:rimax=-1:gimin=-1:gimax=-1:bimin=-1:bimax=-1
 -flags +bitexact -sws_flags +accurate_rnd+bitexact
+fate-filter-colorlevels-rgba: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=rgba,colorlevels -flags +bitexact -sws_flags +accurate_rnd+bitexact
+fate-filter-colorlevels-rgba64: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=rgba64,colorlevels -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-gbrap16: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrap16,colorlevels -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-preserve-rgba: CMD = framecrc -c:v pgmyuv -i $(SRC) 
-vf scale,format=rgba,colorlevels=preserve=lum -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-preserve-rgba64: CMD = framecrc -c:v pgmyuv -i $(SRC) 
-vf scale,format=rgba64,colorlevels=preserve=lum -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-preserve-gbrap16: CMD = framecrc -c:v pgmyuv -i $(SRC) 
-vf scale,format=gbrap16,colorlevels=preserve=lum -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-gbrp9: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrp9,colorlevels -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-gbrp12: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrp12,colorlevels -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-gbrp14: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=gbrp14,colorlevels -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-preserve-gbrp9: CMD = framecrc -c:v pgmyuv -i $(SRC) 
-vf scale,format=gbrp9,colorlevels=preserve=lum -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-preserve-gbrp12: CMD = framecrc -c:v pgmyuv -i $(SRC) 
-vf scale,format=gbrp12,colorlevels=preserve=lum -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
+fate-filter-colorlevels-preserve-gbrp14: CMD = framecrc -c:v pgmyuv -i $(SRC) 
-vf scale,format=gbrp14,colorlevels=preserve=lum -flags +bitexact -sws_flags 
+accurate_rnd+bitexact
 
 FATE_FILTER_VSYNTH_PGMYUV-$(call ALLYES, SCALE_FILTER FORMAT_FILTER 
COLORBALANCE_FILTER) += fate-filter-colorbalance fate-filter-colorbalance-gbrap 
fate-filter-colorbalance-rgba64 fate-filter-colorbalance-gbrap-16
 fate-filter-colorbalance: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
scale,format=rgb24,colorbalance=rs=.2 -flags +bitexact -sws_flags 
+accurate_rnd+bitexact -frames:v 3
diff --git a/tests/ref/fate/filter-colorlevels-autodetect 
b/tests/ref/fate/filter-colorlevels-autodetect
new file mode 100644
index 0000000000..ceb8cb2127
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-autodetect
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   304128, 0x348bb7a0
+0,          1,          1,        1,   304128, 0xaf9634d7
+0,          2,          2,        1,   304128, 0x81161fd3
+0,          3,          3,        1,   304128, 0x6839b383
+0,          4,          4,        1,   304128, 0xa55299b8
+0,          5,          5,        1,   304128, 0x66fb65b3
+0,          6,          6,        1,   304128, 0xe6be2a99
+0,          7,          7,        1,   304128, 0xfb33cb55
+0,          8,          8,        1,   304128, 0x51ab3d74
+0,          9,          9,        1,   304128, 0x67dc44ee
+0,         10,         10,        1,   304128, 0x2eac3b50
+0,         11,         11,        1,   304128, 0xd4a4c377
+0,         12,         12,        1,   304128, 0x1eefe29c
+0,         13,         13,        1,   304128, 0x3a84d488
+0,         14,         14,        1,   304128, 0x70d3b165
+0,         15,         15,        1,   304128, 0x578e58d4
+0,         16,         16,        1,   304128, 0x08bba87e
+0,         17,         17,        1,   304128, 0xccc86c47
+0,         18,         18,        1,   304128, 0x70bf9aa2
+0,         19,         19,        1,   304128, 0x3fc3d5b5
+0,         20,         20,        1,   304128, 0xef52590b
+0,         21,         21,        1,   304128, 0x4f7adde0
+0,         22,         22,        1,   304128, 0xc076ef54
+0,         23,         23,        1,   304128, 0xed2bba2d
+0,         24,         24,        1,   304128, 0x6fce6367
+0,         25,         25,        1,   304128, 0x71fe3c07
+0,         26,         26,        1,   304128, 0x6395fc7c
+0,         27,         27,        1,   304128, 0xa800ea2c
+0,         28,         28,        1,   304128, 0x758dfa57
+0,         29,         29,        1,   304128, 0x7fbba7c6
+0,         30,         30,        1,   304128, 0x2842e2a7
+0,         31,         31,        1,   304128, 0xafc2787c
+0,         32,         32,        1,   304128, 0x01e9a76b
+0,         33,         33,        1,   304128, 0x32a2377b
+0,         34,         34,        1,   304128, 0x10e0af2f
+0,         35,         35,        1,   304128, 0x8ab789ca
+0,         36,         36,        1,   304128, 0x3a3a5c1d
+0,         37,         37,        1,   304128, 0xeecb3f50
+0,         38,         38,        1,   304128, 0x317f8a3f
+0,         39,         39,        1,   304128, 0x0b90ba72
+0,         40,         40,        1,   304128, 0x1d6a509e
+0,         41,         41,        1,   304128, 0x11416b22
+0,         42,         42,        1,   304128, 0x325014ed
+0,         43,         43,        1,   304128, 0xb36a830c
+0,         44,         44,        1,   304128, 0xf67fd957
+0,         45,         45,        1,   304128, 0x091ad040
+0,         46,         46,        1,   304128, 0xd6b4b00e
+0,         47,         47,        1,   304128, 0x440b3f2a
+0,         48,         48,        1,   304128, 0x7c329040
+0,         49,         49,        1,   304128, 0xf6619a69
diff --git a/tests/ref/fate/filter-colorlevels-autodetect-16 
b/tests/ref/fate/filter-colorlevels-autodetect-16
new file mode 100644
index 0000000000..eb948a9d46
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-autodetect-16
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0x60865484
+0,          1,          1,        1,   608256, 0x3c9bad01
+0,          2,          2,        1,   608256, 0x809b6b5d
+0,          3,          3,        1,   608256, 0x4d873004
+0,          4,          4,        1,   608256, 0xff1651c8
+0,          5,          5,        1,   608256, 0x48fd0353
+0,          6,          6,        1,   608256, 0x184ce147
+0,          7,          7,        1,   608256, 0x9802722f
+0,          8,          8,        1,   608256, 0x9413376e
+0,          9,          9,        1,   608256, 0xfbb733e9
+0,         10,         10,        1,   608256, 0x573ae5a4
+0,         11,         11,        1,   608256, 0x8697c4a4
+0,         12,         12,        1,   608256, 0xc7b364c1
+0,         13,         13,        1,   608256, 0x512770ec
+0,         14,         14,        1,   608256, 0x2adee98f
+0,         15,         15,        1,   608256, 0xcfb7d642
+0,         16,         16,        1,   608256, 0xc303accb
+0,         17,         17,        1,   608256, 0xc738fee1
+0,         18,         18,        1,   608256, 0xd28c5669
+0,         19,         19,        1,   608256, 0xd3ce495a
+0,         20,         20,        1,   608256, 0x34fe368d
+0,         21,         21,        1,   608256, 0xbafe49a4
+0,         22,         22,        1,   608256, 0x68da4a93
+0,         23,         23,        1,   608256, 0xfd632bde
+0,         24,         24,        1,   608256, 0x92275713
+0,         25,         25,        1,   608256, 0xcb569e86
+0,         26,         26,        1,   608256, 0x84674f8a
+0,         27,         27,        1,   608256, 0xd8b7f0d5
+0,         28,         28,        1,   608256, 0xe3e6f966
+0,         29,         29,        1,   608256, 0x084d3d4c
+0,         30,         30,        1,   608256, 0x6e9c5c63
+0,         31,         31,        1,   608256, 0x71c71484
+0,         32,         32,        1,   608256, 0xa89dedd1
+0,         33,         33,        1,   608256, 0x4c481ca6
+0,         34,         34,        1,   608256, 0xa52bc63b
+0,         35,         35,        1,   608256, 0x59f0efa5
+0,         36,         36,        1,   608256, 0xafb82d42
+0,         37,         37,        1,   608256, 0x887b8458
+0,         38,         38,        1,   608256, 0x8a2c6984
+0,         39,         39,        1,   608256, 0xe75e4737
+0,         40,         40,        1,   608256, 0xe41ed81c
+0,         41,         41,        1,   608256, 0xbf816b8d
+0,         42,         42,        1,   608256, 0x8cd1af16
+0,         43,         43,        1,   608256, 0x31883468
+0,         44,         44,        1,   608256, 0x380c2bf8
+0,         45,         45,        1,   608256, 0x25e7483e
+0,         46,         46,        1,   608256, 0xe73edd67
+0,         47,         47,        1,   608256, 0x3e9670ef
+0,         48,         48,        1,   608256, 0xd5b871fd
+0,         49,         49,        1,   608256, 0xe075789f
diff --git a/tests/ref/fate/filter-colorlevels-gbrap 
b/tests/ref/fate/filter-colorlevels-gbrap
new file mode 100644
index 0000000000..7300bbc213
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-gbrap
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   405504, 0x77a49e3a
+0,          1,          1,        1,   405504, 0xe35e0aef
+0,          2,          2,        1,   405504, 0xa7ba0176
+0,          3,          3,        1,   405504, 0x53ad9758
+0,          4,          4,        1,   405504, 0x4eeb7b13
+0,          5,          5,        1,   405504, 0xe1cf3efa
+0,          6,          6,        1,   405504, 0x54a60bbf
+0,          7,          7,        1,   405504, 0x131aa692
+0,          8,          8,        1,   405504, 0x8b18287b
+0,          9,          9,        1,   405504, 0x960e25c9
+0,         10,         10,        1,   405504, 0xd84d2ff9
+0,         11,         11,        1,   405504, 0x911dbdf6
+0,         12,         12,        1,   405504, 0xfae5c62d
+0,         13,         13,        1,   405504, 0x679ecbe6
+0,         14,         14,        1,   405504, 0x687f92c2
+0,         15,         15,        1,   405504, 0x3e652dd9
+0,         16,         16,        1,   405504, 0x906e8a66
+0,         17,         17,        1,   405504, 0x259659ac
+0,         18,         18,        1,   405504, 0x23f972c7
+0,         19,         19,        1,   405504, 0x61fcaf23
+0,         20,         20,        1,   405504, 0xc106327f
+0,         21,         21,        1,   405504, 0x576fc84b
+0,         22,         22,        1,   405504, 0x1b30d9a7
+0,         23,         23,        1,   405504, 0x1ec49a9b
+0,         24,         24,        1,   405504, 0x41eb3f72
+0,         25,         25,        1,   405504, 0x7b301d72
+0,         26,         26,        1,   405504, 0x2517e479
+0,         27,         27,        1,   405504, 0x0492cb92
+0,         28,         28,        1,   405504, 0x5427e563
+0,         29,         29,        1,   405504, 0x198684ac
+0,         30,         30,        1,   405504, 0xf467cd58
+0,         31,         31,        1,   405504, 0x89506223
+0,         32,         32,        1,   405504, 0x93d08869
+0,         33,         33,        1,   405504, 0xe0b514ab
+0,         34,         34,        1,   405504, 0x5aa4a74d
+0,         35,         35,        1,   405504, 0xbab9673d
+0,         36,         36,        1,   405504, 0xd11e3734
+0,         37,         37,        1,   405504, 0xf564212c
+0,         38,         38,        1,   405504, 0x244c6b17
+0,         39,         39,        1,   405504, 0x6c529f4c
+0,         40,         40,        1,   405504, 0xcfb33371
+0,         41,         41,        1,   405504, 0x78a55ded
+0,         42,         42,        1,   405504, 0xb5a2f6d5
+0,         43,         43,        1,   405504, 0x9b586a98
+0,         44,         44,        1,   405504, 0xede0bab9
+0,         45,         45,        1,   405504, 0x46e3b241
+0,         46,         46,        1,   405504, 0xd66e877d
+0,         47,         47,        1,   405504, 0x507e17ce
+0,         48,         48,        1,   405504, 0x3e687c78
+0,         49,         49,        1,   405504, 0x7064800f
diff --git a/tests/ref/fate/filter-colorlevels-gbrap16 
b/tests/ref/fate/filter-colorlevels-gbrap16
new file mode 100644
index 0000000000..42a7fe861c
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-gbrap16
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   811008, 0x6f1c12b9
+0,          1,          1,        1,   811008, 0x9db5274d
+0,          2,          2,        1,   811008, 0xbfc4a4ac
+0,          3,          3,        1,   811008, 0x6e2db0e3
+0,          4,          4,        1,   811008, 0x0607ef17
+0,          5,          5,        1,   811008, 0x46f5e3b0
+0,          6,          6,        1,   811008, 0x0b4e989a
+0,          7,          7,        1,   811008, 0x7fd5eac6
+0,          8,          8,        1,   811008, 0xa1e47c7b
+0,          9,          9,        1,   811008, 0x43c964fc
+0,         10,         10,        1,   811008, 0xdf634cf7
+0,         11,         11,        1,   811008, 0x852d0278
+0,         12,         12,        1,   811008, 0x8ee622f4
+0,         13,         13,        1,   811008, 0xf28f6aa8
+0,         14,         14,        1,   811008, 0xd4d75ef7
+0,         15,         15,        1,   811008, 0x17870ab1
+0,         16,         16,        1,   811008, 0x35e7cc5b
+0,         17,         17,        1,   811008, 0xbb9c4aae
+0,         18,         18,        1,   811008, 0x53fee268
+0,         19,         19,        1,   811008, 0xbc66b6ec
+0,         20,         20,        1,   811008, 0x9aca2167
+0,         21,         21,        1,   811008, 0x93ab4e14
+0,         22,         22,        1,   811008, 0x392e42a8
+0,         23,         23,        1,   811008, 0xc52534db
+0,         24,         24,        1,   811008, 0xe5b18134
+0,         25,         25,        1,   811008, 0x223356e9
+0,         26,         26,        1,   811008, 0x80b89917
+0,         27,         27,        1,   811008, 0x2b5fde7f
+0,         28,         28,        1,   811008, 0x17dbb78f
+0,         29,         29,        1,   811008, 0xc9e809de
+0,         30,         30,        1,   811008, 0xbaf2871b
+0,         31,         31,        1,   811008, 0x2e6d2d1f
+0,         32,         32,        1,   811008, 0x12feb207
+0,         33,         33,        1,   811008, 0x99cf3ba4
+0,         34,         34,        1,   811008, 0x2651ea0e
+0,         35,         35,        1,   811008, 0xc28695ff
+0,         36,         36,        1,   811008, 0xe241cbdf
+0,         37,         37,        1,   811008, 0x6e374aa5
+0,         38,         38,        1,   811008, 0x9a1e6c76
+0,         39,         39,        1,   811008, 0xccc1f9f4
+0,         40,         40,        1,   811008, 0xa28bb568
+0,         41,         41,        1,   811008, 0x38d454ef
+0,         42,         42,        1,   811008, 0x3e38cf65
+0,         43,         43,        1,   811008, 0x85158caf
+0,         44,         44,        1,   811008, 0xeb55f6b2
+0,         45,         45,        1,   811008, 0x73e686a3
+0,         46,         46,        1,   811008, 0xdc94c290
+0,         47,         47,        1,   811008, 0x81e62115
+0,         48,         48,        1,   811008, 0xf90bf80e
+0,         49,         49,        1,   811008, 0x44e8c18d
diff --git a/tests/ref/fate/filter-colorlevels-gbrp 
b/tests/ref/fate/filter-colorlevels-gbrp
new file mode 100644
index 0000000000..6226075a93
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-gbrp
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   304128, 0x73e01324
+0,          1,          1,        1,   304128, 0x3e147fca
+0,          2,          2,        1,   304128, 0x0a487651
+0,          3,          3,        1,   304128, 0x87a30c42
+0,          4,          4,        1,   304128, 0xcef4efee
+0,          5,          5,        1,   304128, 0x80abb3d5
+0,          6,          6,        1,   304128, 0xdc6f809a
+0,          7,          7,        1,   304128, 0x2daf1b7c
+0,          8,          8,        1,   304128, 0xa8069d56
+0,          9,          9,        1,   304128, 0x49909aa4
+0,         10,         10,        1,   304128, 0x5f62a4d4
+0,         11,         11,        1,   304128, 0xdcd332e0
+0,         12,         12,        1,   304128, 0x74003b17
+0,         13,         13,        1,   304128, 0x2fe440d0
+0,         14,         14,        1,   304128, 0x0eec07ac
+0,         15,         15,        1,   304128, 0x76c1a2b4
+0,         16,         16,        1,   304128, 0x48dcff41
+0,         17,         17,        1,   304128, 0x00e0ce87
+0,         18,         18,        1,   304128, 0xf48ce7a2
+0,         19,         19,        1,   304128, 0x69c2240d
+0,         20,         20,        1,   304128, 0xc583a75a
+0,         21,         21,        1,   304128, 0x37613d35
+0,         22,         22,        1,   304128, 0x183e4e91
+0,         23,         23,        1,   304128, 0x63060f85
+0,         24,         24,        1,   304128, 0x35e1b44d
+0,         25,         25,        1,   304128, 0x843b924d
+0,         26,         26,        1,   304128, 0x4f035963
+0,         27,         27,        1,   304128, 0xc467407c
+0,         28,         28,        1,   304128, 0x70dd5a4d
+0,         29,         29,        1,   304128, 0x0ed8f987
+0,         30,         30,        1,   304128, 0x43294242
+0,         31,         31,        1,   304128, 0x8c23d6fe
+0,         32,         32,        1,   304128, 0xd65bfd44
+0,         33,         33,        1,   304128, 0x897b8986
+0,         34,         34,        1,   304128, 0x204a1c37
+0,         35,         35,        1,   304128, 0x0f30dc18
+0,         36,         36,        1,   304128, 0x6c63ac0f
+0,         37,         37,        1,   304128, 0xeff39607
+0,         38,         38,        1,   304128, 0xe74adff2
+0,         39,         39,        1,   304128, 0x77b61436
+0,         40,         40,        1,   304128, 0x6646a84c
+0,         41,         41,        1,   304128, 0x6534d2c8
+0,         42,         42,        1,   304128, 0xe5766bbf
+0,         43,         43,        1,   304128, 0xdde1df73
+0,         44,         44,        1,   304128, 0xe0c32fa3
+0,         45,         45,        1,   304128, 0x9e4c272b
+0,         46,         46,        1,   304128, 0x3e6bfc58
+0,         47,         47,        1,   304128, 0x8c6f8ca9
+0,         48,         48,        1,   304128, 0x6219f153
+0,         49,         49,        1,   304128, 0xacc3f4ea
diff --git a/tests/ref/fate/filter-colorlevels-gbrp10 
b/tests/ref/fate/filter-colorlevels-gbrp10
new file mode 100644
index 0000000000..8f728f851f
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-gbrp10
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0xdd991406
+0,          1,          1,        1,   608256, 0x4d1733ff
+0,          2,          2,        1,   608256, 0x82dc0cf2
+0,          3,          3,        1,   608256, 0xfce81711
+0,          4,          4,        1,   608256, 0x384f2355
+0,          5,          5,        1,   608256, 0x724b0097
+0,          6,          6,        1,   608256, 0x042aa30b
+0,          7,          7,        1,   608256, 0x08439621
+0,          8,          8,        1,   608256, 0xc6e69e01
+0,          9,          9,        1,   608256, 0xd79caf51
+0,         10,         10,        1,   608256, 0x3aac4052
+0,         11,         11,        1,   608256, 0x42911fc2
+0,         12,         12,        1,   608256, 0x8df0c8f7
+0,         13,         13,        1,   608256, 0xa1127d80
+0,         14,         14,        1,   608256, 0x02ed02a3
+0,         15,         15,        1,   608256, 0xf10057e1
+0,         16,         16,        1,   608256, 0x78ef7f90
+0,         17,         17,        1,   608256, 0x00c9b371
+0,         18,         18,        1,   608256, 0xbbb36946
+0,         19,         19,        1,   608256, 0x39c0f46f
+0,         20,         20,        1,   608256, 0x39b40bea
+0,         21,         21,        1,   608256, 0x43498467
+0,         22,         22,        1,   608256, 0x9658bfa1
+0,         23,         23,        1,   608256, 0xbe4f91e2
+0,         24,         24,        1,   608256, 0x276b9395
+0,         25,         25,        1,   608256, 0x089ed550
+0,         26,         26,        1,   608256, 0x3ec0024d
+0,         27,         27,        1,   608256, 0x3238d7fd
+0,         28,         28,        1,   608256, 0x9e28897a
+0,         29,         29,        1,   608256, 0xb18b8ad3
+0,         30,         30,        1,   608256, 0x8d06eb6c
+0,         31,         31,        1,   608256, 0x47ff4b23
+0,         32,         32,        1,   608256, 0x7a79f601
+0,         33,         33,        1,   608256, 0x96525ae0
+0,         34,         34,        1,   608256, 0xfa51c70b
+0,         35,         35,        1,   608256, 0x80cebdb3
+0,         36,         36,        1,   608256, 0xfba91694
+0,         37,         37,        1,   608256, 0xd28a9466
+0,         38,         38,        1,   608256, 0x6ab0ad38
+0,         39,         39,        1,   608256, 0xe4b410bc
+0,         40,         40,        1,   608256, 0x78f8b4c3
+0,         41,         41,        1,   608256, 0x2c51cc2b
+0,         42,         42,        1,   608256, 0xbe9812f9
+0,         43,         43,        1,   608256, 0xf0b6bada
+0,         44,         44,        1,   608256, 0x457c5f74
+0,         45,         45,        1,   608256, 0xd10ff6e2
+0,         46,         46,        1,   608256, 0xc5bbc70c
+0,         47,         47,        1,   608256, 0xccca93dc
+0,         48,         48,        1,   608256, 0x7e36938a
+0,         49,         49,        1,   608256, 0x87312f5c
diff --git a/tests/ref/fate/filter-colorlevels-gbrp12 
b/tests/ref/fate/filter-colorlevels-gbrp12
new file mode 100644
index 0000000000..bb5fc97b38
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-gbrp12
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0x157a44b6
+0,          1,          1,        1,   608256, 0x87b804e1
+0,          2,          2,        1,   608256, 0xb9efc372
+0,          3,          3,        1,   608256, 0xb3fd14b4
+0,          4,          4,        1,   608256, 0x7ad9f275
+0,          5,          5,        1,   608256, 0x6725b934
+0,          6,          6,        1,   608256, 0x14e8f7f1
+0,          7,          7,        1,   608256, 0x207dd63c
+0,          8,          8,        1,   608256, 0xdf22e3cb
+0,          9,          9,        1,   608256, 0x8e95721f
+0,         10,         10,        1,   608256, 0x80a2f8e3
+0,         11,         11,        1,   608256, 0xfd542dd8
+0,         12,         12,        1,   608256, 0x46243d91
+0,         13,         13,        1,   608256, 0xe8700c56
+0,         14,         14,        1,   608256, 0xfb5ddc96
+0,         15,         15,        1,   608256, 0x57f0a725
+0,         16,         16,        1,   608256, 0x05d853cd
+0,         17,         17,        1,   608256, 0x1ee804e2
+0,         18,         18,        1,   608256, 0x537678bf
+0,         19,         19,        1,   608256, 0x7b05b450
+0,         20,         20,        1,   608256, 0xf0521b83
+0,         21,         21,        1,   608256, 0xbef7faa0
+0,         22,         22,        1,   608256, 0xfbada9cd
+0,         23,         23,        1,   608256, 0x433d0809
+0,         24,         24,        1,   608256, 0xca1613f8
+0,         25,         25,        1,   608256, 0x6f85279a
+0,         26,         26,        1,   608256, 0xdac020f2
+0,         27,         27,        1,   608256, 0x9fa3ba07
+0,         28,         28,        1,   608256, 0xa64b3daf
+0,         29,         29,        1,   608256, 0x4ce5cbbe
+0,         30,         30,        1,   608256, 0xad7d4db0
+0,         31,         31,        1,   608256, 0x78147857
+0,         32,         32,        1,   608256, 0x55c40a78
+0,         33,         33,        1,   608256, 0x76ddb9e5
+0,         34,         34,        1,   608256, 0x87fafea7
+0,         35,         35,        1,   608256, 0x480378e4
+0,         36,         36,        1,   608256, 0xc704deb8
+0,         37,         37,        1,   608256, 0x2cb15a51
+0,         38,         38,        1,   608256, 0x26300b7f
+0,         39,         39,        1,   608256, 0xaa8b21b4
+0,         40,         40,        1,   608256, 0xe8c03c39
+0,         41,         41,        1,   608256, 0x2d735fe2
+0,         42,         42,        1,   608256, 0x8c673e16
+0,         43,         43,        1,   608256, 0x650f545e
+0,         44,         44,        1,   608256, 0x07f14f37
+0,         45,         45,        1,   608256, 0xb2edaee8
+0,         46,         46,        1,   608256, 0x2897bc4c
+0,         47,         47,        1,   608256, 0xa32232f5
+0,         48,         48,        1,   608256, 0x27a94672
+0,         49,         49,        1,   608256, 0x850f0fb0
diff --git a/tests/ref/fate/filter-colorlevels-gbrp14 
b/tests/ref/fate/filter-colorlevels-gbrp14
new file mode 100644
index 0000000000..4c8a053061
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-gbrp14
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0x1846404e
+0,          1,          1,        1,   608256, 0x6740fc8b
+0,          2,          2,        1,   608256, 0xcf3f2b5b
+0,          3,          3,        1,   608256, 0x07432437
+0,          4,          4,        1,   608256, 0x4c4ca9b9
+0,          5,          5,        1,   608256, 0xf62ba11e
+0,          6,          6,        1,   608256, 0x2eff1b4f
+0,          7,          7,        1,   608256, 0xb74ffe3e
+0,          8,          8,        1,   608256, 0x6e09cb05
+0,          9,          9,        1,   608256, 0x162208f6
+0,         10,         10,        1,   608256, 0xda0076ae
+0,         11,         11,        1,   608256, 0x079e46b4
+0,         12,         12,        1,   608256, 0x92e7d472
+0,         13,         13,        1,   608256, 0x81a110d0
+0,         14,         14,        1,   608256, 0x7ecb1f0b
+0,         15,         15,        1,   608256, 0x34815926
+0,         16,         16,        1,   608256, 0xc453a35c
+0,         17,         17,        1,   608256, 0x350e8a06
+0,         18,         18,        1,   608256, 0x5897699b
+0,         19,         19,        1,   608256, 0x4e10c615
+0,         20,         20,        1,   608256, 0xae0c7577
+0,         21,         21,        1,   608256, 0x90fbf19e
+0,         22,         22,        1,   608256, 0x5ba06a0a
+0,         23,         23,        1,   608256, 0x75587730
+0,         24,         24,        1,   608256, 0xe5210d26
+0,         25,         25,        1,   608256, 0xb3e78ef2
+0,         26,         26,        1,   608256, 0xae26094c
+0,         27,         27,        1,   608256, 0xd425ba72
+0,         28,         28,        1,   608256, 0xcec88ab3
+0,         29,         29,        1,   608256, 0x06f3039e
+0,         30,         30,        1,   608256, 0xa3c2ba79
+0,         31,         31,        1,   608256, 0xcb16ae4f
+0,         32,         32,        1,   608256, 0x3070b16b
+0,         33,         33,        1,   608256, 0xf77f2d95
+0,         34,         34,        1,   608256, 0x3c583fe1
+0,         35,         35,        1,   608256, 0x5df42598
+0,         36,         36,        1,   608256, 0x9dea1801
+0,         37,         37,        1,   608256, 0x07acf3e7
+0,         38,         38,        1,   608256, 0xe38fb57f
+0,         39,         39,        1,   608256, 0xf8ab7dd5
+0,         40,         40,        1,   608256, 0xf50a0496
+0,         41,         41,        1,   608256, 0x68eabd15
+0,         42,         42,        1,   608256, 0x8f92ea6a
+0,         43,         43,        1,   608256, 0x8011cb64
+0,         44,         44,        1,   608256, 0xb0879893
+0,         45,         45,        1,   608256, 0x700524af
+0,         46,         46,        1,   608256, 0x4b321d5b
+0,         47,         47,        1,   608256, 0xa41cc7fd
+0,         48,         48,        1,   608256, 0xa745ddee
+0,         49,         49,        1,   608256, 0xd70f1ae5
diff --git a/tests/ref/fate/filter-colorlevels-gbrp16 
b/tests/ref/fate/filter-colorlevels-gbrp16
new file mode 100644
index 0000000000..805ee5db5d
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-gbrp16
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0x6ee1fc6f
+0,          1,          1,        1,   608256, 0x02571112
+0,          2,          2,        1,   608256, 0x810b8e71
+0,          3,          3,        1,   608256, 0xd0719aa8
+0,          4,          4,        1,   608256, 0x4107d8dc
+0,          5,          5,        1,   608256, 0x3b3ccd75
+0,          6,          6,        1,   608256, 0xaccc825f
+0,          7,          7,        1,   608256, 0x1b39d48b
+0,          8,          8,        1,   608256, 0x44bc6640
+0,          9,          9,        1,   608256, 0x113c4ec1
+0,         10,         10,        1,   608256, 0x7fc236bc
+0,         11,         11,        1,   608256, 0x8f66ec2e
+0,         12,         12,        1,   608256, 0x15540cb9
+0,         13,         13,        1,   608256, 0x98bf546d
+0,         14,         14,        1,   608256, 0x31b948bc
+0,         15,         15,        1,   608256, 0x4c12f467
+0,         16,         16,        1,   608256, 0x5d2bb620
+0,         17,         17,        1,   608256, 0x9e093473
+0,         18,         18,        1,   608256, 0x43becc2d
+0,         19,         19,        1,   608256, 0x2e96a0b1
+0,         20,         20,        1,   608256, 0xa12c0b2c
+0,         21,         21,        1,   608256, 0x485c37d9
+0,         22,         22,        1,   608256, 0x20072c6d
+0,         23,         23,        1,   608256, 0x64991ea0
+0,         24,         24,        1,   608256, 0x55566af9
+0,         25,         25,        1,   608256, 0x44e940ae
+0,         26,         26,        1,   608256, 0x539882dc
+0,         27,         27,        1,   608256, 0xa896c844
+0,         28,         28,        1,   608256, 0x2474a154
+0,         29,         29,        1,   608256, 0xecb6f394
+0,         30,         30,        1,   608256, 0x709b70e0
+0,         31,         31,        1,   608256, 0xd4d316e4
+0,         32,         32,        1,   608256, 0xe04a9bcc
+0,         33,         33,        1,   608256, 0x26522569
+0,         34,         34,        1,   608256, 0x230cd3d3
+0,         35,         35,        1,   608256, 0x65037fc4
+0,         36,         36,        1,   608256, 0xc005b5a4
+0,         37,         37,        1,   608256, 0x2a48346a
+0,         38,         38,        1,   608256, 0x9c84563b
+0,         39,         39,        1,   608256, 0x578ee3b9
+0,         40,         40,        1,   608256, 0xbb0b9f2d
+0,         41,         41,        1,   608256, 0x274c3eb4
+0,         42,         42,        1,   608256, 0xe864b92a
+0,         43,         43,        1,   608256, 0x57d17674
+0,         44,         44,        1,   608256, 0x3d5de077
+0,         45,         45,        1,   608256, 0x7f4c7068
+0,         46,         46,        1,   608256, 0xd26aac55
+0,         47,         47,        1,   608256, 0x472a0ada
+0,         48,         48,        1,   608256, 0x6bf8e1d3
+0,         49,         49,        1,   608256, 0xb1adab52
diff --git a/tests/ref/fate/filter-colorlevels-gbrp9 
b/tests/ref/fate/filter-colorlevels-gbrp9
new file mode 100644
index 0000000000..8ff6a824dc
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-gbrp9
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0x7f660c7b
+0,          1,          1,        1,   608256, 0x79edc3f2
+0,          2,          2,        1,   608256, 0xff4a60c3
+0,          3,          3,        1,   608256, 0xecd711ff
+0,          4,          4,        1,   608256, 0x7b2a78c2
+0,          5,          5,        1,   608256, 0x44ed9a70
+0,          6,          6,        1,   608256, 0xeb8424b6
+0,          7,          7,        1,   608256, 0xd3883ad7
+0,          8,          8,        1,   608256, 0x92a7d8c4
+0,          9,          9,        1,   608256, 0x974d6593
+0,         10,         10,        1,   608256, 0x37270c67
+0,         11,         11,        1,   608256, 0x7b2d8bf0
+0,         12,         12,        1,   608256, 0xdf76e003
+0,         13,         13,        1,   608256, 0x95240a72
+0,         14,         14,        1,   608256, 0x530e3c24
+0,         15,         15,        1,   608256, 0x0a08fbe2
+0,         16,         16,        1,   608256, 0x16ff4e4b
+0,         17,         17,        1,   608256, 0x77e79c48
+0,         18,         18,        1,   608256, 0x88c9c31b
+0,         19,         19,        1,   608256, 0x094cee71
+0,         20,         20,        1,   608256, 0x605b7109
+0,         21,         21,        1,   608256, 0xadb04e46
+0,         22,         22,        1,   608256, 0xbafff373
+0,         23,         23,        1,   608256, 0x1d5355b7
+0,         24,         24,        1,   608256, 0x2ab1a71a
+0,         25,         25,        1,   608256, 0x723b6edc
+0,         26,         26,        1,   608256, 0xb086962a
+0,         27,         27,        1,   608256, 0x0bcdfeb9
+0,         28,         28,        1,   608256, 0x6c5afd34
+0,         29,         29,        1,   608256, 0xc9c5351b
+0,         30,         30,        1,   608256, 0x3817ef4d
+0,         31,         31,        1,   608256, 0x62bd0dae
+0,         32,         32,        1,   608256, 0x992bc522
+0,         33,         33,        1,   608256, 0xc65a7e16
+0,         34,         34,        1,   608256, 0xfe637e30
+0,         35,         35,        1,   608256, 0x6a5e4270
+0,         36,         36,        1,   608256, 0x2dd321fa
+0,         37,         37,        1,   608256, 0xb6cdc6f4
+0,         38,         38,        1,   608256, 0xcf75d3a2
+0,         39,         39,        1,   608256, 0xb0645a0f
+0,         40,         40,        1,   608256, 0x5be8a44d
+0,         41,         41,        1,   608256, 0x7716aadb
+0,         42,         42,        1,   608256, 0x53b12481
+0,         43,         43,        1,   608256, 0xc0d0cce7
+0,         44,         44,        1,   608256, 0x105b3a4b
+0,         45,         45,        1,   608256, 0xc7991cae
+0,         46,         46,        1,   608256, 0xcb95a51a
+0,         47,         47,        1,   608256, 0xe46b5e4e
+0,         48,         48,        1,   608256, 0xd8020273
+0,         49,         49,        1,   608256, 0xe4dbd5ec
diff --git a/tests/ref/fate/filter-colorlevels-preserve-gbrap16 
b/tests/ref/fate/filter-colorlevels-preserve-gbrap16
new file mode 100644
index 0000000000..42a7fe861c
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-preserve-gbrap16
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   811008, 0x6f1c12b9
+0,          1,          1,        1,   811008, 0x9db5274d
+0,          2,          2,        1,   811008, 0xbfc4a4ac
+0,          3,          3,        1,   811008, 0x6e2db0e3
+0,          4,          4,        1,   811008, 0x0607ef17
+0,          5,          5,        1,   811008, 0x46f5e3b0
+0,          6,          6,        1,   811008, 0x0b4e989a
+0,          7,          7,        1,   811008, 0x7fd5eac6
+0,          8,          8,        1,   811008, 0xa1e47c7b
+0,          9,          9,        1,   811008, 0x43c964fc
+0,         10,         10,        1,   811008, 0xdf634cf7
+0,         11,         11,        1,   811008, 0x852d0278
+0,         12,         12,        1,   811008, 0x8ee622f4
+0,         13,         13,        1,   811008, 0xf28f6aa8
+0,         14,         14,        1,   811008, 0xd4d75ef7
+0,         15,         15,        1,   811008, 0x17870ab1
+0,         16,         16,        1,   811008, 0x35e7cc5b
+0,         17,         17,        1,   811008, 0xbb9c4aae
+0,         18,         18,        1,   811008, 0x53fee268
+0,         19,         19,        1,   811008, 0xbc66b6ec
+0,         20,         20,        1,   811008, 0x9aca2167
+0,         21,         21,        1,   811008, 0x93ab4e14
+0,         22,         22,        1,   811008, 0x392e42a8
+0,         23,         23,        1,   811008, 0xc52534db
+0,         24,         24,        1,   811008, 0xe5b18134
+0,         25,         25,        1,   811008, 0x223356e9
+0,         26,         26,        1,   811008, 0x80b89917
+0,         27,         27,        1,   811008, 0x2b5fde7f
+0,         28,         28,        1,   811008, 0x17dbb78f
+0,         29,         29,        1,   811008, 0xc9e809de
+0,         30,         30,        1,   811008, 0xbaf2871b
+0,         31,         31,        1,   811008, 0x2e6d2d1f
+0,         32,         32,        1,   811008, 0x12feb207
+0,         33,         33,        1,   811008, 0x99cf3ba4
+0,         34,         34,        1,   811008, 0x2651ea0e
+0,         35,         35,        1,   811008, 0xc28695ff
+0,         36,         36,        1,   811008, 0xe241cbdf
+0,         37,         37,        1,   811008, 0x6e374aa5
+0,         38,         38,        1,   811008, 0x9a1e6c76
+0,         39,         39,        1,   811008, 0xccc1f9f4
+0,         40,         40,        1,   811008, 0xa28bb568
+0,         41,         41,        1,   811008, 0x38d454ef
+0,         42,         42,        1,   811008, 0x3e38cf65
+0,         43,         43,        1,   811008, 0x85158caf
+0,         44,         44,        1,   811008, 0xeb55f6b2
+0,         45,         45,        1,   811008, 0x73e686a3
+0,         46,         46,        1,   811008, 0xdc94c290
+0,         47,         47,        1,   811008, 0x81e62115
+0,         48,         48,        1,   811008, 0xf90bf80e
+0,         49,         49,        1,   811008, 0x44e8c18d
diff --git a/tests/ref/fate/filter-colorlevels-preserve-gbrp12 
b/tests/ref/fate/filter-colorlevels-preserve-gbrp12
new file mode 100644
index 0000000000..bb5fc97b38
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-preserve-gbrp12
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0x157a44b6
+0,          1,          1,        1,   608256, 0x87b804e1
+0,          2,          2,        1,   608256, 0xb9efc372
+0,          3,          3,        1,   608256, 0xb3fd14b4
+0,          4,          4,        1,   608256, 0x7ad9f275
+0,          5,          5,        1,   608256, 0x6725b934
+0,          6,          6,        1,   608256, 0x14e8f7f1
+0,          7,          7,        1,   608256, 0x207dd63c
+0,          8,          8,        1,   608256, 0xdf22e3cb
+0,          9,          9,        1,   608256, 0x8e95721f
+0,         10,         10,        1,   608256, 0x80a2f8e3
+0,         11,         11,        1,   608256, 0xfd542dd8
+0,         12,         12,        1,   608256, 0x46243d91
+0,         13,         13,        1,   608256, 0xe8700c56
+0,         14,         14,        1,   608256, 0xfb5ddc96
+0,         15,         15,        1,   608256, 0x57f0a725
+0,         16,         16,        1,   608256, 0x05d853cd
+0,         17,         17,        1,   608256, 0x1ee804e2
+0,         18,         18,        1,   608256, 0x537678bf
+0,         19,         19,        1,   608256, 0x7b05b450
+0,         20,         20,        1,   608256, 0xf0521b83
+0,         21,         21,        1,   608256, 0xbef7faa0
+0,         22,         22,        1,   608256, 0xfbada9cd
+0,         23,         23,        1,   608256, 0x433d0809
+0,         24,         24,        1,   608256, 0xca1613f8
+0,         25,         25,        1,   608256, 0x6f85279a
+0,         26,         26,        1,   608256, 0xdac020f2
+0,         27,         27,        1,   608256, 0x9fa3ba07
+0,         28,         28,        1,   608256, 0xa64b3daf
+0,         29,         29,        1,   608256, 0x4ce5cbbe
+0,         30,         30,        1,   608256, 0xad7d4db0
+0,         31,         31,        1,   608256, 0x78147857
+0,         32,         32,        1,   608256, 0x55c40a78
+0,         33,         33,        1,   608256, 0x76ddb9e5
+0,         34,         34,        1,   608256, 0x87fafea7
+0,         35,         35,        1,   608256, 0x480378e4
+0,         36,         36,        1,   608256, 0xc704deb8
+0,         37,         37,        1,   608256, 0x2cb15a51
+0,         38,         38,        1,   608256, 0x26300b7f
+0,         39,         39,        1,   608256, 0xaa8b21b4
+0,         40,         40,        1,   608256, 0xe8c03c39
+0,         41,         41,        1,   608256, 0x2d735fe2
+0,         42,         42,        1,   608256, 0x8c673e16
+0,         43,         43,        1,   608256, 0x650f545e
+0,         44,         44,        1,   608256, 0x07f14f37
+0,         45,         45,        1,   608256, 0xb2edaee8
+0,         46,         46,        1,   608256, 0x2897bc4c
+0,         47,         47,        1,   608256, 0xa32232f5
+0,         48,         48,        1,   608256, 0x27a94672
+0,         49,         49,        1,   608256, 0x850f0fb0
diff --git a/tests/ref/fate/filter-colorlevels-preserve-gbrp14 
b/tests/ref/fate/filter-colorlevels-preserve-gbrp14
new file mode 100644
index 0000000000..4c8a053061
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-preserve-gbrp14
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0x1846404e
+0,          1,          1,        1,   608256, 0x6740fc8b
+0,          2,          2,        1,   608256, 0xcf3f2b5b
+0,          3,          3,        1,   608256, 0x07432437
+0,          4,          4,        1,   608256, 0x4c4ca9b9
+0,          5,          5,        1,   608256, 0xf62ba11e
+0,          6,          6,        1,   608256, 0x2eff1b4f
+0,          7,          7,        1,   608256, 0xb74ffe3e
+0,          8,          8,        1,   608256, 0x6e09cb05
+0,          9,          9,        1,   608256, 0x162208f6
+0,         10,         10,        1,   608256, 0xda0076ae
+0,         11,         11,        1,   608256, 0x079e46b4
+0,         12,         12,        1,   608256, 0x92e7d472
+0,         13,         13,        1,   608256, 0x81a110d0
+0,         14,         14,        1,   608256, 0x7ecb1f0b
+0,         15,         15,        1,   608256, 0x34815926
+0,         16,         16,        1,   608256, 0xc453a35c
+0,         17,         17,        1,   608256, 0x350e8a06
+0,         18,         18,        1,   608256, 0x5897699b
+0,         19,         19,        1,   608256, 0x4e10c615
+0,         20,         20,        1,   608256, 0xae0c7577
+0,         21,         21,        1,   608256, 0x90fbf19e
+0,         22,         22,        1,   608256, 0x5ba06a0a
+0,         23,         23,        1,   608256, 0x75587730
+0,         24,         24,        1,   608256, 0xe5210d26
+0,         25,         25,        1,   608256, 0xb3e78ef2
+0,         26,         26,        1,   608256, 0xae26094c
+0,         27,         27,        1,   608256, 0xd425ba72
+0,         28,         28,        1,   608256, 0xcec88ab3
+0,         29,         29,        1,   608256, 0x06f3039e
+0,         30,         30,        1,   608256, 0xa3c2ba79
+0,         31,         31,        1,   608256, 0xcb16ae4f
+0,         32,         32,        1,   608256, 0x3070b16b
+0,         33,         33,        1,   608256, 0xf77f2d95
+0,         34,         34,        1,   608256, 0x3c583fe1
+0,         35,         35,        1,   608256, 0x5df42598
+0,         36,         36,        1,   608256, 0x9dea1801
+0,         37,         37,        1,   608256, 0x07acf3e7
+0,         38,         38,        1,   608256, 0xe38fb57f
+0,         39,         39,        1,   608256, 0xf8ab7dd5
+0,         40,         40,        1,   608256, 0xf50a0496
+0,         41,         41,        1,   608256, 0x68eabd15
+0,         42,         42,        1,   608256, 0x8f92ea6a
+0,         43,         43,        1,   608256, 0x8011cb64
+0,         44,         44,        1,   608256, 0xb0879893
+0,         45,         45,        1,   608256, 0x700524af
+0,         46,         46,        1,   608256, 0x4b321d5b
+0,         47,         47,        1,   608256, 0xa41cc7fd
+0,         48,         48,        1,   608256, 0xa745ddee
+0,         49,         49,        1,   608256, 0xd70f1ae5
diff --git a/tests/ref/fate/filter-colorlevels-preserve-gbrp9 
b/tests/ref/fate/filter-colorlevels-preserve-gbrp9
new file mode 100644
index 0000000000..8ff6a824dc
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-preserve-gbrp9
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0x7f660c7b
+0,          1,          1,        1,   608256, 0x79edc3f2
+0,          2,          2,        1,   608256, 0xff4a60c3
+0,          3,          3,        1,   608256, 0xecd711ff
+0,          4,          4,        1,   608256, 0x7b2a78c2
+0,          5,          5,        1,   608256, 0x44ed9a70
+0,          6,          6,        1,   608256, 0xeb8424b6
+0,          7,          7,        1,   608256, 0xd3883ad7
+0,          8,          8,        1,   608256, 0x92a7d8c4
+0,          9,          9,        1,   608256, 0x974d6593
+0,         10,         10,        1,   608256, 0x37270c67
+0,         11,         11,        1,   608256, 0x7b2d8bf0
+0,         12,         12,        1,   608256, 0xdf76e003
+0,         13,         13,        1,   608256, 0x95240a72
+0,         14,         14,        1,   608256, 0x530e3c24
+0,         15,         15,        1,   608256, 0x0a08fbe2
+0,         16,         16,        1,   608256, 0x16ff4e4b
+0,         17,         17,        1,   608256, 0x77e79c48
+0,         18,         18,        1,   608256, 0x88c9c31b
+0,         19,         19,        1,   608256, 0x094cee71
+0,         20,         20,        1,   608256, 0x605b7109
+0,         21,         21,        1,   608256, 0xadb04e46
+0,         22,         22,        1,   608256, 0xbafff373
+0,         23,         23,        1,   608256, 0x1d5355b7
+0,         24,         24,        1,   608256, 0x2ab1a71a
+0,         25,         25,        1,   608256, 0x723b6edc
+0,         26,         26,        1,   608256, 0xb086962a
+0,         27,         27,        1,   608256, 0x0bcdfeb9
+0,         28,         28,        1,   608256, 0x6c5afd34
+0,         29,         29,        1,   608256, 0xc9c5351b
+0,         30,         30,        1,   608256, 0x3817ef4d
+0,         31,         31,        1,   608256, 0x62bd0dae
+0,         32,         32,        1,   608256, 0x992bc522
+0,         33,         33,        1,   608256, 0xc65a7e16
+0,         34,         34,        1,   608256, 0xfe637e30
+0,         35,         35,        1,   608256, 0x6a5e4270
+0,         36,         36,        1,   608256, 0x2dd321fa
+0,         37,         37,        1,   608256, 0xb6cdc6f4
+0,         38,         38,        1,   608256, 0xcf75d3a2
+0,         39,         39,        1,   608256, 0xb0645a0f
+0,         40,         40,        1,   608256, 0x5be8a44d
+0,         41,         41,        1,   608256, 0x7716aadb
+0,         42,         42,        1,   608256, 0x53b12481
+0,         43,         43,        1,   608256, 0xc0d0cce7
+0,         44,         44,        1,   608256, 0x105b3a4b
+0,         45,         45,        1,   608256, 0xc7991cae
+0,         46,         46,        1,   608256, 0xcb95a51a
+0,         47,         47,        1,   608256, 0xe46b5e4e
+0,         48,         48,        1,   608256, 0xd8020273
+0,         49,         49,        1,   608256, 0xe4dbd5ec
diff --git a/tests/ref/fate/filter-colorlevels-preserve-lum 
b/tests/ref/fate/filter-colorlevels-preserve-lum
new file mode 100644
index 0000000000..6226075a93
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-preserve-lum
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   304128, 0x73e01324
+0,          1,          1,        1,   304128, 0x3e147fca
+0,          2,          2,        1,   304128, 0x0a487651
+0,          3,          3,        1,   304128, 0x87a30c42
+0,          4,          4,        1,   304128, 0xcef4efee
+0,          5,          5,        1,   304128, 0x80abb3d5
+0,          6,          6,        1,   304128, 0xdc6f809a
+0,          7,          7,        1,   304128, 0x2daf1b7c
+0,          8,          8,        1,   304128, 0xa8069d56
+0,          9,          9,        1,   304128, 0x49909aa4
+0,         10,         10,        1,   304128, 0x5f62a4d4
+0,         11,         11,        1,   304128, 0xdcd332e0
+0,         12,         12,        1,   304128, 0x74003b17
+0,         13,         13,        1,   304128, 0x2fe440d0
+0,         14,         14,        1,   304128, 0x0eec07ac
+0,         15,         15,        1,   304128, 0x76c1a2b4
+0,         16,         16,        1,   304128, 0x48dcff41
+0,         17,         17,        1,   304128, 0x00e0ce87
+0,         18,         18,        1,   304128, 0xf48ce7a2
+0,         19,         19,        1,   304128, 0x69c2240d
+0,         20,         20,        1,   304128, 0xc583a75a
+0,         21,         21,        1,   304128, 0x37613d35
+0,         22,         22,        1,   304128, 0x183e4e91
+0,         23,         23,        1,   304128, 0x63060f85
+0,         24,         24,        1,   304128, 0x35e1b44d
+0,         25,         25,        1,   304128, 0x843b924d
+0,         26,         26,        1,   304128, 0x4f035963
+0,         27,         27,        1,   304128, 0xc467407c
+0,         28,         28,        1,   304128, 0x70dd5a4d
+0,         29,         29,        1,   304128, 0x0ed8f987
+0,         30,         30,        1,   304128, 0x43294242
+0,         31,         31,        1,   304128, 0x8c23d6fe
+0,         32,         32,        1,   304128, 0xd65bfd44
+0,         33,         33,        1,   304128, 0x897b8986
+0,         34,         34,        1,   304128, 0x204a1c37
+0,         35,         35,        1,   304128, 0x0f30dc18
+0,         36,         36,        1,   304128, 0x6c63ac0f
+0,         37,         37,        1,   304128, 0xeff39607
+0,         38,         38,        1,   304128, 0xe74adff2
+0,         39,         39,        1,   304128, 0x77b61436
+0,         40,         40,        1,   304128, 0x6646a84c
+0,         41,         41,        1,   304128, 0x6534d2c8
+0,         42,         42,        1,   304128, 0xe5766bbf
+0,         43,         43,        1,   304128, 0xdde1df73
+0,         44,         44,        1,   304128, 0xe0c32fa3
+0,         45,         45,        1,   304128, 0x9e4c272b
+0,         46,         46,        1,   304128, 0x3e6bfc58
+0,         47,         47,        1,   304128, 0x8c6f8ca9
+0,         48,         48,        1,   304128, 0x6219f153
+0,         49,         49,        1,   304128, 0xacc3f4ea
diff --git a/tests/ref/fate/filter-colorlevels-preserve-max 
b/tests/ref/fate/filter-colorlevels-preserve-max
new file mode 100644
index 0000000000..8f728f851f
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-preserve-max
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0xdd991406
+0,          1,          1,        1,   608256, 0x4d1733ff
+0,          2,          2,        1,   608256, 0x82dc0cf2
+0,          3,          3,        1,   608256, 0xfce81711
+0,          4,          4,        1,   608256, 0x384f2355
+0,          5,          5,        1,   608256, 0x724b0097
+0,          6,          6,        1,   608256, 0x042aa30b
+0,          7,          7,        1,   608256, 0x08439621
+0,          8,          8,        1,   608256, 0xc6e69e01
+0,          9,          9,        1,   608256, 0xd79caf51
+0,         10,         10,        1,   608256, 0x3aac4052
+0,         11,         11,        1,   608256, 0x42911fc2
+0,         12,         12,        1,   608256, 0x8df0c8f7
+0,         13,         13,        1,   608256, 0xa1127d80
+0,         14,         14,        1,   608256, 0x02ed02a3
+0,         15,         15,        1,   608256, 0xf10057e1
+0,         16,         16,        1,   608256, 0x78ef7f90
+0,         17,         17,        1,   608256, 0x00c9b371
+0,         18,         18,        1,   608256, 0xbbb36946
+0,         19,         19,        1,   608256, 0x39c0f46f
+0,         20,         20,        1,   608256, 0x39b40bea
+0,         21,         21,        1,   608256, 0x43498467
+0,         22,         22,        1,   608256, 0x9658bfa1
+0,         23,         23,        1,   608256, 0xbe4f91e2
+0,         24,         24,        1,   608256, 0x276b9395
+0,         25,         25,        1,   608256, 0x089ed550
+0,         26,         26,        1,   608256, 0x3ec0024d
+0,         27,         27,        1,   608256, 0x3238d7fd
+0,         28,         28,        1,   608256, 0x9e28897a
+0,         29,         29,        1,   608256, 0xb18b8ad3
+0,         30,         30,        1,   608256, 0x8d06eb6c
+0,         31,         31,        1,   608256, 0x47ff4b23
+0,         32,         32,        1,   608256, 0x7a79f601
+0,         33,         33,        1,   608256, 0x96525ae0
+0,         34,         34,        1,   608256, 0xfa51c70b
+0,         35,         35,        1,   608256, 0x80cebdb3
+0,         36,         36,        1,   608256, 0xfba91694
+0,         37,         37,        1,   608256, 0xd28a9466
+0,         38,         38,        1,   608256, 0x6ab0ad38
+0,         39,         39,        1,   608256, 0xe4b410bc
+0,         40,         40,        1,   608256, 0x78f8b4c3
+0,         41,         41,        1,   608256, 0x2c51cc2b
+0,         42,         42,        1,   608256, 0xbe9812f9
+0,         43,         43,        1,   608256, 0xf0b6bada
+0,         44,         44,        1,   608256, 0x457c5f74
+0,         45,         45,        1,   608256, 0xd10ff6e2
+0,         46,         46,        1,   608256, 0xc5bbc70c
+0,         47,         47,        1,   608256, 0xccca93dc
+0,         48,         48,        1,   608256, 0x7e36938a
+0,         49,         49,        1,   608256, 0x87312f5c
diff --git a/tests/ref/fate/filter-colorlevels-preserve-pwr 
b/tests/ref/fate/filter-colorlevels-preserve-pwr
new file mode 100644
index 0000000000..805ee5db5d
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-preserve-pwr
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   608256, 0x6ee1fc6f
+0,          1,          1,        1,   608256, 0x02571112
+0,          2,          2,        1,   608256, 0x810b8e71
+0,          3,          3,        1,   608256, 0xd0719aa8
+0,          4,          4,        1,   608256, 0x4107d8dc
+0,          5,          5,        1,   608256, 0x3b3ccd75
+0,          6,          6,        1,   608256, 0xaccc825f
+0,          7,          7,        1,   608256, 0x1b39d48b
+0,          8,          8,        1,   608256, 0x44bc6640
+0,          9,          9,        1,   608256, 0x113c4ec1
+0,         10,         10,        1,   608256, 0x7fc236bc
+0,         11,         11,        1,   608256, 0x8f66ec2e
+0,         12,         12,        1,   608256, 0x15540cb9
+0,         13,         13,        1,   608256, 0x98bf546d
+0,         14,         14,        1,   608256, 0x31b948bc
+0,         15,         15,        1,   608256, 0x4c12f467
+0,         16,         16,        1,   608256, 0x5d2bb620
+0,         17,         17,        1,   608256, 0x9e093473
+0,         18,         18,        1,   608256, 0x43becc2d
+0,         19,         19,        1,   608256, 0x2e96a0b1
+0,         20,         20,        1,   608256, 0xa12c0b2c
+0,         21,         21,        1,   608256, 0x485c37d9
+0,         22,         22,        1,   608256, 0x20072c6d
+0,         23,         23,        1,   608256, 0x64991ea0
+0,         24,         24,        1,   608256, 0x55566af9
+0,         25,         25,        1,   608256, 0x44e940ae
+0,         26,         26,        1,   608256, 0x539882dc
+0,         27,         27,        1,   608256, 0xa896c844
+0,         28,         28,        1,   608256, 0x2474a154
+0,         29,         29,        1,   608256, 0xecb6f394
+0,         30,         30,        1,   608256, 0x709b70e0
+0,         31,         31,        1,   608256, 0xd4d316e4
+0,         32,         32,        1,   608256, 0xe04a9bcc
+0,         33,         33,        1,   608256, 0x26522569
+0,         34,         34,        1,   608256, 0x230cd3d3
+0,         35,         35,        1,   608256, 0x65037fc4
+0,         36,         36,        1,   608256, 0xc005b5a4
+0,         37,         37,        1,   608256, 0x2a48346a
+0,         38,         38,        1,   608256, 0x9c84563b
+0,         39,         39,        1,   608256, 0x578ee3b9
+0,         40,         40,        1,   608256, 0xbb0b9f2d
+0,         41,         41,        1,   608256, 0x274c3eb4
+0,         42,         42,        1,   608256, 0xe864b92a
+0,         43,         43,        1,   608256, 0x57d17674
+0,         44,         44,        1,   608256, 0x3d5de077
+0,         45,         45,        1,   608256, 0x7f4c7068
+0,         46,         46,        1,   608256, 0xd26aac55
+0,         47,         47,        1,   608256, 0x472a0ada
+0,         48,         48,        1,   608256, 0x6bf8e1d3
+0,         49,         49,        1,   608256, 0xb1adab52
diff --git a/tests/ref/fate/filter-colorlevels-preserve-rgba 
b/tests/ref/fate/filter-colorlevels-preserve-rgba
new file mode 100644
index 0000000000..0a4e21ccfc
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-preserve-rgba
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   405504, 0x861e42c5
+0,          1,          1,        1,   405504, 0xf922bfed
+0,          2,          2,        1,   405504, 0x8c3eaae9
+0,          3,          3,        1,   405504, 0xfede3ea8
+0,          4,          4,        1,   405504, 0x627b24dd
+0,          5,          5,        1,   405504, 0x7033f0c9
+0,          6,          6,        1,   405504, 0xc63bb5af
+0,          7,          7,        1,   405504, 0xa8e3567a
+0,          8,          8,        1,   405504, 0x113ac88a
+0,          9,          9,        1,   405504, 0x7570d004
+0,         10,         10,        1,   405504, 0xb337c666
+0,         11,         11,        1,   405504, 0xb3544e9c
+0,         12,         12,        1,   405504, 0xc3dc6dc1
+0,         13,         13,        1,   405504, 0x2cac5fad
+0,         14,         14,        1,   405504, 0xd5833c8a
+0,         15,         15,        1,   405504, 0xa263e3ea
+0,         16,         16,        1,   405504, 0x6f4633a3
+0,         17,         17,        1,   405504, 0x7259f75d
+0,         18,         18,        1,   405504, 0xf78025c7
+0,         19,         19,        1,   405504, 0xb53660da
+0,         20,         20,        1,   405504, 0x6057e421
+0,         21,         21,        1,   405504, 0xf2a26905
+0,         22,         22,        1,   405504, 0x316f7a79
+0,         23,         23,        1,   405504, 0x896e4552
+0,         24,         24,        1,   405504, 0x3dfcee7d
+0,         25,         25,        1,   405504, 0xeb11c71d
+0,         26,         26,        1,   405504, 0x9d2f87a1
+0,         27,         27,        1,   405504, 0xf5e17551
+0,         28,         28,        1,   405504, 0xf839857c
+0,         29,         29,        1,   405504, 0x9bc932eb
+0,         30,         30,        1,   405504, 0x2d6d6dcc
+0,         31,         31,        1,   405504, 0x000403a1
+0,         32,         32,        1,   405504, 0x04a33290
+0,         33,         33,        1,   405504, 0x58d2c291
+0,         34,         34,        1,   405504, 0xf2993a54
+0,         35,         35,        1,   405504, 0x442e14ef
+0,         36,         36,        1,   405504, 0x431de733
+0,         37,         37,        1,   405504, 0x8919ca66
+0,         38,         38,        1,   405504, 0x43c81564
+0,         39,         39,        1,   405504, 0x4a074597
+0,         40,         40,        1,   405504, 0x693edbb4
+0,         41,         41,        1,   405504, 0x4022f638
+0,         42,         42,        1,   405504, 0x3928a003
+0,         43,         43,        1,   405504, 0x730b0e31
+0,         44,         44,        1,   405504, 0xa916647c
+0,         45,         45,        1,   405504, 0x82005b65
+0,         46,         46,        1,   405504, 0x8f3b3b33
+0,         47,         47,        1,   405504, 0xf753ca40
+0,         48,         48,        1,   405504, 0x9f741b65
+0,         49,         49,        1,   405504, 0x6b11258e
diff --git a/tests/ref/fate/filter-colorlevels-preserve-rgba64 
b/tests/ref/fate/filter-colorlevels-preserve-rgba64
new file mode 100644
index 0000000000..2e7fa9702b
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-preserve-rgba64
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   811008, 0xf3eb6abf
+0,          1,          1,        1,   811008, 0x571cc33c
+0,          2,          2,        1,   811008, 0xd49d8198
+0,          3,          3,        1,   811008, 0x3678463f
+0,          4,          4,        1,   811008, 0x9f516803
+0,          5,          5,        1,   811008, 0xdd8f198e
+0,          6,          6,        1,   811008, 0xd4d3f782
+0,          7,          7,        1,   811008, 0xab92886a
+0,          8,          8,        1,   811008, 0x364d4da9
+0,          9,          9,        1,   811008, 0xb7464a24
+0,         10,         10,        1,   811008, 0x4893fbdf
+0,         11,         11,        1,   811008, 0xa4c0dadf
+0,         12,         12,        1,   811008, 0xa6257afc
+0,         13,         13,        1,   811008, 0xac2a8727
+0,         14,         14,        1,   811008, 0x26baffca
+0,         15,         15,        1,   811008, 0x15caec7d
+0,         16,         16,        1,   811008, 0xe71dc306
+0,         17,         17,        1,   811008, 0x037e152b
+0,         18,         18,        1,   811008, 0xd2c06ca4
+0,         19,         19,        1,   811008, 0xc02f5f95
+0,         20,         20,        1,   811008, 0xd5264cc8
+0,         21,         21,        1,   811008, 0xc5f95fdf
+0,         22,         22,        1,   811008, 0x8b8f60ce
+0,         23,         23,        1,   811008, 0x46824219
+0,         24,         24,        1,   811008, 0xc2e36d4e
+0,         25,         25,        1,   811008, 0xf8dab4c1
+0,         26,         26,        1,   811008, 0x3fcb65c5
+0,         27,         27,        1,   811008, 0xd832071f
+0,         28,         28,        1,   811008, 0xb3240fb0
+0,         29,         29,        1,   811008, 0xc7e95387
+0,         30,         30,        1,   811008, 0x9ed5729e
+0,         31,         31,        1,   811008, 0xf25d2abf
+0,         32,         32,        1,   811008, 0x4e96041b
+0,         33,         33,        1,   811008, 0xb68d32e1
+0,         34,         34,        1,   811008, 0xd7ccdc76
+0,         35,         35,        1,   811008, 0xf89b05ef
+0,         36,         36,        1,   811008, 0x74a8437d
+0,         37,         37,        1,   811008, 0x86ac9a93
+0,         38,         38,        1,   811008, 0x5bb97fbf
+0,         39,         39,        1,   811008, 0x22d15d72
+0,         40,         40,        1,   811008, 0xffd4ee57
+0,         41,         41,        1,   811008, 0x470b81c8
+0,         42,         42,        1,   811008, 0xac93c551
+0,         43,         43,        1,   811008, 0x434b4aa3
+0,         44,         44,        1,   811008, 0xa8984233
+0,         45,         45,        1,   811008, 0xb0c15e79
+0,         46,         46,        1,   811008, 0x7004f3a2
+0,         47,         47,        1,   811008, 0x355f872a
+0,         48,         48,        1,   811008, 0x2d878838
+0,         49,         49,        1,   811008, 0x970b8eda
diff --git a/tests/ref/fate/filter-colorlevels-rgba 
b/tests/ref/fate/filter-colorlevels-rgba
new file mode 100644
index 0000000000..0a4e21ccfc
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-rgba
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   405504, 0x861e42c5
+0,          1,          1,        1,   405504, 0xf922bfed
+0,          2,          2,        1,   405504, 0x8c3eaae9
+0,          3,          3,        1,   405504, 0xfede3ea8
+0,          4,          4,        1,   405504, 0x627b24dd
+0,          5,          5,        1,   405504, 0x7033f0c9
+0,          6,          6,        1,   405504, 0xc63bb5af
+0,          7,          7,        1,   405504, 0xa8e3567a
+0,          8,          8,        1,   405504, 0x113ac88a
+0,          9,          9,        1,   405504, 0x7570d004
+0,         10,         10,        1,   405504, 0xb337c666
+0,         11,         11,        1,   405504, 0xb3544e9c
+0,         12,         12,        1,   405504, 0xc3dc6dc1
+0,         13,         13,        1,   405504, 0x2cac5fad
+0,         14,         14,        1,   405504, 0xd5833c8a
+0,         15,         15,        1,   405504, 0xa263e3ea
+0,         16,         16,        1,   405504, 0x6f4633a3
+0,         17,         17,        1,   405504, 0x7259f75d
+0,         18,         18,        1,   405504, 0xf78025c7
+0,         19,         19,        1,   405504, 0xb53660da
+0,         20,         20,        1,   405504, 0x6057e421
+0,         21,         21,        1,   405504, 0xf2a26905
+0,         22,         22,        1,   405504, 0x316f7a79
+0,         23,         23,        1,   405504, 0x896e4552
+0,         24,         24,        1,   405504, 0x3dfcee7d
+0,         25,         25,        1,   405504, 0xeb11c71d
+0,         26,         26,        1,   405504, 0x9d2f87a1
+0,         27,         27,        1,   405504, 0xf5e17551
+0,         28,         28,        1,   405504, 0xf839857c
+0,         29,         29,        1,   405504, 0x9bc932eb
+0,         30,         30,        1,   405504, 0x2d6d6dcc
+0,         31,         31,        1,   405504, 0x000403a1
+0,         32,         32,        1,   405504, 0x04a33290
+0,         33,         33,        1,   405504, 0x58d2c291
+0,         34,         34,        1,   405504, 0xf2993a54
+0,         35,         35,        1,   405504, 0x442e14ef
+0,         36,         36,        1,   405504, 0x431de733
+0,         37,         37,        1,   405504, 0x8919ca66
+0,         38,         38,        1,   405504, 0x43c81564
+0,         39,         39,        1,   405504, 0x4a074597
+0,         40,         40,        1,   405504, 0x693edbb4
+0,         41,         41,        1,   405504, 0x4022f638
+0,         42,         42,        1,   405504, 0x3928a003
+0,         43,         43,        1,   405504, 0x730b0e31
+0,         44,         44,        1,   405504, 0xa916647c
+0,         45,         45,        1,   405504, 0x82005b65
+0,         46,         46,        1,   405504, 0x8f3b3b33
+0,         47,         47,        1,   405504, 0xf753ca40
+0,         48,         48,        1,   405504, 0x9f741b65
+0,         49,         49,        1,   405504, 0x6b11258e
diff --git a/tests/ref/fate/filter-colorlevels-rgba64 
b/tests/ref/fate/filter-colorlevels-rgba64
new file mode 100644
index 0000000000..2e7fa9702b
--- /dev/null
+++ b/tests/ref/fate/filter-colorlevels-rgba64
@@ -0,0 +1,55 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   811008, 0xf3eb6abf
+0,          1,          1,        1,   811008, 0x571cc33c
+0,          2,          2,        1,   811008, 0xd49d8198
+0,          3,          3,        1,   811008, 0x3678463f
+0,          4,          4,        1,   811008, 0x9f516803
+0,          5,          5,        1,   811008, 0xdd8f198e
+0,          6,          6,        1,   811008, 0xd4d3f782
+0,          7,          7,        1,   811008, 0xab92886a
+0,          8,          8,        1,   811008, 0x364d4da9
+0,          9,          9,        1,   811008, 0xb7464a24
+0,         10,         10,        1,   811008, 0x4893fbdf
+0,         11,         11,        1,   811008, 0xa4c0dadf
+0,         12,         12,        1,   811008, 0xa6257afc
+0,         13,         13,        1,   811008, 0xac2a8727
+0,         14,         14,        1,   811008, 0x26baffca
+0,         15,         15,        1,   811008, 0x15caec7d
+0,         16,         16,        1,   811008, 0xe71dc306
+0,         17,         17,        1,   811008, 0x037e152b
+0,         18,         18,        1,   811008, 0xd2c06ca4
+0,         19,         19,        1,   811008, 0xc02f5f95
+0,         20,         20,        1,   811008, 0xd5264cc8
+0,         21,         21,        1,   811008, 0xc5f95fdf
+0,         22,         22,        1,   811008, 0x8b8f60ce
+0,         23,         23,        1,   811008, 0x46824219
+0,         24,         24,        1,   811008, 0xc2e36d4e
+0,         25,         25,        1,   811008, 0xf8dab4c1
+0,         26,         26,        1,   811008, 0x3fcb65c5
+0,         27,         27,        1,   811008, 0xd832071f
+0,         28,         28,        1,   811008, 0xb3240fb0
+0,         29,         29,        1,   811008, 0xc7e95387
+0,         30,         30,        1,   811008, 0x9ed5729e
+0,         31,         31,        1,   811008, 0xf25d2abf
+0,         32,         32,        1,   811008, 0x4e96041b
+0,         33,         33,        1,   811008, 0xb68d32e1
+0,         34,         34,        1,   811008, 0xd7ccdc76
+0,         35,         35,        1,   811008, 0xf89b05ef
+0,         36,         36,        1,   811008, 0x74a8437d
+0,         37,         37,        1,   811008, 0x86ac9a93
+0,         38,         38,        1,   811008, 0x5bb97fbf
+0,         39,         39,        1,   811008, 0x22d15d72
+0,         40,         40,        1,   811008, 0xffd4ee57
+0,         41,         41,        1,   811008, 0x470b81c8
+0,         42,         42,        1,   811008, 0xac93c551
+0,         43,         43,        1,   811008, 0x434b4aa3
+0,         44,         44,        1,   811008, 0xa8984233
+0,         45,         45,        1,   811008, 0xb0c15e79
+0,         46,         46,        1,   811008, 0x7004f3a2
+0,         47,         47,        1,   811008, 0x355f872a
+0,         48,         48,        1,   811008, 0x2d878838
+0,         49,         49,        1,   811008, 0x970b8eda
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to