summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@blackbox>2010-02-10 00:45:36 +0100
committerGrigori Goronzy <greg@blackbox>2010-02-12 01:45:14 +0100
commitf92c65f148a339e1861d6bb671cbbc2d968f19df (patch)
tree025510068a7496174c81fa96ccc3ae71ba909ee3
parent089a2cca9561170de792a1d89db3f7d9b4f181d2 (diff)
downloadlibass-f92c65f148a339e1861d6bb671cbbc2d968f19df.tar.bz2
libass-f92c65f148a339e1861d6bb671cbbc2d968f19df.tar.xz
Move frame size setup into ass_reconfigure
It isn't needlessly run every frame this way. Also it's cleaner.
-rw-r--r--libass/ass_render.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index b4c4833..64e78a9 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -2214,6 +2214,8 @@ static void ass_free_images(ASS_Image *img)
static void ass_reconfigure(ASS_Renderer *priv)
{
+ ASS_Settings *settings = &priv->settings;
+
priv->render_id++;
priv->cache.glyph_cache =
ass_glyph_cache_reset(priv->cache.glyph_cache);
@@ -2223,6 +2225,19 @@ static void ass_reconfigure(ASS_Renderer *priv)
ass_composite_cache_reset(priv->cache.composite_cache);
ass_free_images(priv->prev_images_root);
priv->prev_images_root = 0;
+
+ priv->width = settings->frame_width;
+ priv->height = settings->frame_height;
+ priv->orig_width = settings->frame_width - settings->left_margin -
+ settings->right_margin;
+ priv->orig_height = settings->frame_height - settings->top_margin -
+ settings->bottom_margin;
+ priv->orig_width_nocrop =
+ settings->frame_width - FFMAX(settings->left_margin, 0) -
+ FFMAX(settings->right_margin, 0);
+ priv->orig_height_nocrop =
+ settings->frame_height - FFMAX(settings->top_margin, 0) -
+ FFMAX(settings->bottom_margin, 0);
}
void ass_set_frame_size(ASS_Renderer *priv, int w, int h)
@@ -2334,22 +2349,6 @@ ass_start_frame(ASS_Renderer *render_priv, ASS_Track *track,
if (track->n_events == 0)
return 1; // nothing to do
- render_priv->width = settings_priv->frame_width;
- render_priv->height = settings_priv->frame_height;
- render_priv->orig_width =
- settings_priv->frame_width - settings_priv->left_margin -
- settings_priv->right_margin;
- render_priv->orig_height =
- settings_priv->frame_height - settings_priv->top_margin -
- settings_priv->bottom_margin;
- render_priv->orig_width_nocrop =
- settings_priv->frame_width - FFMAX(settings_priv->left_margin,
- 0) -
- FFMAX(settings_priv->right_margin, 0);
- render_priv->orig_height_nocrop =
- settings_priv->frame_height - FFMAX(settings_priv->top_margin,
- 0) -
- FFMAX(settings_priv->bottom_margin, 0);
render_priv->track = track;
render_priv->time = now;