summaryrefslogtreecommitdiff
path: root/libavcodec/cabac.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/cabac.c')
-rw-r--r--libavcodec/cabac.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/cabac.c b/libavcodec/cabac.c
index 52e6c50e47..f69b100d60 100644
--- a/libavcodec/cabac.c
+++ b/libavcodec/cabac.c
@@ -133,11 +133,19 @@ void ff_init_cabac_states(CABACContext *c, uint8_t const (*lps_range)[4],
c->mps_state[2*i+3]= 2*mps_state[i]+3;
if( i ){
+#ifdef BRANCHLESS_CABAD
+ c->mps_state[-2*i-3]= 2*lps_state[i]+2; //FIXME yes this is not valid C but iam lazy, cleanup welcome
+ c->mps_state[-2*i-4]= 2*lps_state[i]+3;
+ }else{
+ c->mps_state[-2*i-3]= 3;
+ c->mps_state[-2*i-4]= 2;
+#else
c->lps_state[2*i+2]= 2*lps_state[i]+2;
c->lps_state[2*i+3]= 2*lps_state[i]+3;
}else{
c->lps_state[2*i+2]= 3;
c->lps_state[2*i+3]= 2;
+#endif
}
}
}