diff options
Diffstat (limited to 'libass/ass_parse.c')
-rw-r--r-- | libass/ass_parse.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libass/ass_parse.c b/libass/ass_parse.c index 274d84de..92a47b3a 100644 --- a/libass/ass_parse.c +++ b/libass/ass_parse.c @@ -190,17 +190,18 @@ interpolate_alpha(long long now, long long t1, long long t2, long long t3, { unsigned a; double cf; - if (now <= t1) { + + if (now < t1) { a = a1; } else if (now >= t4) { a = a3; - } else if (now < t2) { // and > t1 + } else if (now < t2 && t2 > t1) { cf = ((double) (now - t1)) / (t2 - t1); a = a1 * (1 - cf) + a2 * cf; - } else if (now > t3) { + } else if (now >= t3 && t4 > t3) { cf = ((double) (now - t3)) / (t4 - t3); a = a2 * (1 - cf) + a3 * cf; - } else { // t2 <= now <= t3 + } else { // t2 <= now < t3 a = a2; } |