Commit 58f923d6 authored by Sumeyra Demir Kanik's avatar Sumeyra Demir Kanik
Browse files

Merge branch 'main' into 488-waveform-and-md-desynchronized-in-external-renderer

parents c2927168 c57d108c
Loading
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -271,10 +271,7 @@
    <ClCompile Include="..\lib_dec\ivas_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_decision_matrix_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_dirac_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_dirac_decorr_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_dirac_onsets_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_dirac_output_synthesis_cov.c" />
    <ClCompile Include="..\lib_dec\ivas_dirac_output_synthesis_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_entropy_decoder.c" />
    <ClCompile Include="..\lib_dec\ivas_init_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_ism_dec.c" />
+0 −9
Original line number Diff line number Diff line
@@ -16,15 +16,6 @@
    <ClCompile Include="..\lib_dec\ivas_dirac_dec.c">
      <Filter>dec_ivas_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\ivas_dirac_decorr_dec.c">
      <Filter>dec_ivas_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\ivas_dirac_onsets_dec.c">
      <Filter>dec_ivas_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\ivas_dirac_output_synthesis_dec.c">
      <Filter>dec_ivas_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\ivas_rom_dec.c">
      <Filter>dec_ivas_c</Filter>
    </ClCompile>
+4 −0
Original line number Diff line number Diff line
@@ -222,6 +222,10 @@
    <ClCompile Include="..\lib_rend\ivas_splitRendererPLC.c" />
    <ClCompile Include="..\lib_rend\ivas_crend.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_ana.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_decorr_dec.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_onsets_dec.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_output_synthesis_dec.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_rend.c" />
    <ClCompile Include="..\lib_rend\ivas_efap.c" />
    <ClCompile Include="..\lib_rend\ivas_limiter.c" />
    <ClCompile Include="..\lib_rend\ivas_masa_merge.c" />
