Put Time types in dcpomatic namespace.
[dcpomatic.git] / src / lib / hints.cc
index 749fbb6763e8ca53b9a4bf2ac01411bea19b80d0..cf14f0699a299a117108c9ec585d725f6faf1e51 100644 (file)
@@ -49,6 +49,7 @@ using boost::shared_ptr;
 using boost::weak_ptr;
 using boost::optional;
 using boost::bind;
+using namespace dcpomatic;
 
 Hints::Hints (weak_ptr<const Film> film)
        : _film (film)
@@ -124,7 +125,7 @@ Hints::thread ()
                hint (_("You are using DCP-o-matic's stereo-to-5.1 upmixer.  This is experimental and may result in poor-quality audio.  If you continue, you should listen to the resulting DCP in a cinema to make sure that it sounds good."));
        }
 
-       int flat_or_narrower = 0;
+       int narrower_than_scope = 0;
        int scope = 0;
        BOOST_FOREACH (shared_ptr<const Content> i, content) {
                if (i->video) {
@@ -132,19 +133,19 @@ Hints::thread ()
                        if (r && r->id() == "239") {
                                ++scope;
                        } else if (r && r->id() != "239" && r->id() != "190") {
-                               ++flat_or_narrower;
+                               ++narrower_than_scope;
                        }
                }
        }
 
        string const film_container = film->container()->id();
 
-       if (scope && !flat_or_narrower && film_container == "185") {
+       if (scope && !narrower_than_scope && film_container == "185") {
                hint (_("All of your content is in Scope (2.39:1) but your DCP's container is Flat (1.85:1).  This will letter-box your content inside a Flat (1.85:1) frame.  You may prefer to set your DCP's container to Scope (2.39:1) in the \"DCP\" tab."));
        }
 
-       if (!scope && flat_or_narrower && film_container == "239") {
-               hint (_("All of your content is at 1.85:1 or narrower but your DCP's container is Scope (2.39:1).  This will pillar-box your content inside a Flat (1.85:1) frame.  You may prefer to set your DCP's container to Flat (1.85:1) in the \"DCP\" tab."));
+       if (!scope && narrower_than_scope && film_container == "239") {
+               hint (_("All of your content is 2.35:1 or narrower but your DCP's container is Scope (2.39:1).  This will pillar-box your content.  You may prefer to set your DCP's container to have the same ratio as your content."));
        }
 
        if (film_container != "185" && film_container != "239" && film_container != "190") {
@@ -162,7 +163,7 @@ Hints::thread ()
        case 25:
        {
                /* You might want to go to 24 */
-               string base = String::compose(_("You are set up for a DCP at a frame rate of %1fps.  This frame rate is not supported by all projectors.  You may want to consider changing your frame rate to %2fps."), 25, 24);
+               string base = String::compose(_("You are set up for a DCP at a frame rate of %1 fps.  This frame rate is not supported by all projectors.  You may want to consider changing your frame rate to %2 fps."), 25, 24);
                if (film->interop()) {
                        base += "  ";
                        base += _("If you do use 25fps you should change your DCP standard to SMPTE.");
@@ -178,7 +179,7 @@ Hints::thread ()
        case 50:
        case 60:
                /* You almost certainly want to go to half frame rate */
-               hint (String::compose(_("You are set up for a DCP at a frame rate of %1fps.  This frame rate is not supported by all projectors.  You are advised to change the DCP frame rate to %2fps."), film->video_frame_rate(), film->video_frame_rate() / 2));
+               hint (String::compose(_("You are set up for a DCP at a frame rate of %1 fps.  This frame rate is not supported by all projectors.  You are advised to change the DCP frame rate to %2 fps."), film->video_frame_rate(), film->video_frame_rate() / 2));
                break;
        }
 
@@ -320,9 +321,13 @@ Hints::text (PlayerText text, TextType type, DCPTimePeriod period)
                _too_many_ccap_lines = true;
        }
 
-       if (!_overlap_ccap && _last && _last->overlap(period)) {
+       shared_ptr<const Film> film = _film.lock ();
+       DCPOMATIC_ASSERT (film);
+
+       /* XXX: maybe overlapping closed captions (i.e. different languages) are OK with Interop? */
+       if (film->interop() && !_overlap_ccap && _last && _last->overlap(period)) {
                _overlap_ccap = true;
-               hint (_("You have overlapping closed captions, which are not allowed."));
+               hint (_("You have overlapping closed captions, which are not allowed in Interop DCPs.  Change your DCP standard to SMPTE."));
        }
 
        _last = period;