From 8292ca3541e7375c0d05c40000e8359884027b74 Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Sun, 23 Jun 2002 21:04:35 +0000 Subject: quick ffmpeg update (enables wmv1 decoding) thanks to the ffmpeg team for their amazing work! CVS patchset: 2141 CVS date: 2002/06/23 21:04:35 --- src/libffmpeg/libavcodec/mpeg12.c | 78 +++++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 35 deletions(-) (limited to 'src/libffmpeg/libavcodec/mpeg12.c') diff --git a/src/libffmpeg/libavcodec/mpeg12.c b/src/libffmpeg/libavcodec/mpeg12.c index 37e9b70ac..9b917ce27 100644 --- a/src/libffmpeg/libavcodec/mpeg12.c +++ b/src/libffmpeg/libavcodec/mpeg12.c @@ -184,41 +184,14 @@ static void mpeg1_skip_picture(MpegEncContext *s, int pict_num) put_bits(&s->pb, 1, 1); } -void mpeg1_encode_picture_header(MpegEncContext *s, int picture_number) +static void common_init(MpegEncContext *s) { - static int done=0; - - if (!done) { - int i; - done = 1; - init_rl(&rl_mpeg1); - - for(i=0; i<64; i++) - { - mpeg1_max_level[0][i]= rl_mpeg1.max_level[0][i]; - mpeg1_index_run[0][i]= rl_mpeg1.index_run[0][i]; - } - - /* build unified dc encoding tables */ - for(i=-255; i<256; i++) - { - int adiff, index; - int bits, code; - int diff=i; - - adiff = ABS(diff); - if(diff<0) diff--; - index = vlc_dc_table[adiff]; + s->y_dc_scale_table= + s->c_dc_scale_table= ff_mpeg1_dc_scale_table; +} - bits= vlc_dc_lum_bits[index] + index; - code= (vlc_dc_lum_code[index]<intra_quant_bias= 3<<(QUANT_BIAS_SHIFT-3); //(a + x*3/8)/x s->inter_quant_bias= 0; } - + static inline void encode_dc(MpegEncContext *s, int diff, int component) { if (component == 0) { @@ -533,6 +538,7 @@ void mpeg1_init_vlc(MpegEncContext *s) static int done = 0; if (!done) { + done = 1; init_vlc(&dc_lum_vlc, 9, 12, vlc_dc_lum_bits, 1, 1, @@ -1182,6 +1188,8 @@ typedef struct Mpeg1Context { static int mpeg_decode_init(AVCodecContext *avctx) { Mpeg1Context *s = avctx->priv_data; + + common_init(&s->mpeg_enc_ctx); s->header_state = 0xff; s->mpeg_enc_ctx_allocated = 0; -- cgit v1.2.3