aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2024-02-14 21:49:50 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2024-02-15 23:07:43 +0100
commit35ab103c30c12c40ed3d9f7ca19b120173f44fdc (patch)
treeeab34715ca55c6eb567050bb945fb22620d8c399
parent247f485448d8030b18abf534823a3b2d6e55497a (diff)
downloadffmpeg-35ab103c30c12c40ed3d9f7ca19b120173f44fdc.tar.gz
swscale/tests/swscale: Compute chroma and alpha between gray and opaque frames too
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libswscale/tests/swscale.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/libswscale/tests/swscale.c b/libswscale/tests/swscale.c
index 6792fcaa3d..facdbbae48 100644
--- a/libswscale/tests/swscale.c
+++ b/libswscale/tests/swscale.c
@@ -71,6 +71,21 @@ static uint64_t getSSD(const uint8_t *src1, const uint8_t *src2,
return ssd;
}
+static uint64_t getSSD0(int ref, const uint8_t *src1, int stride1,
+ int w, int h)
+{
+ int x, y;
+ uint64_t ssd = 0;
+
+ for (y = 0; y < h; y++) {
+ for (x = 0; x < w; x++) {
+ int d = src1[x + y * stride1] - ref;
+ ssd += d * d;
+ }
+ }
+ return ssd;
+}
+
struct Results {
uint64_t ssdY;
uint64_t ssdU;
@@ -239,9 +254,17 @@ static int doTest(const uint8_t * const ref[4], int refStride[4], int w, int h,
(w + 1) >> 1, (h + 1) >> 1);
ssdV = getSSD(ref[2], out[2], refStride[2], refStride[2],
(w + 1) >> 1, (h + 1) >> 1);
+ } else {
+ ssdU = getSSD0(128, out[1], refStride[1],
+ (w + 1) >> 1, (h + 1) >> 1);
+ ssdV = getSSD0(128, out[2], refStride[2],
+ (w + 1) >> 1, (h + 1) >> 1);
}
- if (isALPHA(srcFormat) && isALPHA(dstFormat))
+ if (isALPHA(srcFormat) && isALPHA(dstFormat)) {
ssdA = getSSD(ref[3], out[3], refStride[3], refStride[3], w, h);
+ } else {
+ ssdA = getSSD0(0xFF, out[3], refStride[3], w, h);
+ }
ssdY /= w * h;
ssdU /= w * h / 4;