From ddb8ebe7a19ea6178f9cf8857a55657d8f317559 Mon Sep 17 00:00:00 2001
From: Aurelien Jacobs <aurel@gnuage.org>
Date: Sat, 11 Aug 2007 21:59:01 +0000
Subject: [PATCH] add a new av_clip_int16() function to libavutil

Originally committed as revision 10076 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavutil/avutil.h |  4 ++--
 libavutil/common.h | 11 +++++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/libavutil/avutil.h b/libavutil/avutil.h
index b491dc9c146..518de4bb18f 100644
--- a/libavutil/avutil.h
+++ b/libavutil/avutil.h
@@ -30,8 +30,8 @@
 #define AV_STRINGIFY(s)         AV_TOSTRING(s)
 #define AV_TOSTRING(s) #s
 
-#define LIBAVUTIL_VERSION_INT   ((49<<16)+(4<<8)+1)
-#define LIBAVUTIL_VERSION       49.4.1
+#define LIBAVUTIL_VERSION_INT   ((49<<16)+(5<<8)+0)
+#define LIBAVUTIL_VERSION       49.5.0
 #define LIBAVUTIL_BUILD         LIBAVUTIL_VERSION_INT
 
 #define LIBAVUTIL_IDENT         "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION)
diff --git a/libavutil/common.h b/libavutil/common.h
index bbade55bfa8..95504035034 100644
--- a/libavutil/common.h
+++ b/libavutil/common.h
@@ -192,6 +192,17 @@ static inline uint8_t av_clip_uint8(int a)
     else          return a;
 }
 
+/**
+ * clip a signed integer value into the -32768,32767 range
+ * @param a value to clip
+ * @return clipped value
+ */
+static inline int16_t av_clip_int16(int a)
+{
+    if ((a+32768) & ~65535) return (a>>31) ^ 32767;
+    else                    return a;
+}
+
 /* math */
 int64_t ff_gcd(int64_t a, int64_t b);
 
-- 
GitLab