[FFmpeg-cvslog] Fix alpha overflow when converting from RGBA64 to RGBA.

Michael Niedermayer git at videolan.org
Sun Mar 4 13:45:53 CET 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Mar  4 13:42:16 2012 +0100| [4a9f466b997e0c44d1e304a7a9c5d5de0b0868c7] | committer: Carl Eugen Hoyos

Fix alpha overflow when converting from RGBA64 to RGBA.

Fixes converting the sample from ticket #503 to 32bit RGB.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4a9f466b997e0c44d1e304a7a9c5d5de0b0868c7
---

 libswscale/output.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libswscale/output.c b/libswscale/output.c
index cae2c31..de41f77 100644
--- a/libswscale/output.c
+++ b/libswscale/output.c
@@ -1040,8 +1040,8 @@ yuv2rgb_1_c_template(SwsContext *c, const int16_t *buf0,
                        *b =  c->table_bU[U + YUVRGB_TABLE_HEADROOM];
 
             if (hasAlpha) {
-                A1 = (abuf0[i * 2    ] + 64) >> 7;
-                A2 = (abuf0[i * 2 + 1] + 64) >> 7;
+                A1 = abuf0[i * 2    ] * 255 + 16384 >> 15;
+                A2 = abuf0[i * 2 + 1] * 255 + 16384 >> 15;
             }
 
             yuv2rgb_write(dest, i, Y1, Y2, hasAlpha ? A1 : 0, hasAlpha ? A2 : 0,



More information about the ffmpeg-cvslog mailing list