diff options
author | wm4 <wm4@nowhere> | 2012-11-16 22:54:22 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-11-16 22:54:22 +0100 |
commit | af8ded53dbe1d1699df51e6fdc9fef4e464b8a7b (patch) | |
tree | 9cd26fb4f6cc10d02618c6051afa08d2d4869933 /sub/sd_ass.c | |
parent | 4e8e7d91ddbea584fb42e0d1049e16c5957392b1 (diff) | |
download | mpv-af8ded53dbe1d1699df51e6fdc9fef4e464b8a7b.tar.bz2 mpv-af8ded53dbe1d1699df51e6fdc9fef4e464b8a7b.tar.xz |
sd_ass: fix ASS subtitles coming from demux_lavf
libavformat demuxes ASS subtitles as complete ASS event, rather than
Matroska-mangled events without time codes.
Diffstat (limited to 'sub/sd_ass.c')
-rw-r--r-- | sub/sd_ass.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sub/sd_ass.c b/sub/sd_ass.c index 7473c25de1..35557ce4f9 100644 --- a/sub/sd_ass.c +++ b/sub/sd_ass.c @@ -77,9 +77,13 @@ static void decode(struct sh_sub *sh, struct osd_state *osd, void *data, ASS_Track *track = ctx->ass_track; if (sh->type == 'a') { // ssa/ass subs - ass_process_chunk(track, data, data_len, - (long long)(pts*1000 + 0.5), - (long long)(duration*1000 + 0.5)); + if (bstr_startswith0((bstr){data, data_len}, "Dialogue: ")) { + ass_process_data(track, data, data_len); + } else { + ass_process_chunk(track, data, data_len, + (long long)(pts*1000 + 0.5), + (long long)(duration*1000 + 0.5)); + } return; } // plaintext subs |