From c044402e6c0262b4813ffee6e8df53469cef8487 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 15 Jul 2013 14:20:23 +0100 Subject: Decide best DCP rate based on the largest difference between a particular content's frame rate and the DCP one, rather than a sum of all the differences. --- src/lib/playlist.cc | 5 +++-- src/lib/video_content.h | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/lib') diff --git a/src/lib/playlist.cc b/src/lib/playlist.cc index 9e7f7f5f5..703a14663 100644 --- a/src/lib/playlist.cc +++ b/src/lib/playlist.cc @@ -221,7 +221,7 @@ Playlist::best_dcp_frame_rate () const candidates.push_back (FrameRateCandidate (float (*i) * 2, *i)); } - /* Pick the best one, bailing early if we hit an exact match */ + /* Pick the best one */ float error = std::numeric_limits::max (); optional best; list::iterator i = candidates.begin(); @@ -234,7 +234,8 @@ Playlist::best_dcp_frame_rate () const continue; } - this_error += fabs (i->source - vc->video_frame_rate ()); + /* Use the largest difference between DCP and source as the "error" */ + this_error = max (this_error, float (fabs (i->source - vc->video_frame_rate ()))); } if (this_error < error) { diff --git a/src/lib/video_content.h b/src/lib/video_content.h index 5b9a17b57..697a0ecc3 100644 --- a/src/lib/video_content.h +++ b/src/lib/video_content.h @@ -88,7 +88,8 @@ protected: private: friend class ffmpeg_pts_offset_test; - friend class best_dcp_frame_rate_test; + friend class best_dcp_frame_rate_test_single; + friend class best_dcp_frame_rate_test_double; friend class audio_sampling_rate_test; libdcp::Size _video_size; -- cgit v1.2.3