+ string base = _("You are set up for an Interop DCP at a frame rate which is not officially supported. You are advised either to change the frame rate of your DCP or to make a SMPTE DCP instead.");
+ base += " ";
+ pair<double, double> range24 = film->speed_up_range (24);
+ pair<double, double> range48 = film->speed_up_range (48);
+ pair<double, double> range (max (range24.first, range48.first), min (range24.second, range48.second));
+ string h;
+ if (range.second > (29.0/24)) {
+ h = base;
+ h += _("However, setting your DCP frame rate to 24 or 48 will cause a significant speed-up of your content, and SMPTE DCPs are not supported by all projectors.");
+ } else if (range.first < (24.0/29)) {
+ h = base;
+ h += _("However, setting your DCP frame rate to 24 or 48 will cause a significant slowdown of your content, and SMPTE DCPs are not supported by all projectors.");
+ } else {
+ h = _("You are set up for an Interop DCP at a frame rate which is not officially supported. You are advised either to change the frame rate of your DCP or to make a SMPTE DCP instead (although SMPTE DCPs are not supported by all projectors).");
+ }
+
+ hints.push_back (h);
+ }
+
+ optional<double> lowest_speed_up;
+ optional<double> highest_speed_up;
+ BOOST_FOREACH (shared_ptr<const Content> i, content) {
+ double spu = film->active_frame_rate_change(i->position()).speed_up;
+ if (!lowest_speed_up || spu < *lowest_speed_up) {
+ lowest_speed_up = spu;
+ }
+ if (!highest_speed_up || spu > *highest_speed_up) {
+ highest_speed_up = spu;
+ }
+ }
+
+ double worst_speed_up = 1;
+ if (highest_speed_up) {
+ worst_speed_up = *highest_speed_up;
+ }
+ if (lowest_speed_up) {
+ worst_speed_up = max (worst_speed_up, 1 / *lowest_speed_up);
+ }
+
+ if (worst_speed_up > 25.5/24.0) {
+ hints.push_back (_("There is a large difference between the frame rate of your DCP and that of some of your content. This will cause your audio to play back at a much lower or higher pitch than it should. You are advised to set your DCP frame rate to one closer to your content, provided that your target projection systems support your chosen DCP rate."));