summaryrefslogtreecommitdiff
path: root/apps/codecs/Tremor/codebook.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/Tremor/codebook.c')
-rw-r--r--apps/codecs/Tremor/codebook.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/apps/codecs/Tremor/codebook.c b/apps/codecs/Tremor/codebook.c
index 4da7641553..f03b5efb04 100644
--- a/apps/codecs/Tremor/codebook.c
+++ b/apps/codecs/Tremor/codebook.c
@@ -140,7 +140,7 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){
140 be. The first-stage decode table catches most words so that 140 be. The first-stage decode table catches most words so that
141 bitreverse is not in the main execution path. */ 141 bitreverse is not in the main execution path. */
142 142
143static ogg_uint32_t bitreverse(ogg_uint32_t x){ 143static inline ogg_uint32_t bitreverse(register ogg_uint32_t x){
144 x= ((x>>16)&0x0000ffff) | ((x<<16)&0xffff0000); 144 x= ((x>>16)&0x0000ffff) | ((x<<16)&0xffff0000);
145 x= ((x>> 8)&0x00ff00ff) | ((x<< 8)&0xff00ff00); 145 x= ((x>> 8)&0x00ff00ff) | ((x<< 8)&0xff00ff00);
146 x= ((x>> 4)&0x0f0f0f0f) | ((x<< 4)&0xf0f0f0f0); 146 x= ((x>> 4)&0x0f0f0f0f) | ((x<< 4)&0xf0f0f0f0);
@@ -265,12 +265,13 @@ long vorbis_book_decodev_add(codebook *book,ogg_int32_t *a,
265 a[i++]+=t[j++]>>shift; 265 a[i++]+=t[j++]>>shift;
266 } 266 }
267 }else{ 267 }else{
268 shift = -shift;
268 for(i=0;i<n;){ 269 for(i=0;i<n;){
269 entry = decode_packed_entry_number(book,b); 270 entry = decode_packed_entry_number(book,b);
270 if(entry==-1)return(-1); 271 if(entry==-1)return(-1);
271 t = book->valuelist+entry*book->dim; 272 t = book->valuelist+entry*book->dim;
272 for (j=0;j<book->dim;) 273 for (j=0;j<book->dim;)
273 a[i++]+=t[j++]<<-shift; 274 a[i++]+=t[j++]<<shift;
274 } 275 }
275 } 276 }
276 return(0); 277 return(0);
@@ -293,13 +294,13 @@ long vorbis_book_decodev_set(codebook *book,ogg_int32_t *a,
293 } 294 }
294 } 295 }
295 }else{ 296 }else{
296 297 shift = -shift;
297 for(i=0;i<n;){ 298 for(i=0;i<n;){
298 entry = decode_packed_entry_number(book,b); 299 entry = decode_packed_entry_number(book,b);
299 if(entry==-1)return(-1); 300 if(entry==-1)return(-1);
300 t = book->valuelist+entry*book->dim; 301 t = book->valuelist+entry*book->dim;
301 for (j=0;j<book->dim;){ 302 for (j=0;j<book->dim;){
302 a[i++]=t[j++]<<-shift; 303 a[i++]=t[j++]<<shift;
303 } 304 }
304 } 305 }
305 } 306 }
@@ -330,14 +331,14 @@ long vorbis_book_decodevv_add(codebook *book,ogg_int32_t **a,
330 } 331 }
331 } 332 }
332 }else{ 333 }else{
333 334 shift = -shift;
334 for(i=offset;i<offset+n;){ 335 for(i=offset;i<offset+n;){
335 entry = decode_packed_entry_number(book,b); 336 entry = decode_packed_entry_number(book,b);
336 if(entry==-1)return(-1); 337 if(entry==-1)return(-1);
337 { 338 {
338 const ogg_int32_t *t = book->valuelist+entry*book->dim; 339 const ogg_int32_t *t = book->valuelist+entry*book->dim;
339 for (j=0;j<book->dim;j++){ 340 for (j=0;j<book->dim;j++){
340 a[chptr++][i]+=t[j]<<-shift; 341 a[chptr++][i]+=t[j]<<shift;
341 if(chptr==ch){ 342 if(chptr==ch){
342 chptr=0; 343 chptr=0;
343 i++; 344 i++;