]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7550 quick and dirty tweak for overlay, maybe need furthur tweaks but this should...
authorSeven Du <dujinfang@gmail.com>
Fri, 15 May 2015 23:22:23 +0000 (07:22 +0800)
committerMichael Jerris <mike@jerris.com>
Thu, 28 May 2015 17:47:32 +0000 (12:47 -0500)
src/switch_core_video.c

index 4512abae8fb145abc14a6287f86de519714360d7..8cb6f320aa93d9a932e96ae589afe3dff0a628e6 100644 (file)
@@ -480,9 +480,15 @@ SWITCH_DECLARE(void) switch_img_overlay(switch_image_t *IMG, switch_image_t *img
                        switch_img_get_rgb_pixel(IMG, &RGB, x + j, i);
                        switch_img_get_rgb_pixel(img, &rgb, j + xoff, i - y + yoff);
 
-                       c.r = ((RGB.r * (255 - alpha)) >> 8) + ((rgb.r * alpha) >> 8);
-                       c.g = ((RGB.g * (255 - alpha)) >> 8) + ((rgb.g * alpha) >> 8);
-                       c.b = ((RGB.b * (255 - alpha)) >> 8) + ((rgb.b * alpha) >> 8);
+                       if (rgb.a > 0) {
+                               c.r = ((RGB.r * (255 - alpha)) >> 8) + ((rgb.r * alpha) >> 8);
+                               c.g = ((RGB.g * (255 - alpha)) >> 8) + ((rgb.g * alpha) >> 8);
+                               c.b = ((RGB.b * (255 - alpha)) >> 8) + ((rgb.b * alpha) >> 8);
+                       } else {
+                               c.r = RGB.r;
+                               c.g = RGB.g;
+                               c.b = RGB.b;
+                       }
 
                        switch_img_draw_pixel(IMG, x + j, i, &c);
                }