diff options
author | Tim Terriberry <tterribe@xiph.org> | 2010-10-14 01:40:12 +0000 |
---|---|---|
committer | Tim Terriberry <tterribe@xiph.org> | 2010-10-14 01:40:12 +0000 |
commit | ef2706e74d56091ba18bb111448be35ba342a94b (patch) | |
tree | e0f721b9c3f3fe528c170c5910d319045ca87d4d | |
parent | cffec5374b06db0e3052879234e1350dfaf8c246 (diff) | |
download | tremor-ef2706e74d56091ba18bb111448be35ba342a94b.tar.gz |
Port r17177 from libvorbis.
r16328 (committed in Tremor as r17526) broke chaining by causing
vorbis_synthesis_init() to fail on a second call.
git-svn-id: https://svn.xiph.org/trunk/Tremor@17531 0101bb08-14d6-0310-b084-bc0e0c8e3800
-rw-r--r-- | block.c | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -161,16 +161,17 @@ static int _vds_init(vorbis_dsp_state *v,vorbis_info *vi){ b->window[1]=_vorbis_window(0,ci->blocksizes[1]/2); /* finish the codebooks */ - if(!ci->fullbooks) + if(!ci->fullbooks){ ci->fullbooks=(codebook *)_ogg_calloc(ci->books,sizeof(*ci->fullbooks)); - for(i=0;i<ci->books;i++){ - if(ci->book_param[i]==NULL) - goto abort_books; - if(vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i])) - goto abort_books; - /* decode codebooks are now standalone after init */ - vorbis_staticbook_destroy(ci->book_param[i]); - ci->book_param[i]=NULL; + for(i=0;i<ci->books;i++){ + if(ci->book_param[i]==NULL) + goto abort_books; + if(vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i])) + goto abort_books; + /* decode codebooks are now standalone after init */ + vorbis_staticbook_destroy(ci->book_param[i]); + ci->book_param[i]=NULL; + } } v->pcm_storage=ci->blocksizes[1]; |