]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/cabac.c
proresdec: Fix read via negative index in a global array.
[ffmpeg] / libavcodec / cabac.c
index 34ff40c44b0443c4cca70310912761835b7877e5..9b880d2398ed76fba57460364499df97a62fefc5 100644 (file)
@@ -52,6 +52,7 @@ static const uint8_t lps_range[64][4]= {
 
 uint8_t ff_h264_mlps_state[4*64];
 uint8_t ff_h264_lps_range[4*2*64];
+uint8_t ff_h264_lps_state[2*64];
 static uint8_t h264_mps_state[2 * 64];
 
 static const uint8_t mps_state[64]= {
@@ -200,6 +201,7 @@ static void put_cabac(CABACContext *c, uint8_t * const state, int bit){
     }else{
         c->low += c->range - RangeLPS;
         c->range = RangeLPS;
+        *state= ff_h264_lps_state[*state];
     }
 
     renorm_cabac_encoder(c);