Accessor for ClosedCaptionsDialog.
[dcpomatic.git] / src / lib / dcp_content.cc
index ef877a17fbd438d2159400190ebc91a185774597..d0f434e5a87af1e0b0da304ca73c136620c7623e 100644 (file)
@@ -55,6 +55,7 @@ using boost::optional;
 using boost::function;
 using boost::dynamic_pointer_cast;
 using dcp::raw_convert;
+using namespace dcpomatic;
 
 int const DCPContentProperty::NEEDS_ASSETS       = 600;
 int const DCPContentProperty::NEEDS_KDM          = 601;
@@ -179,6 +180,7 @@ DCPContent::read_sub_directory (boost::filesystem::path p)
        }
 }
 
+/** @param film Film, or 0 */
 void
 DCPContent::examine (shared_ptr<const Film> film, shared_ptr<Job> job)
 {
@@ -197,7 +199,7 @@ DCPContent::examine (shared_ptr<const Film> film, shared_ptr<Job> job)
        }
        Content::examine (film, job);
 
-       shared_ptr<DCPExaminer> examiner (new DCPExaminer (shared_from_this ()));
+       shared_ptr<DCPExaminer> examiner (new DCPExaminer(shared_from_this(), film ? film->tolerant() : true));
 
        if (examiner->has_video()) {
                {
@@ -477,7 +479,7 @@ DCPContent::reels (shared_ptr<const Film> film) const
        if (reel_lengths.empty ()) {
                /* Old metadata with no reel lengths; get them here instead */
                try {
-                       scoped_ptr<DCPExaminer> examiner (new DCPExaminer (shared_from_this()));
+                       scoped_ptr<DCPExaminer> examiner (new DCPExaminer(shared_from_this(), film->tolerant()));
                        reel_lengths = examiner->reel_lengths ();
                } catch (...) {
                        /* Could not examine the DCP; guess reels */
@@ -624,7 +626,7 @@ DCPContent::can_reference_audio (shared_ptr<const Film> film, string& why_not) c
 {
        shared_ptr<DCPDecoder> decoder;
        try {
-               decoder.reset (new DCPDecoder (film, shared_from_this(), false));
+               decoder.reset (new DCPDecoder (film, shared_from_this(), false, film->tolerant(), shared_ptr<DCPDecoder>()));
        } catch (dcp::DCPReadError &) {
                /* We couldn't read the DCP, so it's probably missing */
                return false;
@@ -659,7 +661,7 @@ DCPContent::can_reference_text (shared_ptr<const Film> film, TextType type, stri
 {
        shared_ptr<DCPDecoder> decoder;
        try {
-               decoder.reset (new DCPDecoder (film, shared_from_this(), false));
+               decoder.reset (new DCPDecoder (film, shared_from_this(), false, film->tolerant(), shared_ptr<DCPDecoder>()));
        } catch (dcp::DCPReadError &) {
                /* We couldn't read the DCP, so it's probably missing */
                return false;