#include "scaler.h"
#include "decoder_factory.h"
#include "config.h"
+#include "check_hashes_job.h"
+#include "version.h"
using namespace std;
using namespace boost;
_state.directory = result.string ();
- if (must_exist && !filesystem::exists (_state.directory)) {
- throw OpenFileError (_state.directory);
+ if (!filesystem::exists (_state.directory)) {
+ if (must_exist) {
+ throw OpenFileError (_state.directory);
+ } else {
+ filesystem::create_directory (_state.directory);
+ }
}
read_metadata ();
continue;
}
+ if (line[line.size() - 1] == '\r') {
+ line = line.substr (0, line.size() - 1);
+ }
+
size_t const s = line.find (' ');
if (s == string::npos) {
continue;
throw BadSettingError ("name", "cannot contain slashes");
}
- {
- stringstream s;
- s << "DVD-o-matic " << DVDOMATIC_VERSION << " using " << dependency_version_summary ();
- log()->log (s.str ());
- }
+ log()->log (String::compose ("DVD-o-matic %1 git %2 using %3", dvdomatic_version, dvdomatic_git_commit, dependency_version_summary()));
{
char buffer[128];
gethostname (buffer, sizeof (buffer));
- stringstream s;
- s << "Starting to make a DCP on " << buffer;
- log()->log (s.str ());
+ log()->log (String::compose ("Starting to make DCP on %1", buffer));
}
if (format() == 0) {
o->out_size = format()->dcp_size ();
if (dcp_frames() == 0) {
/* Decode the whole film, no blacking */
- o->num_frames = 0;
o->black_after = 0;
} else {
switch (dcp_trim_action()) {
case CUT:
/* Decode only part of the film, no blacking */
- o->num_frames = dcp_frames ();
o->black_after = 0;
break;
case BLACK_OUT:
/* Decode the whole film, but black some frames out */
- o->num_frames = 0;
o->black_after = dcp_frames ();
}
}
o->decode_video_frequency = freq;
- o->padding = format()->dcp_padding ();
- o->ratio = format()->ratio_as_float ();
+ o->padding = format()->dcp_padding (this);
+ o->ratio = format()->ratio_as_float (this);
+
+ shared_ptr<Job> r;
if (transcode) {
if (_state.dcp_ab) {
- JobManager::instance()->add (shared_ptr<Job> (new ABTranscodeJob (fs, o, log ())));
+ r = JobManager::instance()->add (shared_ptr<Job> (new ABTranscodeJob (fs, o, log(), shared_ptr<Job> ())));
} else {
- JobManager::instance()->add (shared_ptr<Job> (new TranscodeJob (fs, o, log ())));
+ r = JobManager::instance()->add (shared_ptr<Job> (new TranscodeJob (fs, o, log(), shared_ptr<Job> ())));
}
}
-
- JobManager::instance()->add (shared_ptr<Job> (new MakeDCPJob (fs, o, log ())));
+
+ r = JobManager::instance()->add (shared_ptr<Job> (new CheckHashesJob (fs, o, log(), r)));
+ JobManager::instance()->add (shared_ptr<Job> (new MakeDCPJob (fs, o, log(), r)));
}
shared_ptr<FilmState>
return;
}
- _examine_content_job.reset (new ExamineContentJob (state_copy (), log ()));
+ _examine_content_job.reset (new ExamineContentJob (state_copy (), log(), shared_ptr<Job> ()));
_examine_content_job->Finished.connect (sigc::mem_fun (*this, &Film::examine_content_post_gui));
JobManager::instance()->add (_examine_content_job);
}
void
Film::send_dcp_to_tms ()
{
- shared_ptr<Job> j (new SCPDCPJob (state_copy (), log ()));
+ shared_ptr<Job> j (new SCPDCPJob (state_copy (), log(), shared_ptr<Job> ()));
JobManager::instance()->add (j);
}
void
Film::copy_from_dvd ()
{
- shared_ptr<Job> j (new CopyFromDVDJob (state_copy (), log ()));
+ shared_ptr<Job> j (new CopyFromDVDJob (state_copy (), log(), shared_ptr<Job> ()));
j->Finished.connect (sigc::mem_fun (*this, &Film::copy_from_dvd_post_gui));
JobManager::instance()->add (j);
}