Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/libavutil/common.h b/libavutil/common.h
- index 9ac04da..f3276a2 100644
- --- a/libavutil/common.h
- +++ b/libavutil/common.h
- @@ -331,6 +331,11 @@ static av_always_inline av_const int av_popcount64_c(uint64_t x)
- return av_popcount((uint32_t)x) + av_popcount((uint32_t)(x >> 32));
- }
- +static av_always_inline av_const int av_parity_c(uint32_t v)
- +{
- + return av_popcount(v) & 1;
- +}
- +
- #define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))
- #define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24))
- @@ -517,3 +522,6 @@ static av_always_inline av_const int av_popcount64_c(uint64_t x)
- #ifndef av_popcount64
- # define av_popcount64 av_popcount64_c
- #endif
- +#ifndef av_parity
- +# define av_parity av_parity_c
- +#endif
- diff --git a/libavutil/intmath.h b/libavutil/intmath.h
- index 17c4f1b..9573109 100644
- --- a/libavutil/intmath.h
- +++ b/libavutil/intmath.h
- @@ -153,16 +153,10 @@ static av_always_inline av_const unsigned ff_clz_c(unsigned x)
- }
- #endif
- -#ifndef ff_parity
- -#define ff_parity ff_parity_c
- -static av_always_inline av_const int ff_parity_c(uint32_t v)
- -{
- -#if HAVE_PARITY
- - return __builtin_parity(v);
- -#else
- - return av_popcount(v) & 1;
- +#if AV_GCC_VERSION_AT_LEAST(3,4)
- +#ifndef av_parity
- +#define av_parity __builtin_parity
- #endif
- -}
- #endif
- /**
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement