Small bits of tidying up.
[dcpomatic.git] / src / lib / video_content.cc
index 84dee81d1f22935abaa6dd6abdf3e7383879a911..819333227a6e42c4a52d41a807cb338ddce45f48 100644 (file)
 
 */
 
+#include <iomanip>
 #include <libcxml/cxml.h>
 #include "video_content.h"
-#include "video_decoder.h"
+#include "video_examiner.h"
 #include "ratio.h"
+#include "compose.hpp"
 
 #include "i18n.h"
 
@@ -36,11 +38,11 @@ using boost::shared_ptr;
 using boost::lexical_cast;
 using boost::optional;
 
-VideoContent::VideoContent (shared_ptr<const Film> f, Time s, ContentVideoFrame len)
+VideoContent::VideoContent (shared_ptr<const Film> f, Time s, VideoContent::Frame len)
        : Content (f, s)
        , _video_length (len)
        , _video_frame_rate (0)
-       , _ratio (0)
+       , _ratio (Ratio::from_id ("185"))
 {
 
 }
@@ -49,7 +51,7 @@ VideoContent::VideoContent (shared_ptr<const Film> f, boost::filesystem::path p)
        : Content (f, p)
        , _video_length (0)
        , _video_frame_rate (0)
-       , _ratio (0)
+       , _ratio (Ratio::from_id ("185"))
 {
 
 }
@@ -57,7 +59,7 @@ VideoContent::VideoContent (shared_ptr<const Film> f, boost::filesystem::path p)
 VideoContent::VideoContent (shared_ptr<const Film> f, shared_ptr<const cxml::Node> node)
        : Content (f, node)
 {
-       _video_length = node->number_child<ContentVideoFrame> ("VideoLength");
+       _video_length = node->number_child<VideoContent::Frame> ("VideoLength");
        _video_size.width = node->number_child<int> ("VideoWidth");
        _video_size.height = node->number_child<int> ("VideoHeight");
        _video_frame_rate = node->number_child<float> ("VideoFrameRate");
@@ -99,9 +101,9 @@ VideoContent::as_xml (xmlpp::Node* node) const
 }
 
 void
-VideoContent::take_from_video_decoder (shared_ptr<VideoDecoder> d)
+VideoContent::take_from_video_examiner (shared_ptr<VideoExaminer> d)
 {
-       /* These decoder calls could call other content methods which take a lock on the mutex */
+       /* These examiner calls could call other content methods which take a lock on the mutex */
        libdcp::Size const vs = d->video_size ();
        float const vfr = d->video_frame_rate ();
        
@@ -135,16 +137,6 @@ VideoContent::information () const
        return s.str ();
 }
 
-void
-VideoContent::set_crop (Crop c)
-{
-       {
-               boost::mutex::scoped_lock lm (_mutex);
-               _crop = c;
-       }
-       signal_changed (VideoContentProperty::VIDEO_CROP);
-}
-
 void
 VideoContent::set_left_crop (int c)
 {
@@ -220,3 +212,21 @@ VideoContent::set_ratio (Ratio const * r)
 
        signal_changed (VideoContentProperty::VIDEO_RATIO);
 }
+
+/** @return string which includes everything about how this content looks */
+string
+VideoContent::identifier () const
+{
+       stringstream s;
+       s << Content::digest()
+         << "_" << crop().left
+         << "_" << crop().right
+         << "_" << crop().top
+         << "_" << crop().bottom;
+
+       if (ratio()) {
+               s << "_" << ratio()->id ();
+       }
+
+       return s.str ();
+}