summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/cabac.c2
-rw-r--r--libavcodec/cabac.h6
2 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/cabac.c b/libavcodec/cabac.c
index c4bd2740cb..4e05e68561 100644
--- a/libavcodec/cabac.c
+++ b/libavcodec/cabac.c
@@ -158,7 +158,7 @@ STOP_TIMER("put_cabac_u")
for(i=0; i<SIZE; i++){
START_TIMER
- put_cabac_ueg(&c, state, r[i], 0, 3, 0, 1, 2);
+ put_cabac_ueg(&c, state, r[i], 3, 0, 1, 2);
STOP_TIMER("put_cabac_ueg")
}
diff --git a/libavcodec/cabac.h b/libavcodec/cabac.h
index 1377c61f38..7ac18cc535 100644
--- a/libavcodec/cabac.h
+++ b/libavcodec/cabac.h
@@ -199,12 +199,16 @@ static inline void put_cabac_u(CABACContext *c, uint8_t * state, int v, int max,
/**
* put unary exp golomb k-th order binarization.
*/
-static inline void put_cabac_ueg(CABACContext *c, uint8_t * state, int v, int sign, int max, int is_signed, int k, int max_index){
+static inline void put_cabac_ueg(CABACContext *c, uint8_t * state, int v, int max, int is_signed, int k, int max_index){
int i;
if(v==0)
put_cabac(c, state, 0);
else{
+ const int sign= v < 0;
+
+ if(is_signed) v= ABS(v);
+
if(v<max){
for(i=0; i<v; i++){
put_cabac(c, state, 1);