diff --git a/mpcommon.c b/mpcommon.c index ba5e20db89..81ed9c1113 100644 --- a/mpcommon.c +++ b/mpcommon.c @@ -190,12 +190,13 @@ void update_subtitles(sh_video_t *sh_video, double refpts, demux_stream_t *d_dvd (long long)((endpts-subpts)*1000 + 0.5)); } else { // plaintext subs with libass if (subpts != MP_NOPTS_VALUE) { + subtitle tmp_subs = {0}; if (endpts == MP_NOPTS_VALUE) endpts = subpts + 3; - sub_clear_text(&subs, MP_NOPTS_VALUE); - sub_add_text(&subs, packet, len, endpts); - subs.start = subpts * 100; - subs.end = endpts * 100; - ass_process_subtitle(ass_track, &subs); + sub_add_text(&tmp_subs, packet, len, endpts); + tmp_subs.start = subpts * 100; + tmp_subs.end = endpts * 100; + ass_process_subtitle(ass_track, &tmp_subs); + sub_clear_text(&tmp_subs, MP_NOPTS_VALUE); } } continue;