Try to prevent crashes if the configuration contains no colour conversions.
authorCarl Hetherington <cth@carlh.net>
Mon, 14 Oct 2013 10:53:57 +0000 (11:53 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 14 Oct 2013 10:53:57 +0000 (11:53 +0100)
src/lib/video_content.cc
src/lib/video_content.h

index 3f6e171a549d2f6feefaca6deb3e3c5556805b66..af0c3e12c08022fed68969c97f817ada684f3cc4 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <iomanip>
 #include <libcxml/cxml.h>
+#include <libdcp/colour_matrix.h>
 #include "video_content.h"
 #include "video_examiner.h"
 #include "ratio.h"
@@ -49,9 +50,8 @@ VideoContent::VideoContent (shared_ptr<const Film> f, Time s, VideoContent::Fram
        , _video_frame_rate (0)
        , _video_frame_type (VIDEO_FRAME_TYPE_2D)
        , _ratio (Ratio::from_id ("185"))
-       , _colour_conversion (Config::instance()->colour_conversions().front().conversion)
 {
-
+       setup_default_colour_conversion ();
 }
 
 VideoContent::VideoContent (shared_ptr<const Film> f, boost::filesystem::path p)
@@ -60,9 +60,8 @@ VideoContent::VideoContent (shared_ptr<const Film> f, boost::filesystem::path p)
        , _video_frame_rate (0)
        , _video_frame_type (VIDEO_FRAME_TYPE_2D)
        , _ratio (Ratio::from_id ("185"))
-       , _colour_conversion (Config::instance()->colour_conversions().front().conversion)
 {
-
+       setup_default_colour_conversion ();
 }
 
 VideoContent::VideoContent (shared_ptr<const Film> f, shared_ptr<const cxml::Node> node)
@@ -103,6 +102,12 @@ VideoContent::as_xml (xmlpp::Node* node) const
        _colour_conversion.as_xml (node->add_child("ColourConversion"));
 }
 
+void
+VideoContent::setup_default_colour_conversion ()
+{
+       _colour_conversion = PresetColourConversion (_("sRGB"), 2.4, true, libdcp::colour_matrix::srgb_to_xyz, 2.6).conversion;
+}
+
 void
 VideoContent::take_from_video_examiner (shared_ptr<VideoExaminer> d)
 {
index 72c72625b5c30a97927fdefe17b56c98492cf24f..81325516d53ba547ccd2163daad318623e30760c 100644 (file)
@@ -109,6 +109,8 @@ private:
        friend class best_dcp_frame_rate_test_single;
        friend class best_dcp_frame_rate_test_double;
        friend class audio_sampling_rate_test;
+
+       void setup_default_colour_conversion ();
        
        libdcp::Size _video_size;
        float _video_frame_rate;