Commit b8215a5e authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Instrumentation for vbap module

[x] Added instrumentation code for functions in vbap module.
[x] Added calls for vbap_determine_gains function.
parent 526ae840
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1623,6 +1623,7 @@ ivas_error ivas_init_decoder(
                }
                ELSE
                {
                    /*TODO/observation : not hit by decoder tests*/
                    vbap_determine_gains( st_ivas->hVBAPdata, st_ivas->hLsSetupCustom->separate_ch_gains, 0, 0, 0 );
                }
            }
+11 −0
Original line number Diff line number Diff line
@@ -836,6 +836,10 @@ void ivas_omasa_separate_object_render_jbm(
    int16_t j, k, j2;
    int16_t obj;
    float gains[MAX_OUTPUT_CHANNELS];
#ifdef IVAS_FLOAT_FIXED
    Word32 gains_fx[MAX_OUTPUT_CHANNELS];
    set32_fx(gains_fx, 0, MAX_OUTPUT_CHANNELS);
#endif
    float g1, g2;
    int16_t lfe_index;
    int16_t azimuth, elevation;
@@ -943,7 +947,14 @@ void ivas_omasa_separate_object_render_jbm(

            if ( hVBAPdata != NULL )
            {
#ifdef IVAS_FLOAT_FIXED
                vbap_determine_gains_fx(hVBAPdata, gains_fx, azimuth, elevation, 1);
                FOR (int i = 0; i < MAX_OUTPUT_CHANNELS; i++) {
                    gains[i] = fix_to_float(gains_fx[i], Q29);
                }
#else
                vbap_determine_gains( hVBAPdata, gains, azimuth, elevation, 1 );
#endif
                /*Word32 gains_fx[16];
                vbap_determine_gains_fx( hVBAPdata, gains_fx, azimuth, elevation, 1 );
                for (j = 0; j < nchan_out_woLFE; j++) gains[j] = (float)gains_fx[j] / (float)(1 << 29);*/
+49 −1
Original line number Diff line number Diff line
@@ -2711,6 +2711,10 @@ void ivas_dirac_dec_compute_directional_responses(
                {
                    int16_t dir;
                    float direct_response_temp[MAX_OUTPUT_CHANNELS];
#ifdef IVAS_FLOAT_FIXED
                    Word32 direct_response_temp_fx[MAX_OUTPUT_CHANNELS];
                    set32_fx(direct_response_temp_fx, 0, MAX_OUTPUT_CHANNELS);
#endif
                    float direct_response_ism[MAX_OUTPUT_CHANNELS];
                    float masaDirect;
                    float ismDirect;
@@ -2721,11 +2725,27 @@ void ivas_dirac_dec_compute_directional_responses(
                    {
                        if ( hMasaIsm->ism_is_edited[dir] )
                        {
#ifdef IVAS_FLOAT_FIXED
                            vbap_determine_gains_fx( hVBAPdata, direct_response_temp_fx, hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], 1 );
                            FOR( int i = 0; i < MAX_OUTPUT_CHANNELS; i++ )
                            {
                                direct_response_temp[i] = fix_to_float( direct_response_temp_fx[i], Q29 );
                            }
#else
                            vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], 1 );
#endif
                        }
                        else
                        {
#ifdef IVAS_FLOAT_FIXED
                            vbap_determine_gains_fx( hVBAPdata, direct_response_temp_fx, hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], 1 );
                            FOR( int i = 0; i < MAX_OUTPUT_CHANNELS; i++ )
                            {
                                direct_response_temp[i] = fix_to_float( direct_response_temp_fx[i], Q29 );
                            }
#else
                            vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], 1 );
#endif
                        }

                        for ( l = 0; l < num_channels_dir; l++ )
@@ -3289,6 +3309,12 @@ static void spreadCoherencePanningVbap(
    int16_t i;
    float direct_response_left[MAX_OUTPUT_CHANNELS];
    float direct_response_right[MAX_OUTPUT_CHANNELS];
#ifdef IVAS_FLOAT_FIXED
    Word32 direct_response_left_fx[MAX_OUTPUT_CHANNELS];
    Word32 direct_response_right_fx[MAX_OUTPUT_CHANNELS];
    set32_fx(direct_response_left_fx, 0, MAX_OUTPUT_CHANNELS);
    set32_fx(direct_response_right_fx, 0, MAX_OUTPUT_CHANNELS);
#endif
    float gainCenter;
    float gainSide;

@@ -3299,13 +3325,35 @@ static void spreadCoherencePanningVbap(

        return;
    }

#ifdef IVAS_FLOAT_FIXED
    Word32 direct_response_fx[MAX_OUTPUT_CHANNELS];
    set32_fx( direct_response_fx, 0, MAX_OUTPUT_CHANNELS );
    vbap_determine_gains_fx( hVBAPdata, direct_response_fx, azimuth, elevation, 0 );
    FOR( i = 0; i < MAX_OUTPUT_CHANNELS; i++ )
    {
        direct_response[i] = fix_to_float( direct_response_fx[i], Q29 );
    }
#else
    vbap_determine_gains( hVBAPdata, direct_response, azimuth, elevation, 0 );
#endif

    if ( spreadCoh > 0.f )
    {
#ifdef IVAS_FLOAT_FIXED
        vbap_determine_gains_fx(hVBAPdata, direct_response_left_fx, azimuth + 30, elevation, 0);
        FOR(i = 0; i < MAX_OUTPUT_CHANNELS; i++)
        {
            direct_response_left[i] = fix_to_float(direct_response_left_fx[i], Q29);
        }
        vbap_determine_gains_fx(hVBAPdata, direct_response_right_fx, azimuth - 30, elevation, 0);
        FOR(i = 0; i < MAX_OUTPUT_CHANNELS; i++)
        {
            direct_response_right[i] = fix_to_float(direct_response_right_fx[i], Q29);
        }
#else
        vbap_determine_gains( hVBAPdata, direct_response_left, azimuth + 30, elevation, 0 );
        vbap_determine_gains( hVBAPdata, direct_response_right, azimuth - 30, elevation, 0 );
#endif

        if ( spreadCoh < 0.5f )
        {
+282 −103

File changed.

Preview size limit exceeded, changes collapsed.