]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/blobdiff - libavcodec/snow.c
Optimize sign handling in get_symbol().
[frescor/ffmpeg.git] / libavcodec / snow.c
index 5d9577bc03be948682425aa43816419d042780d3..995c1a202443533cf28569c032ca86e7c8fd02a0 100644 (file)
@@ -665,10 +665,8 @@ static inline int get_symbol(RangeCoder *c, uint8_t *state, int is_signed){
             a += a + get_rac(c, state+22 + FFMIN(i,9)); //22..31
         }
 
-        if(is_signed && get_rac(c, state+11 + FFMIN(e,10))) //11..21
-            return -a;
-        else
-            return a;
+        e= -(is_signed && get_rac(c, state+11 + FFMIN(e,10))); //11..21
+        return (a^e)-e;
     }
 }