X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=src%2Fprogress.c;h=e872a4f58cfb1c80dd4ebab1d4f1306122ffcdc8;hb=2642af896e0a9f7b3bca63b02833e69b3bfcd82a;hp=c1c80b66752a510225dd55520021dfbbb370a72d;hpb=48e2f01c5653c8f643b2a763e1cfa2efc1eccd60;p=fdkaac.git diff --git a/src/progress.c b/src/progress.c index c1c80b6..e872a4f 100644 --- a/src/progress.c +++ b/src/progress.c @@ -6,6 +6,8 @@ # include "config.h" #endif #include +#include +#include #include #if HAVE_STDINT_H # include @@ -51,11 +53,14 @@ void aacenc_progress_init(aacenc_progress_t *progress, int64_t total, void aacenc_progress_update(aacenc_progress_t *progress, int64_t current, int period) { - int percent = 100.0 * current / progress->total + .5; double seconds = current / progress->timescale; double ellapsed = (aacenc_timer() - progress->start) / 1000.0; - double eta = ellapsed * (progress->total / (double)current - 1.0); - double speed = ellapsed ? seconds / ellapsed : 0.0; + double speed = ellapsed ? seconds / ellapsed : 1.0; + int percent = progress->total ? 100.0 * current / progress->total + .5 + : 100; + double eta = current ? ellapsed * (progress->total / (double)current - 1.0) + : progress->total ? DBL_MAX : 0; + if (current < progress->processed + period) return; @@ -80,7 +85,7 @@ void aacenc_progress_finish(aacenc_progress_t *progress, int64_t current) double ellapsed = (aacenc_timer() - progress->start) / 1000.0; aacenc_progress_update(progress, current, 0); if (progress->total == INT64_MAX) - fprintf(stderr, "\n%" PRId64 "samples processed in ", current); + fprintf(stderr, "\n%" PRId64 " samples processed in ", current); else fprintf(stderr, "\n%" PRId64 "/%" PRId64 " samples processed in ", current, progress->total);