]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
prevent assert failure wit negative quant_offset
authormichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 29 Jul 2007 21:34:31 +0000 (21:34 +0000)
committermichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 29 Jul 2007 21:34:31 +0000 (21:34 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@9830 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/ratecontrol.c

index d62bc851d8e2803d83e39c2bfae259149d195f38..961f83570acd674ccc272f44f19e62985e60e3ff 100644 (file)
@@ -371,6 +371,7 @@ static double get_qscale(MpegEncContext *s, RateControlEntry *rce, double rate_f
         q= -q*s->avctx->i_quant_factor + s->avctx->i_quant_offset;
     else if(pict_type==B_TYPE && s->avctx->b_quant_factor<0.0)
         q= -q*s->avctx->b_quant_factor + s->avctx->b_quant_offset;
+    if(q<1) q=1;
 
     return q;
 }
@@ -386,6 +387,7 @@ static double get_diff_limited_q(MpegEncContext *s, RateControlEntry *rce, doubl
         q= last_p_q    *FFABS(a->i_quant_factor) + a->i_quant_offset;
     else if(pict_type==B_TYPE && a->b_quant_factor>0.0)
         q= last_non_b_q*    a->b_quant_factor  + a->b_quant_offset;
+    if(q<1) q=1;
 
     /* last qscale / qdiff stuff */
     if(rcc->last_non_b_pict_type==pict_type || pict_type!=I_TYPE){