Loading apps/decoder.c +19 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,9 @@ typedef struct int16_t orientation_tracking; int16_t Opt_non_diegetic_pan; float non_diegetic_pan_gain; #ifdef IVAS_FLOAT_FIXED Word16 non_diegetic_pan_gain_fx; /* Q15 */ #endif bool renderConfigEnabled; char *renderConfigFilename; IVAS_DEC_COMPLEXITY_LEVEL complexityLevel; Loading Loading @@ -371,8 +374,13 @@ int main( *------------------------------------------------------------------------------------------*/ asked_frame_size = arg.renderFramesize; #ifndef IVAS_FLOAT_FIXED if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputConfig, arg.tsmEnabled, arg.renderFramesize, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.enableExternalOrientation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.Opt_dpid_on, arg.acousticEnvironmentId, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputConfig, arg.tsmEnabled, arg.renderFramesize, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.enableExternalOrientation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain_fx, arg.Opt_dpid_on, arg.acousticEnvironmentId, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); Loading Loading @@ -1064,6 +1072,17 @@ static bool parseCmdlIVAS_dec( return false; } } #ifdef IVAS_FLOAT_FIXED if ( arg->non_diegetic_pan_gain == 1.0f ) { arg->non_diegetic_pan_gain_fx = 32767; } else { arg->non_diegetic_pan_gain_fx = (Word16) ( arg->non_diegetic_pan_gain * ( 1u << 15 ) ); } #endif i++; } else if ( strcmp( argv_to_upper, "-LEVEL" ) == 0 ) Loading lib_com/ivas_prot.h +10 −1 Original line number Diff line number Diff line Loading @@ -380,13 +380,14 @@ ivas_error ivas_output_buff_dec_fx( const Word16 nchan_out_buff_old, /* i : previous frame number of output channels */ const Word16 nchan_out_buff /* i : number of output channels */ ); #endif // IVAS_FLOAT_FIXED #else ivas_error ivas_output_buff_dec( float *p_output_f[], /* i/o: output audio buffers */ const int16_t nchan_out_buff_old, /* i : previous frame number of output channels*/ const int16_t nchan_out_buff /* i : number of output channels */ ); #endif ivas_error stereo_dmx_evs_init_encoder( STEREO_DMX_EVS_ENC_HANDLE *hStereoDmxEVS, /* o : Stereo downmix for EVS encoder handle */ Loading Loading @@ -1066,6 +1067,12 @@ void ivas_jbm_dec_feed_tc_to_renderer( int16_t *nSamplesResidual, /* o : number of samples not fitting into the renderer grid and buffer for the next call*/ float *data /* i/o: transport channels/output synthesis signal */ ); void ivas_jbm_dec_feed_tc_to_renderer_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word16 nSamplesForRendering, /* i : number of TC samples available for rendering */ Word16 *nSamplesResidual, /* o : number of samples not fitting into the renderer grid and buffer for the next call*/ Word32 *data /* i/o: transport channels/output synthesis signal */ ); ivas_error ivas_jbm_dec_set_discard_samples( Decoder_Struct *st_ivas /* i/o: main IVAS decoder structre */ Loading Loading @@ -4497,11 +4504,13 @@ ivas_error ivas_sba_digest_tc( float *data[] /* i : transport channel samples */ ); #ifndef IVAS_FLOAT_FIXED void ivas_init_dec_get_num_cldfb_instances( Decoder_Struct *st_ivas, /* i : IVAS decoder structure */ int16_t *numCldfbAnalyses, /* o : number of CLDFB analysis instances */ int16_t *numCldfbSyntheses /* o : number of CLDFB synthesis instances */ ); #endif // !IVAS_FLOAT_FIXED #ifdef IVAS_FLOAT_FIXED ivas_error ivas_cldfb_dec_reconfig_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ Loading lib_com/ivas_prot_fx.h +5 −0 Original line number Diff line number Diff line Loading @@ -669,6 +669,11 @@ Word16 param_mc_get_num_cldfb_syntheses_ivas_fx( Decoder_Struct *st_ivas /* i : Parametric MC handle */ ); #endif void ivas_init_dec_get_num_cldfb_instances( Decoder_Struct *st_ivas, /* i : IVAS decoder structure */ Word16 *numCldfbAnalyses, /* o : number of CLDFB analysis instances */ Word16 *numCldfbSyntheses /* o : number of CLDFB synthesis instances */ ); /*file:ivas_init_dec_fx.c*/ void ivas_init_dec_get_num_cldfb_instances_ivas_fx( Decoder_Struct *st_ivas, /* i : IVAS decoder structure */ Loading lib_dec/gs_dec_amr_wb.c +2 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ #include "prot.h" #include "wmc_auto.h" #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * Local constants *-------------------------------------------------------------------*/ Loading Loading @@ -428,3 +429,4 @@ void improv_amr_wb_gs( return; } #endif lib_dec/ivas_dirac_output_synthesis_cov.c +1 −4 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ #include "ivas_prot_fx.h" #endif /*-------------------------------------------------------------------* * ivas_dirac_dec_output_synthesis_cov_open() * Loading Loading @@ -1830,23 +1831,19 @@ Word16 computeMixingMatrices_fx( IF( LT_16( lengthCx, lengthCy ) ) { mat2svdMat_fx( mat_mult_buffer1_fx, svd_in_buffer_fx, lengthCx, lengthCy, 1 ); nL = lengthCy; move16(); nC = lengthCx; move16(); svd_fx( svd_in_buffer_fx, mat_mult_buffer1_e, svd_v_buffer_fx, svd_s_buffer_fx, svd_u_buffer_fx, &svd_s_buffer_fx_e, nL, nC ); } ELSE { mat2svdMat_fx( mat_mult_buffer1_fx, svd_in_buffer_fx, lengthCx, lengthCy, 0 ); nL = lengthCx; move16(); nC = lengthCy; move16(); svd_fx( svd_in_buffer_fx, mat_mult_buffer1_e, svd_u_buffer_fx, svd_s_buffer_fx, svd_v_buffer_fx, &svd_s_buffer_fx_e, nL, nC ); } Loading Loading
apps/decoder.c +19 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,9 @@ typedef struct int16_t orientation_tracking; int16_t Opt_non_diegetic_pan; float non_diegetic_pan_gain; #ifdef IVAS_FLOAT_FIXED Word16 non_diegetic_pan_gain_fx; /* Q15 */ #endif bool renderConfigEnabled; char *renderConfigFilename; IVAS_DEC_COMPLEXITY_LEVEL complexityLevel; Loading Loading @@ -371,8 +374,13 @@ int main( *------------------------------------------------------------------------------------------*/ asked_frame_size = arg.renderFramesize; #ifndef IVAS_FLOAT_FIXED if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputConfig, arg.tsmEnabled, arg.renderFramesize, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.enableExternalOrientation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.Opt_dpid_on, arg.acousticEnvironmentId, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputConfig, arg.tsmEnabled, arg.renderFramesize, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.enableExternalOrientation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain_fx, arg.Opt_dpid_on, arg.acousticEnvironmentId, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); Loading Loading @@ -1064,6 +1072,17 @@ static bool parseCmdlIVAS_dec( return false; } } #ifdef IVAS_FLOAT_FIXED if ( arg->non_diegetic_pan_gain == 1.0f ) { arg->non_diegetic_pan_gain_fx = 32767; } else { arg->non_diegetic_pan_gain_fx = (Word16) ( arg->non_diegetic_pan_gain * ( 1u << 15 ) ); } #endif i++; } else if ( strcmp( argv_to_upper, "-LEVEL" ) == 0 ) Loading
lib_com/ivas_prot.h +10 −1 Original line number Diff line number Diff line Loading @@ -380,13 +380,14 @@ ivas_error ivas_output_buff_dec_fx( const Word16 nchan_out_buff_old, /* i : previous frame number of output channels */ const Word16 nchan_out_buff /* i : number of output channels */ ); #endif // IVAS_FLOAT_FIXED #else ivas_error ivas_output_buff_dec( float *p_output_f[], /* i/o: output audio buffers */ const int16_t nchan_out_buff_old, /* i : previous frame number of output channels*/ const int16_t nchan_out_buff /* i : number of output channels */ ); #endif ivas_error stereo_dmx_evs_init_encoder( STEREO_DMX_EVS_ENC_HANDLE *hStereoDmxEVS, /* o : Stereo downmix for EVS encoder handle */ Loading Loading @@ -1066,6 +1067,12 @@ void ivas_jbm_dec_feed_tc_to_renderer( int16_t *nSamplesResidual, /* o : number of samples not fitting into the renderer grid and buffer for the next call*/ float *data /* i/o: transport channels/output synthesis signal */ ); void ivas_jbm_dec_feed_tc_to_renderer_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word16 nSamplesForRendering, /* i : number of TC samples available for rendering */ Word16 *nSamplesResidual, /* o : number of samples not fitting into the renderer grid and buffer for the next call*/ Word32 *data /* i/o: transport channels/output synthesis signal */ ); ivas_error ivas_jbm_dec_set_discard_samples( Decoder_Struct *st_ivas /* i/o: main IVAS decoder structre */ Loading Loading @@ -4497,11 +4504,13 @@ ivas_error ivas_sba_digest_tc( float *data[] /* i : transport channel samples */ ); #ifndef IVAS_FLOAT_FIXED void ivas_init_dec_get_num_cldfb_instances( Decoder_Struct *st_ivas, /* i : IVAS decoder structure */ int16_t *numCldfbAnalyses, /* o : number of CLDFB analysis instances */ int16_t *numCldfbSyntheses /* o : number of CLDFB synthesis instances */ ); #endif // !IVAS_FLOAT_FIXED #ifdef IVAS_FLOAT_FIXED ivas_error ivas_cldfb_dec_reconfig_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ Loading
lib_com/ivas_prot_fx.h +5 −0 Original line number Diff line number Diff line Loading @@ -669,6 +669,11 @@ Word16 param_mc_get_num_cldfb_syntheses_ivas_fx( Decoder_Struct *st_ivas /* i : Parametric MC handle */ ); #endif void ivas_init_dec_get_num_cldfb_instances( Decoder_Struct *st_ivas, /* i : IVAS decoder structure */ Word16 *numCldfbAnalyses, /* o : number of CLDFB analysis instances */ Word16 *numCldfbSyntheses /* o : number of CLDFB synthesis instances */ ); /*file:ivas_init_dec_fx.c*/ void ivas_init_dec_get_num_cldfb_instances_ivas_fx( Decoder_Struct *st_ivas, /* i : IVAS decoder structure */ Loading
lib_dec/gs_dec_amr_wb.c +2 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ #include "prot.h" #include "wmc_auto.h" #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * Local constants *-------------------------------------------------------------------*/ Loading Loading @@ -428,3 +429,4 @@ void improv_amr_wb_gs( return; } #endif
lib_dec/ivas_dirac_output_synthesis_cov.c +1 −4 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ #include "ivas_prot_fx.h" #endif /*-------------------------------------------------------------------* * ivas_dirac_dec_output_synthesis_cov_open() * Loading Loading @@ -1830,23 +1831,19 @@ Word16 computeMixingMatrices_fx( IF( LT_16( lengthCx, lengthCy ) ) { mat2svdMat_fx( mat_mult_buffer1_fx, svd_in_buffer_fx, lengthCx, lengthCy, 1 ); nL = lengthCy; move16(); nC = lengthCx; move16(); svd_fx( svd_in_buffer_fx, mat_mult_buffer1_e, svd_v_buffer_fx, svd_s_buffer_fx, svd_u_buffer_fx, &svd_s_buffer_fx_e, nL, nC ); } ELSE { mat2svdMat_fx( mat_mult_buffer1_fx, svd_in_buffer_fx, lengthCx, lengthCy, 0 ); nL = lengthCx; move16(); nC = lengthCy; move16(); svd_fx( svd_in_buffer_fx, mat_mult_buffer1_e, svd_u_buffer_fx, svd_s_buffer_fx, svd_v_buffer_fx, &svd_s_buffer_fx_e, nL, nC ); } Loading