From d13e521cc861e791545dd6022fbf93f821e33618 Mon Sep 17 00:00:00 2001 From: James Almer Date: Wed, 18 Mar 2015 15:08:45 -0300 Subject: libavutil: add av_mod_uintp2 Reviewed-by: Michael Niedermayer Signed-off-by: James Almer --- libavutil/common.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'libavutil/common.h') diff --git a/libavutil/common.h b/libavutil/common.h index 852c1de850..3e62b6d5b7 100644 --- a/libavutil/common.h +++ b/libavutil/common.h @@ -210,6 +210,17 @@ static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p) else return a; } +/** + * Clear high bits from an unsigned integer starting with specific bit position + * @param a value to clip + * @param p bit position to clip at + * @return clipped value + */ +static av_always_inline av_const unsigned av_mod_uintp2_c(unsigned a, unsigned p) +{ + return a & ((1 << p) - 1); +} + /** * Add two signed 32-bit values with saturation. * @@ -466,6 +477,9 @@ static av_always_inline av_const int av_popcount64_c(uint64_t x) #ifndef av_clip_uintp2 # define av_clip_uintp2 av_clip_uintp2_c #endif +#ifndef av_mod_uintp2 +# define av_mod_uintp2 av_mod_uintp2_c +#endif #ifndef av_sat_add32 # define av_sat_add32 av_sat_add32_c #endif -- cgit v1.2.3