diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/writer.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/writer.cc b/src/lib/writer.cc index 9f64a1686..ce5d40c75 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -846,7 +846,11 @@ Writer::write (PlayerText text, TextType type, optional<DCPTextTrack> track, DCP } auto back_off = [this](DCPTimePeriod period) { - period.to -= DCPTime::from_frames(2, film()->video_frame_rate()); + auto const vfr = film()->video_frame_rate(); + period.to -= DCPTime::from_frames(2, vfr); + if (period.duration().frames_floor(vfr) <= 0) { + period.to = period.from + DCPTime::from_frames(1, vfr); + } return period; }; @@ -860,7 +864,7 @@ Writer::write (PlayerText text, TextType type, optional<DCPTextTrack> track, DCP _hanging_texts.push_back (HangingText{text, type, track, back_off(*overlap)}); } } - /* Back off from the reel boundary by a couple of frames to avoid tripping checks + /* Try to back off from the reel boundary by a couple of frames to avoid tripping checks * for subtitles being too close together. */ period.to = (*reel)->period().to; |
