Commit 6bbe1b69 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

Merge branch '1626_basop_port-mr-111-to-basop' into 'main-pc'

Port MR 1433 from float to BASOP

See merge request !1646
parents 310f44c7 227d8a4d
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -1056,6 +1056,9 @@ ivas_error ivas_ism_renderer_open_fx(

void ivas_ism_render_sf_fx(
    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
    Word32 *output_fx[],                 /* i/o: core-coder transport channels/object output */
    const Word16 n_samples_to_render     /* i  : output frame length per channel             */
);
+1 −0
Original line number Diff line number Diff line
@@ -124,6 +124,7 @@
#define FIX_1024_REMOVE_PARAMMC_MIXING_MAT              /* VA: issue 1024: remove unused function ivas_param_mc_get_mono_stereo_mixing_matrices() */
#define FIX_1741_REVERB_TIMES_Q_FORMAT                  /* Philips: reverberation times in Q26 format instead of Q31 */
#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 −1
Original line number Diff line number Diff line
@@ -157,6 +157,9 @@ void ivas_ism_renderer_close(
 *-------------------------------------------------------------------------*/
void ivas_ism_render_sf_fx(
    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
    Word32 *output_fx[],             /* i/o: core-coder transport channels/object output  Q11*/
    const Word16 n_samples_to_render /* i  : output frame length per channel             */
)
@@ -194,6 +197,9 @@ void ivas_ism_render_sf_fx(
        last_sf = add( last_sf, 1 );
    }

#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
    num_objects = st_ivas->nchan_ism;
#else
    num_objects = st_ivas->nchan_transport;
    move16();
    if ( EQ_32( st_ivas->ivas_format, SBA_ISM_FORMAT ) )
@@ -201,6 +207,7 @@ void ivas_ism_render_sf_fx(
        num_objects = st_ivas->nchan_ism;
        move16();
    }
#endif

    nchan_out_woLFE = st_ivas->hIntSetup.nchan_out_woLFE;
    move16();
@@ -329,7 +336,11 @@ void ivas_ism_render_sf_fx(
        n_samples_rendered_loop = add( 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 ( NE_16( renderer_type, RENDERER_BINAURAL_MIXER_CONV_ROOM ) )
#else
        if ( NE_16( st_ivas->renderer_type, RENDERER_BINAURAL_MIXER_CONV_ROOM ) )
#endif
        {
            st_ivas->hTcBuffer->subframes_rendered = add( st_ivas->hTcBuffer->subframes_rendered, 1 );
            st_ivas->hTcBuffer->slots_rendered = add( st_ivas->hTcBuffer->slots_rendered, st_ivas->hTcBuffer->subframe_nbslots[subframe_idx] );
+12 −0
Original line number Diff line number Diff line
@@ -1958,7 +1958,11 @@ ivas_error ivas_jbm_dec_render_fx(
            IF( EQ_32( st_ivas->renderer_type, RENDERER_TD_PANNING ) || EQ_32( 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_fx( st_ivas, st_ivas->renderer_type, p_output_fx, *nSamplesRendered );
#else
                ivas_ism_render_sf_fx( st_ivas, p_output_fx, *nSamplesRendered );
#endif
            }
            ELSE IF( EQ_32( st_ivas->renderer_type, RENDERER_NON_DIEGETIC_DOWNMIX ) )
            {
@@ -2140,7 +2144,11 @@ ivas_error ivas_jbm_dec_render_fx(
                }

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

                /* add already rendered SBA part */
                FOR( n = 0; n < nchan_out; n++ )
@@ -2678,7 +2686,11 @@ ivas_error ivas_jbm_dec_flush_renderer_fx(
                    /* Convert to CICPxx; used also for ISM->CICP19->binaural_room rendering */
                    set16_fx( st_ivas->hIsmRendererData->interpolator_fx, 32767, hTcBuffer->n_samples_granularity ); // 32767=1.0f in Q15

#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
                    ivas_ism_render_sf_fx( st_ivas, renderer_type_old, p_output_fx, hTcBuffer->n_samples_granularity );
#else
                    ivas_ism_render_sf_fx( st_ivas, p_output_fx, hTcBuffer->n_samples_granularity );
#endif

                    st_ivas->hCrendWrapper->p_io_qfactor = &st_ivas->hCrendWrapper->io_qfactor;
                    *st_ivas->hCrendWrapper->p_io_qfactor = 11;
+4 −0
Original line number Diff line number Diff line
@@ -308,7 +308,11 @@ ivas_error ivas_osba_render_sf_fx(

    IF( NE_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV_ROOM ) )
    {
#ifdef NONBE_FIX_1021_ISM_BRIR_RS_FLUSH
        ivas_ism_render_sf_fx( st_ivas, st_ivas->renderer_type, p_output_ism, *nSamplesRendered );
#else
        ivas_ism_render_sf_fx( st_ivas, p_output_ism, *nSamplesRendered );
#endif
    }

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