From b74f70d64699907717ec1620f683d31840a9e4e3 Mon Sep 17 00:00:00 2001 From: Jason Garrett-Glaser Date: Fri, 23 Jul 2010 00:05:44 +0000 Subject: [PATCH] VP8: avoid a memset for non-i4x4 blocks with no coefficients Originally committed as revision 24447 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vp8.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c index e21e810caa..30a4c7d80a 100644 --- a/libavcodec/vp8.c +++ b/libavcodec/vp8.c @@ -970,6 +970,9 @@ static void intra_predict(VP8Context *s, uint8_t *dst[3], VP8Macroblock *mb, tr_right = (uint8_t *)&tr; } + if (mb->skip) + AV_ZERO128(s->non_zero_count_cache); + for (y = 0; y < 4; y++) { uint8_t *topright = ptr + 4 - s->linesize; for (x = 0; x < 4; x++) { @@ -1500,10 +1503,6 @@ static int vp8_decode_frame(AVCodecContext *avctx, void *data, int *data_size, if (!mb->skip) decode_mb_coeffs(s, c, mb, s->top_nnz[mb_x], s->left_nnz); - else { - AV_ZERO128(s->non_zero_count_cache); // luma - AV_ZERO64(s->non_zero_count_cache[4]); // chroma - } if (mb->mode <= MODE_I4x4) intra_predict(s, dst, mb, intra4x4_mb, mb_x, mb_y);