diff options
author | Michael Niedermayer | 2018-08-04 02:31:58 +0200 |
---|---|---|
committer | Michael Niedermayer | 2018-08-12 21:48:11 +0200 |
commit | 82920bf49434d14ed0144319f785cc74a1534fc5 (patch) | |
tree | 70f264784936bddcbc7ac0acb993f3736b9a355a /libavcodec/ivi.c | |
parent | 6d8a289c98b80ddf596028ccae73cbc3c53dc7cf (diff) |
avcodec/ivi: Only clip samples when needed in ivi_output_plane()
435740 -> 396078 dezicycles
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/ivi.c')
-rw-r--r-- | libavcodec/ivi.c | 11 |
1 files changed, 9 insertions, 2 deletions
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; } |