Lines Matching refs:ch

250   int i, ch, n, chInc = 0, resetChannels = 3;
262 for (ch=0; ch<cm->elInfo[i].nChannelsInEl; ch++) {
264 hPsy->psyElement[i]->psyStatic[ch] = hPsy->pStaticChannels[chInc];
266 FDKaacEnc_psyInitStates(hPsy, hPsy->psyElement[i]->psyStatic[ch], audioObjectType);
268 hPsy->psyElement[i]->psyStatic[ch]->isLFE = 0;
271 hPsy->psyElement[i]->psyStatic[ch] = hPsy->pStaticChannels[nMaxChannels-1];
272 hPsy->psyElement[i]->psyStatic[ch]->isLFE = 1;
281 for (ch=0; ch<cm->elInfo[i].nChannelsInEl; ch++) {
282 phpsyOut[n]->psyOutElement[i]->psyOutChannel[ch] = phpsyOut[n]->pPsyOutChannels[chInc++];
313 int i, ch;
378 for (ch=0; ch<cm->elInfo[i].nChannelsInEl; ch++) {
381 FDKaacEnc_psyInitStates(hPsy, hPsy->psyElement[i]->psyStatic[ch], audioObjectType);
384 FDKaacEnc_InitPreEchoControl(hPsy->psyElement[i]->psyStatic[ch]->sfbThresholdnm1,
385 &hPsy->psyElement[i]->psyStatic[ch]->calcPreEcho,
388 &hPsy->psyElement[i]->psyStatic[ch]->mdctScalenm1);
453 INT ch; /* counts through channels */
495 for(ch = 0; ch < channels; ch++)
497 psyData[ch] = &psyDynamic->psyData[ch];
498 tnsData[ch] = &psyDynamic->tnsData[ch];
499 pnsData[ch] = &psyDynamic->pnsData[ch];
501 psyData[ch]->mdctSpectrum = psyOutChannel[ch]->mdctSpectrum;
509 for(ch = 0; ch < channels; ch++)
515 &pInput[chIdx[ch]],
520 FDKaacEnc_BlockSwitching (&psyStatic[ch]->blockSwitchingControl,
522 psyStatic[ch]->isLFE,
528 FDKmemcpy(psyStatic[ch]->psyInputBuffer+blockSwitchingOffset,
547 for(ch = 0; ch < channels; ch++)
550 FDKaacEnc_deinterleaveInputBuffer( psyStatic[ch]->psyInputBuffer + blockSwitchingOffset,
551 &pInput[chIdx[ch]],
557 for(ch = 0; ch < channels; ch++)
558 isShortWindow[ch]=(psyStatic[ch]->blockSwitchingControl.lastWindowSequence == SHORT_WINDOW);
561 for(ch = 0; ch < channels; ch++)
563 if(isShortWindow[ch]) {
564 hThisPsyConf[ch] = hPsyConfShort;
565 windowLength[ch] = psyConf->granuleLength/TRANS_FAC;
566 nWindows[ch] = TRANS_FAC;
567 maxSfb[ch] = MAX_SFB_SHORT;
569 pSfbMaxScaleSpec[ch] = psyData[ch]->sfbMaxScaleSpec.Short[0];
570 pSfbEnergy[ch] = psyData[ch]->sfbEnergy.Short[0];
571 pSfbSpreadEnergy[ch] = psyData[ch]->sfbSpreadEnergy.Short[0];
572 pSfbEnergyLdData[ch] = psyData[ch]->sfbEnergyLdData.Short[0];
573 pSfbEnergyMS[ch] = psyData[ch]->sfbEnergyMS.Short[0];
574 pSfbThreshold[ch] = psyData[ch]->sfbThreshold.Short[0];
578 hThisPsyConf[ch] = hPsyConfLong;
579 windowLength[ch] = psyConf->granuleLength;
580 nWindows[ch] = 1;
581 maxSfb[ch] = MAX_GROUPED_SFB;
583 pSfbMaxScaleSpec[ch] = psyData[ch]->sfbMaxScaleSpec.Long;
584 pSfbEnergy[ch] = psyData[ch]->sfbEnergy.Long;
585 pSfbSpreadEnergy[ch] = psyData[ch]->sfbSpreadEnergy.Long;
586 pSfbEnergyLdData[ch] = psyData[ch]->sfbEnergyLdData.Long;
587 pSfbEnergyMS[ch] = psyData[ch]->sfbEnergyMS.Long;
588 pSfbThreshold[ch] = psyData[ch]->sfbThreshold.Long;
593 for(ch = 0; ch < channels; ch++)
596 if (psyStatic[ch]->isLFE) {
597 psyData[ch]->sfbActive = hThisPsyConf[ch]->sfbActiveLFE;
598 psyData[ch]->lowpassLine = hThisPsyConf[ch]->lowpassLineLFE;
601 psyData[ch]->sfbActive = hThisPsyConf[ch]->sfbActive;
602 psyData[ch]->lowpassLine = hThisPsyConf[ch]->lowpassLine;
605 for(w = 0; w < nWindows[ch]; w++) {
607 wOffset = w*windowLength[ch];
609 FDKaacEnc_Transform_Real( psyStatic[ch]->psyInputBuffer + wOffset,
610 psyData[ch]->mdctSpectrum+wOffset,
611 psyStatic[ch]->blockSwitchingControl.lastWindowSequence,
612 psyStatic[ch]->blockSwitchingControl.windowShape,
613 &psyStatic[ch]->blockSwitchingControl.lastWindowShape,
616 hThisPsyConf[ch]->filterbank
617 ,psyStatic[ch]->overlapAddBuffer
621 FDKmemclear(&psyData[ch]->mdctSpectrum[psyData[ch]->lowpassLine+wOffset],
622 (windowLength[ch]-psyData[ch]->lowpassLine)*sizeof(FIXP_DBL));
627 psyData[ch]->mdctSpectrum[psyData[ch]->lowpassLine+wOffset - FADE_OUT_LEN + i] = fMult(psyData[ch]->mdctSpectrum[psyData[ch]->lowpassLine+wOffset - FADE_OUT_LEN + i], fadeOutFactor[i]);
633 for(line=0; (line<psyData[ch]->lowpassLine) && (zeroSpec==TRUE); line++) {
634 if (psyData[ch]->mdctSpectrum[line+wOffset] != (FIXP_DBL)0) {
642 psyData[ch]->mdctScale = mdctSpectrum_e;
645 FDKmemmove(psyStatic[ch]->psyInputBuffer,
646 psyStatic[ch]->psyInputBuffer+psyConf->granuleLength,
651 FDKaacEnc_deinterleaveInputBuffer( psyStatic[ch]->psyInputBuffer+psyConf->granuleLength,
652 &pInput[ (2*psyConf->granuleLength-blockSwitchingOffset)*totalChannels + chIdx[ch] ],
656 } /* ch */
668 for(ch = 0; ch < channels; ch++) {
669 for(w = 0; w < nWindows[ch]; w++) {
670 wOffset = w*windowLength[ch];
671 FDKaacEnc_CalcSfbMaxScaleSpec(psyData[ch]->mdctSpectrum+wOffset,
672 hThisPsyConf[ch]->sfbOffset,
673 pSfbMaxScaleSpec[ch]+w*maxSfb[ch],
674 psyData[ch]->sfbActive);
676 for (sfb = 0; sfb<psyData[ch]->sfbActive; sfb++)
677 minSpecShift = fixMin(minSpecShift, (pSfbMaxScaleSpec[ch]+w*maxSfb[ch])[sfb]);
683 for(ch = 0; ch < channels; ch++) {
684 for(w = 0; w < nWindows[ch]; w++) {
685 wOffset = w*windowLength[ch];
686 currNrg = FDKaacEnc_CheckBandEnergyOptim(psyData[ch]->mdctSpectrum+wOffset,
687 pSfbMaxScaleSpec[ch]+w*maxSfb[ch],
688 hThisPsyConf[ch]->sfbOffset,
689 psyData[ch]->sfbActive,
690 pSfbEnergy[ch]+w*maxSfb[ch],
691 pSfbEnergyLdData[ch]+w*maxSfb[ch],
718 for(ch = 0; ch < channels; ch++) {
719 for(w = 0; w < nWindows[ch]; w++) {
720 for(sfb=0; sfb<psyData[ch]->sfbActive; sfb++) {
721 INT scale = fixMax(0, (pSfbMaxScaleSpec[ch]+w*maxSfb[ch])[sfb]-4);
723 if (scale >= 0) (pSfbEnergy[ch]+w*maxSfb[ch])[sfb] >>= (scale);
724 else (pSfbEnergy[ch]+w*maxSfb[ch])[sfb] <<= (-scale);
725 (pSfbThreshold[ch]+w*maxSfb[ch])[sfb] = fMult((pSfbEnergy[ch]+w*maxSfb[ch])[sfb], C_RATIO);
726 (pSfbEnergyLdData[ch]+w*maxSfb[ch])[sfb] += ldShift;
732 for (ch = 0; ch < channels; ch++) {
733 for(w = 0; w < nWindows[ch]; w++) {
734 wOffset = w*windowLength[ch];
735 for(line=0; line<psyData[ch]->lowpassLine; line++) {
736 psyData[ch]->mdctSpectrum[line+wOffset] <<= finalShift;
739 for (sfb = 0; sfb<psyData[ch]->sfbActive; sfb++)
740 (pSfbMaxScaleSpec[ch]+w*maxSfb[ch])[sfb] -= finalShift;
743 psyData[ch]->mdctScale -= finalShift;
749 for (ch = 0; ch < channels; ch++) {
750 psyData[ch]->mdctScale = 0; /* otherwise mdctScale would be for example 7 and PCM quantization thresholds would be shifted
753 for(w = 0; w < nWindows[ch]; w++) {
754 for (sfb = 0; sfb<psyData[ch]->sfbActive; sfb++) {
755 (pSfbMaxScaleSpec[ch]+w*maxSfb[ch])[sfb] = 0;
756 (pSfbEnergy[ch]+w*maxSfb[ch])[sfb] = (FIXP_DBL)0;
757 (pSfbEnergyLdData[ch]+w*maxSfb[ch])[sfb] = FL2FXCONST_DBL(-1.0f);
758 (pSfbThreshold[ch]+w*maxSfb[ch])[sfb] = (FIXP_DBL)0;
771 for(ch = 0; ch < channels; ch++) {
772 if (!isShortWindow[ch]) {
774 FDKaacEnc_CalculateFullTonality( psyData[ch]->mdctSpectrum,
775 pSfbMaxScaleSpec[ch],
776 pSfbEnergyLdData[ch],
777 sfbTonality[ch],
778 psyData[ch]->sfbActive,
779 hThisPsyConf[ch]->sfbOffset,
780 hThisPsyConf[ch]->pnsConf.usePns);
789 for(ch = 0; ch < channels; ch++) {
790 for(w = 0; w < nWindows[ch]; w++) {
792 wOffset = w*windowLength[ch];
795 tnsData[ch],
796 &hThisPsyConf[ch]->tnsConf,
797 &psyOutChannel[ch]->tnsInfo,
798 hThisPsyConf[ch]->sfbCnt,
799 psyData[ch]->mdctSpectrum+wOffset,
801 psyStatic[ch]->blockSwitchingControl.lastWindowSequence
829 for(ch = 0; ch < channels; ch++) {
830 if (tnsActive[0] && !isShortWindow[ch]) {
834 for(sfb=0; sfb<hThisPsyConf[ch]->lowpassLine; sfb++) {
835 psyData[ch]->mdctSpectrum[sfb] = psyData[ch]->mdctSpectrum[sfb] >> shift;
839 for (sfb=0; sfb<psyData[ch]->sfbActive; sfb++) {
840 pSfbThreshold[ch][sfb] >>= (2*shift);
843 psyData[ch]->mdctScale += shift; /* update mdctScale */
850 for(ch = 0; ch < channels; ch++) {
851 for(w = 0; w < nWindows[ch]; w++)
853 wOffset = w*windowLength[ch];
855 &psyOutChannel[ch]->tnsInfo,
856 tnsData[ch],
857 hThisPsyConf[ch]->sfbCnt,
858 &hThisPsyConf[ch]->tnsConf,
859 hThisPsyConf[ch]->sfbOffset[psyData[ch]->sfbActive],/*hThisPsyConf[ch]->lowpassLine*/ /* filter stops before that line ! */
860 psyData[ch]->mdctSpectrum+wOffset,
862 psyStatic[ch]->blockSwitchingControl.lastWindowSequence);
867 FDKaacEnc_CalcSfbMaxScaleSpec(psyData[ch]->mdctSpectrum+wOffset,
868 hThisPsyConf[ch]->sfbOffset,
869 pSfbMaxScaleSpec[ch]+w*maxSfb[ch],
870 psyData[ch]->sfbActive);
875 for(ch = 0; ch < channels; ch++) {
876 for(w = 0; w < nWindows[ch]; w++) {
880 if (isShortWindow[ch]) {
881 FDKaacEnc_CalcBandEnergyOptimShort(psyData[ch]->mdctSpectrum+w*windowLength[ch],
882 pSfbMaxScaleSpec[ch]+w*maxSfb[ch],
883 hThisPsyConf[ch]->sfbOffset,
884 psyData[ch]->sfbActive,
885 pSfbEnergy[ch]+w*maxSfb[ch]);
888 nrgScaling[ch] = /* with tns, energy calculation can overflow; -> scaling */
889 FDKaacEnc_CalcBandEnergyOptimLong(psyData[ch]->mdctSpectrum,
890 pSfbMaxScaleSpec[ch],
891 hThisPsyConf[ch]->sfbOffset,
892 psyData[ch]->sfbActive,
893 pSfbEnergy[ch],
894 pSfbEnergyLdData[ch]);
895 tnsSpecShift = fixMax(tnsSpecShift, nrgScaling[ch]); /* nrgScaling is set only if nrg would have an overflow */
902 for(ch = 0; ch < channels; ch++) {
903 if ( (tnsSpecShift!=0) && !isShortWindow[ch] ) {
905 for(line=0; line<hThisPsyConf[ch]->lowpassLine; line++) {
906 psyData[ch]->mdctSpectrum[line] >>= tnsSpecShift;
908 INT scale = (tnsSpecShift-nrgScaling[ch])<<1;
909 for(sfb=0; sfb<psyData[ch]->sfbActive; sfb++) {
910 pSfbEnergyLdData[ch][sfb] -= scale*FL2FXCONST_DBL(1.0/LD_DATA_SCALING);
911 pSfbEnergy[ch][sfb] >>= scale;
912 pSfbThreshold[ch][sfb] >>= (tnsSpecShift<<1);
914 psyData[ch]->mdctScale += tnsSpecShift; /* update mdctScale; not necessary to update sfbMaxScaleSpec */
928 for(ch = 0; ch < channels; ch++) {
932 INT energyShift = psyData[ch]->mdctScale*2 ;
935 if(isShortWindow[ch])
941 clipEnergy = hThisPsyConf[ch]->clipEnergy >> clipNrgShift ;
943 clipEnergy = hThisPsyConf[ch]->clipEnergy << -clipNrgShift ;
947 for(w = 0; w < nWindows[ch]; w++)
951 for (i=0; i<psyData[ch]->sfbActive; i++) {
952 *(pSfbThreshold[ch]+w*maxSfb[ch]+i) = fixMin(*(pSfbThreshold[ch]+w*maxSfb[ch]+i), clipEnergy);
956 FDKaacEnc_SpreadingMax(psyData[ch]->sfbActive,
957 hThisPsyConf[ch]->sfbMaskLowFactor,
958 hThisPsyConf[ch]->sfbMaskHighFactor,
959 pSfbThreshold[ch]+w*maxSfb[ch]);
966 for (i=0; i<psyData[ch]->sfbActive;i++) {
967 *(pSfbThreshold[ch]+w*maxSfb[ch]+i) = fixMax(*(pSfbThreshold[ch]+w*maxSfb[ch]+i) >> THR_SHIFTBITS,
968 (hThisPsyConf[ch]->sfbPcmQuantThreshold[i] >> energyShift));
972 for (i=0; i<psyData[ch]->sfbActive;i++) {
973 *(pSfbThreshold[ch]+w*maxSfb[ch]+i) = fixMax(*(pSfbThreshold[ch]+w*maxSfb[ch]+i) >> THR_SHIFTBITS,
974 (hThisPsyConf[ch]->sfbPcmQuantThreshold[i] << energyShift));
978 if (!psyStatic[ch]->isLFE)
981 if(psyStatic[ch]->blockSwitchingControl.lastWindowSequence == STOP_WINDOW) {
984 for (i=0; i<psyData[ch]->sfbActive;i++) {
985 psyStatic[ch]->sfbThresholdnm1[i] = (FIXP_DBL)MAXVAL_DBL;
988 psyStatic[ch]->mdctScalenm1 = 0;
989 psyStatic[ch]->calcPreEcho = 0;
992 FDKaacEnc_PreEchoControl( psyStatic[ch]->sfbThresholdnm1,
993 psyStatic[ch]->calcPreEcho,
994 psyData[ch]->sfbActive,
995 hThisPsyConf[ch]->maxAllowedIncreaseFactor,
996 hThisPsyConf[ch]->minRemainingThresholdFactor,
997 pSfbThreshold[ch]+w*maxSfb[ch],
998 psyData[ch]->mdctScale,
999 &psyStatic[ch]->mdctScalenm1);
1001 psyStatic[ch]->calcPreEcho = 1;
1003 if(psyStatic[ch]->blockSwitchingControl.lastWindowSequence == START_WINDOW)
1007 for (i=0; i<psyData[ch]->sfbActive;i++) {
1008 psyStatic[ch]->sfbThresholdnm1[i] = (FIXP_DBL)MAXVAL_DBL;
1011 psyStatic[ch]->mdctScalenm1 = 0;
1012 psyStatic[ch]->calcPreEcho = 0;
1018 FDKmemcpy(pSfbSpreadEnergy[ch]+w*maxSfb[ch], pSfbEnergy[ch]+w*maxSfb[ch], psyData[ch]->sfbActive*sizeof(FIXP_DBL));
1020 FDKaacEnc_SpreadingMax(psyData[ch]->sfbActive,
1021 hThisPsyConf[ch]->sfbMaskLowFactorSprEn,
1022 hThisPsyConf[ch]->sfbMaskHighFactorSprEn,
1023 pSfbSpreadEnergy[ch]+w*maxSfb[ch]);
1045 /* group short data (maxSfb[ch] for short blocks is determined here) */
1046 for(ch=0;ch<channels;ch++)
1049 if(isShortWindow[ch])
1052 noSfb = psyStatic[ch]->blockSwitchingControl.noOfGroups * hPsyConfShort->sfbCnt;
1054 FDKaacEnc_groupShortData( psyData[ch]->mdctSpectrum,
1055 &psyData[ch]->sfbThreshold,
1056 &psyData[ch]->sfbEnergy,
1057 &psyData[ch]->sfbEnergyMS,
1058 &psyData[ch]->sfbSpreadEnergy,
1060 psyData[ch]->sfbActive,
1063 psyData[ch]->groupedSfbOffset,
1064 &maxSfbPerGroup[ch],
1065 psyOutChannel[ch]->sfbMinSnrLdData,
1066 psyStatic[ch]->blockSwitchingControl.noOfGroups,
1067 psyStatic[ch]->blockSwitchingControl.groupLen,
1073 LdDataVector(&psyData[ch]->sfbEnergy.Long[sfbGrp], &psyOutChannel[ch]->sfbEnergyLdData[sfbGrp], psyData[ch]->sfbActive);
1078 LdDataVector(&psyData[ch]->sfbThreshold.Long[sfbGrp], &psyOutChannel[ch]->sfbThresholdLdData[sfbGrp], psyData[ch]->sfbActive);
1079 for (sfb=0;sfb<psyData[ch]->sfbActive;sfb++) {
1080 psyOutChannel[ch]->sfbThresholdLdData[sfbGrp+sfb] =
1081 fixMax(psyOutChannel[ch]->sfbThresholdLdData[sfbGrp+sfb], FL2FXCONST_DBL(-0.515625f));
1087 LdDataVector(&psyData[ch]->sfbEnergyMS.Long[sfbGrp], &psyData[ch]->sfbEnergyMSLdData[sfbGrp], psyData[ch]->sfbActive);
1091 FDKmemcpy(psyOutChannel[ch]->sfbOffsets, psyData[ch]->groupedSfbOffset, (MAX_GROUPED_SFB+1)*sizeof(INT));
1094 /* maxSfb[ch] for long blocks */
1095 for (sfb = psyData[ch]->sfbActive-1; sfb >= 0; sfb--) {
1097 if (psyData[ch]->mdctSpectrum[line] != FL2FXCONST_SGL(0.0f)) break;
1101 maxSfbPerGroup[ch] = sfb + 1;
1103 maxSfbPerGroup[ch] = fixMax(fixMin(5,psyData[ch]->sfbActive),maxSfbPerGroup[ch]);
1106 FDKmemcpy(psyOutChannel[ch]->sfbEnergyLdData, psyData[ch]->sfbEnergyLdData.Long, psyData[ch]->sfbActive*sizeof(FIXP_DBL));
1108 FDKmemcpy(psyOutChannel[ch]->sfbOffsets, hPsyConfLong->sfbOffset, (MAX_GROUPED_SFB+1)*sizeof(INT));
1111 FDKmemcpy(psyOutChannel[ch]->sfbMinSnrLdData, hPsyConfLong->sfbMinSnrLdData, psyData[ch]->sfbActive*sizeof(FIXP_DBL));
1116 LdDataVector(psyData[ch]->sfbThreshold.Long, psyOutChannel[ch]->sfbThresholdLdData, psyData[ch]->sfbActive);
1117 for (i=0;i<psyData[ch]->sfbActive;i++) {
1118 psyOutChannel[ch]->sfbThresholdLdData[i] =
1119 fixMax(psyOutChannel[ch]->sfbThresholdLdData[i], FL2FXCONST_DBL(-0.515625f));
1132 for(ch=0;ch<channels;ch++) {
1133 FDKmemclear(psyOutChannel[ch]->isBook, MAX_GROUPED_SFB*sizeof(INT));
1134 FDKmemclear(psyOutChannel[ch]->isScale, MAX_GROUPED_SFB*sizeof(INT));
1137 for(ch=0;ch<channels;ch++) {
1138 INT win = (isShortWindow[ch]?1:0);
1139 if (!psyStatic[ch]->isLFE)
1143 pnsData[ch],
1144 psyStatic[ch]->blockSwitchingControl.lastWindowSequence,
1145 psyData[ch]->sfbActive,
1146 maxSfbPerGroup[ch], /* count of Sfb which are not zero. */
1147 psyOutChannel[ch]->sfbThresholdLdData,
1149 psyData[ch]->mdctSpectrum,
1150 psyData[ch]->sfbMaxScaleSpec.Long,
1151 sfbTonality[ch],
1152 psyOutChannel[ch]->tnsInfo.order[0][0],
1153 tnsData[ch]->dataRaw.Long.subBlockInfo.predictionGain,
1154 tnsData[ch]->dataRaw.Long.subBlockInfo.tnsActive,
1155 psyOutChannel[ch]->sfbEnergyLdData,
1156 psyOutChannel[ch]->noiseNrg );
1267 for(ch=0;ch<channels;ch++) {
1268 if (psyStatic[ch]->isLFE) {
1270 for(sfb = 0; sfb < psyData[ch]->sfbActive; sfb++) {
1271 psyOutChannel[ch]->noiseNrg[sfb] = NO_NOISE_PNS;
1275 FDKaacEnc_CodePnsChannel(psyData[ch]->sfbActive,
1276 &(psyConf[ch].pnsConf),
1277 pnsData[ch]->pnsFlag,
1278 psyData[ch]->sfbEnergyLdData.Long,
1279 psyOutChannel[ch]->noiseNrg, /* this is the energy that will be written to the bitstream */
1280 psyOutChannel[ch]->sfbThresholdLdData);
1287 for(ch=0;ch<channels;ch++)
1291 psyOutChannel[ch]->maxSfbPerGroup = maxSfbPerGroup[ch];
1292 psyOutChannel[ch]->mdctScale = psyData[ch]->mdctScale;
1294 if(isShortWindow[ch]==0) {
1296 psyOutChannel[ch]->sfbCnt = hPsyConfLong->sfbActive;
1297 psyOutChannel[ch]->sfbPerGroup = hPsyConfLong->sfbActive;
1298 psyOutChannel[ch]->lastWindowSequence = psyStatic[ch]->blockSwitchingControl.lastWindowSequence;
1299 psyOutChannel[ch]->windowShape = psyStatic[ch]->blockSwitchingControl.windowShape;
1302 INT sfbCnt = psyStatic[ch]->blockSwitchingControl.noOfGroups*hPsyConfShort->sfbCnt;
1304 psyOutChannel[ch]->sfbCnt = sfbCnt;
1305 psyOutChannel[ch]->sfbPerGroup = hPsyConfShort->sfbCnt;
1306 psyOutChannel[ch]->lastWindowSequence = SHORT_WINDOW;
1307 psyOutChannel[ch]->windowShape = SINE_WINDOW;
1312 for (grp = 0; grp < psyStatic[ch]->blockSwitchingControl.noOfGroups; grp++)
1315 for (j=1; j<psyStatic[ch]->blockSwitchingControl.groupLen[grp]; j++) {
1319 psyOutChannel[ch]->groupingMask = mask;
1322 FDKmemcpy(psyOutChannel[ch]->groupLen,psyStatic[ch]->blockSwitchingControl.groupLen,MAX_NO_OF_GROUPS*sizeof(INT));
1323 FDKmemcpy(psyOutChannel[ch]->sfbEnergy,(&psyData[ch]->sfbEnergy)->Long, MAX_GROUPED_SFB*sizeof(FIXP_DBL));
1324 FDKmemcpy(psyOutChannel[ch]->sfbSpreadEnergy,(&psyData[ch]->sfbSpreadEnergy)->Long, MAX_GROUPED_SFB*sizeof(FIXP_DBL));
1325 // FDKmemcpy(psyOutChannel[ch]->mdctSpectrum, psyData[ch]->mdctSpectrum, (1024)*sizeof(FIXP_DBL));