Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Bœsch <u@pkh.me>2014-11-16 13:55:08 +0300
committerClément Bœsch <u@pkh.me>2014-12-26 01:50:25 +0300
commit2188df96cf49f414ea041aa4d7996b7d85b936fc (patch)
tree12063e105ed060598f91e7dd6f68a34f28143fb6 /libavfilter/vf_xbr.c
parent8706910c4c051dbc7377a702aff11424585d4778 (diff)
avfilter/xbr: refactor alpha blending macros
Diffstat (limited to 'libavfilter/vf_xbr.c')
-rw-r--r--libavfilter/vf_xbr.c26
1 files changed, 6 insertions, 20 deletions
diff --git a/libavfilter/vf_xbr.c b/libavfilter/vf_xbr.c
index 47e4b769ca..2b1e6ff53e 100644
--- a/libavfilter/vf_xbr.c
+++ b/libavfilter/vf_xbr.c
@@ -76,26 +76,12 @@ static uint32_t pixel_diff(uint32_t x, uint32_t y, const uint32_t *r2y)
}
#define ALPHA_BLEND_128_W(dst, src) dst = ((src & LB_MASK) >> 1) + ((dst & LB_MASK) >> 1)
-
-#define ALPHA_BLEND_32_W(dst, src) \
- dst = ((RED_BLUE_MASK & ((dst & RED_BLUE_MASK) + ((((src & RED_BLUE_MASK) - \
- (dst & RED_BLUE_MASK))) >> 3))) | (GREEN_MASK & ((dst & GREEN_MASK) + \
- ((((src & GREEN_MASK) - (dst & GREEN_MASK))) >> 3))))
-
-#define ALPHA_BLEND_64_W(dst, src) \
- dst = ((RED_BLUE_MASK & ((dst & RED_BLUE_MASK) + ((((src & RED_BLUE_MASK) - \
- (dst & RED_BLUE_MASK))) >> 2))) | (GREEN_MASK & ((dst & GREEN_MASK) + \
- ((((src & GREEN_MASK) - (dst & GREEN_MASK))) >> 2))))
-
-#define ALPHA_BLEND_192_W(dst, src) \
- dst = ((RED_BLUE_MASK & ((dst & RED_BLUE_MASK) + ((((src & RED_BLUE_MASK) - \
- (dst & RED_BLUE_MASK)) * 3) >> 2))) | (GREEN_MASK & ((dst & GREEN_MASK) + \
- ((((src & GREEN_MASK) - (dst & GREEN_MASK)) * 3) >> 2))))
-
-#define ALPHA_BLEND_224_W(dst, src) \
- dst = ((RED_BLUE_MASK & ((dst & RED_BLUE_MASK) + ((((src & RED_BLUE_MASK) - \
- (dst & RED_BLUE_MASK)) * 7) >> 3))) | (GREEN_MASK & ((dst & GREEN_MASK) + \
- ((((src & GREEN_MASK) - (dst & GREEN_MASK)) * 7) >> 3))))
+#define ALPHA_BLEND_BASE(a, b, m, s) ( (RED_BLUE_MASK & (((a) & RED_BLUE_MASK) + (((((b) & RED_BLUE_MASK) - ((a) & RED_BLUE_MASK)) * (m)) >> (s)))) \
+ | (GREEN_MASK & (((a) & GREEN_MASK) + (((((b) & GREEN_MASK) - ((a) & GREEN_MASK)) * (m)) >> (s)))))
+#define ALPHA_BLEND_32_W(dst, src) dst = ALPHA_BLEND_BASE(dst, src, 1, 3)
+#define ALPHA_BLEND_64_W(dst, src) dst = ALPHA_BLEND_BASE(dst, src, 1, 2)
+#define ALPHA_BLEND_192_W(dst, src) dst = ALPHA_BLEND_BASE(dst, src, 3, 2)
+#define ALPHA_BLEND_224_W(dst, src) dst = ALPHA_BLEND_BASE(dst, src, 7, 3)
#define df(A, B) pixel_diff(A, B, r2y)
#define eq(A, B) (df(A, B) < 155)