Fix crash with multiple audio streams.
authorCarl Hetherington <cth@carlh.net>
Wed, 1 Jun 2016 10:04:17 +0000 (11:04 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 1 Jun 2016 10:04:17 +0000 (11:04 +0100)
src/lib/ffmpeg_content.cc

index 1d2f20fe6e7012bd124a2b56a78e5acd0f3a6812..cc6a703baf60b8882467a687cbe5b8d1870097b0 100644 (file)
@@ -54,6 +54,7 @@ using std::list;
 using std::cout;
 using std::pair;
 using std::make_pair;
+using std::max;
 using boost::shared_ptr;
 using boost::dynamic_pointer_cast;
 using boost::optional;
@@ -331,7 +332,13 @@ FFmpegContent::full_length () const
        }
 
        DCPOMATIC_ASSERT (audio);
-       return DCPTime::from_frames (llrint (audio->stream()->length() / frc.speed_up), audio->stream()->frame_rate());
+
+       DCPTime longest;
+       BOOST_FOREACH (AudioStreamPtr i, audio->streams ()) {
+               longest = max (longest, DCPTime::from_frames (llrint (i->length() / frc.speed_up), i->frame_rate()));
+       }
+
+       return longest;
 }
 
 void