summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@kinoho.net>2014-03-06 23:16:11 +0100
committerGrigori Goronzy <greg@kinoho.net>2014-03-06 23:16:11 +0100
commit2a93f7b5c9844f0d95f92be0557272de8df43ecc (patch)
tree8548833e910f3ff7b2dcfa4fccf5a3ab8aecf80f
parent029d6320123721951f32c2ff6936311b22931f3b (diff)
parentcee08d6b19cecb96dbbec6648d9cb36bee98156a (diff)
downloadlibass-2a93f7b5c9844f0d95f92be0557272de8df43ecc.tar.bz2
libass-2a93f7b5c9844f0d95f92be0557272de8df43ecc.tar.xz
Merge pull request #61 from wm4/fix2
Fix change detection in presence of vector clips
-rw-r--r--libass/ass_render.c5
-rw-r--r--libass/ass_render.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index f553b90..dc6d058 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -534,6 +534,8 @@ static void blend_vector_clip(ASS_Renderer *render_priv,
int aleft, atop, bleft, btop;
unsigned char *abuffer, *bbuffer, *nbuffer;
+ render_priv->state.has_vector_clip = 1;
+
abuffer = cur->bitmap;
bbuffer = clip_bm->buffer;
ax = cur->dst_x;
@@ -794,6 +796,7 @@ init_render_context(ASS_Renderer *render_priv, ASS_Event *event)
render_priv->state.event = event;
render_priv->state.style = render_priv->track->styles + event->Style;
render_priv->state.parsed_tags = 0;
+ render_priv->state.has_vector_clip = 0;
reset_render_context(render_priv, render_priv->state.style);
render_priv->state.wrap_style = render_priv->track->WrapStyle;
@@ -2830,7 +2833,7 @@ static int ass_detect_change(ASS_Renderer *priv)
ASS_Image *img, *img2;
int diff;
- if (priv->cache_cleared)
+ if (priv->cache_cleared || priv->state.has_vector_clip)
return 2;
img = priv->prev_images_root;
diff --git a/libass/ass_render.h b/libass/ass_render.h
index 7b3b6d7..f17ad5f 100644
--- a/libass/ass_render.h
+++ b/libass/ass_render.h
@@ -231,6 +231,7 @@ typedef struct {
ASS_Event *event;
ASS_Style *style;
int parsed_tags;
+ int has_vector_clip;
ASS_Font *font;
double font_size;