New submission from Jose Santiago <[EMAIL PROTECTED]>:
Tested with the current SVN checkout. The inline function show_bits_long() in
libavcodec/bistream.h is not working as intended on ARM9 GCC 3.4.6 . I have
modified it to and the issue is resolved on my tests:
static inline unsigned int show_bits_long(GetBitContext *s, int n)
{
unsigned int ret;
if (n <= 17)
{
ret = show_bits(s, n);
} else
{
GetBitContext gb= *s;
ret = get_bits_long(s, n);
*s= gb;
}
return ret;
}
The issue is that ret is defined as an int in the current code and the result of
get_bits_long() when assigned to a signed integer on this platform for some
inputs differs from when I tested on x86. From my tests, this does not seem to
break my x86.
----------
messages: 2695
nosy: jsantiago0
priority: normal
status: new
substatus: new
title: show_bits_long() Not Working Correctly on ARM9
type: bug
______________________________________________________
FFmpeg issue tracker <[EMAIL PROTECTED]>
<https://roundup.mplayerhq.hu/roundup/ffmpeg/issue565>
______________________________________________________