mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
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
This commit is contained in:
parent
f5eb2b653f
commit
4bd0c2b1d5
@ -585,8 +585,6 @@ The alternative is to deinterlace the input stream with
|
||||
Calculate PSNR of compressed frames.
|
||||
@item -vstats
|
||||
Dump video coding statistics to @file{vstats_HHMMSS.log}.
|
||||
@item -vstats_file file
|
||||
Dump video coding statistics to @var{file}.
|
||||
@item -vhook module
|
||||
Insert video processing @var{module}. @var{module} contains the module
|
||||
name and its parameters separated by spaces.
|
||||
|
55
ffmpeg.c
55
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
|
||||
|
Loading…
Reference in New Issue
Block a user