Loading Workspace_msvc/lib_dec.vcxproj +0 −1 Original line number Original line Diff line number Diff line Loading @@ -209,7 +209,6 @@ <ClCompile Include="..\lib_dec\init_dec_fx.c" /> <ClCompile Include="..\lib_dec\init_dec_fx.c" /> <ClCompile Include="..\lib_dec\inov_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_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_corecoder_dec_reconfig_fx.c" /> <ClCompile Include="..\lib_dec\ivas_core_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_core_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_cpe_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_cpe_dec_fx.c" /> Loading Workspace_msvc/lib_isar.vcxproj +0 −1 Original line number Original line Diff line number Diff line Loading @@ -133,7 +133,6 @@ <ClCompile Include="..\lib_isar\isar_lc3plus_enc.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_enc.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_payload.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_payload.c" /> <ClCompile Include="..\lib_isar\isar_MSPred.c" /> <ClCompile Include="..\lib_isar\isar_MSPred.c" /> <ClCompile Include="..\lib_isar\isar_NoiseGen.c" /> <ClCompile Include="..\lib_isar\isar_PerceptualModel.c" /> <ClCompile Include="..\lib_isar\isar_PerceptualModel.c" /> <ClCompile Include="..\lib_isar\isar_PredDecoder.c" /> <ClCompile Include="..\lib_isar\isar_PredDecoder.c" /> <ClCompile Include="..\lib_isar\isar_PredEncoder.c" /> <ClCompile Include="..\lib_isar\isar_PredEncoder.c" /> Loading Workspace_msvc/lib_rend.vcxproj +1 −0 Original line number Original line Diff line number Diff line Loading @@ -138,6 +138,7 @@ </Lib> </Lib> </ItemDefinitionGroup> </ItemDefinitionGroup> <ItemGroup> <ItemGroup> <ClCompile Include="..\lib_rend\ivas_binRenderer_internal_fx.c" /> <ClCompile Include="..\lib_rend\ivas_cldfb_ring_buffer.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_decorr_dec_fx.c" /> <ClCompile Include="..\lib_rend\ivas_dirac_dec_binaural_functions_fx.c" /> <ClCompile Include="..\lib_rend\ivas_dirac_dec_binaural_functions_fx.c" /> Loading apps/decoder.c +56 −7 Original line number Original line Diff line number Diff line Loading @@ -142,9 +142,11 @@ typedef struct hrtfFileReader *hrtfReader; hrtfFileReader *hrtfReader; char *hrtfFileName; char *hrtfFileName; #ifndef FIX_2249_MEMORY_LEAK_IN_SBA IVAS_DEC_HRTF_TD_HANDLE *hHrtfTD; IVAS_DEC_HRTF_TD_HANDLE *hHrtfTD; IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics; IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics; #endif IVAS_BIN_RENDERER_TYPE binaural_renderer; IVAS_BIN_RENDERER_TYPE binaural_renderer; IVAS_BIN_RENDERER_TYPE binaural_renderer_old; IVAS_BIN_RENDERER_TYPE binaural_renderer_old; Loading Loading @@ -207,8 +209,10 @@ int main( reset_mem( USE_BYTES ); reset_mem( USE_BYTES ); #endif #endif #ifndef FIX_2249_MEMORY_LEAK_IN_SBA hHrtfBinary.hHrtfTD = NULL; /* just to avoid compilation warning */ hHrtfBinary.hHrtfTD = NULL; /* just to avoid compilation warning */ hHrtfBinary.hHrtfStatistics = NULL; /* just to avoid compilation warning */ hHrtfBinary.hHrtfStatistics = NULL; /* just to avoid compilation warning */ #endif splitRendBits.bits_buf = splitRendBitsBuf; splitRendBits.bits_buf = splitRendBitsBuf; Loading Loading @@ -452,6 +456,13 @@ int main( fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; goto cleanup; } } #ifdef FIX_1449_RENDERER_FRAME_SIZE_UNCLEAR_IN_ISAR if ( !arg.renderConfigEnabled && ( arg.renderFramesize != asked_frame_size ) ) { fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for non-0dof split rendering!\n" ); } #endif } } /*------------------------------------------------------------------------------------------* /*------------------------------------------------------------------------------------------* Loading Loading @@ -730,6 +741,7 @@ cleanup: free( arg.aeSequence.pValidity ); free( arg.aeSequence.pValidity ); } } #ifndef FIX_2249_MEMORY_LEAK_IN_SBA if ( arg.hrtfReaderEnabled ) if ( arg.hrtfReaderEnabled ) { { destroy_td_hrtf( hHrtfBinary.hHrtfTD ); destroy_td_hrtf( hHrtfBinary.hHrtfTD ); Loading @@ -742,6 +754,7 @@ cleanup: IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics = NULL; IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics = NULL; IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfStatistics ); IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfStatistics ); destroy_hrtf_statistics( hHrtfStatistics ); destroy_hrtf_statistics( hHrtfStatistics ); #endif #endif #endif IVAS_DEC_Close( &hIvasDec ); IVAS_DEC_Close( &hIvasDec ); CustomLsReader_close( &hLsCustomReader ); CustomLsReader_close( &hLsCustomReader ); Loading Loading @@ -3756,12 +3769,12 @@ static ivas_error load_hrtf_from_file( /*------------------------------------------------------------------------------------------* /*------------------------------------------------------------------------------------------* * Release HRTF binary data * 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 ) 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 ); destroy_td_hrtf( hHrtfBinary->hHrtfTD ); } } #endif if ( ( error = IVAS_DEC_HRTF_binary_close( hIvasDec, hHrtfBinary->binaural_renderer_old ) ) != IVAS_ERR_OK ) if ( ( error = IVAS_DEC_HRTF_binary_close( hIvasDec, hHrtfBinary->binaural_renderer_old ) ) != IVAS_ERR_OK ) { { return error; return error; Loading @@ -3783,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 ) 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 ) 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 ) ); fprintf( stderr, "\nIVAS_DEC_GetHrtfTDrendHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); return 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 ) 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 ) if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { { Loading @@ -3798,7 +3821,11 @@ static ivas_error load_hrtf_from_file( } } else else { { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA destroy_td_hrtf( hHrtfTD ); #else destroy_td_hrtf( hHrtfBinary->hHrtfTD ); destroy_td_hrtf( hHrtfBinary->hHrtfTD ); #endif } } } } } } Loading Loading @@ -3871,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 ) 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 ) 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 ) ); fprintf( stderr, "\nIVAS_DEC_GetHrtfStatisticsHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); return 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 ) 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 ) if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { { Loading @@ -3890,10 +3932,17 @@ static ivas_error load_hrtf_from_file( } } else else { { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA destroy_hrtf_statistics( hHrtfStatistics ); #else destroy_hrtf_statistics( hHrtfBinary->hHrtfStatistics ); destroy_hrtf_statistics( hHrtfBinary->hHrtfStatistics ); #endif } } } } } #ifdef FIX_2249_MEMORY_LEAK_IN_SBA } } #endif return IVAS_ERR_OK; return IVAS_ERR_OK; } } Loading apps/renderer.c +22 −0 Original line number Original line Diff line number Diff line Loading @@ -172,7 +172,9 @@ typedef struct int16_t numInMetadataFiles; int16_t numInMetadataFiles; char outMetadataFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char outMetadataFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; #ifndef FIX_1494_SET_SPLITBFI_UNUSED char splitRendBFIFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char splitRendBFIFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; #endif char referenceVectorFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char referenceVectorFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char referenceRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char referenceRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char externalOrientationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char externalOrientationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; Loading Loading @@ -223,7 +225,9 @@ typedef enum CmdLnOptionId_listFormats, CmdLnOptionId_listFormats, CmdLnOptionId_inputGain, CmdLnOptionId_inputGain, CmdLnOptionId_outputMetadata, CmdLnOptionId_outputMetadata, #ifndef FIX_1494_SET_SPLITBFI_UNUSED CmdLnOptionId_SplitRendBFIFile, CmdLnOptionId_SplitRendBFIFile, #endif CmdLnOptionId_referenceVectorFile, CmdLnOptionId_referenceVectorFile, CmdLnOptionId_exteriorOrientationFile, CmdLnOptionId_exteriorOrientationFile, CmdLnOptionId_framing, CmdLnOptionId_framing, Loading Loading @@ -282,12 +286,14 @@ static const CmdLnParser_Option cliOptions[] = { .matchShort = "om", .matchShort = "om", .description = "coded metadata file for BINAURAL_SPLIT_PCM output mode", .description = "coded metadata file for BINAURAL_SPLIT_PCM output mode", }, }, #ifndef FIX_1494_SET_SPLITBFI_UNUSED { { .id = CmdLnOptionId_SplitRendBFIFile, .id = CmdLnOptionId_SplitRendBFIFile, .match = "post_rend_bfi_file", .match = "post_rend_bfi_file", .matchShort = "prbfi", .matchShort = "prbfi", .description = "Split rendering option: bfi file", .description = "Split rendering option: bfi file", }, }, #endif { { .id = CmdLnOptionId_refRotFile, .id = CmdLnOptionId_refRotFile, .match = "reference_rotation_file", .match = "reference_rotation_file", Loading Loading @@ -763,7 +769,9 @@ int main( IVAS_CLDFB_FILTER_BANK_HANDLE cldfbAna[RENDERER_MAX_INPUT_CHANNELS]; IVAS_CLDFB_FILTER_BANK_HANDLE cldfbAna[RENDERER_MAX_INPUT_CHANNELS]; IVAS_CLDFB_FILTER_BANK_HANDLE cldfbSyn[RENDERER_MAX_INPUT_CHANNELS]; IVAS_CLDFB_FILTER_BANK_HANDLE cldfbSyn[RENDERER_MAX_INPUT_CHANNELS]; int16_t cldfb_in_flag, CLDFBframeSize_smpls; int16_t cldfb_in_flag, CLDFBframeSize_smpls; #ifndef FIX_1494_SET_SPLITBFI_UNUSED SplitRendBFIFileReader *splitRendBFIReader = NULL; SplitRendBFIFileReader *splitRendBFIReader = NULL; #endif Vector3PairFileReader *referenceVectorReader = NULL; Vector3PairFileReader *referenceVectorReader = NULL; hrtfFileReader *hrtfFileReader = NULL; hrtfFileReader *hrtfFileReader = NULL; IVAS_DEC_HRTF_CREND_HANDLE *hHrtfCrend = NULL; IVAS_DEC_HRTF_CREND_HANDLE *hHrtfCrend = NULL; Loading Loading @@ -893,11 +901,13 @@ int main( } } } } #ifndef FIX_1494_SET_SPLITBFI_UNUSED if ( !isEmptyString( args.splitRendBFIFilePath ) ) if ( !isEmptyString( args.splitRendBFIFilePath ) ) { { convert_backslash( args.splitRendBFIFilePath ); convert_backslash( args.splitRendBFIFilePath ); SplitRendBFIFileReader_open( args.splitRendBFIFilePath, &splitRendBFIReader ); SplitRendBFIFileReader_open( args.splitRendBFIFilePath, &splitRendBFIReader ); } } #endif if ( !isEmptyString( args.externalOrientationFilePath ) ) if ( !isEmptyString( args.externalOrientationFilePath ) ) { { if ( RotationFileReader_open( args.externalOrientationFilePath, &externalOrientationFileReader ) != IVAS_ERR_OK ) if ( RotationFileReader_open( args.externalOrientationFilePath, &externalOrientationFileReader ) != IVAS_ERR_OK ) Loading Loading @@ -1102,7 +1112,11 @@ int main( fprintf( stderr, "\nIVAS_REND_GetHrtfStatisticsHandle failed\n\n" ); fprintf( stderr, "\nIVAS_REND_GetHrtfStatisticsHandle failed\n\n" ); goto cleanup; 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 ) if ( ( error = load_reverb_binary( *hHrtfStatistics, args.sampleRate, hrtfFileReader ) ) != IVAS_ERR_OK ) #endif { { if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { { Loading Loading @@ -2179,7 +2193,9 @@ cleanup: } } split_rend_reader_writer_close( &hSplitRendFileReadWrite ); split_rend_reader_writer_close( &hSplitRendFileReadWrite ); #ifndef FIX_1494_SET_SPLITBFI_UNUSED SplitRendBFIFileReader_close( &splitRendBFIReader ); SplitRendBFIFileReader_close( &splitRendBFIReader ); #endif for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) { { Loading @@ -2192,8 +2208,10 @@ cleanup: RotationFileReader_close( &externalOrientationFileReader ); RotationFileReader_close( &externalOrientationFileReader ); RotationFileReader_close( &referenceRotReader ); RotationFileReader_close( &referenceRotReader ); Vector3PairFileReader_close( &referenceVectorReader ); Vector3PairFileReader_close( &referenceVectorReader ); #ifndef FIX_2249_MEMORY_LEAK_IN_SBA destroy_td_hrtf( hHrtfTD ); destroy_td_hrtf( hHrtfTD ); destroy_hrtf_statistics( hHrtfStatistics ); destroy_hrtf_statistics( hHrtfStatistics ); #endif IVAS_REND_Close( &hIvasRend ); IVAS_REND_Close( &hIvasRend ); IsmPositionProvider_close( positionProvider ); IsmPositionProvider_close( positionProvider ); RenderConfigReader_close( &renderConfigReader ); RenderConfigReader_close( &renderConfigReader ); Loading Loading @@ -2779,7 +2797,9 @@ static CmdlnArgs defaultArgs( clearString( args.headRotationFilePath ); clearString( args.headRotationFilePath ); clearString( args.outMetadataFilePath ); clearString( args.outMetadataFilePath ); #ifndef FIX_1494_SET_SPLITBFI_UNUSED clearString( args.splitRendBFIFilePath ); clearString( args.splitRendBFIFilePath ); #endif clearString( args.referenceVectorFilePath ); clearString( args.referenceVectorFilePath ); clearString( args.referenceRotationFilePath ); clearString( args.referenceRotationFilePath ); clearString( args.customHrtfFilePath ); clearString( args.customHrtfFilePath ); Loading Loading @@ -2886,10 +2906,12 @@ static void parseOption( assert( numOptionValues == 1 ); assert( numOptionValues == 1 ); strncpy( args->outMetadataFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); strncpy( args->outMetadataFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; break; #ifndef FIX_1494_SET_SPLITBFI_UNUSED case CmdLnOptionId_SplitRendBFIFile: case CmdLnOptionId_SplitRendBFIFile: assert( numOptionValues == 1 ); assert( numOptionValues == 1 ); strncpy( args->splitRendBFIFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); strncpy( args->splitRendBFIFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; break; #endif case CmdLnOptionId_referenceVectorFile: case CmdLnOptionId_referenceVectorFile: assert( numOptionValues == 1 ); assert( numOptionValues == 1 ); strncpy( args->referenceVectorFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); strncpy( args->referenceVectorFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); Loading Loading
Workspace_msvc/lib_dec.vcxproj +0 −1 Original line number Original line Diff line number Diff line Loading @@ -209,7 +209,6 @@ <ClCompile Include="..\lib_dec\init_dec_fx.c" /> <ClCompile Include="..\lib_dec\init_dec_fx.c" /> <ClCompile Include="..\lib_dec\inov_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_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_corecoder_dec_reconfig_fx.c" /> <ClCompile Include="..\lib_dec\ivas_core_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_core_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_cpe_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_cpe_dec_fx.c" /> Loading
Workspace_msvc/lib_isar.vcxproj +0 −1 Original line number Original line Diff line number Diff line Loading @@ -133,7 +133,6 @@ <ClCompile Include="..\lib_isar\isar_lc3plus_enc.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_enc.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_payload.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_payload.c" /> <ClCompile Include="..\lib_isar\isar_MSPred.c" /> <ClCompile Include="..\lib_isar\isar_MSPred.c" /> <ClCompile Include="..\lib_isar\isar_NoiseGen.c" /> <ClCompile Include="..\lib_isar\isar_PerceptualModel.c" /> <ClCompile Include="..\lib_isar\isar_PerceptualModel.c" /> <ClCompile Include="..\lib_isar\isar_PredDecoder.c" /> <ClCompile Include="..\lib_isar\isar_PredDecoder.c" /> <ClCompile Include="..\lib_isar\isar_PredEncoder.c" /> <ClCompile Include="..\lib_isar\isar_PredEncoder.c" /> Loading
Workspace_msvc/lib_rend.vcxproj +1 −0 Original line number Original line Diff line number Diff line Loading @@ -138,6 +138,7 @@ </Lib> </Lib> </ItemDefinitionGroup> </ItemDefinitionGroup> <ItemGroup> <ItemGroup> <ClCompile Include="..\lib_rend\ivas_binRenderer_internal_fx.c" /> <ClCompile Include="..\lib_rend\ivas_cldfb_ring_buffer.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_decorr_dec_fx.c" /> <ClCompile Include="..\lib_rend\ivas_dirac_dec_binaural_functions_fx.c" /> <ClCompile Include="..\lib_rend\ivas_dirac_dec_binaural_functions_fx.c" /> Loading
apps/decoder.c +56 −7 Original line number Original line Diff line number Diff line Loading @@ -142,9 +142,11 @@ typedef struct hrtfFileReader *hrtfReader; hrtfFileReader *hrtfReader; char *hrtfFileName; char *hrtfFileName; #ifndef FIX_2249_MEMORY_LEAK_IN_SBA IVAS_DEC_HRTF_TD_HANDLE *hHrtfTD; IVAS_DEC_HRTF_TD_HANDLE *hHrtfTD; IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics; IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics; #endif IVAS_BIN_RENDERER_TYPE binaural_renderer; IVAS_BIN_RENDERER_TYPE binaural_renderer; IVAS_BIN_RENDERER_TYPE binaural_renderer_old; IVAS_BIN_RENDERER_TYPE binaural_renderer_old; Loading Loading @@ -207,8 +209,10 @@ int main( reset_mem( USE_BYTES ); reset_mem( USE_BYTES ); #endif #endif #ifndef FIX_2249_MEMORY_LEAK_IN_SBA hHrtfBinary.hHrtfTD = NULL; /* just to avoid compilation warning */ hHrtfBinary.hHrtfTD = NULL; /* just to avoid compilation warning */ hHrtfBinary.hHrtfStatistics = NULL; /* just to avoid compilation warning */ hHrtfBinary.hHrtfStatistics = NULL; /* just to avoid compilation warning */ #endif splitRendBits.bits_buf = splitRendBitsBuf; splitRendBits.bits_buf = splitRendBitsBuf; Loading Loading @@ -452,6 +456,13 @@ int main( fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; goto cleanup; } } #ifdef FIX_1449_RENDERER_FRAME_SIZE_UNCLEAR_IN_ISAR if ( !arg.renderConfigEnabled && ( arg.renderFramesize != asked_frame_size ) ) { fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for non-0dof split rendering!\n" ); } #endif } } /*------------------------------------------------------------------------------------------* /*------------------------------------------------------------------------------------------* Loading Loading @@ -730,6 +741,7 @@ cleanup: free( arg.aeSequence.pValidity ); free( arg.aeSequence.pValidity ); } } #ifndef FIX_2249_MEMORY_LEAK_IN_SBA if ( arg.hrtfReaderEnabled ) if ( arg.hrtfReaderEnabled ) { { destroy_td_hrtf( hHrtfBinary.hHrtfTD ); destroy_td_hrtf( hHrtfBinary.hHrtfTD ); Loading @@ -742,6 +754,7 @@ cleanup: IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics = NULL; IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics = NULL; IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfStatistics ); IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfStatistics ); destroy_hrtf_statistics( hHrtfStatistics ); destroy_hrtf_statistics( hHrtfStatistics ); #endif #endif #endif IVAS_DEC_Close( &hIvasDec ); IVAS_DEC_Close( &hIvasDec ); CustomLsReader_close( &hLsCustomReader ); CustomLsReader_close( &hLsCustomReader ); Loading Loading @@ -3756,12 +3769,12 @@ static ivas_error load_hrtf_from_file( /*------------------------------------------------------------------------------------------* /*------------------------------------------------------------------------------------------* * Release HRTF binary data * 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 ) 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 ); destroy_td_hrtf( hHrtfBinary->hHrtfTD ); } } #endif if ( ( error = IVAS_DEC_HRTF_binary_close( hIvasDec, hHrtfBinary->binaural_renderer_old ) ) != IVAS_ERR_OK ) if ( ( error = IVAS_DEC_HRTF_binary_close( hIvasDec, hHrtfBinary->binaural_renderer_old ) ) != IVAS_ERR_OK ) { { return error; return error; Loading @@ -3783,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 ) 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 ) 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 ) ); fprintf( stderr, "\nIVAS_DEC_GetHrtfTDrendHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); return 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 ) 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 ) if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { { Loading @@ -3798,7 +3821,11 @@ static ivas_error load_hrtf_from_file( } } else else { { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA destroy_td_hrtf( hHrtfTD ); #else destroy_td_hrtf( hHrtfBinary->hHrtfTD ); destroy_td_hrtf( hHrtfBinary->hHrtfTD ); #endif } } } } } } Loading Loading @@ -3871,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 ) 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 ) 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 ) ); fprintf( stderr, "\nIVAS_DEC_GetHrtfStatisticsHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); return 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 ) 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 ) if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { { Loading @@ -3890,10 +3932,17 @@ static ivas_error load_hrtf_from_file( } } else else { { #ifdef FIX_2249_MEMORY_LEAK_IN_SBA destroy_hrtf_statistics( hHrtfStatistics ); #else destroy_hrtf_statistics( hHrtfBinary->hHrtfStatistics ); destroy_hrtf_statistics( hHrtfBinary->hHrtfStatistics ); #endif } } } } } #ifdef FIX_2249_MEMORY_LEAK_IN_SBA } } #endif return IVAS_ERR_OK; return IVAS_ERR_OK; } } Loading
apps/renderer.c +22 −0 Original line number Original line Diff line number Diff line Loading @@ -172,7 +172,9 @@ typedef struct int16_t numInMetadataFiles; int16_t numInMetadataFiles; char outMetadataFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char outMetadataFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; #ifndef FIX_1494_SET_SPLITBFI_UNUSED char splitRendBFIFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char splitRendBFIFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; #endif char referenceVectorFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char referenceVectorFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char referenceRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char referenceRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char externalOrientationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char externalOrientationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; Loading Loading @@ -223,7 +225,9 @@ typedef enum CmdLnOptionId_listFormats, CmdLnOptionId_listFormats, CmdLnOptionId_inputGain, CmdLnOptionId_inputGain, CmdLnOptionId_outputMetadata, CmdLnOptionId_outputMetadata, #ifndef FIX_1494_SET_SPLITBFI_UNUSED CmdLnOptionId_SplitRendBFIFile, CmdLnOptionId_SplitRendBFIFile, #endif CmdLnOptionId_referenceVectorFile, CmdLnOptionId_referenceVectorFile, CmdLnOptionId_exteriorOrientationFile, CmdLnOptionId_exteriorOrientationFile, CmdLnOptionId_framing, CmdLnOptionId_framing, Loading Loading @@ -282,12 +286,14 @@ static const CmdLnParser_Option cliOptions[] = { .matchShort = "om", .matchShort = "om", .description = "coded metadata file for BINAURAL_SPLIT_PCM output mode", .description = "coded metadata file for BINAURAL_SPLIT_PCM output mode", }, }, #ifndef FIX_1494_SET_SPLITBFI_UNUSED { { .id = CmdLnOptionId_SplitRendBFIFile, .id = CmdLnOptionId_SplitRendBFIFile, .match = "post_rend_bfi_file", .match = "post_rend_bfi_file", .matchShort = "prbfi", .matchShort = "prbfi", .description = "Split rendering option: bfi file", .description = "Split rendering option: bfi file", }, }, #endif { { .id = CmdLnOptionId_refRotFile, .id = CmdLnOptionId_refRotFile, .match = "reference_rotation_file", .match = "reference_rotation_file", Loading Loading @@ -763,7 +769,9 @@ int main( IVAS_CLDFB_FILTER_BANK_HANDLE cldfbAna[RENDERER_MAX_INPUT_CHANNELS]; IVAS_CLDFB_FILTER_BANK_HANDLE cldfbAna[RENDERER_MAX_INPUT_CHANNELS]; IVAS_CLDFB_FILTER_BANK_HANDLE cldfbSyn[RENDERER_MAX_INPUT_CHANNELS]; IVAS_CLDFB_FILTER_BANK_HANDLE cldfbSyn[RENDERER_MAX_INPUT_CHANNELS]; int16_t cldfb_in_flag, CLDFBframeSize_smpls; int16_t cldfb_in_flag, CLDFBframeSize_smpls; #ifndef FIX_1494_SET_SPLITBFI_UNUSED SplitRendBFIFileReader *splitRendBFIReader = NULL; SplitRendBFIFileReader *splitRendBFIReader = NULL; #endif Vector3PairFileReader *referenceVectorReader = NULL; Vector3PairFileReader *referenceVectorReader = NULL; hrtfFileReader *hrtfFileReader = NULL; hrtfFileReader *hrtfFileReader = NULL; IVAS_DEC_HRTF_CREND_HANDLE *hHrtfCrend = NULL; IVAS_DEC_HRTF_CREND_HANDLE *hHrtfCrend = NULL; Loading Loading @@ -893,11 +901,13 @@ int main( } } } } #ifndef FIX_1494_SET_SPLITBFI_UNUSED if ( !isEmptyString( args.splitRendBFIFilePath ) ) if ( !isEmptyString( args.splitRendBFIFilePath ) ) { { convert_backslash( args.splitRendBFIFilePath ); convert_backslash( args.splitRendBFIFilePath ); SplitRendBFIFileReader_open( args.splitRendBFIFilePath, &splitRendBFIReader ); SplitRendBFIFileReader_open( args.splitRendBFIFilePath, &splitRendBFIReader ); } } #endif if ( !isEmptyString( args.externalOrientationFilePath ) ) if ( !isEmptyString( args.externalOrientationFilePath ) ) { { if ( RotationFileReader_open( args.externalOrientationFilePath, &externalOrientationFileReader ) != IVAS_ERR_OK ) if ( RotationFileReader_open( args.externalOrientationFilePath, &externalOrientationFileReader ) != IVAS_ERR_OK ) Loading Loading @@ -1102,7 +1112,11 @@ int main( fprintf( stderr, "\nIVAS_REND_GetHrtfStatisticsHandle failed\n\n" ); fprintf( stderr, "\nIVAS_REND_GetHrtfStatisticsHandle failed\n\n" ); goto cleanup; 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 ) if ( ( error = load_reverb_binary( *hHrtfStatistics, args.sampleRate, hrtfFileReader ) ) != IVAS_ERR_OK ) #endif { { if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA ) { { Loading Loading @@ -2179,7 +2193,9 @@ cleanup: } } split_rend_reader_writer_close( &hSplitRendFileReadWrite ); split_rend_reader_writer_close( &hSplitRendFileReadWrite ); #ifndef FIX_1494_SET_SPLITBFI_UNUSED SplitRendBFIFileReader_close( &splitRendBFIReader ); SplitRendBFIFileReader_close( &splitRendBFIReader ); #endif for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) { { Loading @@ -2192,8 +2208,10 @@ cleanup: RotationFileReader_close( &externalOrientationFileReader ); RotationFileReader_close( &externalOrientationFileReader ); RotationFileReader_close( &referenceRotReader ); RotationFileReader_close( &referenceRotReader ); Vector3PairFileReader_close( &referenceVectorReader ); Vector3PairFileReader_close( &referenceVectorReader ); #ifndef FIX_2249_MEMORY_LEAK_IN_SBA destroy_td_hrtf( hHrtfTD ); destroy_td_hrtf( hHrtfTD ); destroy_hrtf_statistics( hHrtfStatistics ); destroy_hrtf_statistics( hHrtfStatistics ); #endif IVAS_REND_Close( &hIvasRend ); IVAS_REND_Close( &hIvasRend ); IsmPositionProvider_close( positionProvider ); IsmPositionProvider_close( positionProvider ); RenderConfigReader_close( &renderConfigReader ); RenderConfigReader_close( &renderConfigReader ); Loading Loading @@ -2779,7 +2797,9 @@ static CmdlnArgs defaultArgs( clearString( args.headRotationFilePath ); clearString( args.headRotationFilePath ); clearString( args.outMetadataFilePath ); clearString( args.outMetadataFilePath ); #ifndef FIX_1494_SET_SPLITBFI_UNUSED clearString( args.splitRendBFIFilePath ); clearString( args.splitRendBFIFilePath ); #endif clearString( args.referenceVectorFilePath ); clearString( args.referenceVectorFilePath ); clearString( args.referenceRotationFilePath ); clearString( args.referenceRotationFilePath ); clearString( args.customHrtfFilePath ); clearString( args.customHrtfFilePath ); Loading Loading @@ -2886,10 +2906,12 @@ static void parseOption( assert( numOptionValues == 1 ); assert( numOptionValues == 1 ); strncpy( args->outMetadataFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); strncpy( args->outMetadataFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; break; #ifndef FIX_1494_SET_SPLITBFI_UNUSED case CmdLnOptionId_SplitRendBFIFile: case CmdLnOptionId_SplitRendBFIFile: assert( numOptionValues == 1 ); assert( numOptionValues == 1 ); strncpy( args->splitRendBFIFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); strncpy( args->splitRendBFIFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; break; #endif case CmdLnOptionId_referenceVectorFile: case CmdLnOptionId_referenceVectorFile: assert( numOptionValues == 1 ); assert( numOptionValues == 1 ); strncpy( args->referenceVectorFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); strncpy( args->referenceVectorFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); Loading