Commit a7e291ad authored by lintervo's avatar lintervo
Browse files

Fix gaining feature

parent 7e629650
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ typedef struct

    Word32 edited_yaw_fx;   /* Q22 */
    Word32 edited_pitch_fx; /* Q22 */
    Word32 edited_gain_fx;  /* Q30 */
    Word32 edited_gain_fx;  /* Q31 */
#endif

    Word16 non_diegetic_flag; /* Non-diegetic (non-headtracked) object flag */
+5 −2
Original line number Diff line number Diff line
@@ -3768,8 +3768,11 @@ void ivas_dirac_dec_render_sf_fx(
                        const Word32 ele_fx = L_shl( el1_32, Q22 - Q16 ); // Q16 -> Q22
                        efap_determine_gains_fx( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains_fx[i], azi_fx, ele_fx, EFAP_MODE_EFAP );
#ifdef OBJ_EDITING_API
                        // TODO: Enable gain editing feature
                        // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30
                        // TODO: Align Q-values
                        IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) )
                        {
                            v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30
                        }
#endif
                    }
                }
+15 −5
Original line number Diff line number Diff line
@@ -1000,8 +1000,12 @@ void ivas_ism_dec_digest_tc_fx(
                move32();
                st_ivas->hIsmRendererData->gains_fx[i][1] = L_shr( L_deposit_h( gains_fx[1] ), 1 ); // Q31 -> Q30
                move32();
                // TODO: Enable gain editing feature
                // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], CPE_CHANNELS ); // Q30, Q30 --> Q30
                // TODO: Align Q values
                IF ( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) )
                {
                    v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], CPE_CHANNELS ); // Q30, Q30 --> Q30
                }

#else
                Word16 gains_fx[2];
                ivas_ism_get_stereo_gains_fx( (Word16) L_shr( st_ivas->hIsmMetaData[i]->azimuth_fx, 22 ), (Word16) L_shr( st_ivas->hIsmMetaData[i]->elevation_fx, 22 ), &gains_fx[0], &gains_fx[1] );
@@ -1050,7 +1054,10 @@ void ivas_ism_dec_digest_tc_fx(
                        efap_determine_gains_fx( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains_fx[i], azimuth_fx, elevation_fx, EFAP_MODE_EFAP );
#ifdef OBJ_EDITING_API
                        // TODO: align Q values properly
                        IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) )
                        {
                            v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hEFAPdata->numSpk );
                        }
#endif
                    }
                }
@@ -1063,8 +1070,11 @@ void ivas_ism_dec_digest_tc_fx(
                    Word16 ele = shr( extract_h( st_ivas->hIsmMetaData[i]->elevation_fx ), 22 - 16 ); // Q0
                    ivas_dirac_dec_get_response_fx( azi, ele, st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIntSetup.ambisonics_order, Q30 );
#ifdef OBJ_EDITING_API
                    // TODO: Enable gain editing feature
                    // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], ivas_sba_get_nchan_fx( st_ivas->hIntSetup.ambisonics_order, 0 ) ); // Q30, Q30 --> Q30
                    // TODO: Align Q-values
                    IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) )
                    {
                        v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], ivas_sba_get_nchan_fx( st_ivas->hIntSetup.ambisonics_order, 0 ) ); // Q30, Q30 --> Q30
                    }
#endif
                }
            }
+5 −2
Original line number Diff line number Diff line
@@ -279,8 +279,11 @@ void ivas_ism_render_sf_fx(
                {
                    efap_determine_gains_fx( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains_fx[i], L_shl( azimuth, 22 ), L_shl( elevation, 22 ), EFAP_MODE_EFAP );
#ifdef OBJ_EDITING_API
                    // TODO: Enable gain editing feature
                    // v_multc_fixed( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30
                    // TODO: Align Q-values
                    IF( NE_32( st_ivas->hIsmMetaData[i]->edited_gain_fx, ONE_IN_Q31 ) )
                    {
                        v_multc_fx( st_ivas->hIsmRendererData->gains_fx[i], st_ivas->hIsmMetaData[i]->edited_gain_fx, st_ivas->hIsmRendererData->gains_fx[i], nchan_out_woLFE ); // Q30, Q30 --> Q30
                    }
#endif
                }
            }
+1 −1
Original line number Diff line number Diff line
@@ -704,7 +704,7 @@ static void TDREND_SRC_SPATIAL_SetGain(
    const Word32 Gain          /* i  : Front-pointing vector                 */
)
{
    Src_p->SrcRend_p->SrcGain_p_fx[0] = extract_h( Gain ); // Check incoming Q-value
    Src_p->SrcRend_p->SrcGain_p_fx[0] = add( extract_h( L_shr( Gain, Q1 ) ), 1 ); // TODO: Check incoming Q-value and fix this
}
#endif