diff --git a/libavfilter/tests/drawvg.c b/libavfilter/tests/drawvg.c index 2d151bf4d2..9fb233d969 100644 --- a/libavfilter/tests/drawvg.c +++ b/libavfilter/tests/drawvg.c @@ -167,7 +167,7 @@ void cairo_set_source(cairo_t *cr, cairo_pattern_t *source) { printf("%s", __func__); #define PRINT_COLOR(prefix) \ - printf(prefix "#%02x%02x%02x%02x", (int)(r*255), (int)(g*255), (int)(b*255), (int)(a*255)) + printf(prefix "#%02lx%02lx%02lx%02lx", lround(r*255), lround(g*255), lround(b*255), lround(a*255)) switch (cairo_pattern_get_type(source)) { case CAIRO_PATTERN_TYPE_SOLID: diff --git a/libavfilter/vf_drawvg.c b/libavfilter/vf_drawvg.c index fd9270ee13..5d3008084c 100644 --- a/libavfilter/vf_drawvg.c +++ b/libavfilter/vf_drawvg.c @@ -1981,7 +1981,7 @@ static int vgs_eval( b = numerics[3]; } - #define C(v, o) ((uint32_t)(av_clipd(v, 0, 1) * 255) << o) + #define C(v, o) ((uint32_t)lround(av_clipd(v, 0, 1) * 255) << o) state->vars[user_var] = (double)( C(r, 24) diff --git a/tests/ref/fate/filter-drawvg-interpreter b/tests/ref/fate/filter-drawvg-interpreter index 21c6ccd848..3fc33e9c07 100644 --- a/tests/ref/fate/filter-drawvg-interpreter +++ b/tests/ref/fate/filter-drawvg-interpreter @@ -64,16 +64,16 @@ cairo_set_dash [ -1.0 ] 4.0 cairo_set_dash [ ] 0.0 cairo_move_to 1.0 2.0 cairo_rel_line_to -1.0 -2.0 -cairo_set_source #19334c66 +cairo_set_source #1a334d66 cairo_set_fill_rule 0 cairo_fill -cairo_set_source #475b3d66 +cairo_set_source #475c3d66 cairo_set_fill_rule 0 cairo_fill -cairo_set_source #7f99b2cc +cairo_set_source #8099b3cc cairo_set_fill_rule 0 cairo_fill -cairo_set_source #a8d7efe5 +cairo_set_source #a8d8f0e6 cairo_set_fill_rule 0 cairo_fill cairo_rel_line_to 1.0 3.0