[FFmpeg-devel] [PATCH] Fix amrnb decoder scaling

Benjamin Larsson banan
Sun May 2 22:33:54 CEST 2010


On 02/05/10 22:31, Martin Storsj? wrote:
> Hi,
>
> The output from the amrnb decoder is currently broken, since rev 22937. In
> that commit, this chunk removed both scaling and clipping, even if only
> clipping was intended to be removed:
>
> @@ -1048,10 +1046,6 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void *data, int *data_size
>                                                highpass_poles, highpass_gain,
>                                                p->high_pass_mem, AMR_BLOCK_SIZE);
>
> -    for (i = 0; i<  AMR_BLOCK_SIZE; i++)
> -        buf_out[i] = av_clipf(buf_out[i] * AMR_SAMPLE_SCALE,
> -                              -1.0, 32767.0 / 32768.0);
> -
>       /* Update averaged lsf vector (used for fixed gain smoothing).
>        *
>        * Note that lsf_avg should not incorporate the current frame's LSFs
>
> The scaling factory is defined as:
> #define AMR_SAMPLE_SCALE  (2.0 / 32768.0)
>
> This patch readds the loop, only scaling the output values, without any
> clipping.
>
> // Martin

I'm quite sure the scaling can be added to some other step, so the loop 
wouldn't be needed.

MvH
Benjamin Larsson



More information about the ffmpeg-devel mailing list