]> granicus.if.org Git - libass/commitdiff
Fix alpha calculation in some cases
authorGrigori Goronzy <greg@blackbox>
Fri, 2 Oct 2009 02:12:03 +0000 (04:12 +0200)
committerGrigori Goronzy <greg@blackbox>
Fri, 2 Oct 2009 02:14:47 +0000 (04:14 +0200)
Picked up from XBMC svn.  This should especially fix MPlayer's direct3d
video output (untested).

libass/ass_parse.c

index 535e16f4b47b438cdff3ac2c82e7a94029d8a2fa..8c43d0b5a10ce1d5cac51e7f480c7fffbf791594 100644 (file)
@@ -163,8 +163,8 @@ static void change_color(uint32_t *var, uint32_t new, double pwr)
 inline void change_alpha(uint32_t *var, uint32_t new, double pwr)
 {
     *var =
-        (_r(*var) << 24) + (_g(*var) << 16) + (_b(*var) << 8) +
-        (_a(*var) * (1 - pwr) + _a(new) * pwr);
+        (uint32_t) (_r(*var) << 24) + (_g(*var) << 16) + (_b(*var) << 8) +
+        (uint32_t) (_a(*var) * (1 - pwr) + _a(new) * pwr);
 }
 
 /**