diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-10-30 02:26:48 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-10-30 02:44:36 +0100 |
commit | 4dbce51b9e5a994634c6c26f7f2e78f5d75ee342 (patch) | |
tree | b49db767e54ba8f161eece0daa1498b2f90587f9 /ffmpeg.c | |
parent | ccc09185e4d907d1bf0512db2a067aff50036f9d (diff) | |
download | ffmpeg-4dbce51b9e5a994634c6c26f7f2e78f5d75ee342.tar.gz |
ffmpeg: allow pass 3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'ffmpeg.c')
-rw-r--r-- | ffmpeg.c | 26 |
1 files changed, 14 insertions, 12 deletions
@@ -2247,15 +2247,7 @@ static int transcode_init(OutputFile *output_files, int nb_output_files, snprintf(logfilename, sizeof(logfilename), "%s-%d.log", pass_logfilename_prefix ? pass_logfilename_prefix : DEFAULT_PASS_LOGFILENAME_PREFIX, i); - if (codec->flags & CODEC_FLAG_PASS1) { - f = fopen(logfilename, "wb"); - if (!f) { - av_log(NULL, AV_LOG_FATAL, "Cannot write log file '%s' for pass-1 encoding: %s\n", - logfilename, strerror(errno)); - exit_program(1); - } - ost->logfile = f; - } else { + if (codec->flags & CODEC_FLAG_PASS2) { char *logbuffer; size_t logbuffer_size; if (read_file(logfilename, &logbuffer, &logbuffer_size) < 0) { @@ -2265,6 +2257,15 @@ static int transcode_init(OutputFile *output_files, int nb_output_files, } codec->stats_in = logbuffer; } + if (codec->flags & CODEC_FLAG_PASS1) { + f = fopen(logfilename, "wb"); + if (!f) { + av_log(NULL, AV_LOG_FATAL, "Cannot write log file '%s' for pass-1 encoding: %s\n", + logfilename, strerror(errno)); + exit_program(1); + } + ost->logfile = f; + } } } if(codec->codec_type == AVMEDIA_TYPE_VIDEO){ @@ -3466,9 +3467,10 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc) /* two pass mode */ if (do_pass) { - if (do_pass == 1) { + if (do_pass & 1) { video_enc->flags |= CODEC_FLAG_PASS1; - } else { + } + if (do_pass & 2) { video_enc->flags |= CODEC_FLAG_PASS2; } } @@ -3969,7 +3971,7 @@ static void opt_output_file(void *optctx, const char *filename) /* same option as mencoder */ static int opt_pass(const char *opt, const char *arg) { - do_pass = parse_number_or_die(opt, arg, OPT_INT, 1, 2); + do_pass = parse_number_or_die(opt, arg, OPT_INT, 1, 3); return 0; } |