Mercurial > libavcodec.hg
changeset 3614:d0310d1cce13 libavcodec
optimize reorder_block() though this function seems to be executed too rarely for this to make much difference
author | michael |
---|---|
date | Thu, 24 Aug 2006 08:40:09 +0000 |
parents | 5cb45b2211a0 |
children | 7963ceb93083 |
files | mpegaudiodec.c |
diffstat | 1 files changed, 9 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mpegaudiodec.c Thu Aug 24 08:39:07 2006 +0000 +++ b/mpegaudiodec.c Thu Aug 24 08:40:09 2006 +0000 @@ -1776,7 +1776,7 @@ complicated */ static void reorder_block(MPADecodeContext *s, GranuleDef *g) { - int i, j, k, len; + int i, j, len; int32_t *ptr, *dst, *ptr1; int32_t tmp[576]; @@ -1796,14 +1796,15 @@ for(i=g->short_start;i<13;i++) { len = band_size_short[s->sample_rate_index][i]; ptr1 = ptr; - for(k=0;k<3;k++) { - dst = tmp + k; - for(j=len;j>0;j--) { - *dst = *ptr++; - dst += 3; - } + dst = tmp; + for(j=len;j>0;j--) { + *dst++ = ptr[0*len]; + *dst++ = ptr[1*len]; + *dst++ = ptr[2*len]; + ptr++; } - memcpy(ptr1, tmp, len * 3 * sizeof(int32_t)); + ptr+=2*len; + memcpy(ptr1, tmp, len * 3 * sizeof(*ptr1)); } }