Commit 5832f934 authored by multrus's avatar multrus
Browse files

Merge branch 'main' into 3gpp_issue_1931_fix

parents cb7b3878 08e7e9b9
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@
#define NUM_SAMPLES_320 (320)
#define NUM_SAMPLES_160 (160)
#define L_SUBFRAME_48k         (240)
#define L_SUBFRAME_32k         (180)
#define L_SUBFRAME_32k         (160)
#define L_SUBFRAME_16k         (80)
#define L_SUBFRAME_8k           (40)
#define Q31_BY_NUM_SAMPLES_960 ( 2239294 ) /* 1/959 in Q31 */
+0 −5
Original line number Diff line number Diff line
@@ -317,11 +317,6 @@ typedef struct _IVAS_ROOM_ACOUSTICS_CONFIG
{
    Word16 override;
    Word16 nBands;                                                                                                                       /* Number of frequency bands for which reverb properties are provided, integer, range [2..256]        */
    float pFc_input[IVAS_CLDFB_NO_CHANNELS_MAX];                                                                                         /* Center frequencies for which following values are provided:                                        */
    float pAcoustic_rt60[IVAS_CLDFB_NO_CHANNELS_MAX];                                                                                    /*  - The room's T60 per center frequency                                                             */
    float pAcoustic_dsr[IVAS_CLDFB_NO_CHANNELS_MAX];                                                                                     /*  - The room's Diffuse to Source Ratio per center frequency                                         */
    float acousticPreDelay;                                                                                                              /* Time elapsed between input signal and late reverberation start, float, range [0.001..10]           */
    float inputPreDelay;                                                                                                                 /* Offset in seconds from where DSR is computed in the RIR (0 = at source), float, range [0.001..10]  */
    Word32 pFc_input_fx[IVAS_CLDFB_NO_CHANNELS_MAX];                                                                                     /*Q16 Center frequencies for which following values are provided:                                         */
    Word32 pAcoustic_rt60_fx[IVAS_CLDFB_NO_CHANNELS_MAX];                                                                                /*Q26  - The room's T60 per center frequency                                                             */
    Word32 pAcoustic_dsr_fx[IVAS_CLDFB_NO_CHANNELS_MAX];                                                                                 /*Q30  - The room's Diffuse to Source Ratio per center frequency                                         */
+5 −0
Original line number Diff line number Diff line
@@ -154,6 +154,7 @@ typedef enum
#else
    RENDERER_OSBA_LS
#endif

} RENDERER_TYPE;

#define MAX_FREQUENCY_BANDS                    64
@@ -272,7 +273,11 @@ typedef enum
#define SID_MDCT_STEREO                         0x1                         /*      1|      0|     0 */
#define SID_ISM                                 0x2                         /*      0|      1|     0 */
#define SID_MASA_1TC                            0x3                         /*      1|      1|     0 */
#ifdef FIX_1209_SID_SIGNALING
/*reserved*/                                  /*0x4*/                       /*      0|      0|     1 */
#else
#define SID_MULTICHANNEL                        0x4                         /*      0|      0|     1 */
#endif
#define SID_SBA_1TC                             0x5                         /*      1|      0|     1 */
#define SID_SBA_2TC                             0x6                         /*      0|      1|     1 */
#define SID_MASA_2TC                            0x7                         /*      1|      1|     1 */
+32 −25
Original line number Diff line number Diff line
@@ -165,19 +165,23 @@ void ivas_omasa_combine_separate_ism_with_masa_fx(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder handle                    */
    Word32 *output[],                                           /* o  : output synthesis signal                */
    Word16 *output_q,                                           /* i/o: output Q value                         */
    const int16_t nchan_ism,                                    /* i  : number of ISMs                         */
    const int16_t output_frame                                  /* i  : output frame length per channel        */
    const Word16 nchan_ism,                                     /* i  : number of ISMs                         */
    const Word16 output_frame                                   /* i  : output frame length per channel        */
);

