summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-11-08 09:33:37 +0000
committerCarl Hetherington <cth@carlh.net>2013-11-08 09:33:37 +0000
commit5673d7a051662afd129fa409cdbf3adb6119689e (patch)
treecc30809dd3f8ea7dc5f9a81e9c03fd010bd71527 /src/lib
parentf34e8444dc6134ba8ded85bd547db20b800fd4f2 (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/lib')
-rw-r--r--src/lib/job.cc1
-rw-r--r--src/lib/transcode_job.cc4
-rw-r--r--src/lib/transcoder.cc3
-rw-r--r--src/lib/transcoder.h6
4 files changed, 12 insertions, 2 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;
};