# HG changeset patch # User cigaes # Date 1284837183 0 # Node ID 808e9d7eef5d03b3574b104b5bc2dbdfa2bac919 # Parent 8ebdc8466b2fbf8545dd57ff12d954476b6a2d73 vf_ass: skip alpha blending for pixels where alpha is zero. On a test case, it speeds up the blending of about 9%. diff -r 8ebdc8466b2f -r 808e9d7eef5d libmpcodecs/vf_ass.c --- a/libmpcodecs/vf_ass.c Sat Sep 18 17:40:14 2010 +0000 +++ b/libmpcodecs/vf_ass.c Sat Sep 18 19:13:03 2010 +0000 @@ -317,7 +317,10 @@ dstv = vf->priv->planes[2] + dst_x + dst_y * vf->priv->outw; for (i = 0; i < bitmap_h; ++i) { for (j = 0; j < bitmap_w; ++j) { - unsigned k = ((unsigned) src[j]) * opacity / 255; + unsigned k = src[j]; + if (!k) + continue; + k = k * opacity / 255; dsty[j] = (k * y + (255 - k) * dsty[j]) / 255; dstu[j] = (k * u + (255 - k) * dstu[j]) / 255; dstv[j] = (k * v + (255 - k) * dstv[j]) / 255;