From: Carl Hetherington Date: Fri, 19 Jun 2020 18:29:55 +0000 (+0200) Subject: DCPExaminer must find Atmos length / edit rate. X-Git-Tag: v2.15.83~3 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=7066750d52663968960d496d256a0dfd8c96c856 DCPExaminer must find Atmos length / edit rate. --- diff --git a/src/lib/dcp_examiner.cc b/src/lib/dcp_examiner.cc index 133c1614e..b05ef593b 100644 --- a/src/lib/dcp_examiner.cc +++ b/src/lib/dcp_examiner.cc @@ -67,6 +67,7 @@ DCPExaminer::DCPExaminer (shared_ptr content, bool tolerant) , _kdm_valid (false) , _three_d (false) , _has_atmos (false) + , _atmos_length (0) { shared_ptr cpl; @@ -198,6 +199,11 @@ DCPExaminer::DCPExaminer (shared_ptr content, bool tolerant) if (i->atmos()) { _has_atmos = true; + _atmos_length += i->atmos()->actual_duration(); + if (_atmos_edit_rate != dcp::Fraction()) { + DCPOMATIC_ASSERT (i->atmos()->edit_rate() == _atmos_edit_rate); + } + _atmos_edit_rate = i->atmos()->edit_rate(); } if (i->main_picture()) { diff --git a/src/lib/dcp_examiner.h b/src/lib/dcp_examiner.h index b4c87596c..78d2befd3 100644 --- a/src/lib/dcp_examiner.h +++ b/src/lib/dcp_examiner.h @@ -135,6 +135,14 @@ public: return _has_atmos; } + Frame atmos_length () const { + return _atmos_length; + } + + dcp::Fraction atmos_edit_rate () const { + return _atmos_edit_rate; + } + private: boost::optional _video_frame_rate; boost::optional _video_size; @@ -161,4 +169,6 @@ private: std::vector _ratings; std::string _content_version; bool _has_atmos; + Frame _atmos_length; + dcp::Fraction _atmos_edit_rate; };