From ce9eac7913dea1e6261c2fd99529fbbe32c2a7f0 Mon Sep 17 00:00:00 2001 From: Vladimir Voroshilov Date: Sun, 11 May 2008 11:49:25 +0000 Subject: [PATCH] Implement bidirectional (positive offset - left, negative - right) signed shift for ACELP-based codecs. Originally committed as revision 13117 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/acelp_math.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libavcodec/acelp_math.h b/libavcodec/acelp_math.h index cab957e..e503df8 100644 --- a/libavcodec/acelp_math.h +++ b/libavcodec/acelp_math.h @@ -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 */ -- 2.7.4