summaryrefslogtreecommitdiffstats
path: root/libass
diff options
context:
space:
mode:
authorDr.Smile <vabnick@gmail.com>2015-01-15 20:53:57 +0300
committerDr.Smile <vabnick@gmail.com>2015-01-15 20:53:57 +0300
commitfc0b84c7b230f35dcf3be4695d6d45142922ed8c (patch)
tree80cdb700424c6393f5ececee655c7e35d43f9b68 /libass
parentad0505d1b57514dea8afc660ae6d01b33573e049 (diff)
downloadlibass-fc0b84c7b230f35dcf3be4695d6d45142922ed8c.tar.bz2
libass-fc0b84c7b230f35dcf3be4695d6d45142922ed8c.tar.xz
Fix rare edge-case bug in rasterizer
Diffstat (limited to 'libass')
-rw-r--r--libass/ass_rasterizer.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libass/ass_rasterizer.c b/libass/ass_rasterizer.c
index 84f9a88..ee19ad4 100644
--- a/libass/ass_rasterizer.c
+++ b/libass/ass_rasterizer.c
@@ -669,8 +669,11 @@ static int rasterizer_fill_level(ASS_Rasterizer *rst,
return 1;
}
if (n == 1) {
+ static const int test = SEGFLAG_UL_DR | SEGFLAG_EXACT_LEFT;
+ if (((line->flags & test) != test) == !(line->flags & SEGFLAG_DN))
+ winding++;
+
int flag = 0;
- if (line->c < 0)winding++;
if (winding)
flag ^= 1;
if (winding - 1)