fftools/ffmpeg: move do_video_stats() to avoid a forward declaration
This commit is contained in:
		
							parent
							
								
									1753fbd095
								
							
						
					
					
						commit
						19d1e1fb06
					
				@ -127,7 +127,6 @@ typedef struct BenchmarkTimeStamps {
 | 
			
		||||
    int64_t sys_usec;
 | 
			
		||||
} BenchmarkTimeStamps;
 | 
			
		||||
 | 
			
		||||
static void do_video_stats(OutputStream *ost, int frame_size);
 | 
			
		||||
static BenchmarkTimeStamps get_benchmark_time_stamps(void);
 | 
			
		||||
static int64_t getmaxrss(void);
 | 
			
		||||
static int ifilter_has_all_input_formats(FilterGraph *fg);
 | 
			
		||||
@ -831,6 +830,52 @@ static int init_output_stream_wrapper(OutputStream *ost, AVFrame *frame,
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static double psnr(double d)
 | 
			
		||||
{
 | 
			
		||||
    return -10.0 * log10(d);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void do_video_stats(OutputStream *ost, int frame_size)
 | 
			
		||||
{
 | 
			
		||||
    AVCodecContext *enc;
 | 
			
		||||
    int frame_number;
 | 
			
		||||
    double ti1, bitrate, avg_bitrate;
 | 
			
		||||
 | 
			
		||||
    /* this is executed just the first time do_video_stats is called */
 | 
			
		||||
    if (!vstats_file) {
 | 
			
		||||
        vstats_file = fopen(vstats_filename, "w");
 | 
			
		||||
        if (!vstats_file) {
 | 
			
		||||
            perror("fopen");
 | 
			
		||||
            exit_program(1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    enc = ost->enc_ctx;
 | 
			
		||||
    frame_number = ost->st->nb_frames;
 | 
			
		||||
    if (vstats_version <= 1) {
 | 
			
		||||
        fprintf(vstats_file, "frame= %5d q= %2.1f ", frame_number,
 | 
			
		||||
                ost->quality / (float)FF_QP2LAMBDA);
 | 
			
		||||
    } else  {
 | 
			
		||||
        fprintf(vstats_file, "out= %2d st= %2d frame= %5d q= %2.1f ", ost->file_index, ost->index, frame_number,
 | 
			
		||||
                ost->quality / (float)FF_QP2LAMBDA);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (ost->error[0]>=0 && (enc->flags & AV_CODEC_FLAG_PSNR))
 | 
			
		||||
        fprintf(vstats_file, "PSNR= %6.2f ", psnr(ost->error[0] / (enc->width * enc->height * 255.0 * 255.0)));
 | 
			
		||||
 | 
			
		||||
    fprintf(vstats_file,"f_size= %6d ", frame_size);
 | 
			
		||||
    /* compute pts value */
 | 
			
		||||
    ti1 = av_stream_get_end_pts(ost->st) * av_q2d(ost->st->time_base);
 | 
			
		||||
    if (ti1 < 0.01)
 | 
			
		||||
        ti1 = 0.01;
 | 
			
		||||
 | 
			
		||||
    bitrate     = (frame_size * 8) / av_q2d(enc->time_base) / 1000.0;
 | 
			
		||||
    avg_bitrate = (double)(ost->data_size * 8) / ti1 / 1000.0;
 | 
			
		||||
    fprintf(vstats_file, "s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s ",
 | 
			
		||||
           (double)ost->data_size / 1024, ti1, bitrate, avg_bitrate);
 | 
			
		||||
    fprintf(vstats_file, "type= %c\n", av_get_picture_type_char(ost->pict_type));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int encode_frame(OutputFile *of, OutputStream *ost, AVFrame *frame)
 | 
			
		||||
{
 | 
			
		||||
    AVCodecContext   *enc = ost->enc_ctx;
 | 
			
		||||
@ -1231,52 +1276,6 @@ static void do_video_out(OutputFile *of,
 | 
			
		||||
        av_frame_move_ref(ost->last_frame, next_picture);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static double psnr(double d)
 | 
			
		||||
{
 | 
			
		||||
    return -10.0 * log10(d);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void do_video_stats(OutputStream *ost, int frame_size)
 | 
			
		||||
{
 | 
			
		||||
    AVCodecContext *enc;
 | 
			
		||||
    int frame_number;
 | 
			
		||||
    double ti1, bitrate, avg_bitrate;
 | 
			
		||||
 | 
			
		||||
    /* this is executed just the first time do_video_stats is called */
 | 
			
		||||
    if (!vstats_file) {
 | 
			
		||||
        vstats_file = fopen(vstats_filename, "w");
 | 
			
		||||
        if (!vstats_file) {
 | 
			
		||||
            perror("fopen");
 | 
			
		||||
            exit_program(1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    enc = ost->enc_ctx;
 | 
			
		||||
    frame_number = ost->st->nb_frames;
 | 
			
		||||
    if (vstats_version <= 1) {
 | 
			
		||||
        fprintf(vstats_file, "frame= %5d q= %2.1f ", frame_number,
 | 
			
		||||
                ost->quality / (float)FF_QP2LAMBDA);
 | 
			
		||||
    } else  {
 | 
			
		||||
        fprintf(vstats_file, "out= %2d st= %2d frame= %5d q= %2.1f ", ost->file_index, ost->index, frame_number,
 | 
			
		||||
                ost->quality / (float)FF_QP2LAMBDA);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (ost->error[0]>=0 && (enc->flags & AV_CODEC_FLAG_PSNR))
 | 
			
		||||
        fprintf(vstats_file, "PSNR= %6.2f ", psnr(ost->error[0] / (enc->width * enc->height * 255.0 * 255.0)));
 | 
			
		||||
 | 
			
		||||
    fprintf(vstats_file,"f_size= %6d ", frame_size);
 | 
			
		||||
    /* compute pts value */
 | 
			
		||||
    ti1 = av_stream_get_end_pts(ost->st) * av_q2d(ost->st->time_base);
 | 
			
		||||
    if (ti1 < 0.01)
 | 
			
		||||
        ti1 = 0.01;
 | 
			
		||||
 | 
			
		||||
    bitrate     = (frame_size * 8) / av_q2d(enc->time_base) / 1000.0;
 | 
			
		||||
    avg_bitrate = (double)(ost->data_size * 8) / ti1 / 1000.0;
 | 
			
		||||
    fprintf(vstats_file, "s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s ",
 | 
			
		||||
           (double)ost->data_size / 1024, ti1, bitrate, avg_bitrate);
 | 
			
		||||
    fprintf(vstats_file, "type= %c\n", av_get_picture_type_char(ost->pict_type));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void finish_output_stream(OutputStream *ost)
 | 
			
		||||
{
 | 
			
		||||
    OutputFile *of = output_files[ost->file_index];
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user