X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdcp_content.cc;h=295f33b3c4560955ecac9d2d8201945153fadc8e;hb=a8a0dfd1b21de6c0facf965ab119833ff6f790bf;hp=d23b4e351db8b1a2abfc847185f11e12833bbf4d;hpb=291e2fe2e7df95019feba8097b68b31ec64be794;p=dcpomatic.git diff --git a/src/lib/dcp_content.cc b/src/lib/dcp_content.cc index d23b4e351..295f33b3c 100644 --- a/src/lib/dcp_content.cc +++ b/src/lib/dcp_content.cc @@ -63,6 +63,7 @@ DCPContent::DCPContent (shared_ptr film, boost::filesystem::path p) , _reference_video (false) , _reference_audio (false) , _reference_subtitle (false) + , _three_d (false) { video.reset (new VideoContent (this)); audio.reset (new AudioContent (this)); @@ -75,7 +76,7 @@ DCPContent::DCPContent (shared_ptr film, cxml::ConstNodePtr node, in : Content (film, node) { video = VideoContent::from_xml (this, node, version); - audio = AudioContent::from_xml (this, node); + audio = AudioContent::from_xml (this, node, version); subtitle = SubtitleContent::from_xml (this, node, version); audio->set_stream ( @@ -108,6 +109,7 @@ DCPContent::DCPContent (shared_ptr film, cxml::ConstNodePtr node, in DCPOMATIC_ASSERT (false); } } + _three_d = node->optional_bool_child("ThreeD").get_value_or (false); } void @@ -155,11 +157,14 @@ DCPContent::examine (shared_ptr job) _encrypted = examiner->encrypted (); _kdm_valid = examiner->kdm_valid (); _standard = examiner->standard (); + _three_d = examiner->three_d (); } if (could_be_played != can_be_played ()) { signal_changed (DCPContentProperty::CAN_BE_PLAYED); } + + video->set_frame_type (_three_d ? VIDEO_FRAME_TYPE_3D : VIDEO_FRAME_TYPE_2D); } string @@ -221,6 +226,7 @@ DCPContent::as_xml (xmlpp::Node* node) const DCPOMATIC_ASSERT (false); } } + node->add_child("ThreeD")->add_child_text (_three_d ? "1" : "0"); } DCPTime