+14 −176
Original line number Diff line number Diff line
@@ -1045,6 +1045,7 @@ ivas_error ivas_param_ism_dec_open(

void ivas_param_ism_dec_close(
    DIRAC_DEC_HANDLE *hDirAC,                                   /* i/o: decoder DirAC handle                        */
    SPAT_PARAM_REND_COMMON_DATA_HANDLE *hSpatParamRendCom_out,  /* i/o: common spatial renderer data                */
    const AUDIO_CONFIG output_config                            /* i  : output audio configuration                  */
);

@@ -3170,8 +3171,9 @@ int16_t ivas_qmetadata_dec_sid_decode(

void ivas_qmetadata_to_dirac(
    const IVAS_QMETADATA_HANDLE hQMetaData,                     /* i  : frame of MASA q_metadata                */
    DIRAC_DEC_HANDLE hDirAC,                                    /* o  : DirAC decoder structure                 */
    DIRAC_DEC_HANDLE hDirAC,                                    /* i  : DirAC decoder structure                 */
    MASA_DECODER_HANDLE hMasa,                                  /* i  : MASA decoder structure                  */
    SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom,       /* i/o: common spatial renderer data handle     */
    const int32_t ivas_total_brate,                             /* i  : IVAS total bitrate                      */
    const IVAS_FORMAT ivas_format,                              /* i  : IVAS format                             */
    const int16_t hodirac_flag,                                 /* i  : flag to indicate HO-DirAC mode          */
@@ -3573,33 +3575,20 @@ ivas_error ivas_dirac_sba_config(
    const int16_t nbands                                        /* i  : number of frequency bands                            */
);

ivas_error ivas_dirac_dec_open(
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder structure                  */
);

ivas_error ivas_dirac_allocate_parameters(
    DIRAC_DEC_HANDLE hDirAC,                                    /* i/o: decoder DirAC handle                    */
    const int16_t params_flag                                   /* i  : set of parameters flag                  */
);

ivas_error ivas_dirac_dec_config(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder structure                                       */
    const DIRAC_CONFIG_FLAG flag_configopen                     /* i/ : Flag determining if we open or reconfigure the DirAC decoder */
);

void ivas_dirac_dec_close(
    DIRAC_DEC_HANDLE *hDirAC                                    /* i/o: decoder DirAC handle                    */
);

void ivas_dirac_deallocate_parameters(
    DIRAC_DEC_HANDLE hDirAC,                                    /* i/o: decoder DirAC handle                    */
    const int16_t params_flag                                   /* i  : set of parameters flag                  */
    DIRAC_DEC_HANDLE *hDirAC_out
);

void ivas_dirac_dec_read_BS(
    const int32_t ivas_total_brate,                             /* i  : IVAS total bitrate                      */
    Decoder_State *st,                                          /* i/o: decoder Core state structure            */
    DIRAC_DEC_HANDLE hDirAC,                                    /* i/o: decoder DirAC handle                    */
    SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom,       /* i/o: common spatial rendering data handle    */
    IVAS_QMETADATA_HANDLE hQMetaData,                           /* i/o: q metadata                              */
    int16_t *nb_bits,                                           /* o  : number of bits read                     */
    const int16_t hodirac_flag,                                 /* i  : flag to indicate HO-DirAC mode          */
@@ -3650,12 +3639,6 @@ ivas_error ivas_td_decorr_reconfig_dec(
    uint16_t *useTdDecorr                                       /* i/o: TD decorrelator flag                    */
);

/*! r: Configured reqularization factor value */
float configure_reqularization_factor(
    const IVAS_FORMAT ivas_format,                              /* i  : IVAS format                             */
    const int32_t ivas_total_brate                              /* i  : total IVAS bitrate                      */
);

void computeDiffuseness_mdft(
    float **buffer_intensity[DIRAC_NUM_DIMS],
    const float *buffer_energy,
@@ -3682,109 +3665,6 @@ void computeDiffuseness(
    float *diffuseness 
);

ivas_error ivas_dirac_dec_onset_detection_open(
    const int16_t num_channels,
    const int16_t num_freq_bands,
    const int16_t max_band_decorr,
    DIRAC_ONSET_DETECTION_PARAMS *ph_dirac_onset_detection_params,
    DIRAC_ONSET_DETECTION_STATE *ph_dirac_onset_detection_state 
);

void ivas_dirac_dec_onset_detection_process(
    const float *input_power_f,
    float *onset_filter,
    const int16_t num_protos_diff,
    DIRAC_ONSET_DETECTION_PARAMS h_dirac_onset_detection_params,
    DIRAC_ONSET_DETECTION_STATE h_dirac_onset_detection_state 
);

ivas_error ivas_dirac_dec_decorr_open(
    DIRAC_DECORR_PARAMS **ph_freq_domain_decorr_ap_params,
    DIRAC_DECORR_STATE **ph_freq_domain_decorr_ap_state,
    const int16_t num_freq_bands,
    int16_t num_outputs_diff,
    const int16_t num_protos_diff,
    const DIRAC_SYNTHESIS_CONFIG synthesisConf,
    float *frequency_axis,
    const int16_t nchan_transport,                              /* i  : number of transport channels                */
    const int32_t output_Fs                                     /* i  : output sampling rate                        */
);

void ivas_dirac_dec_decorr_process(
    const int16_t num_freq_bands,
    int16_t num_channels,
    const int16_t num_protos_diff,
    const DIRAC_SYNTHESIS_CONFIG synthesisConf,
    const int16_t nchan_transport,                              /* i  : number of transport channels                */
    const float *input_frame_f,
    const int16_t num_protos_dir,
    const int16_t *proto_index_dir,
    float *frame_dec_f,
    float *onset_filter,
    HANDLE_DIRAC_DECORR_PARAMS h_freq_domain_decorr_ap_params,
    HANDLE_DIRAC_DECORR_STATE h_freq_domain_decorr_ap_state 
);

void ivas_dirac_dec_decorr_close(
    HANDLE_DIRAC_DECORR_PARAMS *ph_dirac_decorr_params,
    HANDLE_DIRAC_DECORR_STATE *ph_dirac_decorr_state 
);

ivas_error  ivas_dirac_dec_output_synthesis_open(
    DIRAC_DEC_HANDLE hDirAC,                                    /* i/o: DirAC handle                                */
    const RENDERER_TYPE renderer_type,                          /* i  : renderer type                               */
    const int16_t nchan_transport,                              /* i  : number of transport channels                */
    const int32_t output_Fs                                     /* i  : output sampling rate                        */
	,
    const int16_t hodirac_flag                                  /* i  : flag to indicate HO-DirAC mode              */
);

void ivas_dirac_dec_output_synthesis_init(
    DIRAC_DEC_HANDLE hDirAC,                                    /* i/o: DirAC handle                                */
    const int16_t nchan_out_woLFE,                              /* i  : number of output audio channels without LFE */
    const int16_t hodirac_flag                                  /* i  : flag to indicate HO-DirAC mode              */
);

void ivas_dirac_dec_output_synthesis_close(
    DIRAC_DEC_HANDLE hDirAC                                     /* i/o: DirAC handle                                */
);

void ivas_dirac_dec_output_synthesis_process_slot(
    const float *reference_power,                               /* i  : Estimated power                             */
    const float *onset,                                         /* i  : onset filter                                */
    const int16_t *azimuth,
    const int16_t *elevation,
    const float *diffuseness,
    DIRAC_DEC_HANDLE hDirAC,                                    /* i/o: DirAC handle                                */
    const int16_t sh_rot_max_order,
    const float *p_Rmat,                                        /* i  : rotation matrix                             */
    const VBAP_HANDLE hVBAPdata,                                /* i  : VBAP structure                              */
    const IVAS_OUTPUT_SETUP hOutSetup,                          /* i  : output setup structure                      */
	const int16_t nchan_transport,                              /* i  : number of transport channels                */
    const int16_t ind_slot,                                     /* i  : index of the slot to be added to the input covariance */
    const int16_t hodirac_flag                                  /* i  : flag to indicate HO-DirAC mode              */
);

void ivas_dirac_dec_output_synthesis_process_subframe_gain_shd(
    float RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX],/* i  : LS signals                       */
    float ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX],/* i  : LS signals                       */
    DIRAC_DEC_HANDLE hDirAC,                                    /* i/o: DirAC handle                                */
    const int16_t nchan_transport,                              /* i  : number of transport channels                */
    const int16_t nbslots,                                      /* i  : number of slots to process                  */
    const float *onset_filter,
    float *diffuseness,
    const int16_t hodirac_flag                                  /* i  : flag to indicate HO-DirAC mode              */
);

void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls(
    float RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX],/* i  : LS signals                       */
    float ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX],/* i  : LS signals                       */
    DIRAC_DEC_HANDLE hDirAC,                                    /* i/o: DirAC handle                                */
    const int16_t nbslots,                                      /* i  : number of slots to process                  */
    float *diffuseness_vector,                                  /* i  : diffuseness (needed for direction smoothing)*/
    float *reference_power_smooth,
    float qualityBasedSmFactor
);

void ivas_dirac_dec_get_response(
    const int16_t azimuth,
@@ -3793,48 +3673,6 @@ void ivas_dirac_dec_get_response(
    const int16_t ambisonics_order
);

void compute_hoa_encoder_mtx(
    const float *azimuth,
    const float *elevation,
    float *response,
    const int16_t num_responses,
    const int16_t ambisonics_order );

void ivas_dirac_dec_compute_gain_factors(
    const int16_t num_freq_bands,
    const float *diffuseness,
    const int16_t max_band_decorr,
    float *direct_gain_factor,
    float *diffuse_gain_factor 
);

void ivas_dirac_dec_compute_power_factors(
    const int16_t num_freq_bands,
    const float *diffuseness,
    const int16_t max_band_decorr,
    float *direct_power_factor,
    float *diffuse_power_factor 
);

void ivas_dirac_dec_compute_directional_responses(
    DIRAC_DEC_HANDLE hDirAC,                                    /* i/o: DirAC handle                                    */
    const VBAP_HANDLE hVBAPdata,                                /* i  : VBAP structure                                  */
    const MASA_DECODER_HANDLE hMasa,                            /* i  : MASA decoder structure                          */
    const int16_t *azimuth,
    const int16_t *elevation,
    const int16_t md_idx,
    const float *surCohRatio,
    const int16_t shd_rot_max_order,                            /* i  : split-order rotation method                     */
    const float *p_Rmat,                                        /* i  : rotation matrix                                 */
    const int16_t hodirac_flag                                  /* i  : flag to indicate HO-DirAC mode                  */
);

void ivas_dirac_dec_get_frequency_axis( 
    float *frequency_axis,                                      /* o  : array of center frequencies of a real filter bank */
    const int32_t output_Fs,                                    /* i  : sampling frequency                                */
    const int16_t num_freq_bands                                /* i  : number of frequency bands                         */
);

void calculate_hodirac_sector_parameters(
    DIRAC_ENC_HANDLE hDirAC,
    float RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX],/* i : signal vector (L+1)^2 x N_bins, real part       */
+1 −1
Original line number Diff line number Diff line
@@ -445,7 +445,7 @@ ivas_error ivas_dec(
        {
#ifdef FIX_564
            /* loudness correction */
            ivas_dirac_dec_binaural_gain( output, nchan_remapped, output_frame );
            ivas_dirac_dec_binaural_sba_gain( output, nchan_remapped, output_frame );
#else
            float gain;

Loading