aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMans Rullgard <mans@mansr.com>2011-07-09 11:03:01 +0100
committerMans Rullgard <mans@mansr.com>2011-07-10 17:54:41 +0100
commit0f6fc8660e32a69c406cba44cf31df6f7a7543d2 (patch)
treea96ab88eb3278df94075e09f6cf4cb185f18bed0
parentf47ac3c6ca966d72b2966495958184b524d001f7 (diff)
downloadffmpeg-0f6fc8660e32a69c406cba44cf31df6f7a7543d2.tar.gz
9/10-bit: simplify clipping macros
Signed-off-by: Mans Rullgard <mans@mansr.com>
-rw-r--r--libavcodec/bit_depth_template.c21
1 files 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)
-#endif
-#if BIT_DEPTH == 8
# 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 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