Commit 793baf92 authored by multrus's avatar multrus
Browse files

[cleanup] accept NONBE_FIX_1141_OSBA_ROOM_RENDERING

parent 68174076
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -89,7 +89,6 @@
#define NONBE_1244_FIX_SWB_BWE_MEMORY                   /* VA: issue 1244: fix to SWB BWE memory in case of switching from FB coding - pending a review by Huawei */

#define FIX_1129_EXT_REND_OUTPUT_HIGH                   /* Philips: issue 1129: External renderer BINAURAL_ROOM_REVERB format output level too high compared to internal rendering output */
#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 FIX_1135_EXT_RENDERER_HANDLES                   /* VA: issue 1135: Memory usage reduction in external renderer: Allocate only handles that are really needed. */
+0 −57
Original line number Diff line number Diff line
@@ -3678,21 +3678,10 @@ void ivas_dirac_dec_render_sf_fx(
        test();
        IF( ( ( EQ_16( st_ivas->ivas_format, SBA_ISM_FORMAT ) && EQ_16( st_ivas->ism_mode, ISM_SBA_MODE_DISC ) ) && EQ_16( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV_ROOM ) ) )
        {
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
            Word16 in_ch;
            FOR( in_ch = 0; in_ch < st_ivas->nchan_ism; in_ch++ )
            {
#endif
                Word16 j, k, l;
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                Word16 j2, lfe_index;
#endif
                Word16 num_objects, nchan_out_woLFE;
                Word16 n_slots_to_render;
                Word16 n_samples_to_render;
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                Word16 interp_offset;
#endif
                Word32 gain_fx, prev_gain_fx;

                num_objects = st_ivas->nchan_ism;
@@ -3702,20 +3691,12 @@ void ivas_dirac_dec_render_sf_fx(
                n_slots_to_render = st_ivas->hSpar->subframe_nbslots[st_ivas->hSpar->subframes_rendered];
                move16();
                n_samples_to_render = imult1616( hSpatParamRendCom->num_freq_bands, n_slots_to_render );
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                interp_offset = st_ivas->hTcBuffer->n_samples_rendered;
                move16();
#endif

                test();
                IF( st_ivas->hCombinedOrientationData && st_ivas->hCombinedOrientationData->enableCombinedOrientation[0] )
                {
                    ivas_jbm_dec_get_adapted_linear_interpolator_fx( n_samples_to_render, n_samples_to_render, st_ivas->hIsmRendererData->interpolator_fx );
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                    st_ivas->hIsmRendererData->interp_offset_fx = 0;
#else
                interp_offset = 0;
#endif
                    move16();
                }

@@ -3738,29 +3719,8 @@ void ivas_dirac_dec_render_sf_fx(
                        }
                    }

#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                    FOR( j = 0; j < nchan_out_woLFE; j++ )
#else
                lfe_index = 0;
                move16();
                for ( j = 0, j2 = 0; j < nchan_out_woLFE; j++, j2++ )
#endif
                    {
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                        test();
                        IF( ( st_ivas->hIntSetup.num_lfe > 0 && ( EQ_16( st_ivas->hIntSetup.index_lfe[lfe_index], j ) ) ) )
                        {
                            IF( LT_16( lfe_index, sub( st_ivas->hIntSetup.num_lfe, 1 ) ) )
                            {
                                lfe_index = add( lfe_index, 1 );
                                j2 = add( j2, 1 );
                            }
                            ELSE
                            {
                                j2 = add( j2, 1 );
                            }
                        }
#endif
                        gain_fx = st_ivas->hIsmRendererData->gains_fx[i][j];
                        move32();
                        prev_gain_fx = st_ivas->hIsmRendererData->prev_gains_fx[i][j];
@@ -3771,11 +3731,7 @@ void ivas_dirac_dec_render_sf_fx(
                            Word32 *tc_re_fx, *tc_im_fx;
                            Word16 *w1_fx, w2_fx;

#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                            w1_fx = &st_ivas->hIsmRendererData->interpolator_fx[st_ivas->hIsmRendererData->interp_offset_fx];
#else
                        w1_fx = &st_ivas->hIsmRendererData->interpolator_fx[interp_offset];
#endif
                            tc_re_fx = pppQMfFrame_ts_re_fx[nchan_transport + i][0];
                            move32();
                            tc_im_fx = pppQMfFrame_ts_im_fx[nchan_transport + i][0];
@@ -3787,18 +3743,10 @@ void ivas_dirac_dec_render_sf_fx(
                                g_fx = Madd_32_16( Mpy_32_16_1( gain_fx, *w1_fx ), prev_gain_fx, w2_fx ); // Q15
                                FOR( l = 0; l < hSpatParamRendCom->num_freq_bands; l++ )
                                {
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                                    Cldfb_RealBuffer_fx[j][k][l] = Madd_32_32( Cldfb_RealBuffer_fx[j][k][l], g_fx, L_shl( *tc_re_fx, 1 ) );
#else
                                Cldfb_RealBuffer_fx[j2][k][l] = Madd_32_32( Cldfb_RealBuffer_fx[j2][k][l], g_fx, L_shl( *tc_re_fx, 1 ) );
#endif
                                    move32();
                                    tc_re_fx++;
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                                    Cldfb_ImagBuffer_fx[j][k][l] = Madd_32_32( Cldfb_ImagBuffer_fx[j][k][l], g_fx, L_shl( *tc_im_fx, 1 ) );
#else
                                Cldfb_ImagBuffer_fx[j2][k][l] = Madd_32_32( Cldfb_ImagBuffer_fx[j2][k][l], g_fx, L_shl( *tc_im_fx, 1 ) );
#endif
                                    move32();
                                    tc_im_fx++;
                                }
@@ -3814,12 +3762,7 @@ void ivas_dirac_dec_render_sf_fx(
                        }
                    }
                }
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
            }
#endif
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
            st_ivas->hIsmRendererData->interp_offset_fx = add( st_ivas->hIsmRendererData->interp_offset_fx, i_mult( hSpatParamRendCom->num_freq_bands, st_ivas->hSpar->subframe_nbslots[st_ivas->hSpar->subframes_rendered] ) );
#endif
        }

        /* Perform binaural rendering */
+0 −19
Original line number Diff line number Diff line
@@ -939,21 +939,13 @@ void ivas_ism_dec_digest_tc_fx(

            test();
            test();
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
            test();
            test();
            test();
#endif
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
            IF( EQ_32( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) ||
                EQ_32( st_ivas->renderer_type, RENDERER_OSBA_AMBI ) ||
                EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV ) ||
                ( EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV_ROOM ) && EQ_32( st_ivas->ivas_format, SBA_ISM_FORMAT ) && EQ_32( st_ivas->ism_mode, ISM_SBA_MODE_DISC ) ) )
#else
            IF( EQ_32( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) ||
                EQ_32( st_ivas->renderer_type, RENDERER_OSBA_AMBI ) ||
                EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV ) )
