diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-11-08 09:33:37 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-11-08 09:33:37 +0000 |
| commit | 5673d7a051662afd129fa409cdbf3adb6119689e (patch) | |
| tree | cc30809dd3f8ea7dc5f9a81e9c03fd010bd71527 /src | |
| parent | f34e8444dc6134ba8ded85bd547db20b800fd4f2 (diff) | |
Don't display frames per second during digest calculation; clear job sub-name on completion; print job name more nicely when there is no sub name.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/job.cc | 1 | ||||
| -rw-r--r-- | src/lib/transcode_job.cc | 4 | ||||
| -rw-r--r-- | src/lib/transcoder.cc | 3 | ||||
| -rw-r--r-- | src/lib/transcoder.h | 6 | ||||
| -rw-r--r-- | src/wx/job_manager_view.cc | 21 |
5 files changed, 28 insertions, 7 deletions
diff --git a/src/lib/job.cc b/src/lib/job.cc index cc52a29f2..9981934ec 100644 --- a/src/lib/job.cc +++ b/src/lib/job.cc @@ -189,6 +189,7 @@ Job::set_state (State s) if (_state == FINISHED_OK || _state == FINISHED_ERROR || _state == FINISHED_CANCELLED) { _ran_for = elapsed_time (); finished = true; + _sub_name.clear (); } } diff --git a/src/lib/transcode_job.cc b/src/lib/transcode_job.cc index 74b425c1e..fd69b08e7 100644 --- a/src/lib/transcode_job.cc +++ b/src/lib/transcode_job.cc @@ -90,8 +90,8 @@ TranscodeJob::status () const s << Job::status (); - if (!finished ()) { - s << "; " << fixed << setprecision (1) << fps << N_(" ") << _("frames per second"); + if (!finished () && !_transcoder->finishing ()) { + s << "; " << fixed << setprecision (1) << fps << " " << _("frames per second"); } return s.str (); diff --git a/src/lib/transcoder.cc b/src/lib/transcoder.cc index 717f28556..24f22a9cb 100644 --- a/src/lib/transcoder.cc +++ b/src/lib/transcoder.cc @@ -66,6 +66,7 @@ Transcoder::Transcoder (shared_ptr<const Film> f, shared_ptr<Job> j) : _job (j) , _player (f->make_player ()) , _encoder (new Encoder (f, j)) + , _finishing (false) { _player->Video.connect (bind (video_proxy, _encoder, _1, _2, _3, _4)); _player->Audio.connect (bind (audio_proxy, _encoder, _1)); @@ -76,6 +77,8 @@ Transcoder::go () { _encoder->process_begin (); while (!_player->pass ()) {} + + _finishing = true; _encoder->process_end (); } diff --git a/src/lib/transcoder.h b/src/lib/transcoder.h index 9c0de29bf..b1183b0bb 100644 --- a/src/lib/transcoder.h +++ b/src/lib/transcoder.h @@ -40,9 +40,15 @@ public: float current_encoding_rate () const; int video_frames_out () const; + /** @return true if we are in the process of calling Encoder::process_end */ + bool finishing () const { + return _finishing; + } + private: /** A Job that is running this Transcoder, or 0 */ boost::shared_ptr<Job> _job; boost::shared_ptr<Player> _player; boost::shared_ptr<Encoder> _encoder; + bool _finishing; }; diff --git a/src/wx/job_manager_view.cc b/src/wx/job_manager_view.cc index 7cfcf3423..47af3b48c 100644 --- a/src/wx/job_manager_view.cc +++ b/src/wx/job_manager_view.cc @@ -96,16 +96,25 @@ public: private: + void update_job_name () + { + string n = "<b>" + _job->name () + "</b>"; + if (!_job->sub_name().empty ()) { + n += "\n" + _job->sub_name (); + } + + if (n != _last_name) { + _name->SetLabelMarkup (std_to_wx (n)); + _last_name = n; + } + } + void progress () { float const p = _job->progress (); if (p >= 0) { checked_set (_message, _job->status ()); - string const n = "<b>" + _job->name () + "</b>\n" + _job->sub_name (); - if (n != _last_name) { - _name->SetLabelMarkup (std_to_wx (n)); - _last_name = n; - } + update_job_name (); int const pp = min (100.0f, p * 100); _gauge->SetValue (pp); } @@ -117,6 +126,8 @@ private: void finished () { checked_set (_message, _job->status ()); + update_job_name (); + if (!_job->finished_cancelled ()) { _gauge->SetValue (100); } |
