avcodec/ivi: Only clip samples when needed in ivi_output_plane()

435740 -> 396078 dezicycles

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
pull/293/merge
Michael Niedermayer 7 years ago
parent 6d8a289c98
commit 82920bf494
  1. 11
      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;
}

Loading…
Cancel
Save