From 07ce715629e3b5b39e4a4def724d649222f53f2f Mon Sep 17 00:00:00 2001 From: Grigori Goronzy Date: Mon, 6 Jun 2011 22:18:06 +0200 Subject: refactor: move track init into ass track parser --- libass/ass.c | 33 +++++++++++++++++++++++++++++++++ libass/ass_render.c | 34 +--------------------------------- libass/ass_render.h | 3 +++ 3 files changed, 37 insertions(+), 33 deletions(-) diff --git a/libass/ass.c b/libass/ass.c index bdf2499..e262cc3 100644 --- a/libass/ass.c +++ b/libass/ass.c @@ -1269,3 +1269,36 @@ ASS_Track *ass_new_track(ASS_Library *library) track->parser_priv = calloc(1, sizeof(ASS_ParserPriv)); return track; } + +/** + * \brief Prepare track for rendering + */ +void ass_lazy_track_init(ASS_Library *lib, ASS_Track *track) +{ + if (track->PlayResX && track->PlayResY) + return; + if (!track->PlayResX && !track->PlayResY) { + ass_msg(lib, MSGL_WARN, + "Neither PlayResX nor PlayResY defined. Assuming 384x288"); + track->PlayResX = 384; + track->PlayResY = 288; + } else { + if (!track->PlayResY && track->PlayResX == 1280) { + track->PlayResY = 1024; + ass_msg(lib, MSGL_WARN, + "PlayResY undefined, setting to %d", track->PlayResY); + } else if (!track->PlayResY) { + track->PlayResY = track->PlayResX * 3 / 4; + ass_msg(lib, MSGL_WARN, + "PlayResY undefined, setting to %d", track->PlayResY); + } else if (!track->PlayResX && track->PlayResY == 1024) { + track->PlayResX = 1280; + ass_msg(lib, MSGL_WARN, + "PlayResX undefined, setting to %d", track->PlayResX); + } else if (!track->PlayResX) { + track->PlayResX = track->PlayResY * 4 / 3; + ass_msg(lib, MSGL_WARN, + "PlayResX undefined, setting to %d", track->PlayResX); + } + } +} diff --git a/libass/ass_render.c b/libass/ass_render.c index ccd3629..e7de1a0 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -29,38 +29,6 @@ #define SUBPIXEL_MASK 63 #define SUBPIXEL_ACCURACY 7 -static void ass_lazy_track_init(ASS_Renderer *render_priv) -{ - ASS_Track *track = render_priv->track; - - if (track->PlayResX && track->PlayResY) - return; - if (!track->PlayResX && !track->PlayResY) { - ass_msg(render_priv->library, MSGL_WARN, - "Neither PlayResX nor PlayResY defined. Assuming 384x288"); - track->PlayResX = 384; - track->PlayResY = 288; - } else { - if (!track->PlayResY && track->PlayResX == 1280) { - track->PlayResY = 1024; - ass_msg(render_priv->library, MSGL_WARN, - "PlayResY undefined, setting to %d", track->PlayResY); - } else if (!track->PlayResY) { - track->PlayResY = track->PlayResX * 3 / 4; - ass_msg(render_priv->library, MSGL_WARN, - "PlayResY undefined, setting to %d", track->PlayResY); - } else if (!track->PlayResX && track->PlayResY == 1024) { - track->PlayResX = 1280; - ass_msg(render_priv->library, MSGL_WARN, - "PlayResX undefined, setting to %d", track->PlayResX); - } else if (!track->PlayResX) { - track->PlayResX = track->PlayResY * 4 / 3; - ass_msg(render_priv->library, MSGL_WARN, - "PlayResX undefined, setting to %d", track->PlayResX); - } - } -} - ASS_Renderer *ass_renderer_init(ASS_Library *library) { int error; @@ -2131,7 +2099,7 @@ ass_start_frame(ASS_Renderer *render_priv, ASS_Track *track, render_priv->track = track; render_priv->time = now; - ass_lazy_track_init(render_priv); + ass_lazy_track_init(render_priv->library, render_priv->track); render_priv->font_scale = settings_priv->font_size_coeff * render_priv->orig_height / render_priv->track->PlayResY; diff --git a/libass/ass_render.h b/libass/ass_render.h index 78c7339..db6d861 100644 --- a/libass/ass_render.h +++ b/libass/ass_render.h @@ -265,4 +265,7 @@ typedef struct { void reset_render_context(ASS_Renderer *render_priv); void ass_free_images(ASS_Image *img); +// XXX: this is actually in ass.c, includes should be fixed later on +void ass_lazy_track_init(ASS_Library *lib, ASS_Track *track); + #endif /* LIBASS_RENDER_H */ -- cgit v1.2.3