Add Rec. 709 colour conversion preset using Wolfgang Woehl's matrix.
authorCarl Hetherington <cth@carlh.net>
Mon, 14 Oct 2013 22:01:16 +0000 (23:01 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 14 Oct 2013 22:01:16 +0000 (23:01 +0100)
ChangeLog
cscript
src/lib/config.cc

index 4521f71e57d25244d7e085801c040adc8a47d16f..a066ce19da2d5dc3bc77e1e4fca4cc1b293f7a31 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-10-14  Carl Hetherington  <cth@carlh.net>
+
+       * Add Rec. 709 colour conversion preset using
+       Wolfgang Woehl's matrix.
+
 2013-10-14  Carl Hetherington  <cth@carlh.net>
 
        * Version 1.15 released.
diff --git a/cscript b/cscript
index 36200ef428ee56a5f113debdfc94d1abcadc5187..059ba44e3f62a9180e9a692bfa85054257428ac1 100644 (file)
--- a/cscript
+++ b/cscript
@@ -4,7 +4,7 @@ import os
 
 def dependencies(target):
     return (('ffmpeg-cdist', 'b1219246a0cce9a4b916669d506bb33c925225c3'),
-            ('libdcp', '4e2ee891c692f656d6866dfa5e0cfc47fab5cb90'))
+            ('libdcp', 'c7f48dfbf82e5233bc8cfc79c5ed057c41d7ba15'))
 
 def build(target):
     cmd = './waf configure --prefix=%s' % target.work_dir_cscript()
index 79a7b01f1dd68f4aebf39cb07e5797533926abfa..1a97eaa0d450bf81dab9cbdb2610736fdea5040c 100644 (file)
@@ -71,6 +71,7 @@ Config::Config ()
 
        _colour_conversions.push_back (PresetColourConversion (_("sRGB"), 2.4, true, libdcp::colour_matrix::srgb_to_xyz, 2.6));
        _colour_conversions.push_back (PresetColourConversion (_("sRGB non-linearised"), 2.4, false, libdcp::colour_matrix::srgb_to_xyz, 2.6));
+       _colour_conversions.push_back (PresetColourConversion (_("Rec. 709"), 2.4, false, libdcp::colour_matrix::rec709_to_xyz, 2.2));
 }
 
 void
@@ -85,6 +86,8 @@ Config::read ()
        f.read_file (file (false));
        optional<string> c;
 
+       optional<int> version = f.optional_number_child<int> ("Version");
+
        _num_local_encoding_threads = f.number_child<int> ("NumLocalEncodingThreads");
        _default_directory = f.string_child ("DefaultDirectory");
        _server_port = f.number_child<int> ("ServerPort");
@@ -133,6 +136,13 @@ Config::read ()
                _colour_conversions.push_back (PresetColourConversion (*i));
        }
 
+       if (!version) {
+               /* Loading version 0 (before Rec. 709 was added as a preset).
+                  Add it in.
+               */
+               _colour_conversions.push_back (PresetColourConversion (_("Rec. 709"), 2.4, false, libdcp::colour_matrix::rec709_to_xyz, 2.2));
+       }
+
        list<shared_ptr<cxml::Node> > cin = f.node_children ("Cinema");
        for (list<shared_ptr<cxml::Node> >::iterator i = cin.begin(); i != cin.end(); ++i) {
                /* Slightly grotty two-part construction of Cinema here so that we can use
@@ -263,6 +273,7 @@ Config::write () const
        xmlpp::Document doc;
        xmlpp::Element* root = doc.create_root_node ("Config");
 
+       root->add_child("Version")->add_child_text ("1");
        root->add_child("NumLocalEncodingThreads")->add_child_text (lexical_cast<string> (_num_local_encoding_threads));
        root->add_child("DefaultDirectory")->add_child_text (_default_directory.string ());
        root->add_child("ServerPort")->add_child_text (lexical_cast<string> (_server_port));