X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fratecontrol.c;h=41b7d97d32db358d13f490edd772c1b3c7c65a70;hb=5ec55d216ef05ceb877a158c7d65e072df8b71f9;hp=af8289e3128a513b0cab7efca91f2fb5e8b5b6da;hpb=f52ad8ceddf3078dbfef7ab437ca8600a1f96ef2;p=ffmpeg diff --git a/libavcodec/ratecontrol.c b/libavcodec/ratecontrol.c index af8289e3128..41b7d97d32d 100644 --- a/libavcodec/ratecontrol.c +++ b/libavcodec/ratecontrol.c @@ -861,11 +861,19 @@ static int init_pass2(MpegEncContext *s) /* find qscale */ for(i=0; inum_entries; i++){ + RateControlEntry *rce= &rcc->entry[i]; qscale[i]= get_qscale(s, &rcc->entry[i], rate_factor, i); + rcc->last_qscale_for[rce->pict_type] = qscale[i]; } assert(filter_size%2==1); /* fixed I/B QP relative to P mode */ + for(i=FFMAX(0, rcc->num_entries-300); inum_entries; i++){ + RateControlEntry *rce= &rcc->entry[i]; + + qscale[i]= get_diff_limited_q(s, rce, qscale[i]); + } + for(i=rcc->num_entries-1; i>=0; i--){ RateControlEntry *rce= &rcc->entry[i];