From 19d57ca62e7134cb3cd5e937443501c417ceb79a Mon Sep 17 00:00:00 2001 From: James Almer Date: Wed, 22 Feb 2017 12:53:34 -0500 Subject: [PATCH] libavutil: add av_mod_uintp2 Signed-off-by: James Almer --- libavutil/common.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libavutil/common.h b/libavutil/common.h index d2ddcba9ed..3832f107ba 100644 --- a/libavutil/common.h +++ b/libavutil/common.h @@ -182,6 +182,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. * @@ -410,6 +421,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