diff options
author | Grigori Goronzy <greg@blackbox> | 2011-06-06 22:18:06 +0200 |
---|---|---|
committer | Grigori Goronzy <greg@blackbox> | 2011-06-06 23:14:12 +0200 |
commit | 07ce715629e3b5b39e4a4def724d649222f53f2f (patch) | |
tree | 2938a50ca742a064b9a49829613b401e4d8095fc /libass/ass.c | |
parent | c6e1dca7d0baae3f3324c722624e337a3e417f65 (diff) | |
download | libass-07ce715629e3b5b39e4a4def724d649222f53f2f.tar.bz2 libass-07ce715629e3b5b39e4a4def724d649222f53f2f.tar.xz |
refactor: move track init into ass track parser
Diffstat (limited to 'libass/ass.c')
-rw-r--r-- | libass/ass.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/libass/ass.c b/libass/ass.c index bdf24994..e262cc30 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); + } + } +} |