diff options
author | Grigori Goronzy <greg@blackbox> | 2009-06-30 13:10:03 +0200 |
---|---|---|
committer | Grigori Goronzy <greg@blackbox> | 2009-06-30 13:10:03 +0200 |
commit | 1023e87ea247c893c0483c508dd6c59e3680b2d7 (patch) | |
tree | 76ef226854ca6a7a531dda6ea08a1fa9020a24cf | |
parent | 41bc5c4b00b2d975558d204a072a4d72f98a681b (diff) | |
download | libass-1023e87ea247c893c0483c508dd6c59e3680b2d7.tar.bz2 libass-1023e87ea247c893c0483c508dd6c59e3680b2d7.tar.xz |
Fix karaoke (\kf) timing
The timing for the \kf karaoke which gradually fills the character from
left to right, uses clipping and isn't aware of subpixel accuracy. This
is simply fixed by casting these value to int.
-rw-r--r-- | libass/ass_render.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index df695ea..fd790f7 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -2142,8 +2142,8 @@ static void process_karaoke_effects(ass_renderer_t *render_priv) x_start = 1000000; x_end = -1000000; for (cur2 = s1; cur2 <= e1; ++cur2) { - x_start = FFMIN(x_start, cur2->bbox.xMin + cur2->pos.x); - x_end = FFMAX(x_end, cur2->bbox.xMax + cur2->pos.x); + x_start = FFMIN(x_start, d6_to_int(cur2->bbox.xMin + cur2->pos.x)); + x_end = FFMAX(x_end, d6_to_int(cur2->bbox.xMax + cur2->pos.x)); } dt = (tm_current - tm_start); @@ -2164,7 +2164,7 @@ static void process_karaoke_effects(ass_renderer_t *render_priv) for (cur2 = s1; cur2 <= e1; ++cur2) { cur2->effect_type = s1->effect_type; - cur2->effect_timing = x - cur2->pos.x; + cur2->effect_timing = x - d6_to_int(cur2->pos.x); } } } |