comparison aac.c @ 7857:d7801471cd52 libavcodec

Apply pulses to unscaled coefficients rather than scaled. Slight reworking of a patch by Alex Converse (alex converse gmail com)
author superdump
date Sat, 13 Sep 2008 20:51:36 +0000
parents 0882c93a0c11
children f75806078d46
comparison
equal deleted inserted replaced
7856:0882c93a0c11 7857:d7801471cd52
752 } 752 }
753 coef += ics->group_len[g]<<7; 753 coef += ics->group_len[g]<<7;
754 } 754 }
755 755
756 if (pulse_present) { 756 if (pulse_present) {
757 idx = 0;
757 for(i = 0; i < pulse->num_pulse; i++){ 758 for(i = 0; i < pulse->num_pulse; i++){
758 float co = coef_base[ pulse->pos[i] ]; 759 float co = coef_base[ pulse->pos[i] ];
760 while(offsets[idx + 1] <= pulse->pos[i])
761 idx++;
762 if (band_type[idx] != NOISE_BT && sf[idx]) {
759 float ico = -pulse->amp[i]; 763 float ico = -pulse->amp[i];
760 if (co) 764 if (co) {
765 co /= sf[idx];
761 ico = co / sqrtf(sqrtf(fabsf(co))) + (co > 0 ? -ico : ico); 766 ico = co / sqrtf(sqrtf(fabsf(co))) + (co > 0 ? -ico : ico);
762 coef_base[ pulse->pos[i] ] = cbrtf(fabsf(ico)) * ico; 767 }
768 coef_base[ pulse->pos[i] ] = cbrtf(fabsf(ico)) * ico * sf[idx];
769 }
763 } 770 }
764 } 771 }
765 return 0; 772 return 0;
766 } 773 }
767 774