summaryrefslogtreecommitdiffstats
path: root/libass/ass_render.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-03-06 22:23:01 +0100
committerwm4 <wm4@nowhere>2014-03-06 22:31:48 +0100
commitcee08d6b19cecb96dbbec6648d9cb36bee98156a (patch)
tree8548833e910f3ff7b2dcfa4fccf5a3ab8aecf80f /libass/ass_render.h
parent029d6320123721951f32c2ff6936311b22931f3b (diff)
downloadlibass-cee08d6b19cecb96dbbec6648d9cb36bee98156a.tar.bz2
libass-cee08d6b19cecb96dbbec6648d9cb36bee98156a.tar.xz
Fix change detection in presence of vector clips
Fixes this test case: Dialogue: 0,0:00:00.00,0:00:02.00,,,0,0,0,,{\fs50\pos(250,250)\iclip(m 0 0 l 400 0 l 400 220 l0 220)}Hello Dialogue: 0,0:00:02.00,0:10:00.00,,,0,0,0,,{\fs50\pos(250,250)\iclip(m 0 0 l 400 0 l 400 230 l0 230)}Hello The problem here is that the rendered output bitmap list itself does not change, only its contents (due to the different vector clip). ass_render_frame() will not set *detect_change correctly, and an application using this flag (like mplayer or mpv) will not update the screen as needed. Fix this with a very cheap hack: always report a full change if there's a vector clip. This is basically an emergency fix until we have a proper way to detect the change.
Diffstat (limited to 'libass/ass_render.h')
-rw-r--r--libass/ass_render.h1
1 files changed, 1 insertions, 0 deletions
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;