From 4bd0c2b1d504721987501f408994086cc690f7e4 Mon Sep 17 00:00:00 2001 From: Benoit Fouet Date: Wed, 25 Apr 2007 13:48:36 +0000 Subject: Revert my two previous deliveries (back to r8806) to aply the good patch for vstats Originally committed as revision 8809 to svn://svn.ffmpeg.org/ffmpeg/trunk --- ffmpeg.c | 55 ++++++++++++++++++++----------------------------------- 1 file changed, 20 insertions(+), 35 deletions(-) (limited to 'ffmpeg.c') diff --git a/ffmpeg.c b/ffmpeg.c index 751ba08149..e54947f923 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -166,6 +166,7 @@ static int do_benchmark = 0; static int do_hex_dump = 0; static int do_pkt_dump = 0; static int do_psnr = 0; +static int do_vstats = 0; static int do_pass = 0; static char *pass_logfilename = NULL; static int audio_stream_copy = 0; @@ -176,7 +177,6 @@ static int audio_sync_method= 0; static int copy_ts= 0; static int opt_shortest = 0; // static int video_global_header = 0; -static FILE *fvstats= NULL; static int rate_emu = 0; @@ -841,11 +841,28 @@ static double psnr(double d){ static void do_video_stats(AVFormatContext *os, AVOutputStream *ost, int frame_size) { + static FILE *fvstats=NULL; + char filename[40]; + time_t today2; + struct tm *today; AVCodecContext *enc; int frame_number; int64_t ti; double ti1, bitrate, avg_bitrate; + if (!fvstats) { + today2 = time(NULL); + today = localtime(&today2); + snprintf(filename, sizeof(filename), "vstats_%02d%02d%02d.log", today->tm_hour, + today->tm_min, + today->tm_sec); + fvstats = fopen(filename,"w"); + if (!fvstats) { + perror("fopen"); + exit(1); + } + } + ti = INT64_MAX; enc = ost->st->codec; if (enc->codec_type == CODEC_TYPE_VIDEO) { @@ -1180,7 +1197,7 @@ static int output_packet(AVInputStream *ist, int ist_index, case CODEC_TYPE_VIDEO: do_video_out(os, ost, ist, &picture, &frame_size); video_size += frame_size; - if (fvstats && frame_size) + if (do_vstats && frame_size) do_video_stats(os, ost, frame_size); break; case CODEC_TYPE_SUBTITLE: @@ -3432,32 +3449,6 @@ static void opt_target(const char *arg) } } -static void opt_vstats_file (const char *arg) -{ - if (!fvstats) - { - fvstats = fopen(arg ,"w"); - if (!fvstats) { - perror("fopen"); - exit(1); - } - } -} - -static void opt_vstats (void) -{ - if (!fvstats) { - char filename[40]; - time_t today2 = time(NULL); - struct tm *today = localtime(&today2); - - snprintf(filename, sizeof(filename), "vstats_%02d%02d%02d.log", today->tm_hour, - today->tm_min, - today->tm_sec); - opt_vstats_file(filename); - } -} - static void opt_video_bsf(const char *arg) { AVBitStreamFilterContext *bsfc= av_bitstream_filter_init(arg); //FIXME split name and args for filter at '=' @@ -3619,8 +3610,7 @@ const OptionDef options[] = { { "deinterlace", OPT_BOOL | OPT_EXPERT | OPT_VIDEO, {(void*)&do_deinterlace}, "deinterlace pictures" }, { "psnr", OPT_BOOL | OPT_EXPERT | OPT_VIDEO, {(void*)&do_psnr}, "calculate PSNR of compressed frames" }, - { "vstats", OPT_EXPERT | OPT_VIDEO, {(void*)&opt_vstats}, "dump video coding statistics to file" }, - { "vstats_file", HAS_ARG | OPT_EXPERT | OPT_VIDEO, {(void*)opt_vstats_file}, "dump video coding statistics to file", "file" }, + { "vstats", OPT_BOOL | OPT_EXPERT | OPT_VIDEO, {(void*)&do_vstats}, "dump video coding statistics to file" }, { "vhook", HAS_ARG | OPT_EXPERT | OPT_VIDEO, {(void*)add_frame_hooker}, "insert video processing module", "module" }, { "intra_matrix", HAS_ARG | OPT_EXPERT | OPT_VIDEO, {(void*)opt_intra_matrix}, "specify intra matrix coeffs", "matrix" }, { "inter_matrix", HAS_ARG | OPT_EXPERT | OPT_VIDEO, {(void*)opt_inter_matrix}, "specify inter matrix coeffs", "matrix" }, @@ -3816,11 +3806,6 @@ int main(int argc, char **argv) av_free(intra_matrix); av_free(inter_matrix); - - if (fvstats) - fclose(fvstats); - av_free(vstats_filename); - av_free(opt_names); #ifdef CONFIG_POWERPC_PERF -- cgit v1.2.3