Commit 63e5290a authored by vaclav's avatar vaclav
Browse files

Merge remote-tracking branch 'remotes/origin/ivas-float-update' into 1924-ref-PortDFlpMr1899

parents f134f1a1 d1f8daad
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -5805,7 +5805,11 @@ void ivas_omasa_combine_separate_ism_with_masa(
    const int16_t output_frame                                  /* i  : output frame length per channel        */
);

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

+2 −1
Original line number Diff line number Diff line
@@ -164,6 +164,7 @@
#define FIX_1053_REVERB_RECONFIGURATION                 /* Philips: issue 1053: fix for dynamic switching of acoustic environment */
#define NONBE_FIX_ISM_XOVER_BR                          /* FhG: issue 1072: select OSBA coding method depending on number of object and bitrate */
#define NONBE_FIX_984_OMASA_EXT_OUTPUT                  /* Nok: issue 1497 - porting OMASA EXT MR   */
#define FIX_1161_REDUCE_OMASA_HEAP                      /* VA: reduction of OMASA heap memory */
#define CONF_DISTATT                                    /* Eri: Make distance attenuation configurable */
#define FIX_1052_EXT_OUTPUT                             /* VA: issue 1052: define EXT decoder output configuration for stereo and MC formats */ 
#define NONBE_1215_FIX_JBM_MAX_SCALING                  /* FhG: issue 1215: Fix assert hit in a specific VoIP decoder config. Caused by integer overflow in max scaling calculation. */
@@ -187,7 +188,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 FIX_1113_CLDFB_REND_IN_ISAR                     /* issue 1113: fix the use of CLDFB renderer in split-rendering at the external renderer */
#define NONBE_FIX_1110_STEREO_DTX_BRATE_SWITCHING       /* VA: issue 1110: fix encoder crash in the stereo DTX bitrate switching condition */
+20 −0
Original line number Diff line number Diff line
@@ -2380,16 +2380,31 @@ ivas_error ivas_init_decoder(
                }
            }

#ifdef FIX_1161_REDUCE_OMASA_HEAP
            /* Allocate memory for delay buffer within 'hMasaIsmData' */
            if ( ( error = ivas_omasa_objects_delay_open( st_ivas ) ) != IVAS_ERR_OK )
            {
                return error;
            }
#else
            /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */
            if ( ( error = ivas_omasa_separate_object_renderer_open( st_ivas ) ) != IVAS_ERR_OK )
            {
                return error;
            }
#endif
        }

        if ( st_ivas->renderer_type == RENDERER_DIRAC && ( st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_DISC ) )
        {
            /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */
#ifdef FIX_1161_REDUCE_OMASA_HEAP
            if ( ( error = ivas_omasa_objects_delay_open( st_ivas ) ) != IVAS_ERR_OK )
            {
                return error;
            }
#endif

            if ( ( error = ivas_omasa_separate_object_renderer_open( st_ivas ) ) != IVAS_ERR_OK )
            {
                return error;
@@ -2399,7 +2414,12 @@ ivas_error ivas_init_decoder(
        if ( st_ivas->renderer_type == RENDERER_OMASA_OBJECT_EXT )
        {
            /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */

#ifdef FIX_1161_REDUCE_OMASA_HEAP
            if ( ( error = ivas_omasa_objects_delay_open( st_ivas ) ) != IVAS_ERR_OK )
#else
            if ( ( error = ivas_omasa_render_objects_from_mix_open( st_ivas ) ) != IVAS_ERR_OK )
#endif
            {
                return error;
            }
+11 −2
Original line number Diff line number Diff line
@@ -348,7 +348,7 @@ void ivas_ism_get_stereo_gains(


/*-------------------------------------------------------------------------*
 * ivas_masa_oism_separate_object_renderer_open()
 * ivas_omasa_separate_object_renderer_open()
 *
 * Open structures, reserve memory, and init values.
 *-------------------------------------------------------------------------*/
@@ -373,7 +373,15 @@ ivas_error ivas_omasa_separate_object_renderer_open(

    init_interpolator_length = (int16_t) ( st_ivas->hDecoderConfig->output_Fs / FRAMES_PER_SEC / MAX_PARAM_SPATIAL_SUBFRAMES );
    interpolator_length = init_interpolator_length;

#ifdef FIX_1161_REDUCE_OMASA_HEAP
    if ( ( st_ivas->hIsmRendererData->interpolator = (float *) malloc( sizeof( float ) * init_interpolator_length ) ) == NULL )
    {
        return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for MASA ISM renderer interpolator \n" ) );
    }
#else
    st_ivas->hIsmRendererData->interpolator = (float *) malloc( sizeof( float ) * init_interpolator_length );
#endif

    for ( i = 0; i < interpolator_length; i++ )
    {
@@ -381,6 +389,7 @@ ivas_error ivas_omasa_separate_object_renderer_open(
    }
    st_ivas->hIsmRendererData->interpolator_length = interpolator_length;

#ifndef FIX_1161_REDUCE_OMASA_HEAP
    st_ivas->hMasaIsmData->delayBuffer_size = (int16_t) ( ( st_ivas->hDecoderConfig->output_Fs / 50 ) / MAX_PARAM_SPATIAL_SUBFRAMES );

    if ( st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ )
@@ -405,7 +414,7 @@ ivas_error ivas_omasa_separate_object_renderer_open(
        }
        set_zero( st_ivas->hMasaIsmData->delayBuffer[i], st_ivas->hMasaIsmData->delayBuffer_size );
    }

#endif
    return IVAS_ERR_OK;
}

+4 −0
Original line number Diff line number Diff line
@@ -909,7 +909,11 @@ static ivas_error ivas_masa_dec_config(
    for ( i = 0; i < st_ivas->hQMetaData->no_directions; i++ )
    {
        st_ivas->hQMetaData->q_direction[i].cfg.nbands = hMasa->config.numCodingBands;
#ifdef FIX_1161_REDUCE_OMASA_HEAP
        st_ivas->hQMetaData->q_direction[i].cfg.nblocks = hMasa->config.joinedSubframes == TRUE ? 1 : MAX_PARAM_SPATIAL_SUBFRAMES;
#else
        st_ivas->hQMetaData->q_direction[i].cfg.nblocks = hMasa->config.joinedSubframes == TRUE ? 1 : 4;
#endif

        if ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_MCMASA )
        {
Loading