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>
______________________________________________________

Reply via email to