mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
nicer looking PSNR stats (YUV seperate and print the whole file PSNR at the end instead of the last frame's)
Originally committed as revision 2635 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
1031fabd14
commit
890972be03
25
ffmpeg.c
25
ffmpeg.c
@ -764,8 +764,29 @@ static void print_report(AVFormatContext **output_files,
|
||||
frame_number = ost->frame_number;
|
||||
sprintf(buf + strlen(buf), "frame=%5d q=%2.1f ",
|
||||
frame_number, enc->coded_frame ? enc->coded_frame->quality/(float)FF_QP2LAMBDA : 0);
|
||||
if (enc->flags&CODEC_FLAG_PSNR)
|
||||
sprintf(buf + strlen(buf), "PSNR= %6.2f ", psnr(enc->coded_frame->error[0]/(enc->width*enc->height*255.0*255.0)));
|
||||
if(is_last_report)
|
||||
sprintf(buf + strlen(buf), "L");
|
||||
if (enc->flags&CODEC_FLAG_PSNR){
|
||||
int j;
|
||||
double error, error_sum=0;
|
||||
double scale, scale_sum=0;
|
||||
char type[3]= {'Y','U','V'};
|
||||
sprintf(buf + strlen(buf), "PSNR=");
|
||||
for(j=0; j<3; j++){
|
||||
if(is_last_report){
|
||||
error= enc->error[j];
|
||||
scale= enc->width*enc->height*255.0*255.0*frame_number;
|
||||
}else{
|
||||
error= enc->coded_frame->error[j];
|
||||
scale= enc->width*enc->height*255.0*255.0;
|
||||
}
|
||||
if(j) scale/=4;
|
||||
error_sum += error;
|
||||
scale_sum += scale;
|
||||
sprintf(buf + strlen(buf), "%c:%2.2f ", type[j], psnr(error/scale));
|
||||
}
|
||||
sprintf(buf + strlen(buf), "*:%2.2f ", psnr(error_sum/scale_sum));
|
||||
}
|
||||
vid = 1;
|
||||
}
|
||||
/* compute min output value */
|
||||
|
Loading…
Reference in New Issue
Block a user