1 /********************************************************************
3 * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. *
4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *
5 * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. *
6 * PLEASE READ THESE TERMS DISTRIBUTING. *
8 * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 *
9 * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company *
10 * http://www.xiph.org/ *
12 ********************************************************************
14 function: single-block PCM synthesis
15 author: Monty <xiphmont@mit.edu>
16 modifications by: Monty
17 last modification date: Aug 08 1999
19 ********************************************************************/
27 int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){
29 vorbis_info *vi=&vb->vd->vi;
30 double *window=vb->vd->window[vb->W][vb->lW][vb->nW];
31 lpc_lookup *vl=&vb->vd->vl[vb->W];
33 /* get the LSP params back to LPC params. This will be for each
34 spectral floor curve */
42 lsp2[i]=last*M_PI/scale;
48 vorbis_lsp_to_lpc(lsp2,lpc1,30);*/
51 /*for(i=0;i<vi->floorch;i++)
52 vorbis_lsp_to_lpc(vb->lsp[i],vb->lpc[i],vi->floororder);*/
54 /* Map the resulting floors back to the appropriate channels */
56 /*for(i=0;i<vi->channels;i++)
57 vorbis_lpc_apply(vb->pcm[i],vb->pcmend,vb->lpc[vi->floormap[i]],
58 vb->amp[vi->floormap[i]],vi->floororder);*/
60 for(i=0;i<vb->pcm_channels;i++)
61 mdct_backward(&vb->vd->vm[vb->W],vb->pcm[i],vb->pcm[i],window);
62 _ve_envelope_apply(vb,1);