lavc/h264: move ff_init_cabac_states() from decode_slice() to ff_h264_decode_init().
authorClément Bœsch <clement.boesch@smartjog.com>
Wed, 3 Oct 2012 13:14:40 +0000 (15:14 +0200)
committerClément Bœsch <ubitux@gmail.com>
Wed, 3 Oct 2012 13:38:22 +0000 (15:38 +0200)
This fixes one of the potential races spotted by Helgrind.

libavcodec/h264.c

index 9c79f35..9a2d9d7 100644 (file)
@@ -1112,6 +1112,8 @@ av_cold int ff_h264_decode_init(AVCodecContext *avctx)
         s->low_delay           = 0;
     }
 
+    ff_init_cabac_states();
+
     return 0;
 }
 
@@ -3533,7 +3535,6 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
         align_get_bits(&s->gb);
 
         /* init cabac */
-        ff_init_cabac_states();
         ff_init_cabac_decoder(&h->cabac,
                               s->gb.buffer + get_bits_count(&s->gb) / 8,
                               (get_bits_left(&s->gb) + 7) / 8);