Monty
svn path=/trunk/vorbis/; revision=165
free(vb->pcm[i]);
free(vb->pcm);
}
free(vb->pcm[i]);
free(vb->pcm);
}
+ if(vb->lpc){
+ for(i=0;i<vb->floor_channels;i++)
+ free(vb->lpc[i]);
+ free(vb->lpc);
+ }
+ if(vb->lsp){
+ for(i=0;i<vb->floor_channels;i++)
+ free(vb->lsp[i]);
+ free(vb->lsp);
+ }
+ if(vb->amp)free(vb->amp);
if(vb->vd)
if(vb->vd->analysisp)
_oggpack_writeclear(&vb->opb);
if(vb->vd)
if(vb->vd->analysisp)
_oggpack_writeclear(&vb->opb);
/* extract the initial header from the first page and verify that the
Ogg bitstream is in fact Vorbis data */
/* extract the initial header from the first page and verify that the
Ogg bitstream is in fact Vorbis data */
vorbis_info_init(vi);
i=0;
vorbis_info_init(vi);
i=0;
+ ogg_stream_clear(&vf->os);
- vf->vi=malloc(vf->links*sizeof(vorbis_info));
+ vf->vi=calloc(vf->links,sizeof(vorbis_info));
vf->dataoffsets=malloc(vf->links*sizeof(long));
vf->pcmlengths=malloc(vf->links*sizeof(size64));
vf->serialnos=malloc(vf->links*sizeof(long));
vf->dataoffsets=malloc(vf->links*sizeof(long));
vf->pcmlengths=malloc(vf->links*sizeof(size64));
vf->serialnos=malloc(vf->links*sizeof(long));
ogg_page og;
/* is this even vorbis...? */
ogg_page og;
/* is this even vorbis...? */
+ memset(&initial,0,sizeof(vorbis_info));
ret=_fetch_headers(vf,&initial,&serialno);
dataoffset=vf->offset;
ogg_stream_clear(&vf->os);
ret=_fetch_headers(vf,&initial,&serialno);
dataoffset=vf->offset;
ogg_stream_clear(&vf->os);
}
_seek_helper(vf,bisect);
}
_seek_helper(vf,bisect);
- ret=_get_next_page(vf,&og,-1);
+ ret=_get_next_page(vf,&og,end-bisect);
if(ret==-1){
end=bisect;
}else{
size64 frameno=ogg_page_frameno(&og);
if(ret==-1){
end=bisect;
}else{
size64 frameno=ogg_page_frameno(&og);
- if(ogg_page_serialno(&og)==vf->serialnos[link] && frameno<target){
best=ret; /* raw offset of packet with frameno */
begin=vf->offset; /* raw offset of next packet */
}else{
best=ret; /* raw offset of packet with frameno */
begin=vf->offset; /* raw offset of next packet */
}else{