Commit 23b78c48 authored by Tapani Pihlajakuja's avatar Tapani Pihlajakuja
Browse files

Merge branch '1318-basop-port-float-mr1275' into 'main-pc'

Port changes of MR1275 of float repo to BASOP code.

See merge request !1160
parents 38ff332b abaa6397
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -190,6 +190,7 @@
#define NONBE_FIX_BINAURAL_ROOM_IR_REVERBERATOR               /* FhG: re-enable acidentially disabled reverberator for BINAURAL_ROOM_IR */
#define NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM   /* FhG: issue 1058: do not initialize EFAP when IntSetup is HOA3 */
#define NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING           /* Dlb: issue 907: fix for band mapping at VLBR */  
#define NONBE_FIX_869_MASA_PREREND_MERGE                      /* Nokia: issue: #869: MASA pre-rend not updating energy */

/* #################### End BASOP porting switches ############################ */

+37 −1
Original line number Diff line number Diff line
@@ -141,6 +141,15 @@ void copy_masa_descriptive_meta_fx(
 *---------------------------------------------------------------------*/

void diffuse_meta_merge_1x1_fx(
#ifdef NONBE_FIX_869_MASA_PREREND_MERGE
    MASA_DECODER_EXT_OUT_META_HANDLE outMeta,                              /* o  : Merged metadata output                   */
    MASA_DECODER_EXT_OUT_META_HANDLE inMeta,                               /* i  : Input metadata 1                         */
    Word32 inEne_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS],    /* i/o: TF-energy of input 1. energy after merge */
    Word16 *inEne_e,                                                       /* i  : TF-energy of input 1 Exponent            */
    MASA_DECODER_EXT_OUT_META_HANDLE inMetaISM,                            /* i  : Input metadata 2                         */
    Word32 inEneISM_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* i  : TF-energy of input 2                     */
    Word16 *inEneISM_e                                                     /* i  : TF-energy of input 2 Exponent            */
#else
    MASA_DECODER_EXT_OUT_META_HANDLE outMeta,                              /* o  : Merged metadata output        */
    MASA_DECODER_EXT_OUT_META_HANDLE inMeta,                               /* i  : Input metadata 1              */
    Word32 inEne_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS],    /* i  : TF-energy of input 1          */
@@ -148,6 +157,7 @@ void diffuse_meta_merge_1x1_fx(
    MASA_DECODER_EXT_OUT_META_HANDLE inMetaISM,                            /* i  : Input metadata 2              */
    Word32 inEneISM_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* i  : TF-energy of input 2          */
    Word16 *inEneISM_e                                                     /* i  : TF-energy of input 2 Exponent */
#endif
)
{
    Word8 sf, band;
@@ -432,6 +442,17 @@ void full_stream_merge_fx(
 *---------------------------------------------------------------------*/

void ivas_prerend_merge_masa_metadata_fx(
#ifdef NONBE_FIX_869_MASA_PREREND_MERGE
    MASA_DECODER_EXT_OUT_META_HANDLE outMeta,                            /* o  : Merged metadata output                                                      */
    MASA_DECODER_EXT_OUT_META_HANDLE inMeta1,                            /* i  : Input metadata 1                                                            */
    IVAS_REND_AudioConfigType inType1,                                   /* i  : Type of input 1                                                             */
    Word32 inEne1_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* i/o: TF-energy of input 1. after merge, contains the energy of the merged signal */
    Word16 *inEne1_e,                                                    /* i/o: TF-energy of input 1 Exponent                                               */
    MASA_DECODER_EXT_OUT_META_HANDLE inMeta2,                            /* i  : Input metadata 2                                                            */
    IVAS_REND_AudioConfigType inType2,                                   /* i  : Type of input 2                                                             */
    Word32 inEne2_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* i  : TF-energy of input 2. may be altered                                        */
    Word16 *inEne2_e                                                     /* i  : TF-energy of input 2 Exponent                                               */
#else
    MASA_DECODER_EXT_OUT_META_HANDLE outMeta,                              /* o  : Merged metadata output                                                      */
    MASA_DECODER_EXT_OUT_META_HANDLE inMeta1,                              /* i  : Input metadata 1                                                            */
    IVAS_REND_AudioConfigType inType1,                                     /* i  : Type of input 1                                                             */
@@ -441,6 +462,7 @@ void ivas_prerend_merge_masa_metadata_fx(
    IVAS_REND_AudioConfigType inType2,                                     /* i  : Type of input 2                                                             */
    Word32 inEne2_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS],   /* i  : TF-energy of input 2                                                        */
    Word16 *inEne2_e                                                       /* i  : TF-energy of input 2 Exponent                                               */
#endif
)
{
    /* mixing ISMs with non-ISM use different merge */
@@ -453,7 +475,21 @@ void ivas_prerend_merge_masa_metadata_fx(
    IF( EQ_32( inType1, IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED ) && NE_32( inType2, IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED ) && ( inMeta1->descriptiveMeta.numberOfDirections == 0u && inMeta2->descriptiveMeta.numberOfDirections == 0u ) )
    {
        /* meta_1 is ISM and both are 1dir */
#ifdef NONBE_FIX_869_MASA_PREREND_MERGE
        Word8 sf;

        diffuse_meta_merge_1x1_fx( outMeta, inMeta2, inEne2_fx, inEne2_e, inMeta1, inEne1_fx, inEne1_e ); /* post-merge energy is now in inEne2 and needs to be copied to inEne1 */

        FOR( sf = 0; sf < MAX_PARAM_SPATIAL_SUBFRAMES; sf++ )
        {
            Copy32( inEne2_fx[sf], inEne1_fx[sf], MASA_FREQUENCY_BANDS );
        }
        *inEne1_e = *inEne2_e;
        move16();

#else
        diffuse_meta_merge_1x1_fx( outMeta, inMeta2, inEne2_fx, inEne2_e, inMeta1, inEne1_fx, inEne1_e );
#endif
    }
    ELSE IF( EQ_32( inType2, IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED ) && NE_32( inType1, IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED ) && ( inMeta1->descriptiveMeta.numberOfDirections == 0u && inMeta2->descriptiveMeta.numberOfDirections == 0u ) )
    {