Commit 4dc635b2 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch 'ivas_ism_renderer_fxd_conv' into 'main'

Ported functions in ivas_ism_renderer.c file

See merge request !96
parents c06786fc 0b7b4432
Loading
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@
#include <stdlib.h>
#include "ivas_cnst.h"
#include "ivas_prot.h"
#include "ivas_prot_fx.h"
#include "prot.h"
#include "prot_fx1.h"
#include "ivas_rom_com.h"
@@ -1011,7 +1012,7 @@ void ivas_get_stereo_panning_gains(
#define SIN_NEG_30_DEGREES_Q15 ( (Word16) 0xC000 )
#define SIN_30_DEGREES_Q15     ( (Word16) 0x4000 )

static void get_panning_gain(
void get_panning_gain(
    const Word16 sinAngleMapped,
    Word16 *panningGains )
{
@@ -1121,10 +1122,10 @@ void ivas_get_stereo_panning_gains_fx(
    }
    WHILE( LT_16( azSubEl, -180 ) )
    {
        azSubEl = sub( azSubEl, 360 );
        azSubEl = add( azSubEl, 360 );
    }
    // sin_az_cos_el = (ptr_sin_az[azAddEl] + ptr_sin_az[azSubEl])/2;
    Word16 sin_az_cos_el = extract_l( L_shr( L_add( L_deposit_l( ptr_sin_az[azAddEl] ), L_deposit_l( ptr_sin_az[azSubEl] ) ), 1 ) );
    Word16 sin_az_cos_el = extract_l( L_shr( L_add( L_deposit_l( ptr_sin_az[azAddEl + 180] ), L_deposit_l( ptr_sin_az[azSubEl + 180] ) ), 1 ) );

    IF( GE_16( sin_az_cos_el, SIN_30_DEGREES_Q15 ) )
    { /* Left side */
+1 −1
Original line number Diff line number Diff line
@@ -5531,7 +5531,7 @@ ivas_error ivas_ls_custom_output_init(

void ivas_ls_custom_setup(
    IVAS_OUTPUT_SETUP_HANDLE hOutSetup,                         /* o  : IVAS output setup handle                        */
    const LSSETUP_CUSTOM_STRUCT *hLsSetupCustom                 /* i  : Custom loudspeaker setup handle                 */
    LSSETUP_CUSTOM_STRUCT *hLsSetupCustom                 /* i  : Custom loudspeaker setup handle                 */
);


+38 −0
Original line number Diff line number Diff line
@@ -740,4 +740,42 @@ ivas_error ivas_ls_custom_output_init_fx(
ivas_error ivas_ls_custom_open_fx(
    LSSETUP_CUSTOM_HANDLE *hLsSetupCustom /* o  : Custom loudspeaker setup handle    */
);

ivas_error ivas_ism_renderer_open_fx(
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder structure                          */
);

void ivas_ism_render_sf_fx(
    Decoder_Struct *st_ivas,          /* i/o: IVAS decoder structure                      */
    Word32 *output_fx[],                /* i/o: core-coder transport channels/object output */
    const Word16 n_samples_to_render /* i  : output frame length per channel             */
);

void ivas_jbm_dec_get_adapted_linear_interpolator_fx(
    const Word16 default_interp_length, /* i  : default length of the (full-frame) interpolator */
    const Word16 interp_length,         /* i  : length of the interpolator to be created        */
    Word16 *interpolator_fx                  /* o  : the interpolator                                */
);

void ivas_omasa_separate_object_render_jbm_fx(
    Decoder_Struct *st_ivas,         /* i/o: IVAS decoder structure                      */
    const UWord16 nSamplesRendered, /* i  : number of samples rendered                  */
    Word32 input_fx_in[][L_FRAME48k], /* i  : separated object signal                     */
    Word32 *output_fx[],                /* o  : rendered time signal                        */
    const Word16 subframes_rendered, /* i  : number of subframes rendered                */
    const Word16 slots_rendered      /* i  : number of CLDFB slots rendered              */
);

void get_panning_gain(
    const Word16 sinAngleMapped,
    Word16 *panningGains
);

void ivas_ism_get_stereo_gains_fx(
    const Word16 aziDeg,   /* i  : object azimuth       */
    const Word16 eleDeg, /* i  : object elevation     */
    Word16 *left_gain_fx,      /* o  : left channel gain    */
    Word16 *right_gain_fx      /* o  : right channel gain   */
);

#endif
+0 −14
Original line number Diff line number Diff line
@@ -2891,20 +2891,6 @@ const uint8_t masa_twodir_bands_joined[IVAS_NUM_ACTIVE_BRATES] =
/*----------------------------------------------------------------------------------*
 * Multi-channel LS setups
 *----------------------------------------------------------------------------------*/
#ifdef IVAS_FLOAT_FIXED
const Word16 ls_azimuth_CICP2_fx[2]     = { 30, -30 };/*Q-0*/
const Word16 ls_elevation_CICP2_fx[2]   = { 0,   0 };/*Q-0*/
const Word16 ls_azimuth_CICP6_fx[5]     = { 30, -30, 0, 110, -110 };/*Q-0*/
const Word16 ls_elevation_CICP6_fx[5]   = { 0,   0, 0,   0,    0 };/*Q-0*/
const Word16 ls_azimuth_CICP12_fx[7]    = { 30, -30, 0, 110, -110, 135, -135 };/*Q-0*/
const Word16 ls_elevation_CICP12_fx[7]  = { 0,   0, 0,   0,    0,   0,    0 };/*Q-0*/
const Word16 ls_azimuth_CICP14_fx[7]    = { 30, -30, 0, 110, -110, 30, -30 };/*Q-0*/
const Word16 ls_elevation_CICP14_fx[7]  = { 0,   0, 0,   0,    0, 35,  35 };/*Q-0*/
const Word16 ls_azimuth_CICP16_fx[9]    = { 30, -30, 0, 110, -110, 30, -30, 110, -110 };/*Q-0*/
const Word16 ls_elevation_CICP16_fx[9]  = { 0,   0, 0,   0,    0, 35,  35,  35,   35 };/*Q-0*/
const Word16 ls_azimuth_CICP19_fx[11]   = { 30, -30, 0, 135, -135, 90, -90,  30, -30, 135, -135 };/*Q-0*/
const Word16 ls_elevation_CICP19_fx[11] = { 0,   0, 0,   0,    0,  0,   0,  35,  35,  35,   35 };/*Q-0*/
#endif // IVAS_FLOAT_FIXED
const float ls_azimuth_CICP2[2] =     { 30.0f, -30.0f };
const float ls_elevation_CICP2[2] =   {  0.0f,   0.0f };
+0 −14
Original line number Diff line number Diff line
@@ -313,20 +313,6 @@ extern const float diffuseness_reconstructions_hr[HR_MASA_ER_LEVELS];
extern const float diffuseness_thresholds_hr[HR_MASA_ER_LEVELS + 1];
extern const Word64 diffuseness_reconstructions_hr_fx[HR_MASA_ER_LEVELS];
extern const Word32 diffuseness_thresholds_hr_fx[HR_MASA_ER_LEVELS + 1];
#ifdef IVAS_FLOAT_FIXED
extern const Word16 ls_azimuth_CICP2_fx[2];
extern const Word16 ls_elevation_CICP2_fx[2];
extern const Word16 ls_azimuth_CICP6_fx[5];
extern const Word16 ls_elevation_CICP6_fx[5];
extern const Word16 ls_azimuth_CICP12_fx[7];
extern const Word16 ls_elevation_CICP12_fx[7];
extern const Word16 ls_azimuth_CICP14_fx[7];
extern const Word16 ls_elevation_CICP14_fx[7];
extern const Word16 ls_azimuth_CICP16_fx[9];
extern const Word16 ls_elevation_CICP16_fx[9];
extern const Word16 ls_azimuth_CICP19_fx[11];
extern const Word16 ls_elevation_CICP19_fx[11];
#endif // IVAS_FLOAT_FIXED

/* Multi-channel input and output setups */
extern const float ls_azimuth_CICP2[2];
Loading