[FFmpeg-devel,3/4] avcodec/ivi: Only clip samples when needed in ivi_output_plane()

Submitted by Michael Niedermayer on Aug. 4, 2018, 12:58 a.m.

Details

Message ID 20180804005833.16836-3-michael@niedermayer.cc
State Accepted
Commit 82920bf49434d14ed0144319f785cc74a1534fc5
Headers show

Commit Message

Michael Niedermayer Aug. 4, 2018, 12:58 a.m.
435740 -> 396078 dezicycles

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavcodec/ivi.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/libavcodec/ivi.c b/libavcodec/ivi.c
index cea40d82ca..ebb7f03007 100644
--- a/libavcodec/ivi.c
+++ b/libavcodec/ivi.c
@@ -913,8 +913,15 @@  static void ivi_output_plane(IVIPlaneDesc *plane, uint8_t *dst, ptrdiff_t dst_pi
         return;
 
     for (y = 0; y < plane->height; y++) {
-        for (x = 0; x < plane->width; x++)
-            dst[x] = av_clip_uint8(src[x] + 128);
+        int m = 0;
+        for (x = 0; x < plane->width; x++) {
+            int t = src[x] + 128;
+            dst[x] = t;
+            m |= t;
+        }
+        if (m & ~255)
+            for (x = 0; x < plane->width; x++)
+                dst[x] = av_clip_uint8(src[x] + 128);
         src += pitch;
         dst += dst_pitch;
     }