You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-07-16 22:42:38 +02:00
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.
This commit is contained in:
@ -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
|
q->sort == SUB_SORT_TS_POS ? cmp_pkt_sub_ts_pos
|
||||||
: cmp_pkt_sub_pos_ts);
|
: cmp_pkt_sub_pos_ts);
|
||||||
for (i = 0; i < q->nb_subs; i++)
|
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;
|
q->subs[i].duration = q->subs[i + 1].pts - q->subs[i].pts;
|
||||||
|
|
||||||
if (!q->keep_duplicates)
|
if (!q->keep_duplicates)
|
||||||
|
Reference in New Issue
Block a user