Lines Matching defs:pcm
13 function: PCM data vector blocking, windowing and dis/reassembly
16 Handle windowing, overlap-add, etc of the PCM vectors. This is made
44 /* pcm accumulator examples (not exhaustive):
251 v->pcm=_ogg_malloc(vi->channels*sizeof(*v->pcm));
256 v->pcm[i]=_ogg_calloc(v->pcm_storage,sizeof(*v->pcm[i]));
368 if(v->pcm){
371 if(v->pcm[i])_ogg_free(v->pcm[i]);
372 _ogg_free(v->pcm);
399 expand the PCM (and envelope) storage */
405 v->pcm[i]=_ogg_realloc(v->pcm[i],v->pcm_storage*sizeof(*v->pcm[i]));
410 v->pcmret[i]=v->pcm[i]+v->pcm_current;
427 work[j]=v->pcm[i][v->pcm_current-j-1];
450 v->pcm[i][v->pcm_current-j-1]=work[j];
490 vorbis_lpc_from_data(v->pcm[i]+v->eofflag-n,lpc,n,order);
493 vorbis_lpc_predict(lpc,v->pcm[i]+v->eofflag-order,order,
494 v->pcm[i]+v->eofflag,v->pcm_current-v->eofflag);
499 memset(v->pcm[i]+v->eofflag,0,
500 (v->pcm_current-v->eofflag)*sizeof(*v->pcm[i]));
619 vb->pcm=_vorbis_block_alloc(vb,sizeof(*vb->pcm)*vi->channels);
624 memcpy(vbi->pcmdelay[i],v->pcm[i],(vb->pcmend+beginW)*sizeof(*vbi->pcmdelay[i]));
625 vb->pcm[i]=vbi->pcmdelay[i]+beginW;
628 vb->pcm[i]=_vorbis_block_alloc(vb,vb->pcmend*sizeof(*vb->pcm[i]));
629 memcpy(vb->pcm[i],v->pcm[i]+beginW,ci->blocksizes[v->W]*sizeof(*vb->pcm[i]));
635 eof>0 marks the last 'real' sample in pcm[]
657 memmove(v->pcm[i],v->pcm[i]+movementW,
658 v->pcm_current*sizeof(*v->pcm[i]));
742 if(vb->pcm){ /* no pcm to process if vorbis_synthesis_trackonly
764 /* v->pcm is now used like a two-stage double buffer. We don't want
774 float *pcm=v->pcm[j]+prevCenter;
775 float *p=vb->pcm[j];
777 pcm[i]=pcm[i]*w[n1-i-1] + p[i]*w[i];
781 float *pcm=v->pcm[j]+prevCenter+n1/2-n0/2;
782 float *p=vb->pcm[j];
784 pcm[i]=pcm[i]*w[n0-i-1] +p[i]*w[i];
790 float *pcm=v->pcm[j]+prevCenter;
791 float *p=vb->pcm[j]+n1/2-n0/2;
793 pcm[i]=pcm[i]*w[n0-i-1] +p[i]*w[i];
795 pcm[i]=p[i];
799 float *pcm=v->pcm[j]+prevCenter;
800 float *p=vb->pcm[j];
802 pcm[i]=pcm[i]*w[n0-i-1] +p[i]*w[i];
808 float *pcm=v->pcm[j]+thisCenter;
809 float *p=vb->pcm[j]+n;
811 pcm[i]=p[i];
906 /* pcm==NULL indicates we just want the pending samples, no more */
907 int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm){
911 if(pcm){
914 v->pcmret[i]=v->pcm[i]+v->pcm_returned;
915 *pcm=v->pcmret;
933 int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm){
945 /* our returned data ends at pcm_returned; because the synthesis pcm
959 float *p=v->pcm[j];
976 float *s=v->pcm[j];
977 float *d=v->pcm[j]+(n1-n0)/2;
987 float *s=v->pcm[j];
988 float *d=v->pcm[j]+n1-n0;
997 if(pcm){
1000 v->pcmret[i]=v->pcm[i]+v->pcm_returned;
1001 *pcm=v->pcmret;