summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@blackbox>2011-06-06 22:18:06 +0200
committerGrigori Goronzy <greg@blackbox>2011-06-06 23:14:12 +0200
commit07ce715629e3b5b39e4a4def724d649222f53f2f (patch)
tree2938a50ca742a064b9a49829613b401e4d8095fc
parentc6e1dca7d0baae3f3324c722624e337a3e417f65 (diff)
downloadlibass-07ce715629e3b5b39e4a4def724d649222f53f2f.tar.bz2
libass-07ce715629e3b5b39e4a4def724d649222f53f2f.tar.xz
refactor: move track init into ass track parser
-rw-r--r--libass/ass.c33
-rw-r--r--libass/ass_render.c34
-rw-r--r--libass/ass_render.h3
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 */