Mercurial > libavcodec.hg
comparison mpegvideo.c @ 1805:5dd5b2052f5b libavcodec
mpeg4 b frame + adaptive quantization assertion failure fix
author | michael |
---|---|
date | Sat, 14 Feb 2004 03:49:43 +0000 |
parents | cc0a15943a87 |
children | fc6b38b5dd40 |
comparison
equal
deleted
inserted
replaced
1804:cc0a15943a87 | 1805:5dd5b2052f5b |
---|---|
3410 update_qscale(s); | 3410 update_qscale(s); |
3411 | 3411 |
3412 if(!(s->flags&CODEC_FLAG_QP_RD)){ | 3412 if(!(s->flags&CODEC_FLAG_QP_RD)){ |
3413 s->dquant= s->qscale - last_qp; | 3413 s->dquant= s->qscale - last_qp; |
3414 | 3414 |
3415 if(s->out_format==FMT_H263) | 3415 if(s->out_format==FMT_H263){ |
3416 s->dquant= clip(s->dquant, -2, 2); //FIXME RD | 3416 s->dquant= clip(s->dquant, -2, 2); //FIXME RD |
3417 | 3417 |
3418 if(s->codec_id==CODEC_ID_MPEG4){ | 3418 if(s->codec_id==CODEC_ID_MPEG4){ |
3419 if(!s->mb_intra){ | 3419 if(!s->mb_intra){ |
3420 if((s->mv_dir&MV_DIRECT) || s->mv_type==MV_TYPE_8X8) | 3420 if(s->pict_type == B_TYPE){ |
3421 s->dquant=0; | 3421 if(s->dquant&1) |
3422 s->dquant= (s->dquant/2)*2; | |
3423 if(s->mv_dir&MV_DIRECT) | |
3424 s->dquant= 0; | |
3425 } | |
3426 if(s->mv_type==MV_TYPE_8X8) | |
3427 s->dquant=0; | |
3428 } | |
3422 } | 3429 } |
3423 } | 3430 } |
3424 } | 3431 } |
3425 ff_set_qscale(s, last_qp + s->dquant); | 3432 ff_set_qscale(s, last_qp + s->dquant); |
3426 } | 3433 } |
3967 s->current_picture.mb_var [s->mb_stride * mb_y + mb_x] = varc; | 3974 s->current_picture.mb_var [s->mb_stride * mb_y + mb_x] = varc; |
3968 s->current_picture.mb_mean[s->mb_stride * mb_y + mb_x] = (sum+128)>>8; | 3975 s->current_picture.mb_mean[s->mb_stride * mb_y + mb_x] = (sum+128)>>8; |
3969 s->mb_var_sum_temp += varc; | 3976 s->mb_var_sum_temp += varc; |
3970 } | 3977 } |
3971 } | 3978 } |
3979 return 0; | |
3972 } | 3980 } |
3973 | 3981 |
3974 static void write_slice_end(MpegEncContext *s){ | 3982 static void write_slice_end(MpegEncContext *s){ |
3975 if(s->codec_id==CODEC_ID_MPEG4){ | 3983 if(s->codec_id==CODEC_ID_MPEG4){ |
3976 if(s->partitioned_frame){ | 3984 if(s->partitioned_frame){ |