Commit ba2b7ea7 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

Merge branch '1626_ref+porting-mr-111-port-mr-1433-to-float' into 'float-pc'

Port MR 1433 to float

See merge request !1647
parents 1d1c6412 fbc8b7b9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -5203,6 +5203,9 @@ void ivas_ism_renderer_close(

void ivas_ism_render_sf(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder structure                          */
#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
    const RENDERER_TYPE renderer_type,                          /* i  : active renderer type                            */
#endif
    float *output_f[],                                          /* i/o: core-coder transport channels/object output     */
    const int16_t n_samples_to_render                           /* i  : output frame length per channel                 */
);
+1 −1
Original line number Diff line number Diff line
@@ -146,7 +146,6 @@

/* ################### Start FIXES switches ########################### */


#define NON_BE_FIX_807_MASA_DTX_BRSW                     /* Nokia: adds fix to check existence of DTX encoder for secondary channel in TD mode */
#define NON_BE_FIX_BASOP_819_THRESHOLD_MASA2TOTAL        /* Nokia: add fix for precision limitation in comparison with masa2total energy ratio threshold */
#define FIX_828_PORT_1152_FROM_FLT_REPO                  /* FhG: fix for issue 828 - fix uninitialized value used in BASOP */
@@ -193,6 +192,7 @@
#define FIX_1024_REMOVE_PARAMMC_MIXING_MAT              /* VA: issue 1024: remove unused function ivas_param_mc_get_mono_stereo_mixing_matrices() */
#define FIX_1023_REMOVE_PARAMMC_DEC                     /* VA: issue 1023: remove unused function ivas_param_mc_dec() */
#define NONBE_FIX_1034_DRY_MASA_RATIOS                  /* Nokia: Fix issue 1034, use of wrong numDir state. */
#define NONBE_FIX_1021_ISM_BRIR_RS_FLUSH                /* FhG: issue #1021: fix ISM with JBM and RS renderer flushing*/

/* #################### End BASOP porting switches ############################ */

+12 −2
Original line number Diff line number Diff line
@@ -141,6 +141,9 @@ void ivas_ism_renderer_close(

void ivas_ism_render_sf(
    Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure                      */
#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
    const RENDERER_TYPE renderer_type, /* i  : active renderer type                        */
#endif
    float *output_f[],                /* i/o: core-coder transport channels/object output */
    const int16_t n_samples_to_render /* i  : output frame length per channel             */
)
@@ -168,17 +171,20 @@ void ivas_ism_render_sf(
        slots_to_render -= st_ivas->hTcBuffer->subframe_nbslots[last_sf];
        last_sf++;
    }

#ifdef DEBUGGING
    assert( slots_to_render == 0 );
    assert( last_sf <= st_ivas->hTcBuffer->nb_subframes );
#endif

#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
    num_objects = st_ivas->nchan_ism;
#else
    num_objects = st_ivas->nchan_transport;
    if ( st_ivas->ivas_format == SBA_ISM_FORMAT )
    {
        num_objects = st_ivas->nchan_ism;
    }
#endif

    nchan_out_woLFE = st_ivas->hIntSetup.nchan_out_woLFE;

@@ -283,7 +289,11 @@ void ivas_ism_render_sf(
        n_samples_rendered_loop += n_samples_in_subframe;
        /* update rendered subframe and slots info for all cases apart from a following crend call, the update will
           then happen in the crend call*/
#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
        if ( renderer_type != RENDERER_BINAURAL_MIXER_CONV_ROOM )
#else
        if ( st_ivas->renderer_type != RENDERER_BINAURAL_MIXER_CONV_ROOM )
#endif
        {
            st_ivas->hTcBuffer->subframes_rendered += 1;
            st_ivas->hTcBuffer->slots_rendered += st_ivas->hTcBuffer->subframe_nbslots[subframe_idx];
+12 −0
Original line number Diff line number Diff line
@@ -1057,7 +1057,11 @@ ivas_error ivas_jbm_dec_render(
            if ( st_ivas->renderer_type == RENDERER_TD_PANNING || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM )
            {
                /* Convert to CICPxx; used also for ISM->CICP19->binaural_room rendering */
#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
                ivas_ism_render_sf( st_ivas, st_ivas->renderer_type, p_output, *nSamplesRendered );
#else
                ivas_ism_render_sf( st_ivas, p_output, *nSamplesRendered );
#endif
            }
            else if ( st_ivas->renderer_type == RENDERER_NON_DIEGETIC_DOWNMIX )
            {
@@ -1177,7 +1181,11 @@ ivas_error ivas_jbm_dec_render(
                }

                /* render objects */
#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
                ivas_ism_render_sf( st_ivas, st_ivas->renderer_type, p_output, *nSamplesRendered );
#else
                ivas_ism_render_sf( st_ivas, p_output, *nSamplesRendered );
#endif

                /* add already rendered SBA part */
                for ( n = 0; n < nchan_out; n++ )
@@ -1546,7 +1554,11 @@ ivas_error ivas_jbm_dec_flush_renderer(
                    /* Convert to CICPxx; used also for ISM->CICP19->binaural_room rendering */
                    set_f( st_ivas->hIsmRendererData->interpolator, 1.0f, hTcBuffer->n_samples_granularity );

#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
                    ivas_ism_render_sf( st_ivas, renderer_type_old, p_output, hTcBuffer->n_samples_granularity );
#else
                    ivas_ism_render_sf( st_ivas, p_output, hTcBuffer->n_samples_granularity );
#endif

                    if ( ( error = ivas_rend_crendProcessSubframe( st_ivas->hCrendWrapper, IVAS_AUDIO_CONFIG_7_1_4, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR, st_ivas->hDecoderConfig, NULL,
                                                                   NULL, NULL, st_ivas->hTcBuffer, p_output, p_output, hTcBuffer->n_samples_granularity, st_ivas->hDecoderConfig->output_Fs, 0 ) ) != IVAS_ERR_OK )
+4 −0
Original line number Diff line number Diff line
@@ -283,7 +283,11 @@ ivas_error ivas_osba_render_sf(

    if ( st_ivas->renderer_type != RENDERER_BINAURAL_FASTCONV_ROOM )
    {
#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
        ivas_ism_render_sf( st_ivas, st_ivas->renderer_type, p_output_ism, *nSamplesRendered );
#else
        ivas_ism_render_sf( st_ivas, p_output_ism, *nSamplesRendered );
#endif
    }

    for ( n = 0; n < st_ivas->hDecoderConfig->nchan_out; n++ )