Implement bidirectional (positive offset - left, negative - right)
authorVladimir Voroshilov <voroshil@gmail.com>
Sun, 11 May 2008 11:49:25 +0000 (11:49 +0000)
committerVladimir Voroshilov <voroshil@gmail.com>
Sun, 11 May 2008 11:49:25 +0000 (11:49 +0000)
signed shift for ACELP-based codecs.

Originally committed as revision 13117 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/acelp_math.h

index cab957e..e503df8 100644 (file)
@@ -72,4 +72,17 @@ static int sum_of_squares(const int16_t* speech, int length, int offset, int shi
     return sum;
 }
 
+/**
+ * \brief Shift value left or right depending on sign of offset parameter.
+ * \param value value to shift
+ * \param offset shift offset
+ *
+ * \return value << offset, if offset>=0; value >> -offset - otherwise
+ */
+static inline int bidir_sal(int value, int offset)
+{
+    if(offset < 0) return value >> -offset;
+    else           return value <<  offset;
+}
+
 #endif /* FFMPEG_ACELP_MATH_H */