summaryrefslogtreecommitdiffstats
path: root/libass
diff options
context:
space:
mode:
Diffstat (limited to 'libass')
-rw-r--r--libass/ass_render.c8
-rw-r--r--libass/ass_utils.h1
2 files changed, 5 insertions, 4 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index f2c137d4..f6234828 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -556,10 +556,10 @@ static ass_image_t **render_glyph(ass_renderer_t *render_priv,
brk -= bm->left;
// clipping
- clip_x0 = render_priv->state.clip_x0;
- clip_y0 = render_priv->state.clip_y0;
- clip_x1 = render_priv->state.clip_x1;
- clip_y1 = render_priv->state.clip_y1;
+ clip_x0 = FFMINMAX(render_priv->state.clip_x0, 0, render_priv->width);
+ clip_y0 = FFMINMAX(render_priv->state.clip_y0, 0, render_priv->height);
+ clip_x1 = FFMINMAX(render_priv->state.clip_x1, 0, render_priv->width);
+ clip_y1 = FFMINMAX(render_priv->state.clip_y1, 0, render_priv->height);
b_x0 = 0;
b_y0 = 0;
b_x1 = bm->w;
diff --git a/libass/ass_utils.h b/libass/ass_utils.h
index a906ca57..39132903 100644
--- a/libass/ass_utils.h
+++ b/libass/ass_utils.h
@@ -43,6 +43,7 @@
#define FFMAX(a,b) ((a) > (b) ? (a) : (b))
#define FFMIN(a,b) ((a) > (b) ? (b) : (a))
+#define FFMINMAX(c,a,b) FFMIN(FFMAX(c, a), b)
int mystrtoi(char **p, int *res);
int mystrtoll(char **p, long long *res);