Merge master.
[dcpomatic.git] / src / lib / film.cc
index 79833b3669ab7a6c41e8e6d7b9c0c821f11af186..33cb304600cda8146deb44a6d1ada1e214925729 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2013 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -245,7 +245,12 @@ Film::make_dcp ()
        if (dcp_name().find ("/") != string::npos) {
                throw BadSettingError (_("name"), _("cannot contain slashes"));
        }
-       
+
+       /* It seems to make sense to auto-save metadata here, since the make DCP may last
+          a long time, and crashes/power failures are moderately likely.
+        */
+       write_metadata ();
+
        log()->log (String::compose ("DCP-o-matic %1 git %2 using %3", dcpomatic_version, dcpomatic_git_commit, dependency_version_summary()));
 
        {
@@ -821,6 +826,10 @@ Film::content () const
 void
 Film::examine_and_add_content (shared_ptr<Content> c)
 {
+       if (dynamic_pointer_cast<FFmpegContent> (c)) {
+               run_ffprobe (c->path(0), file ("ffprobe.log"), _log);
+       }
+                       
        shared_ptr<Job> j (new ExamineContentJob (shared_from_this(), c));
        j->Finished.connect (bind (&Film::maybe_add_content, this, boost::weak_ptr<Job> (j), boost::weak_ptr<Content> (c)));
        JobManager::instance()->add (j);