Originally committed as revision 77 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -28,7 +28,8 @@ | |||||
| static int h263_decode_init(AVCodecContext *avctx) | static int h263_decode_init(AVCodecContext *avctx) | ||||
| { | { | ||||
| MpegEncContext *s = avctx->priv_data; | MpegEncContext *s = avctx->priv_data; | ||||
| int i; | |||||
| s->out_format = FMT_H263; | s->out_format = FMT_H263; | ||||
| s->width = avctx->width; | s->width = avctx->width; | ||||
| @@ -57,6 +58,11 @@ static int h263_decode_init(AVCodecContext *avctx) | |||||
| if (MPV_common_init(s) < 0) | if (MPV_common_init(s) < 0) | ||||
| return -1; | 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) | if (s->h263_msmpeg4) | ||||
| msmpeg4_decode_init_vlc(s); | msmpeg4_decode_init_vlc(s); | ||||
| else | else | ||||
| @@ -183,13 +183,6 @@ int MPV_common_init(MpegEncContext *s) | |||||
| /* default structure is frame */ | /* default structure is frame */ | ||||
| s->picture_structure = PICT_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 */ | /* init macroblock skip table */ | ||||
| if (!s->encoding) { | if (!s->encoding) { | ||||
| s->mbskip_table = av_mallocz(s->mb_width * s->mb_height); | 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) | int MPV_encode_init(AVCodecContext *avctx) | ||||
| { | { | ||||
| MpegEncContext *s = avctx->priv_data; | MpegEncContext *s = avctx->priv_data; | ||||
| int i; | |||||
| s->bit_rate = avctx->bit_rate; | s->bit_rate = avctx->bit_rate; | ||||
| s->frame_rate = avctx->frame_rate; | s->frame_rate = avctx->frame_rate; | ||||
| @@ -312,6 +306,12 @@ int MPV_encode_init(AVCodecContext *avctx) | |||||
| if (MPV_common_init(s) < 0) | if (MPV_common_init(s) < 0) | ||||
| return -1; | 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 */ | ||||
| rate_control_init(s); | rate_control_init(s); | ||||
| @@ -337,6 +337,7 @@ static int rv10_decode_picture_header(MpegEncContext *s) | |||||
| static int rv10_decode_init(AVCodecContext *avctx) | static int rv10_decode_init(AVCodecContext *avctx) | ||||
| { | { | ||||
| MpegEncContext *s = avctx->priv_data; | MpegEncContext *s = avctx->priv_data; | ||||
| int i; | |||||
| static int done; | static int done; | ||||
| s->out_format = FMT_H263; | s->out_format = FMT_H263; | ||||
| @@ -350,6 +351,11 @@ static int rv10_decode_init(AVCodecContext *avctx) | |||||
| if (MPV_common_init(s) < 0) | if (MPV_common_init(s) < 0) | ||||
| return -1; | 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); | h263_decode_init_vlc(s); | ||||
| /* init rv vlc */ | /* init rv vlc */ | ||||