# [FFmpeg-devel] [PATCH 4/5] Add the G723.1 demuxer and decoder

Michael Niedermayer michaelni at gmx.at
Fri Apr 8 12:41:43 CEST 2011

```On Sat, Mar 19, 2011 at 03:02:32PM +0100, Vitor Sessak wrote:
> On 03/17/2011 11:56 PM, banan at ludd.ltu.se wrote:
>> From: Mohamed Naufal Basheer<naufal11 at gmail.com>
[...]
>> +static int scale_vector(int16_t *vector, int length)
>> +{
>> +    int bits, scale, max = 0;
>> +    int i;
>> +
>> +    const int16_t shift_table[16] = {
>> +        0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080,
>> +        0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x7fff
>> +    };
>> +
>> +    for (i = 0; i<  length; i++)
>> +        max = FFMAX(max, FFABS(vector[i]));
>> +
>> +    bits  = normalize_bits(max, 0);
>> +    scale = shift_table[bits];
>> +
>> +    for (i = 0; i<  length; i++)
>> +        vector[i] = (int16_t)(av_clipl_int32(vector[i] * scale<<  1)>>  4);
>
> What is the point of clipping a 32-bit value to 32-bits?

this code is not well written

it should be, assuming the original is correct: (bit exact)
vector[i] = (vector[i] * scale) >> 3;

[...]
--
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Complexity theory is the science of finding the exact solution to an
approximation. Benchmarking OTOH is finding an approximation of the exact
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20110408/c7a83e6c/attachment.asc>
```

More information about the ffmpeg-devel mailing list