9/10-bit: simplify clipping macros
authorMans Rullgard <mans@mansr.com>
Sat, 9 Jul 2011 10:03:01 +0000 (11:03 +0100)
committerMans Rullgard <mans@mansr.com>
Sun, 10 Jul 2011 16:54:41 +0000 (17:54 +0100)
Signed-off-by: Mans Rullgard <mans@mansr.com>
libavcodec/bit_depth_template.c

index c0a6eaf..4da0a6e 100644 (file)
 #   undef PIXEL_SPLAT_X4
 #else
 #   define AVCODEC_H264_HIGH_DEPTH_H
 #   undef PIXEL_SPLAT_X4
 #else
 #   define AVCODEC_H264_HIGH_DEPTH_H
-#   define CLIP_PIXEL(depth)\
-    static inline uint16_t av_clip_pixel_ ## depth (int p)\
-    {\
-        const int pixel_max = (1 << depth)-1;\
-        return (p & ~pixel_max) ? (-p)>>31 & pixel_max : p;\
-    }
-
-CLIP_PIXEL( 9)
-CLIP_PIXEL(10)
 #endif
 
 #if BIT_DEPTH > 8
 #endif
 
 #if BIT_DEPTH > 8
@@ -70,6 +61,9 @@ CLIP_PIXEL(10)
 #   define AV_WN4P  AV_WN64
 #   define AV_WN4PA AV_WN64A
 #   define PIXEL_SPLAT_X4(x) ((x)*0x0001000100010001ULL)
 #   define AV_WN4P  AV_WN64
 #   define AV_WN4PA AV_WN64A
 #   define PIXEL_SPLAT_X4(x) ((x)*0x0001000100010001ULL)
+
+#   define av_clip_pixel(a) av_clip_uintp2(a, BIT_DEPTH)
+#   define CLIP(a)          av_clip_uintp2(a, BIT_DEPTH)
 #else
 #   define pixel  uint8_t
 #   define pixel2 uint16_t
 #else
 #   define pixel  uint8_t
 #   define pixel2 uint16_t
@@ -86,21 +80,18 @@ CLIP_PIXEL(10)
 #   define AV_WN4P  AV_WN32
 #   define AV_WN4PA AV_WN32A
 #   define PIXEL_SPLAT_X4(x) ((x)*0x01010101U)
 #   define AV_WN4P  AV_WN32
 #   define AV_WN4PA AV_WN32A
 #   define PIXEL_SPLAT_X4(x) ((x)*0x01010101U)
-#endif
 
 
-#if BIT_DEPTH == 8
 #   define av_clip_pixel(a) av_clip_uint8(a)
 #   define CLIP(a) cm[a]
 #   define av_clip_pixel(a) av_clip_uint8(a)
 #   define CLIP(a) cm[a]
+#endif
+
+#if BIT_DEPTH == 8
 #   define FUNC(a)  a ## _8
 #   define FUNCC(a) a ## _8_c
 #elif BIT_DEPTH == 9
 #   define FUNC(a)  a ## _8
 #   define FUNCC(a) a ## _8_c
 #elif BIT_DEPTH == 9
-#   define av_clip_pixel(a) av_clip_pixel_9(a)
-#   define CLIP(a)          av_clip_pixel_9(a)
 #   define FUNC(a)  a ## _9
 #   define FUNCC(a) a ## _9_c
 #elif BIT_DEPTH == 10
 #   define FUNC(a)  a ## _9
 #   define FUNCC(a) a ## _9_c
 #elif BIT_DEPTH == 10
-#   define av_clip_pixel(a) av_clip_pixel_10(a)
-#   define CLIP(a)          av_clip_pixel_10(a)
 #   define FUNC(a)  a ## _10
 #   define FUNCC(a) a ## _10_c
 #endif
 #   define FUNC(a)  a ## _10
 #   define FUNCC(a) a ## _10_c
 #endif