diff options
Diffstat (limited to 'lib/mapping0.c')
-rw-r--r-- | lib/mapping0.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/lib/mapping0.c b/lib/mapping0.c index 0dce7ed3..b7a7d8ea 100644 --- a/lib/mapping0.c +++ b/lib/mapping0.c @@ -12,7 +12,7 @@ ******************************************************************** function: channel mapping 0 implementation - last mod: $Id: mapping0.c,v 1.11.2.2.2.6 2000/05/04 06:13:28 xiphmont Exp $ + last mod: $Id: mapping0.c,v 1.11.2.2.2.7 2000/05/08 08:25:43 xiphmont Exp $ ********************************************************************/ @@ -198,6 +198,7 @@ static vorbis_info_mapping *unpack(vorbis_info *vi,oggpack_buffer *opb){ #include "scales.h" /* no time mapping implementation for now */ +static long seq=0; static int forward(vorbis_block *vb,vorbis_look_mapping *l){ vorbis_dsp_state *vd=vb->vd; vorbis_info *vi=vd->vi; @@ -232,6 +233,7 @@ static int forward(vorbis_block *vb,vorbis_look_mapping *l){ { double *floor=_vorbis_block_alloc(vb,n*sizeof(double)/2); + double *mask=_vorbis_block_alloc(vb,n*sizeof(double)/2); for(i=0;i<vi->channels;i++){ double *pcm=vb->pcm[i]; @@ -244,21 +246,23 @@ static int forward(vorbis_block *vb,vorbis_look_mapping *l){ memset(decay,0,n*sizeof(double)/2); /* perform psychoacoustics; do masking */ - _vp_compute_mask(look->psy_look+submap,pcm,floor,decay); + _vp_compute_mask(look->psy_look+submap,pcm,floor,mask,decay); - _analysis_output("mdct",vb->sequence,pcm,n/2,0,1); + _analysis_output("mdct",seq,pcm,n/2,0,1); + _analysis_output("lmdct",seq,pcm,n/2,0,0); + _analysis_output("prefloor",seq,floor,n/2,0,1); /* perform floor encoding */ nonzero[i]=look->floor_func[submap]-> forward(vb,look->floor_look[submap],floor,floor); - _analysis_output("floor",vb->sequence,floor,n/2,0,1); + _analysis_output("floor",seq,floor,n/2,0,1); /* apply the floor, do optional noise levelling */ - _vp_apply_floor(look->psy_look+submap,pcm,floor); - - _analysis_output("res",vb->sequence,pcm,n/2,0,0); - + _vp_apply_floor(look->psy_look+submap,pcm,floor,mask); + + _analysis_output("res",seq++,pcm,n/2,0,0); + #ifdef TRAIN if(nonzero[i]){ FILE *of; @@ -321,7 +325,7 @@ static int inverse(vorbis_block *vb,vorbis_look_mapping *l){ int submap=info->chmuxlist[i]; nonzero[i]=look->floor_func[submap]-> inverse(vb,look->floor_look[submap],pcm); - _analysis_output("ifloor",vb->sequence,pcm,n/2,0,1); + _analysis_output("ifloor",seq+i,pcm,n/2,0,1); } /* recover the residue, apply directly to the spectral envelope */ @@ -340,7 +344,7 @@ static int inverse(vorbis_block *vb,vorbis_look_mapping *l){ /* only MDCT right now.... */ for(i=0;i<vi->channels;i++){ double *pcm=vb->pcm[i]; - _analysis_output("out",vb->sequence,pcm,n/2,0,0); + _analysis_output("out",seq++,pcm,n/2,0,0); mdct_backward(vd->transform[vb->W][0],pcm,pcm); } |