Fix transcode job fps logging. Broken in d3455851f60ee6bc35ea4f314c62a7da51ce0d81
Cleanup: extract TranscodeJob::frames_per_second().
Use _{start,finish}_time in TranscodeJob.
Clean up a hack by adding DCPTranscodeJob.
Use some decimal places when reporting transcode speed in the log.
Fix badly-formatted FPS counts (#2155). This was introduced in a2e41d9a95b6e0000f3a54f513214130f8b6ca9f when a snprintf() was changed for a locale_convert().
Rearrange checking (and re-examining) content. Most importantly, checking of content for changes before making a DCP is now done in the TranscodeJob (rather than being in a separate job). This makes things a little neater and also makes the batch converter less confusing when you add a job whose content has changed.
Don't fail the transcode job if we can't write analytics.
C++11 tidying.
std::shared_ptr
Move upload-DCP-to-TMS button to preferences.
Stop threads at the start of their object's destruction in all Job cases.
Don't announce job is finished until things have been torn down; may help with #1674.
Primitive subtitle export feature.
Destory TranscodeJob earlier, hopefully to fix #1570.
Fix potential runaway string.
Don't try to upload to TMS after export.
Store successful DCP encodes.
Make some verb tenses more consistent.
Tidy and fix logging.