From 84cab4dbc3beba84ba53cec1054ede7c250a4c9c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 27 Nov 2015 20:28:26 +0000 Subject: Fix reel that subtitles are put in when they are exactly on a reel boundary. --- src/lib/writer.cc | 8 +++++++- src/lib/writer.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/lib') 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); -- cgit v1.2.3