Loading lib_com/basop32.c +8 −0 Original line number Diff line number Diff line Loading @@ -3577,12 +3577,20 @@ Word16 div_l( Word32 L_num, Word16 den ) if ( den == (Word16) 0 ) { #ifdef IVAS_FLOAT_FIXED /* NOTE: This is just for temporary usage for identifying crashes */ assert( 0 ); #endif // IVAS_FLOAT_FIXED /* printf("Division by 0 in div_l, Fatal error in "); printStack(); */ exit( -1 ); } if ( ( L_num < (Word32) 0 ) || ( den < (Word16) 0 ) ) { #ifdef IVAS_FLOAT_FIXED /* NOTE: This is just for temporary usage for identifying crashes */ assert( 0 ); #endif // IVAS_FLOAT_FIXED /* printf("Division Error in div_l, Fatal error in "); printStack(); */ exit( -1 ); } Loading lib_com/float_to_fix_ops.c +24 −5 Original line number Diff line number Diff line Loading @@ -844,11 +844,21 @@ void fixed_to_float_stereo_tcx_core_dec( //st->hTcxDec->syn_Overl_TDACFB_float[p] = (float) st->hTcxDec->syn_Overl_TDACFB[p] * 2 * (float) pow( 2, st->Q_syn ); //st->hTcxDec->syn_Overl_TDAC_float[p] = (float) st->hTcxDec->syn_Overl_TDAC[p] * 2 * (float) pow( 2, st->Q_syn ); } if (st->hHQ_core->Q_old_wtda >= 0) { for ( int p = 0; p < st->L_frame; p++ ) { st->hHQ_core->old_outLB[p] = (float) st->hHQ_core->old_out_LB_fx[p] / ( 1u << st->hHQ_core->Q_old_wtda ); st->hHQ_core->old_out[p] = (float) st->hHQ_core->old_out_fx[p] / ( 1u << st->hHQ_core->Q_old_wtda ); } } else{ for ( int p = 0; p < st->L_frame; p++ ) { st->hHQ_core->old_outLB[p] = (float) st->hHQ_core->old_out_LB_fx[p] * ( 1u << (-st->hHQ_core->Q_old_wtda) ); st->hHQ_core->old_out[p] = (float) st->hHQ_core->old_out_fx[p] * ( 1u << (-st->hHQ_core->Q_old_wtda) ); } } //for ( int p = 0; p < st->L_frame; p++ ) //{ // st->hTcxDec->old_excFB[p] = (float) ( st->hTcxDec->old_excFB_fx[p] ) / ( 1u << st->Q_exc ); Loading Loading @@ -903,10 +913,19 @@ void fixed_to_float_stereo_tcx_core_dec( //{ // st->hFdCngDec->hFdCngCom->fftBuffer_flt[p] = ( (float) st->hFdCngDec->hFdCngCom->fftBuffer[p] / ( 1u << ( 31 - st->hFdCngDec->hFdCngCom->fftBuffer_exp ) ) ); //} if(( 31 - st->hFdCngDec->hFdCngCom->cngNoiseLevelExp ) >= 0) { for ( int p = 0; p < ( st->hFdCngDec->hFdCngCom->stopFFTbin - st->hFdCngDec->hFdCngCom->startBand ); p++ ) { st->hFdCngDec->hFdCngCom->cngNoiseLevel_flt[p] = ( (float) st->hFdCngDec->hFdCngCom->cngNoiseLevel[p] / ( 1u << ( 31 - st->hFdCngDec->hFdCngCom->cngNoiseLevelExp ) ) ); } } else{ for ( int p = 0; p < ( st->hFdCngDec->hFdCngCom->stopFFTbin - st->hFdCngDec->hFdCngCom->startBand ); p++ ) { st->hFdCngDec->hFdCngCom->cngNoiseLevel_flt[p] = ( (float) st->hFdCngDec->hFdCngCom->cngNoiseLevel[p] * ( 1u << ( st->hFdCngDec->hFdCngCom->cngNoiseLevelExp - 31) ) ); } } for ( int p = 0; p < ( st->hFdCngDec->hFdCngCom->stopFFTbin - st->hFdCngDec->hFdCngCom->startBand ); p++ ) { //st->hFdCngDec->bandNoiseShape_float[p] = ( (float) st->hFdCngDec->bandNoiseShape[p] / ( 1u << ( 31 - st->hFdCngDec->bandNoiseShape_exp ) ) ); Loading lib_com/swb_tbe_com_fx.c +2 −2 Original line number Diff line number Diff line Loading @@ -4559,7 +4559,7 @@ void non_linearity_ivas_fx( } test(); IF ( prev_scale <= 0 || GT_32( Mult_32_16( prev_scale, 32 ), scale )) IF ( prev_scale <= 0 || GT_32( Mult_32_16( prev_scale, 64 ) /*Q30 -> Q31*/, scale/*Q31*/ )) { scale_step = 16384; move16(); /* Q14 */ Loading Loading @@ -4645,7 +4645,7 @@ void non_linearity_ivas_fx( } test(); IF ( prev_scale <= 0 || GT_32( Mult_32_16( prev_scale, 32 ), scale )) IF ( prev_scale <= 0 || GT_32( Mult_32_16( prev_scale, 64 ), scale )) { scale_step = 16384; move16(); /*Q14 */ Loading lib_com/window_ola_fx.c +5 −5 Original line number Diff line number Diff line Loading @@ -351,8 +351,8 @@ void window_ola_fx( p1=paout+n; pa=ImdctOut+add(shr(L,1),n); /*p3=win_right+ sub(sub(sub(i_mult2(sub(shl(L,1),n),decimate),1),decay),WINDECAY48); */ p3=win_right+ (2*L_FRAME16k-N16_CORE_SW)*3-1-1-WINDECAY48; p5=win_int_right+ (2*L_FRAME16k-N16_CORE_SW)-1-WINDECAY16; p3=win_right+ ((2*L_FRAME16k-N16_CORE_SW)*3-1-1-WINDECAY48); p5=win_int_right+ ((2*L_FRAME16k-N16_CORE_SW)-1-WINDECAY16); p4=OldauOut+n; temp_len = sub(shr(L,1),n); Loading @@ -372,8 +372,8 @@ void window_ola_fx( } pa=ImdctOut+sub(L,1); p3=win_right+ (3*L_FRAME16k/2-1)*3+1-WINDECAY48; p5=win_int_right+ (3*L_FRAME16k/2)-1-WINDECAY16; p3=win_right+ ((3*L_FRAME16k/2-1)*3+1-WINDECAY48); p5=win_int_right+ ((3*L_FRAME16k/2)-1-WINDECAY16); temp_len = sub(shr(L,1),n); FOR (i = 0; i < temp_len; i+=2) Loading Loading @@ -417,7 +417,7 @@ void window_ola_fx( p1=OldauOut+n; pa=ImdctOut+sub(sub(shr(L,1),1),n); p2=win_left+(L_FRAME16k-N16_CORE_SW)*3-1-1; p3=win_int_left+L_FRAME16k-N16_CORE_SW-1; p3=win_int_left+(L_FRAME16k-N16_CORE_SW-1); temp_len = sub(shr(L,1),n); FOR (i = 0; i < temp_len; i+=2) { Loading lib_com/wtda_fx.c +4 −4 Original line number Diff line number Diff line Loading @@ -299,12 +299,12 @@ void wtda_fx( pa=wtda_audio; p1=allsig_r+L_FRAME16k-1; p2=win_int_right+ 3*L_FRAME16k/2-1-WINDECAY16; /* 3*L/2*decimate-decimate+decay-windecay48;*/ p2=win_int_right+ (3*L_FRAME16k/2-1-WINDECAY16); /* 3*L/2*decimate-decimate+decay-windecay48;*/ p3=p1+1; p4=p2+1; p5=win_right+(3*L_FRAME16k/2-1)*3+1-WINDECAY48; p6=win_right+(3*L_FRAME16k/2+1)*3-1-1-WINDECAY48; p5=win_right+((3*L_FRAME16k/2-1)*3+1-WINDECAY48); p6=win_right+((3*L_FRAME16k/2+1)*3-1-1-WINDECAY48); FOR (i=0; i<L_FRAME16k-2*N16_CORE_SW; i+=2) { Loading Loading @@ -342,7 +342,7 @@ void wtda_fx( p5=allsig_l+L_FRAME32k-1-N16_CORE_SW*2; p6=win_left+(L_FRAME16k-N16_CORE_SW)*3-1-1; p3=win_int_left+L_FRAME16k-N16_CORE_SW-1; p3=win_int_left+(L_FRAME16k-N16_CORE_SW-1); tmp = sub(shr(L,1),n); FOR (i=0; i<tmp; i+=2) Loading Loading
lib_com/basop32.c +8 −0 Original line number Diff line number Diff line Loading @@ -3577,12 +3577,20 @@ Word16 div_l( Word32 L_num, Word16 den ) if ( den == (Word16) 0 ) { #ifdef IVAS_FLOAT_FIXED /* NOTE: This is just for temporary usage for identifying crashes */ assert( 0 ); #endif // IVAS_FLOAT_FIXED /* printf("Division by 0 in div_l, Fatal error in "); printStack(); */ exit( -1 ); } if ( ( L_num < (Word32) 0 ) || ( den < (Word16) 0 ) ) { #ifdef IVAS_FLOAT_FIXED /* NOTE: This is just for temporary usage for identifying crashes */ assert( 0 ); #endif // IVAS_FLOAT_FIXED /* printf("Division Error in div_l, Fatal error in "); printStack(); */ exit( -1 ); } Loading
lib_com/float_to_fix_ops.c +24 −5 Original line number Diff line number Diff line Loading @@ -844,11 +844,21 @@ void fixed_to_float_stereo_tcx_core_dec( //st->hTcxDec->syn_Overl_TDACFB_float[p] = (float) st->hTcxDec->syn_Overl_TDACFB[p] * 2 * (float) pow( 2, st->Q_syn ); //st->hTcxDec->syn_Overl_TDAC_float[p] = (float) st->hTcxDec->syn_Overl_TDAC[p] * 2 * (float) pow( 2, st->Q_syn ); } if (st->hHQ_core->Q_old_wtda >= 0) { for ( int p = 0; p < st->L_frame; p++ ) { st->hHQ_core->old_outLB[p] = (float) st->hHQ_core->old_out_LB_fx[p] / ( 1u << st->hHQ_core->Q_old_wtda ); st->hHQ_core->old_out[p] = (float) st->hHQ_core->old_out_fx[p] / ( 1u << st->hHQ_core->Q_old_wtda ); } } else{ for ( int p = 0; p < st->L_frame; p++ ) { st->hHQ_core->old_outLB[p] = (float) st->hHQ_core->old_out_LB_fx[p] * ( 1u << (-st->hHQ_core->Q_old_wtda) ); st->hHQ_core->old_out[p] = (float) st->hHQ_core->old_out_fx[p] * ( 1u << (-st->hHQ_core->Q_old_wtda) ); } } //for ( int p = 0; p < st->L_frame; p++ ) //{ // st->hTcxDec->old_excFB[p] = (float) ( st->hTcxDec->old_excFB_fx[p] ) / ( 1u << st->Q_exc ); Loading Loading @@ -903,10 +913,19 @@ void fixed_to_float_stereo_tcx_core_dec( //{ // st->hFdCngDec->hFdCngCom->fftBuffer_flt[p] = ( (float) st->hFdCngDec->hFdCngCom->fftBuffer[p] / ( 1u << ( 31 - st->hFdCngDec->hFdCngCom->fftBuffer_exp ) ) ); //} if(( 31 - st->hFdCngDec->hFdCngCom->cngNoiseLevelExp ) >= 0) { for ( int p = 0; p < ( st->hFdCngDec->hFdCngCom->stopFFTbin - st->hFdCngDec->hFdCngCom->startBand ); p++ ) { st->hFdCngDec->hFdCngCom->cngNoiseLevel_flt[p] = ( (float) st->hFdCngDec->hFdCngCom->cngNoiseLevel[p] / ( 1u << ( 31 - st->hFdCngDec->hFdCngCom->cngNoiseLevelExp ) ) ); } } else{ for ( int p = 0; p < ( st->hFdCngDec->hFdCngCom->stopFFTbin - st->hFdCngDec->hFdCngCom->startBand ); p++ ) { st->hFdCngDec->hFdCngCom->cngNoiseLevel_flt[p] = ( (float) st->hFdCngDec->hFdCngCom->cngNoiseLevel[p] * ( 1u << ( st->hFdCngDec->hFdCngCom->cngNoiseLevelExp - 31) ) ); } } for ( int p = 0; p < ( st->hFdCngDec->hFdCngCom->stopFFTbin - st->hFdCngDec->hFdCngCom->startBand ); p++ ) { //st->hFdCngDec->bandNoiseShape_float[p] = ( (float) st->hFdCngDec->bandNoiseShape[p] / ( 1u << ( 31 - st->hFdCngDec->bandNoiseShape_exp ) ) ); Loading
lib_com/swb_tbe_com_fx.c +2 −2 Original line number Diff line number Diff line Loading @@ -4559,7 +4559,7 @@ void non_linearity_ivas_fx( } test(); IF ( prev_scale <= 0 || GT_32( Mult_32_16( prev_scale, 32 ), scale )) IF ( prev_scale <= 0 || GT_32( Mult_32_16( prev_scale, 64 ) /*Q30 -> Q31*/, scale/*Q31*/ )) { scale_step = 16384; move16(); /* Q14 */ Loading Loading @@ -4645,7 +4645,7 @@ void non_linearity_ivas_fx( } test(); IF ( prev_scale <= 0 || GT_32( Mult_32_16( prev_scale, 32 ), scale )) IF ( prev_scale <= 0 || GT_32( Mult_32_16( prev_scale, 64 ), scale )) { scale_step = 16384; move16(); /*Q14 */ Loading
lib_com/window_ola_fx.c +5 −5 Original line number Diff line number Diff line Loading @@ -351,8 +351,8 @@ void window_ola_fx( p1=paout+n; pa=ImdctOut+add(shr(L,1),n); /*p3=win_right+ sub(sub(sub(i_mult2(sub(shl(L,1),n),decimate),1),decay),WINDECAY48); */ p3=win_right+ (2*L_FRAME16k-N16_CORE_SW)*3-1-1-WINDECAY48; p5=win_int_right+ (2*L_FRAME16k-N16_CORE_SW)-1-WINDECAY16; p3=win_right+ ((2*L_FRAME16k-N16_CORE_SW)*3-1-1-WINDECAY48); p5=win_int_right+ ((2*L_FRAME16k-N16_CORE_SW)-1-WINDECAY16); p4=OldauOut+n; temp_len = sub(shr(L,1),n); Loading @@ -372,8 +372,8 @@ void window_ola_fx( } pa=ImdctOut+sub(L,1); p3=win_right+ (3*L_FRAME16k/2-1)*3+1-WINDECAY48; p5=win_int_right+ (3*L_FRAME16k/2)-1-WINDECAY16; p3=win_right+ ((3*L_FRAME16k/2-1)*3+1-WINDECAY48); p5=win_int_right+ ((3*L_FRAME16k/2)-1-WINDECAY16); temp_len = sub(shr(L,1),n); FOR (i = 0; i < temp_len; i+=2) Loading Loading @@ -417,7 +417,7 @@ void window_ola_fx( p1=OldauOut+n; pa=ImdctOut+sub(sub(shr(L,1),1),n); p2=win_left+(L_FRAME16k-N16_CORE_SW)*3-1-1; p3=win_int_left+L_FRAME16k-N16_CORE_SW-1; p3=win_int_left+(L_FRAME16k-N16_CORE_SW-1); temp_len = sub(shr(L,1),n); FOR (i = 0; i < temp_len; i+=2) { Loading
lib_com/wtda_fx.c +4 −4 Original line number Diff line number Diff line Loading @@ -299,12 +299,12 @@ void wtda_fx( pa=wtda_audio; p1=allsig_r+L_FRAME16k-1; p2=win_int_right+ 3*L_FRAME16k/2-1-WINDECAY16; /* 3*L/2*decimate-decimate+decay-windecay48;*/ p2=win_int_right+ (3*L_FRAME16k/2-1-WINDECAY16); /* 3*L/2*decimate-decimate+decay-windecay48;*/ p3=p1+1; p4=p2+1; p5=win_right+(3*L_FRAME16k/2-1)*3+1-WINDECAY48; p6=win_right+(3*L_FRAME16k/2+1)*3-1-1-WINDECAY48; p5=win_right+((3*L_FRAME16k/2-1)*3+1-WINDECAY48); p6=win_right+((3*L_FRAME16k/2+1)*3-1-1-WINDECAY48); FOR (i=0; i<L_FRAME16k-2*N16_CORE_SW; i+=2) { Loading Loading @@ -342,7 +342,7 @@ void wtda_fx( p5=allsig_l+L_FRAME32k-1-N16_CORE_SW*2; p6=win_left+(L_FRAME16k-N16_CORE_SW)*3-1-1; p3=win_int_left+L_FRAME16k-N16_CORE_SW-1; p3=win_int_left+(L_FRAME16k-N16_CORE_SW-1); tmp = sub(shr(L,1),n); FOR (i=0; i<tmp; i+=2) Loading