summaryrefslogtreecommitdiffstats
path: root/libass
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-11-13 16:49:32 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-11-13 16:49:32 +0000
commit656bde87fa9adfe6539b791042054097c1bcc79d (patch)
tree20a7d800fb9bcbdf325bf5f53da71251bc600cc8 /libass
parent4a27cb5876b089ce1796da38b90c29a4009e2648 (diff)
downloadmpv-656bde87fa9adfe6539b791042054097c1bcc79d.tar.bz2
mpv-656bde87fa9adfe6539b791042054097c1bcc79d.tar.xz
Support \t with acceleration.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20891 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass')
-rw-r--r--libass/ass_render.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index 614b4c1518..68346e81fb 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -906,12 +906,14 @@ static char* parse_tag(char* p, double pwr) {
t1 = v1;
t2 = v2;
delta_t = v2 - v1;
+ if (v3 < 0.)
+ v3 = 0.;
t = frame_context.time - render_context.event->Start; // FIXME: move to render_context
if (t < t1)
k = 0.;
else if (t > t2)
k = 1.;
- else k = ((double)(t - t1)) / delta_t;
+ else 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