Comment.
[dcpomatic.git] / src / lib / image_content.cc
index 920d7ae54753db4b4b4bbe1f223e48b4cb94d766..d62954f40f9cda054248ebf0ac02f1999b578461 100644 (file)
@@ -17,7 +17,6 @@
 
 */
 
-#include <libcxml/cxml.h>
 #include "image_content.h"
 #include "image_examiner.h"
 #include "compose.hpp"
 #include "frame_rate_change.h"
 #include "exceptions.h"
 #include "safe_stringstream.h"
+#include <libcxml/cxml.h>
+#include <libxml++/libxml++.h>
+#include <boost/foreach.hpp>
+#include <iostream>
 
 #include "i18n.h"
 
@@ -39,19 +42,12 @@ ImageContent::ImageContent (shared_ptr<const Film> film, boost::filesystem::path
        : Content (film)
        , VideoContent (film)
 {
-       bool have_j2k = false;
        if (boost::filesystem::is_regular_file (p) && valid_image_file (p)) {
                _paths.push_back (p);
-               if (valid_j2k_file (p)) {
-                       have_j2k = true;
-               }
        } else {
                for (boost::filesystem::directory_iterator i(p); i != boost::filesystem::directory_iterator(); ++i) {
                        if (boost::filesystem::is_regular_file (i->path()) && valid_image_file (i->path())) {
                                _paths.push_back (i->path ());
-                               if (valid_j2k_file (i->path ())) {
-                                       have_j2k = true;
-                               }
                        }
                }
 
@@ -61,11 +57,6 @@ ImageContent::ImageContent (shared_ptr<const Film> film, boost::filesystem::path
 
                sort (_paths.begin(), _paths.end(), ImageFilenameSorter ());
        }
-
-       if (have_j2k) {
-               /* We default to no colour conversion if we have JPEG2000 files */
-               unset_colour_conversion (false);
-       }
 }
 
 
@@ -142,7 +133,7 @@ ImageContent::full_length () const
        shared_ptr<const Film> film = _film.lock ();
        DCPOMATIC_ASSERT (film);
        FrameRateChange const frc (video_frame_rate(), film->video_frame_rate());
-       return DCPTime::from_frames (rint (video_length_after_3d_combine() * frc.factor ()), film->video_frame_rate ());
+       return DCPTime::from_frames (llrint (video_length_after_3d_combine() * frc.factor ()), film->video_frame_rate ());
 }
 
 string
@@ -178,6 +169,14 @@ ImageContent::set_video_frame_rate (float r)
 void
 ImageContent::set_default_colour_conversion ()
 {
+       BOOST_FOREACH (boost::filesystem::path i, _paths) {
+               if (valid_j2k_file (i)) {
+                       /* We default to no colour conversion if we have JPEG2000 files */
+                       unset_colour_conversion ();
+                       return;
+               }
+       }
+
        bool const s = still ();
 
        boost::mutex::scoped_lock lm (_mutex);