From 0f6fc8660e32a69c406cba44cf31df6f7a7543d2 Mon Sep 17 00:00:00 2001
From: Mans Rullgard <mans@mansr.com>
Date: Sat, 9 Jul 2011 11:03:01 +0100
Subject: [PATCH] 9/10-bit: simplify clipping macros

Signed-off-by: Mans Rullgard <mans@mansr.com>
---
 libavcodec/bit_depth_template.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/libavcodec/bit_depth_template.c b/libavcodec/bit_depth_template.c
index c0a6eafe89..4da0a6e0c9 100644
--- a/libavcodec/bit_depth_template.c
+++ b/libavcodec/bit_depth_template.c
@@ -43,15 +43,6 @@
 #   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
@@ -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_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
@@ -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_clip_pixel(a) av_clip_uint8(a)
+#   define CLIP(a) cm[a]
 #endif
 
 #if BIT_DEPTH == 8
-#   define av_clip_pixel(a) av_clip_uint8(a)
-#   define CLIP(a) cm[a]
 #   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 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