Commit 0af5a5f6 authored by Tapani Pihlajakuja's avatar Tapani Pihlajakuja
Browse files

Merge branch '1318-ref-port-float-mr1275' into 'float-pc'

Port changes of MR1275 from float repo to float reference code.

See merge request !1159
parents e4619376 8c88cb64
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -176,6 +176,7 @@
#define NONBE_1233_HQ_CLASSIFIER_DIV_BY_ZERO            /* Eri: issue 1233: Address possible division by zero in hf_spectrum_sparseness() */

#define NONE_BE_FIX_BASOP_1044_OSBA_PRERENDER_MIX_GAINS /* DLB: adjust prerendering and mixing gain in OSBA encoder. This is fix to float codes*/

#define NONBE_1211_DTX_BR_SWITCHING                     /* VA: port float issue 1211: fix crash in MASA DTX bitrate switching */
#define NONBE_FIX_1189_GSC_IVAS_OMASA                   /* VA: Fix for issue 1189: Bitstream desynchornization due to reading/writing of the GSC_IVAS_mode parameter */
#define NONBE_FIX_1087_OOB_SBA_DTX_RS                   /* VA: issue 1087: Extend the length of the buffer for MCT decoding to avoid out-of-bound writing in SBA SID bitrate switching decoding */
@@ -205,6 +206,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 ############################ */

+30 −1
Original line number Diff line number Diff line
@@ -124,11 +124,19 @@ void copy_masa_descriptive_meta(
 *---------------------------------------------------------------------*/

void diffuse_meta_merge_1x1(
#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                         */
    float inEne[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS],   /* i/o: TF-energy of input 1. energy after merge */
    MASA_DECODER_EXT_OUT_META_HANDLE inMetaISM,                       /* i  : Input metadata 2                         */
    float inEneISM[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS] /* i  : TF-energy of input 2                     */
#else
    MASA_DECODER_EXT_OUT_META_HANDLE outMeta,                         /* o  : Merged metadata output      */
    MASA_DECODER_EXT_OUT_META_HANDLE inMeta,                          /* i  : Input metadata 1            */
    float inEne[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS],   /* i  : TF-energy of input 1        */
    MASA_DECODER_EXT_OUT_META_HANDLE inMetaISM,                       /* i  : Input metadata 2            */
    float inEneISM[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS] /* i  : TF-energy of input 2        */
#endif
)
{
    int8_t sf, band;
@@ -276,6 +284,15 @@ void full_stream_merge(
 *---------------------------------------------------------------------*/

void ivas_prerend_merge_masa_metadata(
#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                                                               */
    float inEne1[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* i/o: TF-energy of input 1. after merge, contains the energy of the merged signal   */
    MASA_DECODER_EXT_OUT_META_HANDLE inMeta2,                        /* i  : Input metadata 2                                                              */
    IVAS_REND_AudioConfigType inType2,                               /* i  : Type of input 2                                                               */
    float inEne2[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]  /* i  : TF-energy of input 2. may be altered                                          */
#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                                                               */
@@ -283,13 +300,25 @@ void ivas_prerend_merge_masa_metadata(
    MASA_DECODER_EXT_OUT_META_HANDLE inMeta2,                         /* i  : Input metadata 2                                                              */
    IVAS_REND_AudioConfigType inType2,                                /* i  : Type of input 2                                                               */
    float inEne2[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]   /* i  : TF-energy of input 2                                                          */
#endif
)
{
    /* mixing ISMs with non-ISM use different merge */
    if ( inType1 == IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED && 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
        int8_t sf;

        diffuse_meta_merge_1x1( outMeta, inMeta2, inEne2, inMeta1, inEne1 ); /* post-merge energy is now in inEne2 and needs to be copied to inEne1 */

        for ( sf = 0; sf < MAX_PARAM_SPATIAL_SUBFRAMES; sf++ )
        {
            mvr2r( inEne2[sf], inEne1[sf], MASA_FREQUENCY_BANDS );
        }
#else
        diffuse_meta_merge_1x1( outMeta, inMeta2, inEne2, inMeta1, inEne1 );
#endif
    }
    else if ( inType2 == IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED && inType1 != IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED && ( inMeta1->descriptiveMeta.numberOfDirections == 0u && inMeta2->descriptiveMeta.numberOfDirections == 0u ) )
    {