From 519c2b6d1182513a83efee5b1e8634a7feaedbbf Mon Sep 17 00:00:00 2001 From: Fabrice Bellard Date: Sun, 12 Aug 2001 00:52:37 +0000 Subject: [PATCH] moved matrix init away from MPV_common_init() Originally committed as revision 77 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h263dec.c | 8 +++++++- libavcodec/mpegvideo.c | 14 +++++++------- libavcodec/rv10.c | 6 ++++++ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 8bbd3a7580..02fedd90a7 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -28,7 +28,8 @@ static int h263_decode_init(AVCodecContext *avctx) { MpegEncContext *s = avctx->priv_data; - + int i; + s->out_format = FMT_H263; s->width = avctx->width; @@ -57,6 +58,11 @@ static int h263_decode_init(AVCodecContext *avctx) if (MPV_common_init(s) < 0) return -1; + /* XXX: suppress this matrix init, only needed because using mpeg1 + dequantize in mmx case */ + for(i=0;i<64;i++) + s->non_intra_matrix[i] = default_non_intra_matrix[i]; + if (s->h263_msmpeg4) msmpeg4_decode_init_vlc(s); else diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index dae15de171..e8cc3ced0b 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -183,13 +183,6 @@ int MPV_common_init(MpegEncContext *s) /* default structure is frame */ s->picture_structure = PICT_FRAME; - /* init default q matrix (only for mpeg and mjpeg) */ - for(i=0;i<64;i++) { - s->intra_matrix[i] = default_intra_matrix[i]; - s->chroma_intra_matrix[i] = default_intra_matrix[i]; - s->non_intra_matrix[i] = default_non_intra_matrix[i]; - s->chroma_non_intra_matrix[i] = default_non_intra_matrix[i]; - } /* init macroblock skip table */ if (!s->encoding) { s->mbskip_table = av_mallocz(s->mb_width * s->mb_height); @@ -248,6 +241,7 @@ void MPV_common_end(MpegEncContext *s) int MPV_encode_init(AVCodecContext *avctx) { MpegEncContext *s = avctx->priv_data; + int i; s->bit_rate = avctx->bit_rate; s->frame_rate = avctx->frame_rate; @@ -312,6 +306,12 @@ int MPV_encode_init(AVCodecContext *avctx) if (MPV_common_init(s) < 0) return -1; + /* init default q matrix */ + for(i=0;i<64;i++) { + s->intra_matrix[i] = default_intra_matrix[i]; + s->non_intra_matrix[i] = default_non_intra_matrix[i]; + } + /* rate control init */ rate_control_init(s); diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c index b03cd02937..f4ebc90160 100644 --- a/libavcodec/rv10.c +++ b/libavcodec/rv10.c @@ -337,6 +337,7 @@ static int rv10_decode_picture_header(MpegEncContext *s) static int rv10_decode_init(AVCodecContext *avctx) { MpegEncContext *s = avctx->priv_data; + int i; static int done; s->out_format = FMT_H263; @@ -350,6 +351,11 @@ static int rv10_decode_init(AVCodecContext *avctx) if (MPV_common_init(s) < 0) return -1; + /* XXX: suppress this matrix init, only needed because using mpeg1 + dequantize in mmx case */ + for(i=0;i<64;i++) + s->non_intra_matrix[i] = default_non_intra_matrix[i]; + h263_decode_init_vlc(s); /* init rv vlc */ -- GitLab