summaryrefslogtreecommitdiff
path: root/src/libffmpeg/libavcodec/ratecontrol.c
diff options
context:
space:
mode:
authorMike Melanson <mike@multimedia.cx>2004-03-14 21:14:07 +0000
committerMike Melanson <mike@multimedia.cx>2004-03-14 21:14:07 +0000
commit0d90aec0fd7428a77b5c4c536ab65635669bc42d (patch)
tree9eb56c6c1176bf6a6f3ae65199a3f43aa8c2aa2d /src/libffmpeg/libavcodec/ratecontrol.c
parentb4d3aa3dcce07b90098e33c37b563e797378d0f1 (diff)
downloadxine-lib-0d90aec0fd7428a77b5c4c536ab65635669bc42d.tar.gz
xine-lib-0d90aec0fd7428a77b5c4c536ab65635669bc42d.tar.bz2
sync to ffmpeg build 4707
CVS patchset: 6253 CVS date: 2004/03/14 21:14:07
Diffstat (limited to 'src/libffmpeg/libavcodec/ratecontrol.c')
-rw-r--r--src/libffmpeg/libavcodec/ratecontrol.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libffmpeg/libavcodec/ratecontrol.c b/src/libffmpeg/libavcodec/ratecontrol.c
index 6c90b1b6c..473645def 100644
--- a/src/libffmpeg/libavcodec/ratecontrol.c
+++ b/src/libffmpeg/libavcodec/ratecontrol.c
@@ -545,9 +545,10 @@ static void adaptive_quantization(MpegEncContext *s, double q){
/* handle qmin/qmax cliping */
if(s->flags&CODEC_FLAG_NORMALIZE_AQP){
+ float factor= bits_sum/cplx_sum;
for(i=0; i<s->mb_num; i++){
float newq= q*cplx_tab[i]/bits_tab[i];
- newq*= bits_sum/cplx_sum;
+ newq*= factor;
if (newq > qmax){
bits_sum -= bits_tab[i];
@@ -558,6 +559,8 @@ static void adaptive_quantization(MpegEncContext *s, double q){
cplx_sum -= cplx_tab[i]*q/qmin;
}
}
+ if(bits_sum < 0.001) bits_sum= 0.001;
+ if(cplx_sum < 0.001) cplx_sum= 0.001;
}
for(i=0; i<s->mb_num; i++){