diff options
| -rw-r--r-- | src/reel.cc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/reel.cc b/src/reel.cc index 0a9a4b63..14c0b1e2 100644 --- a/src/reel.cc +++ b/src/reel.cc @@ -55,7 +55,7 @@ using std::string; using std::list; using std::cout; -using std::max; +using std::min; using boost::shared_ptr; using boost::dynamic_pointer_cast; using namespace dcp; @@ -325,26 +325,29 @@ Reel::resolve_refs (list<shared_ptr<Asset> > assets) int64_t Reel::duration () const { - int64_t d = 0; - if (_main_picture) { - d = max (d, _main_picture->actual_duration()); + return _main_picture->actual_duration(); } + + int64_t d = INT64_MAX; + if (_main_sound) { - d = max (d, _main_sound->actual_duration()); + d = min (d, _main_sound->actual_duration()); } if (_main_subtitle) { - d = max (d, _main_subtitle->actual_duration()); + d = min (d, _main_subtitle->actual_duration()); } if (_main_markers) { - d = max (d, _main_markers->actual_duration()); + d = min (d, _main_markers->actual_duration()); } BOOST_FOREACH (shared_ptr<ReelClosedCaptionAsset> i, _closed_captions) { - d = max (d, i->actual_duration()); + d = min (d, i->actual_duration()); } if (_atmos) { - d = max (d, _atmos->actual_duration()); + d = min (d, _atmos->actual_duration()); } + DCP_ASSERT (d < INT64_MAX); + return d; } |
