Note that newer libsub version is required.
[dcpomatic.git] / src / lib / transcode_job.cc
index 653040f4c949c91d4279d87f486e1b9e08e75e7d..12b9a2aa30b1bce0c188a7aa442d5722a7feddcd 100644 (file)
@@ -124,12 +124,10 @@ TranscodeJob::run ()
                DCPOMATIC_ASSERT (_encoder);
                _encoder->go ();
 
-               float fps = 0;
-               if (_finish_time != _start_time) {
-                       fps = _encoder->frames_done() / (_finish_time - _start_time);
-               }
+               set_progress (1);
+               set_state (FINISHED_OK);
 
-               LOG_GENERAL (N_("Transcode job completed successfully: %1 fps"), dcp::locale_convert<string>(fps, 2, true));
+               LOG_GENERAL(N_("Transcode job completed successfully: %1 fps"), dcp::locale_convert<string>(frames_per_second(), 2, true));
 
                if (dynamic_pointer_cast<DCPEncoder>(_encoder)) {
                        try {
@@ -143,9 +141,6 @@ TranscodeJob::run ()
 
                _encoder.reset ();
 
-               set_progress (1);
-               set_state (FINISHED_OK);
-
        } catch (...) {
                _encoder.reset ();
                throw;
@@ -197,3 +192,15 @@ TranscodeJob::remaining_time () const
        /* Compute approximate proposed length here, as it's only here that we need it */
        return (_film->length().frames_round(_film->video_frame_rate()) - e->frames_done()) / *fps;
 }
+
+
+float
+TranscodeJob::frames_per_second() const
+{
+       if (_finish_time != _start_time) {
+               return _encoder->frames_done() / (_finish_time - _start_time);
+       } else {
+               return 0;
+       }
+}
+