Loading Workspace_msvc/lib_dec.vcxproj +0 −1 Original line number Diff line number Diff line Loading @@ -209,7 +209,6 @@ <ClCompile Include="..\lib_dec\init_dec_fx.c" /> <ClCompile Include="..\lib_dec\inov_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_agc_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_binRenderer_internal_fx.c" /> <ClCompile Include="..\lib_dec\ivas_corecoder_dec_reconfig_fx.c" /> <ClCompile Include="..\lib_dec\ivas_core_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_cpe_dec_fx.c" /> Loading Workspace_msvc/lib_rend.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,7 @@ </Lib> </ItemDefinitionGroup> <ItemGroup> <ClCompile Include="..\lib_rend\ivas_binRenderer_internal_fx.c" /> <ClCompile Include="..\lib_rend\ivas_cldfb_ring_buffer.c" /> <ClCompile Include="..\lib_rend\ivas_dirac_decorr_dec_fx.c" /> <ClCompile Include="..\lib_rend\ivas_dirac_dec_binaural_functions_fx.c" /> Loading apps/decoder.c +49 −7 Original line number Diff line number Diff line Loading @@ -142,9 +142,11 @@ typedef struct hrtfFileReader *hrtfReader; char *hrtfFileName; #ifndef FIX_2249_MEMORY_LEAK_IN_SBA IVAS_DEC_HRTF_TD_HANDLE *hHrtfTD; IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics; #endif IVAS_BIN_RENDERER_TYPE binaural_renderer; IVAS_BIN_RENDERER_TYPE binaural_renderer_old; Loading Loading @@ -207,8 +209,10 @@ int main( reset_mem( USE_BYTES ); #endif #ifndef FIX_2249_MEMORY_LEAK_IN_SBA hHrtfBinary.hHrtfTD = NULL; /* just to avoid compilation warning */ hHrtfBinary.hHrtfStatistics = NULL; /* just to avoid compilation warning */ #endif splitRendBits.bits_buf = splitRendBitsBuf; Loading Loading @@ -737,6 +741,7 @@ cleanup: free( arg.aeSequence.pValidity ); } #ifndef FIX_2249_MEMORY_LEAK_IN_SBA if ( arg.hrtfReaderEnabled ) { destroy_td_hrtf( hHrtfBinary.hHrtfTD ); Loading @@ -749,6 +754,7 @@ cleanup: IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics = NULL; IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfStatistics ); destroy_hrtf_statistics( hHrtfStatistics ); #endif #endif IVAS_DEC_Close( &hIvasDec ); CustomLsReader_close( &hLsCustomReader ); Loading Loading @@ -3763,12 +3769,12 @@ static ivas_error load_hrtf_from_file( /*------------------------------------------------------------------------------------------* * Release HRTF binary data *------------------------------------------------------------------------------------------*/ #ifndef FIX_2249_MEMORY_LEAK_IN_SBA if ( !( binaural_renderer == IVAS_BIN_RENDERER_TYPE_TDREND || binaural_renderer == IVAS_BIN_RENDERER_TYPE_DEFAULT ) && binaural_renderer_sec != IVAS_BIN_RENDERER_TYPE_TDREND && hHrtfBinary->hHrtfTD != NULL ) { destroy_td_hrtf( hHrtfBinary->hHrtfTD ); } #endif if ( ( error = IVAS_DEC_HRTF_binary_close( hIvasDec, hHrtfBinary->binaural_renderer_old ) ) != IVAS_ERR_OK ) { return error; Loading @@ -3790,13 +3796,23 @@ static ivas_error load_hrtf_from_file( if ( binaural_renderer == IVAS_BIN_RENDERER_TYPE_TDREND || binaural_renderer_sec == IVAS_BIN_RENDERER_TYPE_TDREND || binaural_renderer == IVAS_BIN_RENDERER_TYPE_DEFAULT ) { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA IVAS_DEC_HRTF_TD_HANDLE *hHrtfTD = NULL; if ( ( error = IVAS_DEC_GetHrtfTDrendHandle( hIvasDec, &hHrtfTD ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_GetHrtfTDrendHandle( hIvasDec, &hHrtfBinary->hHrtfTD ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "\nIVAS_DEC_GetHrtfTDrendHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); return error; } #ifdef FIX_2249_MEMORY_LEAK_IN_SBA if ( ( error = load_TDrend_HRTF_binary( *hHrtfTD, output_Fs, hHrtfBinary->hrtfReader ) ) != IVAS_ERR_OK ) #else if ( ( error = load_TDrend_HRTF_binary( *hHrtfBinary->hHrtfTD, output_Fs, hHrtfBinary->hrtfReader ) ) != IVAS_ERR_OK ) #endif { if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { Loading @@ -3805,7 +3821,11 @@ static ivas_error load_hrtf_from_file( } else { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA destroy_td_hrtf( hHrtfTD ); #else destroy_td_hrtf( hHrtfBinary->hHrtfTD ); #endif } } } Loading Loading @@ -3878,17 +3898,32 @@ static ivas_error load_hrtf_from_file( } } } #ifndef FIX_2249_MEMORY_LEAK_IN_SBA } #endif #ifdef FIX_2249_MEMORY_LEAK_IN_SBA if ( ( binaural_renderer == IVAS_BIN_RENDERER_TYPE_FASTCONV || binaural_renderer == IVAS_BIN_RENDERER_TYPE_CREND ) && OutputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) #else if ( hHrtfBinary->hHrtfStatistics == NULL && ( binaural_renderer == IVAS_BIN_RENDERER_TYPE_FASTCONV || binaural_renderer == IVAS_BIN_RENDERER_TYPE_CREND ) && OutputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) #endif { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics = NULL; if ( ( error = IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfStatistics ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfBinary->hHrtfStatistics ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "\nIVAS_DEC_GetHrtfStatisticsHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); return error; } #ifdef FIX_2249_MEMORY_LEAK_IN_SBA if ( ( error = load_HrtfStatistics_from_binary( *hHrtfStatistics, output_Fs, hHrtfBinary->hrtfReader ) ) != IVAS_ERR_OK ) #else if ( ( error = load_reverb_binary( *hHrtfBinary->hHrtfStatistics, output_Fs, hHrtfBinary->hrtfReader ) ) != IVAS_ERR_OK ) #endif { if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { Loading @@ -3897,10 +3932,17 @@ static ivas_error load_hrtf_from_file( } else { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA destroy_hrtf_statistics( hHrtfStatistics ); #else destroy_hrtf_statistics( hHrtfBinary->hHrtfStatistics ); #endif } } } #ifdef FIX_2249_MEMORY_LEAK_IN_SBA } #endif return IVAS_ERR_OK; } Loading apps/renderer.c +6 −0 Original line number Diff line number Diff line Loading @@ -1102,7 +1102,11 @@ int main( fprintf( stderr, "\nIVAS_REND_GetHrtfStatisticsHandle failed\n\n" ); goto cleanup; } #ifdef FIX_2249_MEMORY_LEAK_IN_SBA if ( ( error = load_HrtfStatistics_from_binary( *hHrtfStatistics, args.sampleRate, hrtfFileReader ) ) != IVAS_ERR_OK ) #else if ( ( error = load_reverb_binary( *hHrtfStatistics, args.sampleRate, hrtfFileReader ) ) != IVAS_ERR_OK ) #endif { if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { Loading Loading @@ -2192,8 +2196,10 @@ cleanup: RotationFileReader_close( &externalOrientationFileReader ); RotationFileReader_close( &referenceRotReader ); Vector3PairFileReader_close( &referenceVectorReader ); #ifndef FIX_2249_MEMORY_LEAK_IN_SBA destroy_td_hrtf( hHrtfTD ); destroy_hrtf_statistics( hHrtfStatistics ); #endif IVAS_REND_Close( &hIvasRend ); IsmPositionProvider_close( positionProvider ); RenderConfigReader_close( &renderConfigReader ); Loading lib_com/est_tilt_fx.c +16 −3 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ /* RETURN ARGUMENTS : */ /* _ (Word16) tolt_code : tilt of the code Q15 */ /*=======================================================================*/ #ifndef CLEANUP_ACELP_ENC Word16 est_tilt_fx( /* o : tilt of the code Q15 */ const Word16 *exc, /* i : adaptive excitation vector Qx */ const Word16 gain_pit, /* i : adaptive gain Q14 */ Loading Loading @@ -111,17 +112,25 @@ Word16 est_tilt_fx( /* o : tilt of the code /* RETURN ARGUMENTS : */ /* _ (Word16) tolt_code : tilt of the code Q15 */ /*=======================================================================*/ #endif /* o : tilt of the code Q15 */ #ifdef CLEANUP_ACELP_ENC Word16 est_tilt_fx( #else Word16 est_tilt_ivas_fx( #endif const Word16 *exc, /* i : adaptive excitation vector Qx */ const Word16 gain_pit, /* i : adaptive gain Q14 */ const Word16 *code, /* i : algebraic excitation vector Q9 */ const Word32 gain_code, /* i : algebraic code gain Q16 */ Word16 *voice_fac, /* o : voicing factor Q15 */ const Word16 Q_exc, /* i : Scaling factor of excitation Q0 */ const Word16 L_subfr, /* i : Sub frame length */ const Word16 L_subfr /* i : Sub frame length */ #ifndef CLEANUP_ACELP_ENC , const Word16 flag_tilt /* i : flag for special tilt */ #endif ) { Word16 i, tmp, exp, ener1, exp1, ener2, exp2; Loading Loading @@ -161,6 +170,9 @@ Word16 est_tilt_ivas_fx( *voice_fac = exp; move16(); #ifdef CLEANUP_ACELP_ENC tilt_code = mac_r( 8192L /*0.25.Q15*/ * 65536 /*1.Q16*/ - 0x8000 /*1.Q15*/, *voice_fac, 8192 /*0.25.Q15*/ ); /*Q15 */ #else IF( flag_tilt == 0 ) { /* tilt of code for next subframe: 0.5=voiced, 0=unvoiced */ Loading @@ -180,6 +192,7 @@ Word16 est_tilt_ivas_fx( // tilt_code = (float)(0.28f + (*voice_fac + 1.0f) * 0.14f); tilt_code = mac_r( 13763L /*0.42.Q15*/ * 65536 /*1.Q16*/ - 0x8000 /*1.Q15*/, *voice_fac, 4588 /*0.14.Q15*/ ); /*Q15 */ } #endif return tilt_code; } Loading Loading
Workspace_msvc/lib_dec.vcxproj +0 −1 Original line number Diff line number Diff line Loading @@ -209,7 +209,6 @@ <ClCompile Include="..\lib_dec\init_dec_fx.c" /> <ClCompile Include="..\lib_dec\inov_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_agc_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_binRenderer_internal_fx.c" /> <ClCompile Include="..\lib_dec\ivas_corecoder_dec_reconfig_fx.c" /> <ClCompile Include="..\lib_dec\ivas_core_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_cpe_dec_fx.c" /> Loading
Workspace_msvc/lib_rend.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,7 @@ </Lib> </ItemDefinitionGroup> <ItemGroup> <ClCompile Include="..\lib_rend\ivas_binRenderer_internal_fx.c" /> <ClCompile Include="..\lib_rend\ivas_cldfb_ring_buffer.c" /> <ClCompile Include="..\lib_rend\ivas_dirac_decorr_dec_fx.c" /> <ClCompile Include="..\lib_rend\ivas_dirac_dec_binaural_functions_fx.c" /> Loading
apps/decoder.c +49 −7 Original line number Diff line number Diff line Loading @@ -142,9 +142,11 @@ typedef struct hrtfFileReader *hrtfReader; char *hrtfFileName; #ifndef FIX_2249_MEMORY_LEAK_IN_SBA IVAS_DEC_HRTF_TD_HANDLE *hHrtfTD; IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics; #endif IVAS_BIN_RENDERER_TYPE binaural_renderer; IVAS_BIN_RENDERER_TYPE binaural_renderer_old; Loading Loading @@ -207,8 +209,10 @@ int main( reset_mem( USE_BYTES ); #endif #ifndef FIX_2249_MEMORY_LEAK_IN_SBA hHrtfBinary.hHrtfTD = NULL; /* just to avoid compilation warning */ hHrtfBinary.hHrtfStatistics = NULL; /* just to avoid compilation warning */ #endif splitRendBits.bits_buf = splitRendBitsBuf; Loading Loading @@ -737,6 +741,7 @@ cleanup: free( arg.aeSequence.pValidity ); } #ifndef FIX_2249_MEMORY_LEAK_IN_SBA if ( arg.hrtfReaderEnabled ) { destroy_td_hrtf( hHrtfBinary.hHrtfTD ); Loading @@ -749,6 +754,7 @@ cleanup: IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics = NULL; IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfStatistics ); destroy_hrtf_statistics( hHrtfStatistics ); #endif #endif IVAS_DEC_Close( &hIvasDec ); CustomLsReader_close( &hLsCustomReader ); Loading Loading @@ -3763,12 +3769,12 @@ static ivas_error load_hrtf_from_file( /*------------------------------------------------------------------------------------------* * Release HRTF binary data *------------------------------------------------------------------------------------------*/ #ifndef FIX_2249_MEMORY_LEAK_IN_SBA if ( !( binaural_renderer == IVAS_BIN_RENDERER_TYPE_TDREND || binaural_renderer == IVAS_BIN_RENDERER_TYPE_DEFAULT ) && binaural_renderer_sec != IVAS_BIN_RENDERER_TYPE_TDREND && hHrtfBinary->hHrtfTD != NULL ) { destroy_td_hrtf( hHrtfBinary->hHrtfTD ); } #endif if ( ( error = IVAS_DEC_HRTF_binary_close( hIvasDec, hHrtfBinary->binaural_renderer_old ) ) != IVAS_ERR_OK ) { return error; Loading @@ -3790,13 +3796,23 @@ static ivas_error load_hrtf_from_file( if ( binaural_renderer == IVAS_BIN_RENDERER_TYPE_TDREND || binaural_renderer_sec == IVAS_BIN_RENDERER_TYPE_TDREND || binaural_renderer == IVAS_BIN_RENDERER_TYPE_DEFAULT ) { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA IVAS_DEC_HRTF_TD_HANDLE *hHrtfTD = NULL; if ( ( error = IVAS_DEC_GetHrtfTDrendHandle( hIvasDec, &hHrtfTD ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_GetHrtfTDrendHandle( hIvasDec, &hHrtfBinary->hHrtfTD ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "\nIVAS_DEC_GetHrtfTDrendHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); return error; } #ifdef FIX_2249_MEMORY_LEAK_IN_SBA if ( ( error = load_TDrend_HRTF_binary( *hHrtfTD, output_Fs, hHrtfBinary->hrtfReader ) ) != IVAS_ERR_OK ) #else if ( ( error = load_TDrend_HRTF_binary( *hHrtfBinary->hHrtfTD, output_Fs, hHrtfBinary->hrtfReader ) ) != IVAS_ERR_OK ) #endif { if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { Loading @@ -3805,7 +3821,11 @@ static ivas_error load_hrtf_from_file( } else { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA destroy_td_hrtf( hHrtfTD ); #else destroy_td_hrtf( hHrtfBinary->hHrtfTD ); #endif } } } Loading Loading @@ -3878,17 +3898,32 @@ static ivas_error load_hrtf_from_file( } } } #ifndef FIX_2249_MEMORY_LEAK_IN_SBA } #endif #ifdef FIX_2249_MEMORY_LEAK_IN_SBA if ( ( binaural_renderer == IVAS_BIN_RENDERER_TYPE_FASTCONV || binaural_renderer == IVAS_BIN_RENDERER_TYPE_CREND ) && OutputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) #else if ( hHrtfBinary->hHrtfStatistics == NULL && ( binaural_renderer == IVAS_BIN_RENDERER_TYPE_FASTCONV || binaural_renderer == IVAS_BIN_RENDERER_TYPE_CREND ) && OutputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) #endif { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics = NULL; if ( ( error = IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfStatistics ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfBinary->hHrtfStatistics ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "\nIVAS_DEC_GetHrtfStatisticsHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); return error; } #ifdef FIX_2249_MEMORY_LEAK_IN_SBA if ( ( error = load_HrtfStatistics_from_binary( *hHrtfStatistics, output_Fs, hHrtfBinary->hrtfReader ) ) != IVAS_ERR_OK ) #else if ( ( error = load_reverb_binary( *hHrtfBinary->hHrtfStatistics, output_Fs, hHrtfBinary->hrtfReader ) ) != IVAS_ERR_OK ) #endif { if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { Loading @@ -3897,10 +3932,17 @@ static ivas_error load_hrtf_from_file( } else { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA destroy_hrtf_statistics( hHrtfStatistics ); #else destroy_hrtf_statistics( hHrtfBinary->hHrtfStatistics ); #endif } } } #ifdef FIX_2249_MEMORY_LEAK_IN_SBA } #endif return IVAS_ERR_OK; } Loading
apps/renderer.c +6 −0 Original line number Diff line number Diff line Loading @@ -1102,7 +1102,11 @@ int main( fprintf( stderr, "\nIVAS_REND_GetHrtfStatisticsHandle failed\n\n" ); goto cleanup; } #ifdef FIX_2249_MEMORY_LEAK_IN_SBA if ( ( error = load_HrtfStatistics_from_binary( *hHrtfStatistics, args.sampleRate, hrtfFileReader ) ) != IVAS_ERR_OK ) #else if ( ( error = load_reverb_binary( *hHrtfStatistics, args.sampleRate, hrtfFileReader ) ) != IVAS_ERR_OK ) #endif { if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { Loading Loading @@ -2192,8 +2196,10 @@ cleanup: RotationFileReader_close( &externalOrientationFileReader ); RotationFileReader_close( &referenceRotReader ); Vector3PairFileReader_close( &referenceVectorReader ); #ifndef FIX_2249_MEMORY_LEAK_IN_SBA destroy_td_hrtf( hHrtfTD ); destroy_hrtf_statistics( hHrtfStatistics ); #endif IVAS_REND_Close( &hIvasRend ); IsmPositionProvider_close( positionProvider ); RenderConfigReader_close( &renderConfigReader ); Loading
lib_com/est_tilt_fx.c +16 −3 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ /* RETURN ARGUMENTS : */ /* _ (Word16) tolt_code : tilt of the code Q15 */ /*=======================================================================*/ #ifndef CLEANUP_ACELP_ENC Word16 est_tilt_fx( /* o : tilt of the code Q15 */ const Word16 *exc, /* i : adaptive excitation vector Qx */ const Word16 gain_pit, /* i : adaptive gain Q14 */ Loading Loading @@ -111,17 +112,25 @@ Word16 est_tilt_fx( /* o : tilt of the code /* RETURN ARGUMENTS : */ /* _ (Word16) tolt_code : tilt of the code Q15 */ /*=======================================================================*/ #endif /* o : tilt of the code Q15 */ #ifdef CLEANUP_ACELP_ENC Word16 est_tilt_fx( #else Word16 est_tilt_ivas_fx( #endif const Word16 *exc, /* i : adaptive excitation vector Qx */ const Word16 gain_pit, /* i : adaptive gain Q14 */ const Word16 *code, /* i : algebraic excitation vector Q9 */ const Word32 gain_code, /* i : algebraic code gain Q16 */ Word16 *voice_fac, /* o : voicing factor Q15 */ const Word16 Q_exc, /* i : Scaling factor of excitation Q0 */ const Word16 L_subfr, /* i : Sub frame length */ const Word16 L_subfr /* i : Sub frame length */ #ifndef CLEANUP_ACELP_ENC , const Word16 flag_tilt /* i : flag for special tilt */ #endif ) { Word16 i, tmp, exp, ener1, exp1, ener2, exp2; Loading Loading @@ -161,6 +170,9 @@ Word16 est_tilt_ivas_fx( *voice_fac = exp; move16(); #ifdef CLEANUP_ACELP_ENC tilt_code = mac_r( 8192L /*0.25.Q15*/ * 65536 /*1.Q16*/ - 0x8000 /*1.Q15*/, *voice_fac, 8192 /*0.25.Q15*/ ); /*Q15 */ #else IF( flag_tilt == 0 ) { /* tilt of code for next subframe: 0.5=voiced, 0=unvoiced */ Loading @@ -180,6 +192,7 @@ Word16 est_tilt_ivas_fx( // tilt_code = (float)(0.28f + (*voice_fac + 1.0f) * 0.14f); tilt_code = mac_r( 13763L /*0.42.Q15*/ * 65536 /*1.Q16*/ - 0x8000 /*1.Q15*/, *voice_fac, 4588 /*0.14.Q15*/ ); /*Q15 */ } #endif return tilt_code; } Loading