#endif
            {
                st_ivas->hIsmRendererData->interpolator_fx[0] = 0;
                move16();
@@ -978,10 +970,8 @@ void ivas_ism_dec_digest_tc_fx(
            ivas_jbm_dec_get_adapted_linear_interpolator_fx( extract_l( Mpy_32_32( st_ivas->hDecoderConfig->output_Fs, ONE_BY_FRAMES_PER_SEC_Q31 ) ), st_ivas->hTcBuffer->n_samples_available, st_ivas->hIsmRendererData->interpolator_fx );
            move16();
        }
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
        st_ivas->hIsmRendererData->interp_offset_fx = 0;
        move16();
#endif

        /* also get the gains here */
        FOR( i = 0; i < st_ivas->nchan_ism; i++ )
@@ -1008,23 +998,14 @@ void ivas_ism_dec_digest_tc_fx(
                test();
                test();
                test();
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                test();
                test();
                test();
#endif
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                IF( ( EQ_32( st_ivas->renderer_type, RENDERER_TD_PANNING ) ||
                      EQ_32( st_ivas->renderer_type, RENDERER_OSBA_LS ) ||
                      EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_MIXER_CONV_ROOM ) ||
                      ( EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV_ROOM ) && EQ_32( st_ivas->ivas_format, SBA_ISM_FORMAT ) && EQ_32( st_ivas->ism_mode, ISM_SBA_MODE_DISC ) ) ) &&
                    st_ivas->hCombinedOrientationData == NULL )
#else
                IF( ( EQ_32( st_ivas->renderer_type, RENDERER_TD_PANNING ) ||
                      EQ_32( st_ivas->renderer_type, RENDERER_OSBA_LS ) ||
                      EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_MIXER_CONV_ROOM ) ) &&
                    st_ivas->hCombinedOrientationData == NULL )
#endif
                {
                    if ( st_ivas->hIntSetup.is_planar_setup )
                    {
+0 −2
Original line number Diff line number Diff line
@@ -859,9 +859,7 @@ typedef struct renderer_struct
    Word32 prev_gains_fx[MAX_NUM_OBJECTS][MAX_OUTPUT_CHANNELS]; /*Q30*/
    Word16 *interpolator_fx;                                    /*Q15*/
    Word16 interpolator_len;
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
    Word16 interp_offset_fx;
#endif
    Word32 gains_fx[MAX_NUM_OBJECTS][MAX_OUTPUT_CHANNELS]; /*Q30*/

} ISM_RENDERER_DATA, *ISM_RENDERER_HANDLE;