[FFmpeg-devel] [PATCH] ffmpeg: remove annoying logs and improve reporting in case of unavailable bitrate

Stefano Sabatini stefasab at gmail.com
Wed Dec 26 12:13:39 CET 2012


On date Sunday 2012-12-23 00:26:10 +0100, Stefano Sabatini encoded:
> ---
>  ffmpeg.c |   24 +++++++++++-------------
>  1 file changed, 11 insertions(+), 13 deletions(-)
> 
> diff --git a/ffmpeg.c b/ffmpeg.c
> index 73b5dff..977218f 100644
> --- a/ffmpeg.c
> +++ b/ffmpeg.c
> @@ -1108,13 +1108,6 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
>      total_size = avio_size(oc->pb);
>      if (total_size <= 0) // FIXME improve avio_size() so it works with non seekable output too
>          total_size = avio_tell(oc->pb);
> -    if (total_size < 0) {
> -        char errbuf[128];
> -        av_strerror(total_size, errbuf, sizeof(errbuf));
> -        av_log(NULL, AV_LOG_VERBOSE, "Bitrate not available, "
> -               "avio_tell() failed: %s\n", errbuf);
> -        total_size = 0;
> -    }
>  
>      buf[0] = '\0';
>      vid = 0;
> @@ -1195,16 +1188,21 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
>      hours = mins / 60;
>      mins %= 60;
>  
> -    bitrate = pts ? total_size * 8 / (pts / 1000.0) : 0;
> +    bitrate = pts && total_size >= 0 ? total_size * 8 / (pts / 1000.0) : -1;
>  
> -    snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
> -             "size=%8.0fkB time=", total_size / 1024.0);
> +    if (total_size < 0) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
> +                                 "size=N/A time=");
> +    else                snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
> +                                 "size=%8.0fkB time=", total_size / 1024.0);
>      snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
>               "%02d:%02d:%02d.%02d ", hours, mins, secs,
>               (100 * us) / AV_TIME_BASE);
> -    snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
> -             "bitrate=%6.1fkbits/s", bitrate);
> -    av_bprintf(&buf_script, "total_size=%"PRId64"\n", total_size);
> +    if (bitrate < 0) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
> +                              "bitrate=N/A");
> +    else             snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
> +                              "bitrate=%6.1fkbits/s", bitrate);
> +    if (total_size < 0) av_bprintf(&buf_script, "total_size=N/A\n");
> +    else                av_bprintf(&buf_script, "total_size=%"PRId64"\n", total_size);
>      av_bprintf(&buf_script, "out_time_ms=%"PRId64"\n", pts);
>      av_bprintf(&buf_script, "out_time=%02d:%02d:%02d.%06d\n",
>                 hours, mins, secs, us);

Ping.
-- 
FFmpeg = Faithless and Faithful Magnificient Philosofic Encoding/decoding Genius


More information about the ffmpeg-devel mailing list