From e8bc642202c10beda1ea4e93ec8492b1e39805e5 Mon Sep 17 00:00:00 2001 From: Clément Bœsch Date: Fri, 8 Jan 2016 16:16:10 +0100 Subject: lavu: add AV_CEIL_RSHIFT and use it in various places Signed-off-by: Vittorio Giovara --- libavutil/common.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libavutil/common.h') diff --git a/libavutil/common.h b/libavutil/common.h index 7a43ccf10a..d2ddcba9ed 100644 --- a/libavutil/common.h +++ b/libavutil/common.h @@ -50,6 +50,14 @@ #define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b)) /* assume b>0 */ #define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b)) + +/** + * Fast a / (1 << b) rounded toward +inf, assuming a >= 0 and b >= 0. + */ +#define AV_CEIL_RSHIFT(a, b) \ + (av_builtin_constant_p(b) ? ((a) + (1 << (b)) - 1) >> (b) \ + : -((-(a)) >> (b))) + #define FFABS(a) ((a) >= 0 ? (a) : (-(a))) #define FFSIGN(a) ((a) > 0 ? 1 : -1) -- cgit v1.2.3