[FFmpeg-cvslog] ff_h263_decode_init_vlc: fix order of operations to avoid failure with 2 threads
Michael Niedermayer
git at videolan.org
Sat Oct 27 21:39:58 CEST 2012
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Oct 27 21:28:59 2012 +0200| [f44be0da946c9b434bccfd9128eb77dca1de14d0] | committer: Michael Niedermayer
ff_h263_decode_init_vlc: fix order of operations to avoid failure with 2 threads
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f44be0da946c9b434bccfd9128eb77dca1de14d0
---
libavcodec/ituh263dec.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c
index 6d43233..86c5c06 100644
--- a/libavcodec/ituh263dec.c
+++ b/libavcodec/ituh263dec.c
@@ -102,11 +102,9 @@ static VLC cbpc_b_vlc;
/* XXX: find a better solution to handle static init */
void ff_h263_decode_init_vlc(MpegEncContext *s)
{
- static int done = 0;
+ static volatile int done = 0;
if (!done) {
- done = 1;
-
INIT_VLC_STATIC(&ff_h263_intra_MCBPC_vlc, INTRA_MCBPC_VLC_BITS, 9,
ff_h263_intra_MCBPC_bits, 1, 1,
ff_h263_intra_MCBPC_code, 1, 1, 72);
@@ -129,6 +127,7 @@ void ff_h263_decode_init_vlc(MpegEncContext *s)
INIT_VLC_STATIC(&cbpc_b_vlc, CBPC_B_VLC_BITS, 4,
&ff_cbpc_b_tab[0][1], 2, 1,
&ff_cbpc_b_tab[0][0], 2, 1, 8);
+ done = 1;
}
}
More information about the ffmpeg-cvslog
mailing list