/** @param s Film to use.
* @param o Options.
+ * @param req Job that must be completed before this job is run.
*/
TranscodeJob::TranscodeJob (shared_ptr<Film> f, shared_ptr<const Options> o, shared_ptr<Job> req)
: Job (f, req)
try {
_film->log()->log ("Transcode job starting");
+ _film->log()->log (String::compose ("Audio delay is %1ms", _film->audio_delay()));
_encoder = encoder_factory (_film, _opt);
Transcoder w (_film, _opt, this, _encoder);
stringstream s;
- s << Job::status () << "; " << fixed << setprecision (1) << fps << " frames per second";
+ s << Job::status ();
+
+ if (!finished ()) {
+ s << "; " << fixed << setprecision (1) << fps << " frames per second";
+ }
+
return s.str ();
}
return 0;
}
- return ((_film->dcp_length() - _encoder->last_frame()) / fps);
+ /* We assume that dcp_length() is valid */
+ SourceFrame const left = _film->dcp_trim_start() + _film->dcp_length().get() - _encoder->video_frame();
+ return left / fps;
}