********************************************************************
function: basic codebook pack/unpack/code/decode operations
- last mod: $Id: codebook.c,v 1.39 2002/06/28 22:19:35 xiphmont Exp $
+ last mod: $Id$
********************************************************************/
/* returns the number of bits ************************************************/
int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b){
+ if(a<0 || a>=book->c->entries)return(0);
oggpack_write(b,book->codelist[a],book->c->lengthlist[a]);
return(book->c->lengthlist[a]);
}
}
static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){
- char temp[]="Xiph.Org libVorbis I 20070621";
+ char temp[]="Xiph.Org libVorbis I 20070622";
int bytes = strlen(temp);
/* preamble */
}
}
- {
+ if(best>-1){
float *ptr=book->valuelist+best*dim;
for(i=0;i<dim;i++)
*a++ -= *ptr++;
int entry=local_book_besterror(book,vec+i*dim);
#ifdef TRAIN_RES
- acc[entry]++;
+ if(entry>0)
+ acc[entry]++;
#endif
-
+
bits+=vorbis_book_encode(book,entry,opb);
+
}
return(bits);