Stop CPL <Creator> tag being configurable and use DCP-o-matic version number instead.
[dcpomatic.git] / src / lib / writer.cc
index 2ed55a276595be9bbcd69e348b12b22ad3ac42d8..dd2e98eeed5e0b33e484773fea63890a95e4aaa9 100644 (file)
@@ -38,6 +38,7 @@
 #include "job.h"
 #include "cross.h"
 #include "md5_digester.h"
+#include "version.h"
 
 #include "i18n.h"
 
@@ -53,7 +54,6 @@ using std::pair;
 using std::string;
 using std::list;
 using std::cout;
-using std::stringstream;
 using boost::shared_ptr;
 using boost::weak_ptr;
 
@@ -136,6 +136,7 @@ Writer::write (shared_ptr<const EncodedData> encoded, int frame, Eyes eyes)
        boost::mutex::scoped_lock lock (_mutex);
 
        while (_queued_full_in_memory > _maximum_frames_in_memory) {
+               /* The queue is too big; wait until that is sorted out */
                _full_condition.wait (lock);
        }
 
@@ -157,7 +158,8 @@ Writer::write (shared_ptr<const EncodedData> encoded, int frame, Eyes eyes)
                _queue.push_back (qi);
                ++_queued_full_in_memory;
        }
-       
+
+       /* Now there's something to do: wake anything wait()ing on _empty_condition */
        _empty_condition.notify_all ();
 }
 
@@ -167,6 +169,7 @@ Writer::fake_write (int frame, Eyes eyes)
        boost::mutex::scoped_lock lock (_mutex);
 
        while (_queued_full_in_memory > _maximum_frames_in_memory) {
+               /* The queue is too big; wait until that is sorted out */
                _full_condition.wait (lock);
        }
        
@@ -188,6 +191,7 @@ Writer::fake_write (int frame, Eyes eyes)
                _queue.push_back (qi);
        }
 
+       /* Now there's something to do: wake anything wait()ing on _empty_condition */
        _empty_condition.notify_all ();
 }
 
@@ -234,16 +238,18 @@ void
 Writer::thread ()
 try
 {
-       while (1)
+       while (true)
        {
                boost::mutex::scoped_lock lock (_mutex);
 
-               while (1) {
+               while (true) {
                        
                        if (_finish || _queued_full_in_memory > _maximum_frames_in_memory || have_sequenced_image_at_queue_head ()) {
+                               /* We've got something to do: go and do it */
                                break;
                        }
 
+                       /* Nothing to do: wait until something happens which may indicate that we do */
                        LOG_TIMING (N_("writer sleeps with a queue of %1"), _queue.size());
                        _empty_condition.wait (lock);
                        LOG_TIMING (N_("writer wakes with a queue of %1"), _queue.size());
@@ -345,6 +351,7 @@ try
                        --_queued_full_in_memory;
                }
 
+               /* The queue has probably just gone down a bit; notify anything wait()ing on _full_condition */
                _full_condition.notify_all ();
        }
 }
@@ -465,7 +472,9 @@ Writer::finish ()
                _sound_asset->compute_digest (boost::bind (&Job::set_progress, job.get(), _1, false));
        }
 
-       libdcp::XMLMetadata meta = Config::instance()->dcp_metadata ();
+       libdcp::XMLMetadata meta;
+       meta.issuer = Config::instance()->dcp_issuer ();
+       meta.creator = String::compose ("DCP-o-matic %1 %2", dcpomatic_version, dcpomatic_git_commit);
        meta.set_issue_date_now ();
        dcp.write_xml (_film->interop (), meta, _film->is_signed() ? make_signer () : shared_ptr<const libdcp::Signer> ());
 
@@ -481,6 +490,7 @@ Writer::repeat (int f, Eyes e)
        boost::mutex::scoped_lock lock (_mutex);
 
        while (_queued_full_in_memory > _maximum_frames_in_memory) {
+               /* The queue is too big; wait until that is sorted out */
                _full_condition.wait (lock);
        }
        
@@ -497,6 +507,7 @@ Writer::repeat (int f, Eyes e)
                _queue.push_back (qi);
        }
 
+       /* Now there's something to do: wake anything wait()ing on _empty_condition */
        _empty_condition.notify_all ();
 }
 
@@ -554,7 +565,7 @@ Writer::check_existing_picture_mxf ()
                ++N;
        }
 
-       while (1) {
+       while (true) {
 
                shared_ptr<Job> job = _job.lock ();
                assert (job);