summaryrefslogtreecommitdiffstats
path: root/libass/ass_render.c
diff options
context:
space:
mode:
Diffstat (limited to 'libass/ass_render.c')
-rw-r--r--libass/ass_render.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index c6c1e45..05a0604 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -714,6 +714,7 @@ static void blend_vector_clip(ASS_Renderer *render_priv, ASS_Image *head)
bleft = left - bx;
btop = top - by;
+ unsigned align = 1 << render_priv->engine->align_order;
if (render_priv->state.clip_drawing_mode) {
// Inverse clip
if (ax + aw < bx || ay + ah < by || ax > bx + bw ||
@@ -722,7 +723,7 @@ static void blend_vector_clip(ASS_Renderer *render_priv, ASS_Image *head)
}
// Allocate new buffer and add to free list
- nbuffer = ass_aligned_alloc(32, as * ah, false);
+ nbuffer = ass_aligned_alloc(align, as * ah + align, false);
if (!nbuffer)
break;
@@ -740,9 +741,8 @@ static void blend_vector_clip(ASS_Renderer *render_priv, ASS_Image *head)
}
// Allocate new buffer and add to free list
- unsigned align = (w >= 16) ? 16 : ((w >= 8) ? 8 : 1);
unsigned ns = ass_align(align, w);
- nbuffer = ass_aligned_alloc(align, ns * h, false);
+ nbuffer = ass_aligned_alloc(align, ns * h + align, false);
if (!nbuffer)
break;