Use period when adding text subs, like we do with image ones.
authorCarl Hetherington <cth@carlh.net>
Mon, 15 Mar 2021 18:22:43 +0000 (19:22 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 15 Mar 2021 18:22:43 +0000 (19:22 +0100)
src/lib/reel_writer.cc

index 136d2405e3aabff47f266b27409a751b5babdc67..ad52a1ca186e8d229655f604b53c1506ef912d85 100644 (file)
@@ -868,19 +868,20 @@ ReelWriter::write (PlayerText subs, TextType type, optional<DCPTextTrack> track,
                DCPOMATIC_ASSERT (false);
        }
 
+       auto const vfr = film()->video_frame_rate();
+
        for (auto i: subs.string) {
-               /* XXX: couldn't / shouldn't we use period here rather than getting time from the subtitle? */
-               i.set_in  (i.in()  - dcp::Time (_period.from.seconds(), i.in().tcr));
-               i.set_out (i.out() - dcp::Time (_period.from.seconds(), i.out().tcr));
-               asset->add (shared_ptr<dcp::Subtitle>(new dcp::SubtitleString(i)));
+               i.set_in  (dcp::Time(period.from.seconds() - _period.from.seconds(), vfr));
+               i.set_out (dcp::Time(period.to.seconds() - _period.from.seconds(), vfr));
+               asset->add (make_shared<dcp::SubtitleString>(i));
        }
 
        for (auto i: subs.bitmap) {
                asset->add (
                        make_shared<dcp::SubtitleImage>(
                                i.image->as_png(),
-                               dcp::Time(period.from.seconds() - _period.from.seconds(), film()->video_frame_rate()),
-                               dcp::Time(period.to.seconds() - _period.from.seconds(), film()->video_frame_rate()),
+                               dcp::Time(period.from.seconds() - _period.from.seconds(), vfr),
+                               dcp::Time(period.to.seconds() - _period.from.seconds(), vfr),
                                i.rectangle.x, dcp::HAlign::LEFT, i.rectangle.y, dcp::VAlign::TOP,
                                dcp::Time(), dcp::Time()
                                )