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

Martin Storsjö martin
Sun May 2 22:31:16 CEST 2010


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 

// Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Scale-amrnbdec-output-correctly.patch
Type: text/x-diff
Size: 1112 bytes
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100502/74e4f0d5/attachment.patch>

More information about the ffmpeg-devel mailing list