diff options
author | wm4 <wm4@nowhere> | 2014-03-06 22:23:01 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-03-06 22:31:48 +0100 |
commit | cee08d6b19cecb96dbbec6648d9cb36bee98156a (patch) | |
tree | 8548833e910f3ff7b2dcfa4fccf5a3ab8aecf80f /libass/ass_render.h | |
parent | 029d6320123721951f32c2ff6936311b22931f3b (diff) | |
download | libass-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.h | 1 |
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; |