Index: third_party/opus/src/silk/NLSF_del_dec_quant.c |
diff --git a/third_party/opus/src/silk/NLSF_del_dec_quant.c b/third_party/opus/src/silk/NLSF_del_dec_quant.c |
index de88fee060e3772eb43c4d0df6812aa101590dbf..44a16acd0bc11ab733bbb0bbe42c378b21d4af1f 100644 |
--- a/third_party/opus/src/silk/NLSF_del_dec_quant.c |
+++ b/third_party/opus/src/silk/NLSF_del_dec_quant.c |
@@ -84,7 +84,7 @@ opus_int32 silk_NLSF_del_dec_quant( /* O Returns |
nStates = 1; |
RD_Q25[ 0 ] = 0; |
prev_out_Q10[ 0 ] = 0; |
- for( i = order - 1; ; i-- ) { |
+ for( i = order - 1; i >= 0; i-- ) { |
rates_Q5 = &ec_rates_Q5[ ec_ix[ i ] ]; |
in_Q10 = x_Q10[ i ]; |
for( j = 0; j < nStates; j++ ) { |
@@ -131,7 +131,7 @@ opus_int32 silk_NLSF_del_dec_quant( /* O Returns |
RD_Q25[ j + nStates ] = silk_SMLABB( silk_MLA( RD_tmp_Q25, silk_SMULBB( diff_Q10, diff_Q10 ), w_Q5[ i ] ), mu_Q20, rate1_Q5 ); |
} |
- if( nStates <= ( NLSF_QUANT_DEL_DEC_STATES >> 1 ) ) { |
+ if( nStates <= NLSF_QUANT_DEL_DEC_STATES/2 ) { |
/* double number of states and copy */ |
for( j = 0; j < nStates; j++ ) { |
ind[ j + nStates ][ i ] = ind[ j ][ i ] + 1; |
@@ -140,7 +140,7 @@ opus_int32 silk_NLSF_del_dec_quant( /* O Returns |
for( j = nStates; j < NLSF_QUANT_DEL_DEC_STATES; j++ ) { |
ind[ j ][ i ] = ind[ j - nStates ][ i ]; |
} |
- } else if( i > 0 ) { |
+ } else { |
/* sort lower and upper half of RD_Q25, pairwise */ |
for( j = 0; j < NLSF_QUANT_DEL_DEC_STATES; j++ ) { |
if( RD_Q25[ j ] > RD_Q25[ j + NLSF_QUANT_DEL_DEC_STATES ] ) { |
@@ -191,8 +191,6 @@ opus_int32 silk_NLSF_del_dec_quant( /* O Returns |
for( j = 0; j < NLSF_QUANT_DEL_DEC_STATES; j++ ) { |
ind[ j ][ i ] += silk_RSHIFT( ind_sort[ j ], NLSF_QUANT_DEL_DEC_STATES_LOG2 ); |
} |
- } else { /* i == 0 */ |
- break; |
} |
} |