[FFmpeg-cvslog] r21069 - trunk/libavcodec/alsdec.c
Thilo Borgmann
thilo.borgmann
Sat Jan 9 12:40:53 CET 2010
Am 09.01.10 12:12, schrieb M?ns Rullg?rd:
> Thilo Borgmann <thilo.borgmann at googlemail.com> writes:
>
>> Am 08.01.10 12:58, schrieb Thilo Borgmann:
>>> Am 08.01.10 10:35, schrieb Michael Kostylev:
>>>>
>>>> On Thu Jan 7 23:23:28 2010
>>>> thilo.borgmann wrote:
>>>>
>>>>> Optimize short-term prediction by reducing index arithmetic.
>>>>
>>>> Now the lossless-als test returns a different crc on gcc-4.1.x configurations.
>>>> http://fate.multimedia.cx/index.php?build_record=156471
>>>> http://fate.multimedia.cx/index.php?build_record=156456
>>>> http://fate.multimedia.cx/index.php?build_record=156464
>>>> etc.
>>>
>>> Thanks for letting me know!
>>>
>>> Seems like I have to install gcc-4.1.x to see myself.
>>
>> I could reproduce this using gcc-4.1.3 in a virtual box. Seems like
>> another unsigned/signed issue exclusively for 4.1.x versions.
>
> Did you figure out exactly what was happening? I'm curious...
I think so:
> for (sb = -opt_order; sb < 0; sb++)
> y += MUL64(lpc_cof[sb], raw_samples[sb]);
does not work in gcc 4.1.x if opt_order is an unsigned int.
Debug output showed that the loop is not executed even once then (so I
think sb got a big positive number assigned). A quick test worked with:
> for (sb = -(int)(opt_order); ...)
so the local opt_order variable has been changed to int now.
Thus, using "-a" is not a good idea if a is unsigned. At least for gcc
4.1.x.
-Thilo
More information about the ffmpeg-cvslog
mailing list