Mercurial > mplayer.hg
comparison libass/ass_render.c @ 23133:0574817cc6cb
Fix division by zero in "\t" parsing.
author | eugeni |
---|---|
date | Fri, 27 Apr 2007 14:18:44 +0000 |
parents | 778394a078ba |
children | 1de2a46a0987 |
comparison
equal
deleted
inserted
replaced
23132:d5db3f1f79b1 | 23133:0574817cc6cb |
---|---|
927 t2 = v2; | 927 t2 = v2; |
928 delta_t = v2 - v1; | 928 delta_t = v2 - v1; |
929 if (v3 < 0.) | 929 if (v3 < 0.) |
930 v3 = 0.; | 930 v3 = 0.; |
931 t = frame_context.time - render_context.event->Start; // FIXME: move to render_context | 931 t = frame_context.time - render_context.event->Start; // FIXME: move to render_context |
932 if (t < t1) | 932 if (t <= t1) |
933 k = 0.; | 933 k = 0.; |
934 else if (t > t2) | 934 else if (t >= t2) |
935 k = 1.; | 935 k = 1.; |
936 else k = pow(((double)(t - t1)) / delta_t, v3); | 936 else { |
937 assert(delta_t != 0.); | |
938 k = pow(((double)(t - t1)) / delta_t, v3); | |
939 } | |
937 while (*p == '\\') | 940 while (*p == '\\') |
938 p = parse_tag(p, k); // maybe k*pwr ? no, specs forbid nested \t's | 941 p = parse_tag(p, k); // maybe k*pwr ? no, specs forbid nested \t's |
939 skip_all(')'); // FIXME: better skip(')'), but much more tags support required | 942 skip_all(')'); // FIXME: better skip(')'), but much more tags support required |
940 } else if (mystrcmp(&p, "clip")) { | 943 } else if (mystrcmp(&p, "clip")) { |
941 int x0, y0, x1, y1; | 944 int x0, y0, x1, y1; |