summaryrefslogtreecommitdiff
path: root/src/lib/job.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-09-22 11:35:36 +0100
committerCarl Hetherington <cth@carlh.net>2012-09-22 11:35:36 +0100
commit266fe11af7f3bdc194cfedf92db7352b7b68be97 (patch)
tree40c7461c82e12ccfa8005decca3c0323c22c27ec /src/lib/job.cc
parent3adaba4d25a1c723b0de38679c3a9d86d39eadde (diff)
Improve transcode job progress reporting.
Diffstat (limited to 'src/lib/job.cc')
-rw-r--r--src/lib/job.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/lib/job.cc b/src/lib/job.cc
index 0feb73d31..d446b3913 100644
--- a/src/lib/job.cc
+++ b/src/lib/job.cc
@@ -236,11 +236,12 @@ Job::status () const
{
float const p = overall_progress ();
int const t = elapsed_time ();
+ int const r = remaining_time ();
stringstream s;
- if (!finished () && p >= 0 && t > 10) {
- s << rint (p * 100) << "%; about " << seconds_to_approximate_hms (t / p - t) << " remaining";
- } else if (!finished () && t <= 10) {
+ if (!finished () && p >= 0 && t > 10 && r > 0) {
+ s << rint (p * 100) << "%; " << seconds_to_approximate_hms (r) << " remaining";
+ } else if (!finished () && (t <= 10 || r == 0)) {
s << rint (p * 100) << "%";
} else if (finished_ok ()) {
s << "OK (ran for " << seconds_to_hms (t) << ")";
@@ -250,3 +251,9 @@ Job::status () const
return s.str ();
}
+
+int
+Job::remaining_time () const
+{
+ return elapsed_time() / overall_progress() - elapsed_time();
+}