summaryrefslogtreecommitdiff
path: root/libavformat/subtitles.c
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2015-12-23 15:08:58 +0100
committerwm4 <nfxjfg@googlemail.com>2015-12-23 15:08:58 +0100
commita0ec4aebabe1f816cc69e20309981907ba5d1395 (patch)
tree8593fd05f90858c3f89fb7af071c4c5d44e79f28 /libavformat/subtitles.c
parent57787f5ef8235f77ec9c76c064b378631168c066 (diff)
avformat/subtitles: treat negative duration like unknown duration
Fixes a specific srt sample, which has an event with negative duration. libavcodec will convert an event with negative duration to an ASS event which will be displayed forever, which is not wanted here. Treat negative duration always as unknown duration instead, and show it until the next subtitle event.
Diffstat (limited to 'libavformat/subtitles.c')
-rw-r--r--libavformat/subtitles.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/subtitles.c b/libavformat/subtitles.c
index 7c6cd5f353..108f909c84 100644
--- a/libavformat/subtitles.c
+++ b/libavformat/subtitles.c
@@ -198,7 +198,7 @@ void ff_subtitles_queue_finalize(void *log_ctx, FFDemuxSubtitlesQueue *q)
q->sort == SUB_SORT_TS_POS ? cmp_pkt_sub_ts_pos
: cmp_pkt_sub_pos_ts);
for (i = 0; i < q->nb_subs; i++)
- if (q->subs[i].duration == -1 && i < q->nb_subs - 1)
+ if (q->subs[i].duration < 0 && i < q->nb_subs - 1)
q->subs[i].duration = q->subs[i + 1].pts - q->subs[i].pts;
if (!q->keep_duplicates)