Add av_popcount64
authorDaniel Verkamp <daniel@drv.nu>
Tue, 3 Jan 2012 01:23:48 +0000 (01:23 +0000)
committerJanne Grunau <janne-libav@jannau.net>
Tue, 3 Jan 2012 13:25:43 +0000 (14:25 +0100)
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
libavutil/common.h

index 7e93a1a..c99d858 100644 (file)
@@ -218,6 +218,16 @@ static av_always_inline av_const int av_popcount_c(uint32_t x)
     return (x + (x >> 16)) & 0x3F;
 }
 
+/**
+ * Count number of bits set to one in x
+ * @param x value to count bits of
+ * @return the number of bits set to one in x
+ */
+static av_always_inline av_const int av_popcount64_c(uint64_t x)
+{
+    return av_popcount(x) + av_popcount(x >> 32);
+}
+
 #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))
 
@@ -383,3 +393,6 @@ static av_always_inline av_const int av_popcount_c(uint32_t x)
 #ifndef av_popcount
 #   define av_popcount      av_popcount_c
 #endif
+#ifndef av_popcount64
+#   define av_popcount64    av_popcount64_c
+#endif