summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mpcommon.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/mpcommon.c b/mpcommon.c
index f6d4c940cb..ee9a5c992f 100644
--- a/mpcommon.c
+++ b/mpcommon.c
@@ -116,20 +116,17 @@ void update_subtitles(sh_video_t *sh_video, demux_stream_t *d_dvdsub, int reset)
packet += 2;
}
#ifdef USE_ASS
- if (type == 'a' && ass_enabled) { // ssa/ass subs with libass
+ if (ass_enabled) {
sh_sub_t* sh = d_dvdsub->sh;
ass_track = sh ? sh->ass_track : NULL;
- if (ass_track)
+ if (!ass_track) continue;
+ if (type == 'a') { // ssa/ass subs with libass
ass_process_chunk(ass_track, packet, len,
(long long)(pts*1000 + 0.5),
(long long)((endpts-pts)*1000 + 0.5));
- continue;
- }
- if ((type == 't' || type == 'm') && ass_enabled) { // plaintext subs with libass
- sh_sub_t* sh = d_dvdsub->sh;
- ass_track = sh ? sh->ass_track : NULL;
+ } else { // plaintext subs with libass
vo_sub = NULL;
- if (ass_track && pts != MP_NOPTS_VALUE) {
+ if (pts != MP_NOPTS_VALUE) {
if (endpts == MP_NOPTS_VALUE) endpts = pts + 3;
sub_clear_text(&subs, MP_NOPTS_VALUE);
sub_add_text(&subs, packet, len, endpts);
@@ -137,6 +134,7 @@ void update_subtitles(sh_video_t *sh_video, demux_stream_t *d_dvdsub, int reset)
subs.end = endpts * 100;
ass_process_subtitle(ass_track, &subs);
}
+ }
continue;
}
#endif