X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fatmos_mxf_content.cc;h=581b1b2f06c0efe0c13b19da9220356d399fe466;hb=8f12e84009d7c2685bb2eeb32665876463d4e6e5;hp=f8cc05178ef2d4349580237d462bd39dfafcfdbc;hpb=a8a0dfd1b21de6c0facf965ab119833ff6f790bf;p=dcpomatic.git diff --git a/src/lib/atmos_mxf_content.cc b/src/lib/atmos_mxf_content.cc index f8cc05178..581b1b2f0 100644 --- a/src/lib/atmos_mxf_content.cc +++ b/src/lib/atmos_mxf_content.cc @@ -22,6 +22,7 @@ #include "job.h" #include "film.h" #include "compose.hpp" +#include #include #include #include @@ -31,15 +32,16 @@ using std::list; using std::string; using boost::shared_ptr; +using namespace dcpomatic; -AtmosMXFContent::AtmosMXFContent (shared_ptr film, boost::filesystem::path path) - : Content (film, path) +AtmosMXFContent::AtmosMXFContent (boost::filesystem::path path) + : Content (path) { } -AtmosMXFContent::AtmosMXFContent (shared_ptr film, cxml::ConstNodePtr node, int) - : Content (film, node) +AtmosMXFContent::AtmosMXFContent (cxml::ConstNodePtr node, int) + : Content (node) { } @@ -47,23 +49,27 @@ AtmosMXFContent::AtmosMXFContent (shared_ptr film, cxml::ConstNodePt bool AtmosMXFContent::valid_mxf (boost::filesystem::path path) { + Kumu::DefaultLogSink().UnsetFilterFlag(Kumu::LOG_ALLOW_ALL); + try { shared_ptr a (new dcp::AtmosAsset (path)); return true; } catch (dcp::MXFFileError& e) { - } catch (dcp::DCPReadError& e) { + } catch (dcp::ReadError& e) { } + Kumu::DefaultLogSink().SetFilterFlag(Kumu::LOG_ALLOW_ALL); + return false; } void -AtmosMXFContent::examine (shared_ptr job) +AtmosMXFContent::examine (shared_ptr film, shared_ptr job) { job->set_progress_unknown (); - Content::examine (job); + Content::examine (film, job); shared_ptr a (new dcp::AtmosAsset (path(0))); { @@ -79,15 +85,21 @@ AtmosMXFContent::summary () const } void -AtmosMXFContent::as_xml (xmlpp::Node* node) const +AtmosMXFContent::as_xml (xmlpp::Node* node, bool with_paths) const { node->add_child("Type")->add_child_text ("AtmosMXF"); - Content::as_xml (node); + Content::as_xml (node, with_paths); +} + +DCPTime +AtmosMXFContent::full_length (shared_ptr film) const +{ + FrameRateChange const frc (film, shared_from_this()); + return DCPTime::from_frames (llrint (_length * frc.factor()), film->video_frame_rate()); } DCPTime -AtmosMXFContent::full_length () const +AtmosMXFContent::approximate_length () const { - FrameRateChange const frc (active_video_frame_rate(), film()->video_frame_rate()); - return DCPTime::from_frames (llrint (_length * frc.factor()), film()->video_frame_rate()); + return DCPTime::from_frames (_length, 24); }