53 memset(info,0,
sizeof(*info));
59 vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
64 if(look->linearmap[0])
_ogg_free(look->linearmap[0]);
65 if(look->linearmap[1])
_ogg_free(look->linearmap[1]);
69 memset(look,0,
sizeof(*look));
86 if(info->
order<1)
goto err_out;
87 if(info->
rate<1)
goto err_out;
88 if(info->
barkmap<1)
goto err_out;
114 vorbis_look_floor0 *look){
115 if(!look->linearmap[vb->
W]){
134 look->linearmap[W]=
_ogg_malloc((n+1)*
sizeof(**look->linearmap));
138 if(val>=look->ln)val=look->ln-1;
139 look->linearmap[W][
j]=
val;
141 look->linearmap[W][
j]=-1;
149 vorbis_look_floor0 *look=
_ogg_calloc(1,
sizeof(*look));
154 look->linearmap=
_ogg_calloc(2,
sizeof(*look->linearmap));
160 vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
166 long maxval=(1<<info->
ampbits)-1;
167 float amp=(float)ampraw/maxval*info->
ampdB;
170 if(booknum!=-1 && booknum<info->numbooks){
180 for(j=0;j<look->m;j+=b->
dim)
183 for(k=0;k<b->
dim;k++,j++)lsp[j]+=last;
196 void *memo,
float *out){
197 vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
203 float *lsp=(
float *)memo;
204 float amp=lsp[look->m];
208 look->linearmap[vb->
W],
211 lsp,look->m,amp,(
float)info->
ampdB);
214 memset(out,0,
sizeof(*out)*look->n[vb->
W]);
GLuint const GLfloat * val
static void floor0_map_lazy_init(vorbis_block *vb, vorbis_info_floor *infoX, vorbis_look_floor0 *look)
static_codebook * book_param[256]
static vorbis_info_floor * floor0_unpack(vorbis_info *vi, oggpack_buffer *opb)
static void floor0_free_look(vorbis_look_floor *i)
void vorbis_lsp_to_curve(float *curve, int *map, int n, int ln, float *lsp, int m, float amp, float ampoffset)
const vorbis_func_floor floor0_exportbundle
int _ilog(unsigned int v)
GLenum GLenum GLenum GLenum GLenum scale
static vorbis_look_floor * floor0_look(vorbis_dsp_state *vd, vorbis_info_floor *i)
GLdouble GLdouble GLdouble b
static int floor0_inverse2(vorbis_block *vb, vorbis_look_floor *i, void *memo, float *out)
static void * floor0_inverse1(vorbis_block *vb, vorbis_look_floor *i)
long oggpack_read(oggpack_buffer *b, int bits)
static void floor0_free_info(vorbis_info_floor *i)
long vorbis_book_decodev_set(codebook *book, float *a, oggpack_buffer *b, int n)
void * _vorbis_block_alloc(vorbis_block *vb, long bytes)