[FFmpeg-cvslog] lavc/h264: move ff_init_cabac_states() from decode_slice() to ff_h264_decode_init().

Clément Bœsch git at videolan.org
Wed Oct 3 15:38:51 CEST 2012


ffmpeg | branch: master | Clément Bœsch <clement.boesch at smartjog.com> | Wed Oct  3 15:14:40 2012 +0200| [1e2e2c8095de2d9ea3259305cfeff28f40e4ca12] | committer: Clément Bœsch

lavc/h264: move ff_init_cabac_states() from decode_slice() to ff_h264_decode_init().

This fixes one of the potential races spotted by Helgrind.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1e2e2c8095de2d9ea3259305cfeff28f40e4ca12
---

 libavcodec/h264.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 9c79f35..9a2d9d7 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -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);



More information about the ffmpeg-cvslog mailing list