]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/utils.c
Merge commit 'c1348506697377b46f844339c178332e3314149a'
[ffmpeg] / libavformat / utils.c
index dc83608b1f2c420c33e54833dd415cd654b422c6..689473e9fb5a0df589b62d757daabc7a46b43dc0 100644 (file)
@@ -3347,7 +3347,10 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
                 break;
             }
             if (pkt->duration) {
-                st->info->codec_info_duration        += pkt->duration;
+                if (st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE && pkt->pts != AV_NOPTS_VALUE && pkt->pts >= st->start_time) {
+                    st->info->codec_info_duration = FFMIN(pkt->pts - st->start_time, st->info->codec_info_duration + pkt->duration);
+                } else
+                    st->info->codec_info_duration += pkt->duration;
                 st->info->codec_info_duration_fields += st->parser && st->need_parsing && st->codec->ticks_per_frame ==2 ? st->parser->repeat_pict + 1 : 2;
             }
         }