Separate FFmpegSubtitlePeriod.
[dcpomatic.git] / src / lib / ffmpeg.cc
index 1620b32b40a3c393567c714f68223b860d57a67d..bba6424847855f9a603d13ddcd3a245be988ddb5 100644 (file)
@@ -246,3 +246,19 @@ FFmpeg::avio_seek (int64_t const pos, int whence)
 
        return _file_group.seek (pos, whence);
 }
+
+FFmpegSubtitlePeriod
+FFmpeg::subtitle_period (AVSubtitle const & sub)
+{
+       ContentTime const packet_time = ContentTime::from_seconds (static_cast<double> (sub.pts) / AV_TIME_BASE);
+
+       if (sub.end_display_time == static_cast<uint32_t> (-1)) {
+               /* End time is not known */
+               return FFmpegSubtitlePeriod (packet_time + ContentTime::from_seconds (sub.start_display_time / 1e3));
+       }
+
+       return FFmpegSubtitlePeriod (
+               packet_time + ContentTime::from_seconds (sub.start_display_time / 1e3),
+               packet_time + ContentTime::from_seconds (sub.end_display_time / 1e3)
+               );
+}