[FFmpeg-cvslog] swscale: Fix rounding in yuv2mono_1_c_template()

Michael Niedermayer git at videolan.org
Tue Feb 14 21:36:55 CET 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Tue Feb 14 19:34:17 2012 +0100| [ef96bf294d8dd7064dbc01e81fc5dc9c9e7c6d86] | committer: Michael Niedermayer

swscale: Fix rounding in yuv2mono_1_c_template()

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

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

diff --git a/libswscale/output.c b/libswscale/output.c
index 90e284e..658ee2c 100644
--- a/libswscale/output.c
+++ b/libswscale/output.c
@@ -378,14 +378,14 @@ yuv2mono_1_c_template(SwsContext *c, const int16_t *buf0,
     int i;
 
     for (i = 0; i < dstW - 7; i += 8) {
-        int acc =    g[(buf0[i    ] >> 7) + d128[0]];
-        acc += acc + g[(buf0[i + 1] >> 7) + d128[1]];
-        acc += acc + g[(buf0[i + 2] >> 7) + d128[2]];
-        acc += acc + g[(buf0[i + 3] >> 7) + d128[3]];
-        acc += acc + g[(buf0[i + 4] >> 7) + d128[4]];
-        acc += acc + g[(buf0[i + 5] >> 7) + d128[5]];
-        acc += acc + g[(buf0[i + 6] >> 7) + d128[6]];
-        acc += acc + g[(buf0[i + 7] >> 7) + d128[7]];
+        int acc =    g[((buf0[i    ] + 64) >> 7) + d128[0]];
+        acc += acc + g[((buf0[i + 1] + 64) >> 7) + d128[1]];
+        acc += acc + g[((buf0[i + 2] + 64) >> 7) + d128[2]];
+        acc += acc + g[((buf0[i + 3] + 64) >> 7) + d128[3]];
+        acc += acc + g[((buf0[i + 4] + 64) >> 7) + d128[4]];
+        acc += acc + g[((buf0[i + 5] + 64) >> 7) + d128[5]];
+        acc += acc + g[((buf0[i + 6] + 64) >> 7) + d128[6]];
+        acc += acc + g[((buf0[i + 7] + 64) >> 7) + d128[7]];
         output_pixel(*dest++, acc);
     }
 }



More information about the ffmpeg-cvslog mailing list