Various joining fixes.
[dcpomatic.git] / src / lib / film.cc
index f869289d5700fbab7fca1de7e5785d58a3775d29..d53d61a633217c51e5573cdabfcedf40ab9c7f3f 100644 (file)
@@ -83,7 +83,7 @@ using boost::optional;
 using libdcp::Size;
 using libdcp::Signer;
 
-int const Film::state_version = 4;
+int const Film::state_version = 5;
 
 /** Construct a Film object in a given directory.
  *
@@ -151,6 +151,12 @@ Film::video_identifier () const
          << "_" << scaler()->id()
          << "_" << j2k_bandwidth();
 
+       if (encrypted ()) {
+               s << "_E";
+       } else {
+               s << "_P";
+       }
+
        if (_interop) {
                s << "_I";
        } else {
@@ -368,6 +374,8 @@ Film::read_metadata ()
 
        cxml::Document f ("Metadata");
        f.read_file (file ("metadata.xml"));
+
+       int const version = f.number_child<int> ("Version");
        
        _name = f.string_child ("Name");
        _use_dci_name = f.bool_child ("UseDCIName");
@@ -399,7 +407,7 @@ Film::read_metadata ()
        _three_d = f.bool_child ("ThreeD");
        _interop = f.bool_child ("Interop");
        _key = libdcp::Key (f.string_child ("Key"));
-       _playlist->set_from_xml (shared_from_this(), f.node_child ("Playlist"));
+       _playlist->set_from_xml (shared_from_this(), f.node_child ("Playlist"), version);
 
        _dirty = false;
 }
@@ -844,6 +852,12 @@ Film::best_video_frame_rate () const
        return _playlist->best_dcp_frame_rate ();
 }
 
+bool
+Film::content_paths_valid () const
+{
+       return _playlist->content_paths_valid ();
+}
+
 void
 Film::playlist_content_changed (boost::weak_ptr<Content> c, int p)
 {