diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2012-02-17 14:18:22 -0800 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2012-02-18 09:16:39 -0800 |
commit | c742ab4e81bb9dcabfdab006d6b8b09a5808c4ce (patch) | |
tree | 0eff1949c90bb07c23de568e8a39ecb1a47826af | |
parent | 9d3050d3e95e307ebc34a943484c7add838d1220 (diff) | |
download | ffmpeg-c742ab4e81bb9dcabfdab006d6b8b09a5808c4ce.tar.gz |
vc1parse: call vc1_init_common().
The parser uses VLC tables initialized in vc1_common_init(), therefore
we should call this function on parser init also.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
-rw-r--r-- | libavcodec/vc1.h | 1 | ||||
-rw-r--r-- | libavcodec/vc1_parser.c | 2 | ||||
-rw-r--r-- | libavcodec/vc1dec.c | 4 |
3 files changed, 4 insertions, 3 deletions
diff --git a/libavcodec/vc1.h b/libavcodec/vc1.h index f895aad204..d07ad8937e 100644 --- a/libavcodec/vc1.h +++ b/libavcodec/vc1.h @@ -447,5 +447,6 @@ int ff_vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContex int ff_vc1_parse_frame_header (VC1Context *v, GetBitContext *gb); int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext *gb); +int ff_vc1_init_common(VC1Context *v); #endif /* AVCODEC_VC1_H */ diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c index dfbb1f5119..bf29032c54 100644 --- a/libavcodec/vc1_parser.c +++ b/libavcodec/vc1_parser.c @@ -188,7 +188,7 @@ static int vc1_parse_init(AVCodecParserContext *s) { VC1ParseContext *vpc = s->priv_data; vpc->v.s.slice_context_count = 1; - return 0; + return ff_vc1_init_common(&vpc->v); } AVCodecParser ff_vc1_parser = { diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index e48aabcfb2..8ab92b4177 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -67,7 +67,7 @@ static const int offset_table2[9] = { 0, 1, 3, 7, 15, 31, 63, 127, 255 }; * @param v The VC1Context to initialize * @return Status */ -static int vc1_init_common(VC1Context *v) +int ff_vc1_init_common(VC1Context *v) { static int done = 0; int i = 0; @@ -5274,7 +5274,7 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx) avctx->idct_algo = FF_IDCT_WMV2; } - if (vc1_init_common(v) < 0) + if (ff_vc1_init_common(v) < 0) return -1; ff_vc1dsp_init(&v->vc1dsp); |