Use of divide3232 with restricted call parameters: L_num <= L_denom

A helper function in basop_util.c with name divide3232 prepares the following parameters L_num and L_denom such, that both are shifted left by the same amount. Subsequently, the upper (rounded) part of L_denom (=denom) is passed with L_num to operator div_l(L_num, denom). The operator limits its result to MAX_16.

The SBA testcase (IVAS_cod -sba 3 24400 32 testv/stv3OA32c.wav stv3OA32c_24k4bps.192) provides calls to divide3232 with inconvenient parameters such, that the result deviates significantly from the expected result: Example: 0x7FFF = 0x6FF0541D / 0x4F80F4CA // Error: +40,8 %

There are about 78 invocations of divide3232() in the project.

We have means to filter most places, where those bad parameters are used. We will share info here.

Assignee Loading
Time tracking Loading