summaryrefslogtreecommitdiffstats
path: root/libass/ass_render.c
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-04-27 14:18:44 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-04-27 14:18:44 +0000
commit13156cd7946705c89ad04edba05c6434d1675e46 (patch)
tree33438a693a1131a37dfd7f46cd3e41c861171411 /libass/ass_render.c
parent7b5e1f893995f2086b1c8b2fe102ddb77da230d8 (diff)
downloadmpv-13156cd7946705c89ad04edba05c6434d1675e46.tar.bz2
mpv-13156cd7946705c89ad04edba05c6434d1675e46.tar.xz
Fix division by zero in "\t" parsing.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23151 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass_render.c')
-rw-r--r--libass/ass_render.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index e499770bca..f69c0c9518 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