From 20a5956b8daeee4cb59d6fa00ec809b02c04d7f8 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Fri, 26 Sep 2014 14:37:40 +0100 Subject: [PATCH] dump: split audio and video probing on multiple lines Also always report pixel format. --- libavcodec/utils.c | 19 ++++++++++++------- libavformat/dump.c | 22 ++++++++++++++-------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 8ecf358b61..4d097d45e8 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1887,6 +1887,7 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) const AVCodec *p; char buf1[32]; int bitrate; + int new_line = 0; AVRational display_aspect_ratio; if (enc->codec) @@ -1919,15 +1920,19 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) if (profile) snprintf(buf + strlen(buf), buf_size - strlen(buf), " (%s)", profile); - if (enc->pix_fmt != AV_PIX_FMT_NONE) { - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", %s", + + av_strlcat(buf, "\n ", buf_size); + snprintf(buf + strlen(buf), buf_size - strlen(buf), + "%s", enc->pix_fmt == AV_PIX_FMT_NONE ? "none" : av_get_pix_fmt_name(enc->pix_fmt)); - } + if (enc->width) { + av_strlcat(buf, new_line ? "\n " : ", ", buf_size); + snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", %dx%d", + "%dx%d", enc->width, enc->height); + if (enc->sample_aspect_ratio.num) { av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den, enc->width * enc->sample_aspect_ratio.num, @@ -1957,11 +1962,11 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) if (profile) snprintf(buf + strlen(buf), buf_size - strlen(buf), " (%s)", profile); + av_strlcat(buf, "\n ", buf_size); if (enc->sample_rate) { snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", %d Hz", enc->sample_rate); + "%d Hz, ", enc->sample_rate); } - av_strlcat(buf, ", ", buf_size); av_get_channel_layout_string(buf + strlen(buf), buf_size - strlen(buf), enc->channels, enc->channel_layout); if (enc->sample_fmt != AV_SAMPLE_FMT_NONE) { snprintf(buf + strlen(buf), buf_size - strlen(buf), diff --git a/libavformat/dump.c b/libavformat/dump.c index 58ed6547a0..649678cd4a 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -116,11 +116,11 @@ static void print_fps(double d, const char *postfix) { uint64_t v = lrintf(d * 100); if (v % 100) - av_log(NULL, AV_LOG_INFO, ", %3.2f %s", d, postfix); + av_log(NULL, AV_LOG_INFO, "%3.2f %s", d, postfix); else if (v % (100 * 1000)) - av_log(NULL, AV_LOG_INFO, ", %1.0f %s", d, postfix); + av_log(NULL, AV_LOG_INFO, "%1.0f %s", d, postfix); else - av_log(NULL, AV_LOG_INFO, ", %1.0fk %s", d / 1000, postfix); + av_log(NULL, AV_LOG_INFO, "%1.0fk %s", d / 1000, postfix); } static void dump_metadata(void *ctx, AVDictionary *m, const char *indent) @@ -357,11 +357,17 @@ static void dump_stream_format(AVFormatContext *ic, int i, } if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) { - if (st->avg_frame_rate.den && st->avg_frame_rate.num) - print_fps(av_q2d(st->avg_frame_rate), "fps"); - if (st->time_base.den && st->time_base.num) - print_fps(1 / av_q2d(st->time_base), "tbn"); - if (st->codec->time_base.den && st->codec->time_base.num) + int fps = st->avg_frame_rate.den && st->avg_frame_rate.num; + int tbn = st->time_base.den && st->time_base.num; + int tbc = st->codec->time_base.den && st->codec->time_base.num; + + if (fps || tbn || tbc) + av_log(NULL, AV_LOG_INFO, "\n "); + if (fps) + print_fps(av_q2d(st->avg_frame_rate), tbn || tbc ? "fps, " : "fps"); + if (tbn) + print_fps(1 / av_q2d(st->time_base), tbc ? "tbn, " : "tbn"); + if (tbc) print_fps(1 / av_q2d(st->codec->time_base), "tbc"); }