diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-04-27 14:18:44 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-04-27 14:18:44 +0000 |
commit | 13d73e231d48da28459f1be4d7a274e4b38ed553 (patch) | |
tree | 45e3ecb5d73506dc65d500e2429ef76e01933e84 | |
parent | b95a3ee1b5f11a2629ce05ab86e5926d6ff1e5b0 (diff) | |
download | libass-13d73e231d48da28459f1be4d7a274e4b38ed553.tar.bz2 libass-13d73e231d48da28459f1be4d7a274e4b38ed553.tar.xz |
Fix division by zero in "\t" parsing.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23151 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libass/ass_render.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index e499770b..f69c0c95 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -929,11 +929,14 @@ static char* parse_tag(char* p, double pwr) { if (v3 < 0.) v3 = 0.; t = frame_context.time - render_context.event->Start; // FIXME: move to render_context - if (t < t1) + if (t <= t1) k = 0.; - else if (t > t2) + else if (t >= t2) k = 1.; - else k = pow(((double)(t - t1)) / delta_t, v3); + else { + assert(delta_t != 0.); + k = pow(((double)(t - t1)) / delta_t, v3); + } while (*p == '\\') p = parse_tag(p, k); // maybe k*pwr ? no, specs forbid nested \t's skip_all(')'); // FIXME: better skip(')'), but much more tags support required |