From 5ba9edaabe4dabbbfb213f1ef053301f604d2517 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 20 Jul 2015 20:50:54 +0100 Subject: Fix missing second-lines of subtitles (#641). --- src/lib/dcp_subtitle_decoder.cc | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/lib/dcp_subtitle_decoder.cc') diff --git a/src/lib/dcp_subtitle_decoder.cc b/src/lib/dcp_subtitle_decoder.cc index bb2537fc4..fd801da2f 100644 --- a/src/lib/dcp_subtitle_decoder.cc +++ b/src/lib/dcp_subtitle_decoder.cc @@ -52,10 +52,22 @@ DCPSubtitleDecoder::pass () return true; } + /* Gather all subtitles with the same time period that are next + on the list. We must emit all subtitles for the same time + period with the same text_subtitle() call otherwise the + SubtitleDecoder will assume there is nothing else at the + time of emit the first. + */ + list s; - s.push_back (*_next); - text_subtitle (content_time_period (*_next), s); - ++_next; + ContentTimePeriod const p = content_time_period (*_next); + + while (_next != _subtitles.end () && content_time_period (*_next) == p) { + s.push_back (*_next); + ++_next; + } + + text_subtitle (p, s); return false; } -- cgit v1.2.3