summaryrefslogtreecommitdiff
path: root/apps/codecs/Tremor/window.c
diff options
context:
space:
mode:
authorPedro Vasconcelos <pbv@rockbox.org>2005-05-27 09:14:00 +0000
committerPedro Vasconcelos <pbv@rockbox.org>2005-05-27 09:14:00 +0000
commit024db0a766f9590baea73babfefff278c28a5b2c (patch)
tree27e5e27e056cd0b988c2e6af7e575fe974f88035 /apps/codecs/Tremor/window.c
parent38413489305efad4f682534f92c5daa031f5440a (diff)
downloadrockbox-024db0a766f9590baea73babfefff278c28a5b2c.zip
rockbox-024db0a766f9590baea73babfefff278c28a5b2c.tar.gz
rockbox-024db0a766f9590baea73babfefff278c28a5b2c.tar.bz2
rockbox-024db0a766f9590baea73babfefff278c28a5b2c.tar.xz
Basic optimizations of the Vorbis decoder for the ihp-1x0.
Capable of real-time decoding with cpu freq at 120mhz. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6527 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/Tremor/window.c')
-rw-r--r--apps/codecs/Tremor/window.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/apps/codecs/Tremor/window.c b/apps/codecs/Tremor/window.c
index b50e36f..b447ce5 100644
--- a/apps/codecs/Tremor/window.c
+++ b/apps/codecs/Tremor/window.c
@@ -56,7 +56,6 @@ const void *_vorbis_window(int type, int left){
void _vorbis_apply_window(ogg_int32_t *d,const void *window_p[2],
long *blocksizes,
int lW,int W,int nW){
-
LOOKUP_T *window[2]={window_p[0],window_p[1]};
long n=blocksizes[W];
long ln=blocksizes[lW];
@@ -67,7 +66,14 @@ void _vorbis_apply_window(ogg_int32_t *d,const void *window_p[2],
long rightbegin=n/2+n/4-rn/4;
long rightend=rightbegin+rn/2;
-
+
+#if CONFIG_CPU == MCF5249
+ mcf5249_init_mac(); /* shouldn't be needed, but just in case */
+ mcf5249_vect_zero(&d[0], leftbegin);
+ mcf5249_vect_mult_fw(&d[leftbegin], &window[lW][0], leftend-leftbegin);
+ mcf5249_vect_mult_bw(&d[rightbegin], &window[nW][rn/2-1], rightend-rightbegin);
+ mcf5249_vect_zero(&d[rightend], n-rightend);
+#else
int i,p;
for(i=0;i<leftbegin;i++)
@@ -81,4 +87,6 @@ void _vorbis_apply_window(ogg_int32_t *d,const void *window_p[2],
for(;i<n;i++)
d[i]=0;
+#endif
}
+