X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fffmpeg.cc;h=503f8e51cf13b146d25d81d443688428a87e5f97;hp=d476b4c298663c64b367224235b2cadac0ede431;hb=fc1441eeaa3c0805c37809685ea7a3f5ca173666;hpb=e29ce33a36c2e20444d57196defc86d5072bce81 diff --git a/src/lib/ffmpeg.cc b/src/lib/ffmpeg.cc index d476b4c29..503f8e51c 100644 --- a/src/lib/ffmpeg.cc +++ b/src/lib/ffmpeg.cc @@ -284,11 +284,11 @@ FFmpeg::avio_seek (int64_t const pos, int whence) FFmpegSubtitlePeriod -FFmpeg::subtitle_period (AVSubtitle const & sub) +FFmpeg::subtitle_period (AVPacket const* packet, AVStream const* stream, AVSubtitle const & sub) { - auto const packet_time = ContentTime::from_seconds (static_cast (sub.pts) / AV_TIME_BASE); + auto const packet_time = ContentTime::from_seconds (packet->pts * av_q2d(stream->time_base)); - if (sub.end_display_time == static_cast (-1)) { + if (sub.end_display_time == 0 || sub.end_display_time == static_cast(-1)) { /* End time is not known */ return FFmpegSubtitlePeriod (packet_time + ContentTime::from_seconds (sub.start_display_time / 1e3)); }