diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-10-10 03:41:49 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-10-10 03:50:58 +0200 |
commit | 0a23067ab41326dfa1da41d18923ea8547a51ff5 (patch) | |
tree | c3a964ea639441d00fafffcba296b5ae79a0bd2c /ffmpeg.c | |
parent | 028a79c1f142f9903c238846cc565edcef2d3802 (diff) | |
parent | 581810f5024dbb9df8e794dc0f5beac30d3a5fd4 (diff) | |
download | ffmpeg-0a23067ab41326dfa1da41d18923ea8547a51ff5.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
mpeg4dec: use unsigned type for startcode in ff_mpeg4_decode_picture_header
mpeg124: use sign_extend() function
ac3dec: use get_sbits() instead of manually sign-extending
4xm: fix signed overflow
wmavoice: fix a signed overflow
mpegvideo_enc: fix a signed overflow
crc: fix signed overflow
fate: run avconv with -nostats flag
avtools: add -v as alias for -loglevel
avconv: always print stats with AV_LOG_INFO
doc/avconv: add forgotten output/per-stream info to -filter
avconv: add -stats option to enable/disable printing encoding progress
avconv: in output_packet() don't set decoded_data_size for video.
avconv: remove pointless always true condition
avconv: factorize common code in transcode_init()
zmbv: remove memcpy() of decoded frame
mpeg12enc: use sign_extend() function
h264pred: use unsigned types for pixel values, fix signed overflows
h264: fix signed overflows in x*0x01010101 expressions
h264pred: remove unused variables
Conflicts:
avconv.c
tests/fate-run.sh
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'ffmpeg.c')
-rw-r--r-- | ffmpeg.c | 26 |
1 files changed, 10 insertions, 16 deletions
@@ -156,6 +156,8 @@ static int input_sync; static float dts_delta_threshold = 10; +static int print_stats = 1; + static uint8_t *audio_buf; static uint8_t *audio_out; static unsigned int allocated_audio_out_size, allocated_audio_buf_size; @@ -1380,6 +1382,9 @@ static void print_report(OutputFile *output_files, static int qp_histogram[52]; int hours, mins, secs, us; + if (!print_stats && !is_last_report) + return; + if (!is_last_report) { if (last_time == -1) { last_time = cur_time; @@ -1473,7 +1478,7 @@ static void print_report(OutputFile *output_files, snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), " dup=%d drop=%d", nb_frames_dup, nb_frames_drop); - av_log(NULL, is_last_report ? AV_LOG_WARNING : AV_LOG_INFO, "%s \r", buf); + av_log(NULL, AV_LOG_INFO, "%s \r", buf); fflush(stderr); @@ -1671,7 +1676,6 @@ static int output_packet(InputStream *ist, int ist_index, (ist->st->codec->sample_rate * ist->st->codec->channels); break;} case AVMEDIA_TYPE_VIDEO: - decoded_data_size = (ist->st->codec->width * ist->st->codec->height * 3) / 2; if (!(decoded_frame = avcodec_alloc_frame())) return AVERROR(ENOMEM); avpkt.pts = pkt_pts; @@ -2143,6 +2147,8 @@ static int transcode_init(OutputFile *output_files, int nb_output_files, } else { if (!ost->enc) ost->enc = avcodec_find_encoder(ost->st->codec->codec_id); + ist->decoding_needed = 1; + ost->encoding_needed = 1; switch(codec->codec_type) { case AVMEDIA_TYPE_AUDIO: ost->fifo= av_fifo_alloc(1024); @@ -2167,8 +2173,6 @@ static int transcode_init(OutputFile *output_files, int nb_output_files, ost->audio_resample |= codec->sample_fmt != icodec->sample_fmt || codec->channel_layout != icodec->channel_layout; icodec->request_channels = codec->channels; - ist->decoding_needed = 1; - ost->encoding_needed = 1; ost->resample_sample_fmt = icodec->sample_fmt; ost->resample_sample_rate = icodec->sample_rate; ost->resample_channels = icodec->channels; @@ -2198,8 +2202,6 @@ static int transcode_init(OutputFile *output_files, int nb_output_files, ost->resample_height = icodec->height; ost->resample_width = icodec->width; ost->resample_pix_fmt= icodec->pix_fmt; - ost->encoding_needed = 1; - ist->decoding_needed = 1; if (!ost->frame_rate.num) ost->frame_rate = ist->st->r_frame_rate.num ? ist->st->r_frame_rate : (AVRational){25,1}; @@ -2226,15 +2228,13 @@ static int transcode_init(OutputFile *output_files, int nb_output_files, #endif break; case AVMEDIA_TYPE_SUBTITLE: - ost->encoding_needed = 1; - ist->decoding_needed = 1; break; default: abort(); break; } /* two pass mode */ - if (ost->encoding_needed && codec->codec_id != CODEC_ID_H264 && + if (codec->codec_id != CODEC_ID_H264 && (codec->flags & (CODEC_FLAG_PASS1 | CODEC_FLAG_PASS2))) { char logfilename[1024]; FILE *f; @@ -2716,12 +2716,6 @@ static int transcode(OutputFile *output_files, int nb_output_files, return ret; } -static int opt_verbose(const char *opt, const char *arg) -{ - av_log(NULL, AV_LOG_WARNING, "-%s is deprecated, use -loglevel\n", opt); - return 0; -} - static int opt_frame_crop(const char *opt, const char *arg) { av_log(NULL, AV_LOG_FATAL, "Option '%s' has been removed, use the crop filter instead\n", opt); @@ -4265,7 +4259,6 @@ static const OptionDef options[] = { { "re", OPT_BOOL | OPT_EXPERT | OPT_OFFSET, {.off = OFFSET(rate_emu)}, "read input at native frame rate", "" }, { "loop_input", OPT_BOOL | OPT_EXPERT, {(void*)&loop_input}, "deprecated, use -loop" }, { "loop_output", HAS_ARG | OPT_INT | OPT_EXPERT, {(void*)&loop_output}, "deprecated, use -loop", "" }, - { "v", HAS_ARG, {(void*)opt_verbose}, "deprecated, use -loglevel instead", "number" }, { "target", HAS_ARG | OPT_FUNC2, {(void*)opt_target}, "specify target file type (\"vcd\", \"svcd\", \"dvd\", \"dv\", \"dv50\", \"pal-vcd\", \"ntsc-svcd\", ...)", "type" }, { "vsync", HAS_ARG | OPT_INT | OPT_EXPERT, {(void*)&video_sync_method}, "video sync method", "" }, { "async", HAS_ARG | OPT_INT | OPT_EXPERT, {(void*)&audio_sync_method}, "audio sync method", "" }, @@ -4283,6 +4276,7 @@ static const OptionDef options[] = { #if CONFIG_AVFILTER { "filter", HAS_ARG | OPT_STRING | OPT_SPEC, {.off = OFFSET(filters)}, "set stream filterchain", "filter_list" }, #endif + { "stats", OPT_BOOL, {&print_stats}, "print progress report during encoding", }, /* video options */ { "vframes", HAS_ARG | OPT_VIDEO | OPT_FUNC2, {(void*)opt_video_frames}, "set the number of video frames to record", "number" }, |