summaryrefslogtreecommitdiff
path: root/lib/mapping0.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mapping0.c')
-rw-r--r--lib/mapping0.c24
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);
}