diff options
author | mplayer-svn <svn@mplayerhq.hu> | 2012-01-15 12:08:26 +0000 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-08-03 01:43:03 +0200 |
commit | 0461f5e669acf1a90af7a8636a72ede9f1c5951a (patch) | |
tree | 2a93fc591148998620b5942eb7975b315b014970 /sub/subreader.c | |
parent | d5b964852a144bb3bda49d5ed678a8f0978c9f24 (diff) | |
download | mpv-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/subreader.c')
-rw-r--r-- | sub/subreader.c | 10 |
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]); + } } /** |