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;