From 7fd88069241ead2d2fd3e2db1b79e4b292e90001 Mon Sep 17 00:00:00 2001 From: Ramiro Polla Date: Fri, 16 Oct 2009 16:10:00 +0000 Subject: [PATCH] mlp: Only initialize VLC tables once. This caused a crash when multiple instances of the decoder were started at different times. Bug reported by Maxim Anisiutkin. Originally committed as revision 20254 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mlpdec.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c index 88803959bf..3b0789d054 100644 --- a/libavcodec/mlpdec.c +++ b/libavcodec/mlpdec.c @@ -155,6 +155,7 @@ static VLC huff_vlc[3]; static av_cold void init_static(void) { + if (!huff_vlc[0].bits) { INIT_VLC_STATIC(&huff_vlc[0], VLC_BITS, 18, &ff_mlp_huffman_tables[0][0][1], 2, 1, &ff_mlp_huffman_tables[0][0][0], 2, 1, 512); @@ -164,6 +165,7 @@ static av_cold void init_static(void) INIT_VLC_STATIC(&huff_vlc[2], VLC_BITS, 15, &ff_mlp_huffman_tables[2][0][1], 2, 1, &ff_mlp_huffman_tables[2][0][0], 2, 1, 512); + } ff_mlp_init_crc(); }