From: Carl Hetherington Date: Fri, 27 Nov 2015 20:28:26 +0000 (+0000) Subject: Fix reel that subtitles are put in when they are exactly on a reel boundary. X-Git-Tag: v2.5.11~8 X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=84cab4dbc3beba84ba53cec1054ede7c250a4c9c Fix reel that subtitles are put in when they are exactly on a reel boundary. --- diff --git a/src/lib/writer.cc b/src/lib/writer.cc index ab5d3504c..17bd21daf 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -150,6 +150,12 @@ Writer::write (Data encoded, Frame frame, Eyes eyes) _empty_condition.notify_all (); } +bool +Writer::can_repeat (Frame frame) const +{ + return frame > _reels[video_reel(frame)].start(); +} + /** Repeat the last frame that was written to a reel as a new frame. * @param frame Frame index within the DCP of the new (repeated) frame. * @param eyes Eyes that this repeated frame image is for. @@ -519,7 +525,7 @@ Writer::write (PlayerSubtitles subs) return; } - if (_subtitle_reel->period().to < subs.from) { + if (_subtitle_reel->period().to <= subs.from) { ++_subtitle_reel; } diff --git a/src/lib/writer.h b/src/lib/writer.h index 28e243c35..5c974f0f3 100644 --- a/src/lib/writer.h +++ b/src/lib/writer.h @@ -95,6 +95,7 @@ public: void write (Data, Frame, Eyes); void fake_write (Frame, Eyes); + bool can_repeat (Frame) const; void repeat (Frame, Eyes); void write (boost::shared_ptr); void write (PlayerSubtitles subs);