From: Grigori Goronzy Date: Tue, 30 Jun 2009 11:10:03 +0000 (+0200) Subject: Fix karaoke (\kf) timing X-Git-Tag: 0.9.7~74 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1023e87ea247c893c0483c508dd6c59e3680b2d7;p=libass 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. --- 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); } } }