diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2024-02-14 21:49:50 +0100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2024-02-15 23:07:43 +0100 |
commit | 35ab103c30c12c40ed3d9f7ca19b120173f44fdc (patch) | |
tree | eab34715ca55c6eb567050bb945fb22620d8c399 | |
parent | 247f485448d8030b18abf534823a3b2d6e55497a (diff) | |
download | ffmpeg-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.c | 25 |
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; |