X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Facelp_pitch_delay.h;h=73fa3c331a04f75eee2158d1311a03b0d60ecc71;hb=f4df5039a791a56de85c64e6b9e4448a221b5c40;hp=2aade2f226177fc480050193c6ee8e8877a320f4;hpb=3e076faf3b86bb16f746e7c9b0cf3dac5f9a851a;p=ffmpeg diff --git a/libavcodec/acelp_pitch_delay.h b/libavcodec/acelp_pitch_delay.h index 2aade2f2261..73fa3c331a0 100644 --- a/libavcodec/acelp_pitch_delay.h +++ b/libavcodec/acelp_pitch_delay.h @@ -41,7 +41,13 @@ * with 1/3 resolution, 19 < pitch_delay < 85 * integers only, 85 <= pitch_delay <= 143 */ -int ff_acelp_decode_8bit_to_1st_delay3(int ac_index); +static inline int ff_acelp_decode_8bit_to_1st_delay3(int ac_index) +{ + ac_index += 58; + if (ac_index > 254) + ac_index = 3 * ac_index - 510; + return ac_index; +} /** * @brief Decode pitch delay of the second subframe encoded by 5 or 6 bits @@ -58,9 +64,11 @@ int ff_acelp_decode_8bit_to_1st_delay3(int ac_index); * @remark The routine is used in G.729 @@8k, AMR @@10.2k, AMR @@7.95k, * AMR @@7.4k for the second subframe. */ -int ff_acelp_decode_5_6_bit_to_2nd_delay3( - int ac_index, - int pitch_delay_min); +static inline int ff_acelp_decode_5_6_bit_to_2nd_delay3(int ac_index, + int pitch_delay_min) +{ + return 3 * pitch_delay_min + ac_index - 2; +} /** * @brief Decode pitch delay with 1/3 precision. @@ -78,9 +86,16 @@ int ff_acelp_decode_5_6_bit_to_2nd_delay3( * @remark The routine is used in G.729 @@6.4k, AMR @@6.7k, AMR @@5.9k, * AMR @@5.15k, AMR @@4.75k for the second subframe. */ -int ff_acelp_decode_4bit_to_2nd_delay3( - int ac_index, - int pitch_delay_min); +static inline int ff_acelp_decode_4bit_to_2nd_delay3(int ac_index, + int pitch_delay_min) +{ + if (ac_index < 4) + return 3 * (ac_index + pitch_delay_min); + else if (ac_index < 12) + return 3 * pitch_delay_min + ac_index + 6; + else + return 3 * (ac_index + pitch_delay_min) - 18; +} /** * @brief Decode pitch delay of the first subframe encoded by 9 bits @@ -95,7 +110,13 @@ int ff_acelp_decode_4bit_to_2nd_delay3( * * @remark The routine is used in AMR @@12.2k for the first and third subframes. */ -int ff_acelp_decode_9bit_to_1st_delay6(int ac_index); +static inline int ff_acelp_decode_9bit_to_1st_delay6(int ac_index) +{ + if (ac_index < 463) + return ac_index + 105; + else + return 6 * (ac_index - 368); +} /** * @brief Decode pitch delay of the second subframe encoded by 6 bits @@ -111,9 +132,11 @@ int ff_acelp_decode_9bit_to_1st_delay6(int ac_index); * * @remark The routine is used in AMR @@12.2k for the second and fourth subframes. */ -int ff_acelp_decode_6bit_to_2nd_delay6( - int ac_index, - int pitch_delay_min); +static inline int ff_acelp_decode_6bit_to_2nd_delay6(int ac_index, + int pitch_delay_min) +{ + return 6 * pitch_delay_min + ac_index - 3; +} /** * @brief Update past quantized energies