Update libvorbis from 1.3.4 to 1.3.5
This commit is contained in:
parent
d87bd792c3
commit
bba263d634
15 changed files with 342 additions and 263 deletions
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: PCM data vector blocking, windowing and dis/reassembly
|
||||
last mod: $Id: block.c 19031 2013-12-03 19:20:50Z tterribe $
|
||||
last mod: $Id: block.c 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
Handle windowing, overlap-add, etc of the PCM vectors. This is made
|
||||
more amusing by Vorbis' current two allowed block sizes.
|
||||
|
@ -31,16 +31,6 @@
|
|||
#include "registry.h"
|
||||
#include "misc.h"
|
||||
|
||||
static int ilog2(unsigned int v){
|
||||
int ret=0;
|
||||
if(v)--v;
|
||||
while(v){
|
||||
ret++;
|
||||
v>>=1;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
/* pcm accumulator examples (not exhaustive):
|
||||
|
||||
<-------------- lW ---------------->
|
||||
|
@ -184,14 +174,19 @@ static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){
|
|||
private_state *b=NULL;
|
||||
int hs;
|
||||
|
||||
if(ci==NULL) return 1;
|
||||
if(ci==NULL||
|
||||
ci->modes<=0||
|
||||
ci->blocksizes[0]<64||
|
||||
ci->blocksizes[1]<ci->blocksizes[0]){
|
||||
return 1;
|
||||
}
|
||||
hs=ci->halfrate_flag;
|
||||
|
||||
memset(v,0,sizeof(*v));
|
||||
b=v->backend_state=_ogg_calloc(1,sizeof(*b));
|
||||
|
||||
v->vi=vi;
|
||||
b->modebits=ilog2(ci->modes);
|
||||
b->modebits=ov_ilog(ci->modes-1);
|
||||
|
||||
b->transform[0]=_ogg_calloc(VI_TRANSFORMB,sizeof(*b->transform[0]));
|
||||
b->transform[1]=_ogg_calloc(VI_TRANSFORMB,sizeof(*b->transform[1]));
|
||||
|
@ -204,8 +199,14 @@ static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){
|
|||
mdct_init(b->transform[1][0],ci->blocksizes[1]>>hs);
|
||||
|
||||
/* Vorbis I uses only window type 0 */
|
||||
b->window[0]=ilog2(ci->blocksizes[0])-6;
|
||||
b->window[1]=ilog2(ci->blocksizes[1])-6;
|
||||
/* note that the correct computation below is technically:
|
||||
b->window[0]=ov_ilog(ci->blocksizes[0]-1)-6;
|
||||
b->window[1]=ov_ilog(ci->blocksizes[1]-1)-6;
|
||||
but since blocksizes are always powers of two,
|
||||
the below is equivalent.
|
||||
*/
|
||||
b->window[0]=ov_ilog(ci->blocksizes[0])-7;
|
||||
b->window[1]=ov_ilog(ci->blocksizes[1])-7;
|
||||
|
||||
if(encp){ /* encode/decode differ here */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue