ffmpeg: ignore forward gaps for subtitles streams.
authorNicolas George <nicolas.george@normalesup.org>
Tue, 16 Aug 2011 13:49:17 +0000 (15:49 +0200)
committerNicolas George <nicolas.george@normalesup.org>
Mon, 22 Aug 2011 07:55:35 +0000 (09:55 +0200)
ffmpeg.c

index 8e2c29f..e305948 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -2797,7 +2797,10 @@ static int transcode(AVFormatContext **output_files,
             && (is->iformat->flags & AVFMT_TS_DISCONT)) {
             int64_t pkt_dts= av_rescale_q(pkt.dts, ist->st->time_base, AV_TIME_BASE_Q);
             int64_t delta= pkt_dts - ist->next_pts;
-            if((FFABS(delta) > 1LL*dts_delta_threshold*AV_TIME_BASE || pkt_dts+1<ist->pts)&& !copy_ts){
+            if((delta < -1LL*dts_delta_threshold*AV_TIME_BASE ||
+                (delta > 1LL*dts_delta_threshold*AV_TIME_BASE &&
+                 ist->st->codec->codec_type != AVMEDIA_TYPE_SUBTITLE) ||
+                pkt_dts+1<ist->pts)&& !copy_ts){
                 input_files[ist->file_index].ts_offset -= delta;
                 if (verbose > 2)
                     fprintf(stderr, "timestamp discontinuity %"PRId64", new offset= %"PRId64"\n",