#ifdef FIX_1161_REDUCE_OMASA_HEAP
ivas_error ivas_omasa_objects_delay_open_fx(
#else
ivas_error ivas_omasa_render_objects_from_mix_open_fx(
#endif
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder structure                 */
);

void ivas_omasa_render_objects_from_mix_fx(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder handle                    */
    Word32 *output[],                                           /* o  : output synthesis signal                */
    const int16_t nchan_ism,                                    /* i  : number of ISMs                         */
    const int16_t output_frame,                                 /* i  : output frame length per channel        */
    const Word16 nchan_ism,                                     /* i  : number of ISMs                         */
    const Word16 output_frame,                                  /* i  : output frame length per channel        */
    Word16 *output_q                                            /* i/o: output Q value                         */
);

@@ -191,6 +195,7 @@ ivas_error ivas_omasa_ism_metadata_dec_fx(
    const Word16 dirac_bs_md_write_idx,                         /* i  : DirAC bitstream write index             */
    Word16 nb_bits_metadata[]                                   /* o  : number of ISM metadata bits             */
);

ivas_error ivas_omasa_dec_config_fx(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder structure                                  */
    UWord16 *nSamplesRendered,                                  /* o  : number of samples flushed from the previous frame (JBM) */
@@ -3162,8 +3167,8 @@ void stereo_tcx_core_enc(
    Word16 pitch_buf_fx[NB_SUBFR16k], /* o  : pitch for each subframe, Q6                */
    const Word16 last_element_mode,   /* i  : last element mode, Q0                      */
    const Word16 vad_hover_flag,      /* i  : VAD hangover flag, Q0                      */
    Word16 Q_new );

    Word16 Q_new 
);

Word16 transient_analysis_ivas_fx(
    TRAN_DET_HANDLE hTranDet,  /* i  : handle transient detection       */
@@ -3289,20 +3294,24 @@ void ivas_fb_mixer_get_windowed_fr_fx(
    const Word16 length,      /* i  : number of new samples in time slot */
    const Word16 mdft_len,    /* i  : MDFT frame length                  */
    const Word16 nchan_fb_in, /* i  : number of analysis channels        */
    Word16 gb );
    Word16 gb 
);

void ivas_omasa_set_config_fx(
    OMASA_ENC_HANDLE hOMasa,   /* i/o: OMASA encoder handle */
    MASA_ENCODER_HANDLE hMasa, /* i  : MASA encoder handle  */
    const Word32 input_Fs,     /* i  : Input sample rate    */
    const ISM_MODE ism_mode    /* i  : ISM mode             */
);

Word16 ivas_omasa_ener_brate_fx(
    const Word16 nchan_ism,        /* i  : number of ISMs                   */
    const Word32 ivas_total_brate, /* i  : IVAS total bitrate               */
    Word32 *data_f[],              /* i  : Input / transport audio signals  */
    const Word16 input_frame,      /* i  : Input frame size                 */
    Word16 data_e                  /*i:exponent for data_f                  */
    const Word16 data_e            /* i  : exponent for data_f              */
);

void computeDiffuseness_mdft_fx(
    Word32 **buffer_intensity[DIRAC_NUM_DIMS],
    const Word32 *buffer_energy,
@@ -3341,6 +3350,7 @@ UWord8 ivas_masa_surrcoh_signicant_fx(
ivas_error ivas_mcmasa_enc_open_fx(
    Encoder_Struct *st_ivas /* i/o: IVAS encoder handle                             */
);

void ivas_mcmasa_enc_close_fx(
    MCMASA_ENC_HANDLE *hMcMasa, /* i/o: encoder McMASA handle                           */
    const Word32 input_Fs       /* i  : input sampling rate                             */
@@ -4038,7 +4048,6 @@ void ivas_syn_output_f_fx(
    Word32 *synth_out          /* o  : integer 16 bits synthesis signal    */
);


ivas_error ivas_init_encoder_fx(
    Encoder_Struct *st_ivas /* i/o: IVAS encoder structure                  */
);
@@ -4049,10 +4058,8 @@ ivas_error ivas_output_buff_dec_fx(
    const Word16 nchan_out_buff      /* i  : number of output channels                  */
);

/*! r: flag to indicate if split rendering is enabled */
Word16 is_split_rendering_enabled(
    const DECODER_CONFIG_HANDLE hDecoderConfig,   /* i  : configuration structure         */
    const IVAS_RENDER_CONFIG_HANDLE hRenderConfig /* i  : Render config data structure    */
ivas_error ivas_dec_get_format_fx(
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder structure                  */
);

ivas_error ivas_dec_setup(
+5 −2
Original line number Diff line number Diff line
@@ -80,10 +80,10 @@
#define FIX_1917_DIRAC_RENDER_PTR_INCR                       /* FhG: fix wrong pointer increment in ivas_dirac_dec_render_sf_fx() for object rendering */
#define FIX_CDLFB_BUFFER_SCALING                             /* FhG: fix wrong buffer scaling in ivas_dirac_dec_render_sf_fx() for object rendering */
#define FIX_ISSUE_1817_REPLACE_CARRY_OVERFLOW                /* FhG: bit-exact, replace carry and overflow operations by 64-bit operations, MR 1931 */
#define	NONBE_SVD_OPTIMIZATION                               /* FhG: reduce WMOPS of HouseHolderReduction() in ivas_svd_dec.c() by removing redundant mathematics and using 64 bit additions */
#define FIX_1766_TCX2ACELP_BWE_ISSUE                         /* VA : Fix rare BWE issue when switching from TCX to ACELP */
#define FIX_1781_SPECTRAL_GAPS                               /* FhG: Change internal calculation of tcx_noise_factor_ivas_fx() to 32-bit*/
#define FIX_ISSUE_1811_EXCEEDING_W_SHIFTS                    /* FhG: limit exceeding 64bit shifts */
#define FIX_1843_IO_QFACTOR_INIT                             /* FhG: initialize CRend's io_qfactor also in IVAS_rend */


#define FIX_1931_BIN_COHR_CROSS_MIX                    /* FhG: correct binauralCoherenceCrossmixGains_fx calculation */
@@ -91,6 +91,7 @@

#define FIX_1372_ISAR_POST_REND
#define NONBE_FIX_984_OMASA_EXT_OUTPUT                  /* Nokia: issue #984: complete the OMASA EXT output implementation */
#define FIX_1161_REDUCE_OMASA_HEAP                      /* VA: reduction of OMASA heap memory */
#define USE_NEW_HRTF_BINARY_FILE_FORMAT                 /* Orange: to activate when decided to change the hrtf binary file format */
#define FIX_WARNING_RENDER_CONFIG                       /* Orange: fix warning on windows build */
#define FIX_1052_EXT_OUTPUT                             /* VA: issue 1052: define EXT decoder output configuration for stereo and MC formats */
@@ -122,6 +123,7 @@
#define NONBE_FIX_1174_MCMASA_LBR_LOOP_ERROR            /* Nokia: Fix issue 1174 by removing the unnecessary inner loop causing problems. */
#define NONBE_FIX_1097_SBA_DTX_BRATE_SWITCHING_ENC      /* FhG: fix out-of-bound errors when switching from SID frame to active frame*/
#define NONBE_FIX_1052_SBA_EXT_FIX                      /* VA: SBA external output support fix - do not overwrite "output_config" parameter */
#define NONBE_1289_STEREO_SW_TO_MONO                    /* VA: issue 1289: Fix glitch when stereo signal is decoded to mono n TD->DFT switching */
#define NONBE_FIX_1196_TD_HEADTRACKING_INTERPOLATION    /* Ericsson: Issue 1196, Always apply filter interpolation for each subframe */
#define NONBE_FIX_1110_STEREO_DTX_BRATE_SWITCHING       /* VA: issue 1110: fix encoder crash in the stereo DTX bitrate switching condition */
#define FIX_1099_JBM_MD_HANDLE_ALLOC                    /* VA: issue 1099: Limit the allocation of `hJbmMetadata` handle to MASA and OMASA only */
@@ -130,7 +132,8 @@
#define NONBE_FIX_1141_OSBA_ROOM_RENDERING              /* FhG: Fix for issue 1141: render objects in OSBA decoder with room effect  */
#define NONBE_1360_LFE_DELAY                            /* Dlb: LFE delay alignment when rendering in CLDFB domain*/
#define NONBE_1229_FIX_ISM1_DPID                        /* Eri: issue 1229: fix bug causing ISM 1 to use default -dpid instead of the specified one */
#define NONBE_SVD_OPTIMIZATION 
#define NONBE_SVD_OPTIMIZATION                          /* FhG: issue 1367 */
#define FIX_1209_SID_SIGNALING                          /* VA: issue 1209: remove dead code in IVAS SID signaling */
#define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR       /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */
#define NONBE_1131_ACELP_OOB                            /* VA: issue 1131: fix division-by-zero in acelp gain decoding caused by wrong length of buffer update when switching from HQ core to ACELP core */
#define NONBE_1240_FIX_CORE_SELECTION_ISM_SW            /* VA: issue 1240: Remove the forcing of the TCX core in ISM when switching from a high bitarte to a low one */
Loading