projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix crash when exporting a 2D project containing 3D content (#1680).
[dcpomatic.git]
/
src
/
lib
/
dcp_examiner.cc
diff --git
a/src/lib/dcp_examiner.cc
b/src/lib/dcp_examiner.cc
index dfb47f2ebf6d1f009e9476620e4c708ea84591c4..8866ba7219aa4ee00b2783f7466f1f66f13d45b5 100644
(file)
--- a/
src/lib/dcp_examiner.cc
+++ b/
src/lib/dcp_examiner.cc
@@
-1,5
+1,5
@@
/*
/*
- Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014
-2019
Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
This file is part of DCP-o-matic.
@@
-52,8
+52,8
@@
using std::runtime_error;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
-DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content)
- : DCP (content)
+DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content
, bool tolerant
)
+ : DCP (content
, tolerant
)
, _video_length (0)
, _audio_length (0)
, _has_video (false)
, _video_length (0)
, _audio_length (0)
, _has_video (false)
@@
-66,7
+66,7
@@
DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content)
shared_ptr<dcp::CPL> cpl;
for (int i = 0; i < TEXT_COUNT; ++i) {
shared_ptr<dcp::CPL> cpl;
for (int i = 0; i < TEXT_COUNT; ++i) {
- _
has_text[i] = false
;
+ _
text_count[i] = 0
;
}
if (content->cpl ()) {
}
if (content->cpl ()) {
@@
-135,7
+135,7
@@
DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content)
throw DCPError (_("Mismatched video sizes in DCP"));
}
throw DCPError (_("Mismatched video sizes in DCP"));
}
- _video_length += i->main_picture()->duration();
+ _video_length += i->main_picture()->
actual_
duration();
}
if (i->main_sound ()) {
}
if (i->main_sound ()) {
@@
-160,7
+160,7
@@
DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content)
throw DCPError (_("Mismatched audio sample rates in DCP"));
}
throw DCPError (_("Mismatched audio sample rates in DCP"));
}
- _audio_length += i->main_sound()->duration();
+ _audio_length += i->main_sound()->
actual_
duration();
}
if (i->main_subtitle ()) {
}
if (i->main_subtitle ()) {
@@
-170,7
+170,7
@@
DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content)
return;
}
return;
}
- _
has_text[TEXT_OPEN_SUBTITLE] = true
;
+ _
text_count[TEXT_OPEN_SUBTITLE] = 1
;
}
BOOST_FOREACH (shared_ptr<dcp::ReelClosedCaptionAsset> j, i->closed_captions()) {
}
BOOST_FOREACH (shared_ptr<dcp::ReelClosedCaptionAsset> j, i->closed_captions()) {
@@
-180,17
+180,17
@@
DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content)
return;
}
return;
}
- _
has_text[TEXT_CLOSED_CAPTION] = true
;
+ _
text_count[TEXT_CLOSED_CAPTION]++
;
}
if (i->main_picture()) {
}
if (i->main_picture()) {
- _reel_lengths.push_back (i->main_picture()->duration());
+ _reel_lengths.push_back (i->main_picture()->
actual_
duration());
} else if (i->main_sound()) {
} else if (i->main_sound()) {
- _reel_lengths.push_back (i->main_sound()->duration());
+ _reel_lengths.push_back (i->main_sound()->
actual_
duration());
} else if (i->main_subtitle()) {
} else if (i->main_subtitle()) {
- _reel_lengths.push_back (i->main_subtitle()->duration());
+ _reel_lengths.push_back (i->main_subtitle()->
actual_
duration());
} else if (!i->closed_captions().empty()) {
} else if (!i->closed_captions().empty()) {
- _reel_lengths.push_back (i->closed_captions().front()->duration());
+ _reel_lengths.push_back (i->closed_captions().front()->
actual_
duration());
}
}
}
}