diff --git a/silk/decode_core.c b/silk/decode_core.c index 91ebc7f1113fdcaf99704634db2ce12bec056f46..6a07ee1a2ab84ea115cbf68c4a077d5053b40466 100644 --- a/silk/decode_core.c +++ b/silk/decode_core.c @@ -44,7 +44,7 @@ void silk_decode_core( opus_int i, j, k, lag = 0, start_idx, sLTP_buf_idx, NLSF_interpolation_flag, signalType; opus_int16 *A_Q12, *B_Q14, *pxq, A_Q12_tmp[ MAX_LPC_ORDER ]; opus_int16 sLTP[ MAX_FRAME_LENGTH ]; - opus_int32 LTP_pred_Q14, LPC_pred_Q10, Gain_Q16, inv_gain_Q16, inv_gain_Q32, gain_adj_Q16, rand_seed, offset_Q10; + opus_int32 LTP_pred_Q14, LPC_pred_Q10, Gain_Q10, inv_gain_Q16, inv_gain_Q32, gain_adj_Q16, rand_seed, offset_Q10; opus_int32 *pred_lag_ptr, *pexc_Q10, *pres_Q10; opus_int32 res_Q10[ MAX_SUB_FRAME_LENGTH ]; opus_int32 vec_Q10[ MAX_SUB_FRAME_LENGTH ]; @@ -91,10 +91,10 @@ void silk_decode_core( /* Preload LPC coeficients to array on stack. Gives small performance gain */ silk_memcpy( A_Q12_tmp, A_Q12, psDec->LPC_order * sizeof( opus_int16 ) ); B_Q14 = &psDecCtrl->LTPCoef_Q14[ k * LTP_ORDER ]; - Gain_Q16 = psDecCtrl->Gains_Q16[ k ]; + Gain_Q10 = silk_RSHIFT( psDecCtrl->Gains_Q16[ k ], 6 ); signalType = psDec->indices.signalType; - inv_gain_Q16 = silk_INVERSE32_varQ( silk_max( Gain_Q16, 1 ), 32 ); + inv_gain_Q16 = silk_INVERSE32_varQ( Gain_Q10, 26 ); inv_gain_Q16 = silk_min( inv_gain_Q16, silk_int16_MAX ); /* Calculate Gain adjustment factor */ @@ -209,7 +209,7 @@ void silk_decode_core( /* Scale with Gain */ for( i = 0; i < psDec->subfr_length; i++ ) { - pxq[ i ] = ( opus_int16 )silk_SAT16( silk_RSHIFT_ROUND( silk_SMULWW( vec_Q10[ i ], Gain_Q16 ), 10 ) ); + pxq[ i ] = ( opus_int16 )silk_SAT16( silk_RSHIFT_ROUND( silk_SMULWW( vec_Q10[ i ], Gain_Q10 ), 4 ) ); } /* Update LPC filter state */ diff --git a/src/opus.vcxproj b/src/opus.vcxproj index 28b03c8f8a1324b63308ce08135c6820ec3815ef..6e9b3f3369e500757c884ccfccf1fd924176c3a1 100644 --- a/src/opus.vcxproj +++ b/src/opus.vcxproj @@ -83,16 +83,15 @@ <ClCompile Include="opus.c" /> <ClCompile Include="opus_decoder.c" /> <ClCompile Include="opus_encoder.c" /> + <ClCompile Include="repacketizer.c" /> <ClCompile Include="test_opus.c" /> </ItemGroup> <ItemGroup> - <ClInclude Include="..\silk\silk_API.h" /> <ClInclude Include="..\win32\config.h" /> <ClInclude Include="opus.h" /> - <ClInclude Include="opus_decoder.h" /> - <ClInclude Include="opus_encoder.h" /> + <ClInclude Include="opus_private.h" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> -</Project> +</Project> \ No newline at end of file diff --git a/src/opus.vcxproj.filters b/src/opus.vcxproj.filters index 7085d0ce5a9af914b660fba8cacc8a738d5d6043..b97050c32f52d5106717a1c24b9a0226201fef67 100644 --- a/src/opus.vcxproj.filters +++ b/src/opus.vcxproj.filters @@ -27,21 +27,18 @@ <ClCompile Include="opus.c"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="repacketizer.c"> + <Filter>Source Files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> - <ClInclude Include="opus_decoder.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="opus_encoder.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="opus.h"> <Filter>Header Files</Filter> </ClInclude> <ClInclude Include="..\win32\config.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\silk\silk_API.h"> + <ClInclude Include="opus_private.h"> <Filter>Header Files</Filter> </ClInclude> </ItemGroup>