mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
ffmpeg: allow pass 3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
ccc09185e4
commit
4dbce51b9e
26
ffmpeg.c
26
ffmpeg.c
@ -2247,15 +2247,7 @@ static int transcode_init(OutputFile *output_files, int nb_output_files,
|
|||||||
snprintf(logfilename, sizeof(logfilename), "%s-%d.log",
|
snprintf(logfilename, sizeof(logfilename), "%s-%d.log",
|
||||||
pass_logfilename_prefix ? pass_logfilename_prefix : DEFAULT_PASS_LOGFILENAME_PREFIX,
|
pass_logfilename_prefix ? pass_logfilename_prefix : DEFAULT_PASS_LOGFILENAME_PREFIX,
|
||||||
i);
|
i);
|
||||||
if (codec->flags & CODEC_FLAG_PASS1) {
|
if (codec->flags & CODEC_FLAG_PASS2) {
|
||||||
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 {
|
|
||||||
char *logbuffer;
|
char *logbuffer;
|
||||||
size_t logbuffer_size;
|
size_t logbuffer_size;
|
||||||
if (read_file(logfilename, &logbuffer, &logbuffer_size) < 0) {
|
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;
|
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){
|
if(codec->codec_type == AVMEDIA_TYPE_VIDEO){
|
||||||
@ -3466,9 +3467,10 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc)
|
|||||||
|
|
||||||
/* two pass mode */
|
/* two pass mode */
|
||||||
if (do_pass) {
|
if (do_pass) {
|
||||||
if (do_pass == 1) {
|
if (do_pass & 1) {
|
||||||
video_enc->flags |= CODEC_FLAG_PASS1;
|
video_enc->flags |= CODEC_FLAG_PASS1;
|
||||||
} else {
|
}
|
||||||
|
if (do_pass & 2) {
|
||||||
video_enc->flags |= CODEC_FLAG_PASS2;
|
video_enc->flags |= CODEC_FLAG_PASS2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3969,7 +3971,7 @@ static void opt_output_file(void *optctx, const char *filename)
|
|||||||
/* same option as mencoder */
|
/* same option as mencoder */
|
||||||
static int opt_pass(const char *opt, const char *arg)
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user