summaryrefslogtreecommitdiff
path: root/apps/codecs/libtremor/floor0.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libtremor/floor0.c')
-rw-r--r--apps/codecs/libtremor/floor0.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/apps/codecs/libtremor/floor0.c b/apps/codecs/libtremor/floor0.c
index 075bc36ef7..cd0a9f89f6 100644
--- a/apps/codecs/libtremor/floor0.c
+++ b/apps/codecs/libtremor/floor0.c
@@ -330,6 +330,8 @@ static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){
330 for(j=0;j<info->numbooks;j++){ 330 for(j=0;j<info->numbooks;j++){
331 info->books[j]=oggpack_read(opb,8); 331 info->books[j]=oggpack_read(opb,8);
332 if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out; 332 if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out;
333 if(ci->book_param[info->books[j]]->maptype==0)goto err_out;
334 if(ci->book_param[info->books[j]]->dim<1)goto err_out;
333 } 335 }
334 return(info); 336 return(info);
335 337
@@ -400,10 +402,9 @@ static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){
400 ogg_int32_t last=0; 402 ogg_int32_t last=0;
401 ogg_int32_t *lsp=(ogg_int32_t *)_vorbis_block_alloc(vb,sizeof(*lsp)*(look->m+1)); 403 ogg_int32_t *lsp=(ogg_int32_t *)_vorbis_block_alloc(vb,sizeof(*lsp)*(look->m+1));
402 404
403 for(j=0;j<look->m;j+=b->dim) 405 if(vorbis_book_decodev_set(b,lsp,&vb->opb,look->m,-24)==-1)goto eop;
404 if(vorbis_book_decodev_set(b,lsp+j,&vb->opb,b->dim,-24)==-1)goto eop;
405 for(j=0;j<look->m;){ 406 for(j=0;j<look->m;){
406 for(k=0;k<b->dim;k++,j++)lsp[j]+=last; 407 for(k=0;j<look->m && k<b->dim;k++,j++)lsp[j]+=last;
407 last=lsp[j-1]; 408 last=lsp[j-1];
408 } 409 }
409 410