From: Fiona Glaser Date: Sat, 5 Feb 2011 04:48:37 +0000 (-0800) Subject: Fix rare corruption with subme=10 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=b7c745c4a747629daba4dc6f765d32293cb4f3d6;p=x264 Fix rare corruption with subme=10 Also fix dumb bug in VBV emergency AQ scaling. Regression in r1881. --- diff --git a/encoder/analyse.c b/encoder/analyse.c index a31c6ee3..ed309b75 100644 --- a/encoder/analyse.c +++ b/encoder/analyse.c @@ -2704,7 +2704,7 @@ static inline void x264_mb_analyse_qp_rd( x264_t *h, x264_mb_analysis_t *a ) } h->mb.i_qp += direction; - while( h->mb.i_qp >= h->param.rc.i_qp_min && h->mb.i_qp <= h->param.rc.i_qp_max ) + while( h->mb.i_qp >= h->param.rc.i_qp_min && h->mb.i_qp <= SPEC_QP( h->param.rc.i_qp_max ) ) { if( h->mb.i_last_qp == h->mb.i_qp ) last_qp_tried = 1; diff --git a/encoder/ratecontrol.c b/encoder/ratecontrol.c index a30361d7..60d9b34d 100644 --- a/encoder/ratecontrol.c +++ b/encoder/ratecontrol.c @@ -1447,7 +1447,7 @@ int x264_ratecontrol_mb_qp( x264_t *h ) float qp_offset = h->fdec->b_kept_as_ref ? h->fenc->f_qp_offset[h->mb.i_mb_xy] : h->fenc->f_qp_offset_aq[h->mb.i_mb_xy]; /* Scale AQ's effect towards zero in emergency mode. */ if( qp > QP_MAX_SPEC ) - qp_offset *= (QP_MAX - qp) / (QP_MAX_SPEC - QP_MAX); + qp_offset *= (QP_MAX - qp) / (QP_MAX - QP_MAX_SPEC); qp += qp_offset; } return x264_clip3( qp + .5, h->param.rc.i_qp_min, h->param.rc.i_qp_max );