summaryrefslogtreecommitdiffstats
path: root/sub
diff options
context:
space:
mode:
authormplayer-svn <svn@mplayerhq.hu>2012-01-15 12:08:26 +0000
committerwm4 <wm4@nowhere>2012-08-03 01:43:03 +0200
commit0461f5e669acf1a90af7a8636a72ede9f1c5951a (patch)
tree2a93fc591148998620b5942eb7975b315b014970 /sub
parentd5b964852a144bb3bda49d5ed678a8f0978c9f24 (diff)
downloadmpv-0461f5e669acf1a90af7a8636a72ede9f1c5951a.tar.bz2
mpv-0461f5e669acf1a90af7a8636a72ede9f1c5951a.tar.xz
subreader: eliminate duplicate subtitle lines
Eliminate duplicate subtitle lines which will most likely be artefacts from ASS effects. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34574 b3059339-0415-0410-9bf9-f77b7e298cf2 Author: reimar
Diffstat (limited to 'sub')
-rw-r--r--sub/subreader.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sub/subreader.c b/sub/subreader.c
index bd1e9e01d1..dc40b57c62 100644
--- a/sub/subreader.c
+++ b/sub/subreader.c
@@ -1838,6 +1838,16 @@ void sub_add_text(subtitle *sub, const char *txt, int len, double endpts) {
if (sub->lines < SUB_MAX_TEXT &&
strlen(sub->text[sub->lines]))
sub->lines++;
+ if (sub->lines > 1 &&
+ strcmp(sub->text[sub->lines-1], sub->text[sub->lines-2]) == 0) {
+ // remove duplicate lines. These can happen with some
+ // "clever" ASS effects.
+ sub->lines--;
+ sub->endpts[sub->lines-1] =
+ FFMAX(sub->endpts[sub->lines-1],
+ sub->endpts[sub->lines]);
+ free(sub->text[sub->lines]);
+ }
}
/**