diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c index 7e0f8cd934..e158326273 100644 --- a/libavformat/nutdec.c +++ b/libavformat/nutdec.c @@ -29,18 +29,13 @@ static uint64_t get_v(ByteIOContext *bc){ uint64_t val = 0; + int tmp; - for(;;) - { - int tmp = get_byte(bc); - - if (tmp&0x80) - val= (val<<7) + tmp - 0x80; - else{ - return (val<<7) + tmp; - } - } - return -1; + do{ + tmp = get_byte(bc); + val= (val<<7) + (tmp&127); + }while(tmp&128); + return val; } static int get_str(ByteIOContext *bc, char *string, unsigned int maxlen){