diff --git a/libavcodec/acelp_math.h b/libavcodec/acelp_math.h index cab957e292..e503df8984 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 */