Commit 2fa1637c authored by Tapani Pihlajakuja's avatar Tapani Pihlajakuja
Browse files

Port changes from PC float MR 1292 on top of main-pc

parent be48908c
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -360,6 +360,10 @@ typedef enum
#define ISM_Q_STEP_BORDER                       5.0f
#define ISM_Q_STEP_BORDER_FX                    ( 20971520 )    // Q22

#ifdef NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA
#define ISM_FEC_MAX                             10
#endif

#define ISM_RADIUS_NBITS                        6 
#define ISM_RADIUS_MIN                          0.0f
#define ISM_RADIUS_MIN_Q9                       0
+1 −0
Original line number Diff line number Diff line
@@ -186,6 +186,7 @@
#define NONBE_FIX_943_RECONFIG_IGF_AFTER_SETTING_BW           /* FhG: issue 943: fix crash in BW switchin from WB in MDCT-Stereo core encoder */
#define FIX_911_REMOVE_CREND_DUPLICATION                /* VA: issue 911: resolve duplication of CRend binaural external renderer function */
#define FIX_938_GCC_12_WARNINGS                         /* VA: issue #938: remove set_f(.,.,0) call in which length is always 0 to remove GCC 12.0 warning */
#define NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA                 /* Nokia: issue 944: fix FEC error in OMASA */

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

+2 −0
Original line number Diff line number Diff line
@@ -54,7 +54,9 @@
#define ISM_MAX_ELEVATION_DIFF_IDX ( ISM_ELEVATION_NBITS - 1 /*zero*/ - 1 /*sign*/ )
#define ISM_MAX_RADIUS_DIFF_IDX    ( ISM_RADIUS_NBITS - 1 /*zero*/ - 1 /*sign*/ )

#ifndef NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA
#define ISM_FEC_MAX             10
#endif
#define ISM_MD_FEC_DIFF         10
#define ISM_MD_FEC_DIFF_Q22     41943040
#define ISM_MD_INC_DIFF_CNT_MAX 6
+33 −0
Original line number Diff line number Diff line
@@ -45,6 +45,14 @@
#endif


#ifdef NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA
/*-------------------------------------------------------------------------
 * Local constants
 *------------------------------------------------------------------------*/

#define OMASA_FEC_MAX 5
#endif

/*-------------------------------------------------------------------------
 * Local function prototypes
 *------------------------------------------------------------------------*/
@@ -184,6 +192,10 @@ ivas_error ivas_omasa_enc_open_fx(

    hOMasa->prev_selected_object = 0;
    hOMasa->changing_object = 0;
#ifdef NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA
    hOMasa->since_obj_change_cnt = 0;
    move16();
#endif
    move16();
    move16();

@@ -648,6 +660,27 @@ void ivas_omasa_enc_fx(
            move32();
            move16();
        }

#ifdef NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA
        /* force absolute MD coding in case of change of separated object */
        IF ( NE_16( hOMasa->prev_selected_object, selected_object) )
        {
            hOMasa->since_obj_change_cnt = 0;
            hIsmMeta[0]->position_angle.angle1_diff_cnt = ISM_FEC_MAX;
            move16();
            move16();
        }
        ELSE
        {
            hOMasa->since_obj_change_cnt = add(hOMasa->since_obj_change_cnt, 1);
            hOMasa->since_obj_change_cnt = s_min( OMASA_FEC_MAX, hOMasa->since_obj_change_cnt );
            IF ( LT_16(hOMasa->since_obj_change_cnt, OMASA_FEC_MAX) )
            {
                hIsmMeta[0]->position_angle.angle1_diff_cnt = ISM_FEC_MAX;
                move16();
            }
        }
#endif
        hOMasa->prev_selected_object = selected_object;
        move16();

+3 −0
Original line number Diff line number Diff line
@@ -877,6 +877,9 @@ typedef struct ivas_omasa_enc_state_structure

    Word16 prev_selected_object;
    UWord8 changing_object;
#ifdef NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA
    Word16 since_obj_change_cnt;
#endif

} OMASA_ENC_STATE, *OMASA_ENC_HANDLE;