X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fplaylist.cc;h=d37f287837110a283b8ee56003d58011853fb1f3;hb=c180f317d5a8b27dd191c1f2228ceb6fc4039393;hp=aa365ead4f3939c5d51264c9cc057bfbdee83a36;hpb=67a68bd971ebe1b35daa3f75873b4ccb53c00ba0;p=dcpomatic.git diff --git a/src/lib/playlist.cc b/src/lib/playlist.cc index aa365ead4..d37f28783 100644 --- a/src/lib/playlist.cc +++ b/src/lib/playlist.cc @@ -554,3 +554,38 @@ Playlist::video_content_at (DCPTime time) const return false; } + +bool +Playlist::audio_content_at (DCPTime time) const +{ + BOOST_FOREACH (shared_ptr i, _content) { + if (i->audio && i->position() <= time && time < i->end()) { + return true; + } + } + + return false; +} + +pair +Playlist::speed_up_range (int dcp_video_frame_rate) const +{ + pair range (DBL_MAX, -DBL_MAX); + + BOOST_FOREACH (shared_ptr i, _content) { + if (!i->video) { + continue; + } + if (i->video_frame_rate()) { + FrameRateChange const frc (i->video_frame_rate().get(), dcp_video_frame_rate); + range.first = min (range.first, frc.speed_up); + range.second = max (range.second, frc.speed_up); + } else { + FrameRateChange const frc (dcp_video_frame_rate, dcp_video_frame_rate); + range.first = min (range.first, frc.speed_up); + range.second = max (range.second, frc.speed_up); + } + } + + return range; +}