summaryrefslogtreecommitdiffstats
path: root/sub
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-11-16 22:54:22 +0100
committerwm4 <wm4@nowhere>2012-11-16 22:54:22 +0100
commitaf8ded53dbe1d1699df51e6fdc9fef4e464b8a7b (patch)
tree9cd26fb4f6cc10d02618c6051afa08d2d4869933 /sub
parent4e8e7d91ddbea584fb42e0d1049e16c5957392b1 (diff)
downloadmpv-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')
-rw-r--r--sub/sd_ass.c10
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