Mercurial > libavcodec.hg
comparison mpegaudiodec.c @ 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 | 270790578711 |
comparison
equal
deleted
inserted
replaced
| 3613:5cb45b2211a0 | 3614:d0310d1cce13 |
|---|---|
| 1774 /* Reorder short blocks from bitstream order to interleaved order. It | 1774 /* Reorder short blocks from bitstream order to interleaved order. It |
| 1775 would be faster to do it in parsing, but the code would be far more | 1775 would be faster to do it in parsing, but the code would be far more |
| 1776 complicated */ | 1776 complicated */ |
| 1777 static void reorder_block(MPADecodeContext *s, GranuleDef *g) | 1777 static void reorder_block(MPADecodeContext *s, GranuleDef *g) |
| 1778 { | 1778 { |
| 1779 int i, j, k, len; | 1779 int i, j, len; |
| 1780 int32_t *ptr, *dst, *ptr1; | 1780 int32_t *ptr, *dst, *ptr1; |
| 1781 int32_t tmp[576]; | 1781 int32_t tmp[576]; |
| 1782 | 1782 |
| 1783 if (g->block_type != 2) | 1783 if (g->block_type != 2) |
| 1784 return; | 1784 return; |
| 1794 } | 1794 } |
| 1795 | 1795 |
| 1796 for(i=g->short_start;i<13;i++) { | 1796 for(i=g->short_start;i<13;i++) { |
| 1797 len = band_size_short[s->sample_rate_index][i]; | 1797 len = band_size_short[s->sample_rate_index][i]; |
| 1798 ptr1 = ptr; | 1798 ptr1 = ptr; |
| 1799 for(k=0;k<3;k++) { | 1799 dst = tmp; |
| 1800 dst = tmp + k; | 1800 for(j=len;j>0;j--) { |
| 1801 for(j=len;j>0;j--) { | 1801 *dst++ = ptr[0*len]; |
| 1802 *dst = *ptr++; | 1802 *dst++ = ptr[1*len]; |
| 1803 dst += 3; | 1803 *dst++ = ptr[2*len]; |
| 1804 } | 1804 ptr++; |
| 1805 } | 1805 } |
| 1806 memcpy(ptr1, tmp, len * 3 * sizeof(int32_t)); | 1806 ptr+=2*len; |
| 1807 memcpy(ptr1, tmp, len * 3 * sizeof(*ptr1)); | |
| 1807 } | 1808 } |
| 1808 } | 1809 } |
| 1809 | 1810 |
| 1810 #define ISQRT2 FIXR(0.70710678118654752440) | 1811 #define ISQRT2 FIXR(0.70710678118654752440) |
| 1811 | 1812 |
