diff options
Diffstat (limited to 'apps/codecs/Tremor/codebook.c')
-rw-r--r-- | apps/codecs/Tremor/codebook.c | 13 |
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 | ||
143 | static ogg_uint32_t bitreverse(ogg_uint32_t x){ | 143 | static 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++; |