Commit 5e520fbd authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

port changes from the float branch 1680_ref_port_object_editing_implementation

parent bb9f8996
Loading
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1326,6 +1326,11 @@ enum
#define MASA_MAXIMUM_TWO_DIR_BANDS              24
#define NBITS_HR_COH                            4
#define OMASA_TDREND_MATCHING_GAIN_FX 26026
#ifdef OMASA_OBJECT_EDITING
#define OMASA_GAIN_EDIT_THR                     0.06f                       /* OMASA gain change threshold */
#define OMASA_AZI_EDIT_THR                      1.0f                        /* OMASA-DISC azimuth change threshold */
#define OMASA_ELE_EDIT_THR                      2.0f                        /* OMASA-DISC elevation change threshold */
#endif

#define MASA_INV_ANGLE_AT_EQUATOR_DEG_Q30       (1453366656l)

+4 −1
Original line number Diff line number Diff line
@@ -3937,8 +3937,11 @@ void ivas_set_ism_importance_interformat_fx(
    const Word16 lp_noise_CPE_fx,   /* i  : LP filtered total noise estimation  */
    Word16 ism_imp[]                /* o  : ISM importance flags                */
);

#ifdef OMASA_OBJECT_EDITING
void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx(
#else
void ivas_omasa_preProcessStereoTransportsForMovedObjects_fx(
#endif
    Decoder_Struct *st_ivas,
    Word32 inRe_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /*cldfb_buf_q*/
    Word32 inIm_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /*cldfb_buf_q*/
+3 −0
Original line number Diff line number Diff line
@@ -160,6 +160,9 @@
#define FIX_HRTF_LOAD_API                               // solves API conflicts between HRTF and object-editing features
#define TMP_FIX_SPLIT_REND                              // temporary fix to split-rendering (it follows the later state of the framework but it is needed now because of current test-conditions)
#define TMP_FIX_OMASA_SR_BE                             // temporary fix to keep OMASA split-rendering BE
#define OBJ_EDITING_EXAMPLE                             /* obj editing example code in decoder.c */
#define OMASA_OBJECT_EDITING                           /* Nokia: object editing interface for OMASA */
#define OBJ_EDITING_PARAMISM_BIN                       /* Nokia: object editing for ParamISM to binaural */
#endif

/* #################### End BASOP porting switches ############################ */
+11 −0
Original line number Diff line number Diff line
@@ -2881,6 +2881,16 @@ void ivas_dirac_dec_render_sf_fx(
            move16();
        }

#ifdef OMASA_OBJECT_EDITING
        if ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ )
        {
#ifdef FIX_1319_STACK_SBA_DECODER
            ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( st_ivas, Cldfb_RealBuffer_Binaural_fx[0], Cldfb_ImagBuffer_Binaural_fx[0], &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx );
#else
            ivas_omasa_preProcessStereoTransportsForEditedObjects_fx( st_ivas, Cldfb_RealBuffer_Temp_fx, Cldfb_ImagBuffer_Temp_fx, &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx );
#endif
        }
#else
        test();
        IF( ( NE_16( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) && NE_16( st_ivas->ism_mode, ISM_MASA_MODE_MASA_ONE_OBJ ) ) )
        {
@@ -2890,6 +2900,7 @@ void ivas_dirac_dec_render_sf_fx(
            ivas_omasa_preProcessStereoTransportsForMovedObjects_fx( st_ivas, Cldfb_RealBuffer_Temp_fx, Cldfb_ImagBuffer_Temp_fx, &cldfb_buf_q, hSpatParamRendCom->num_freq_bands, subframe_idx );
#endif
        }
#endif
    }

    FOR( slot_idx = 0; slot_idx < hSpatParamRendCom->subframe_nbslots[subframe_idx]; slot_idx++ )
+15 −2
Original line number Diff line number Diff line
@@ -1868,6 +1868,16 @@ ivas_error ivas_init_decoder_fx(
        {
            st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed2 = st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed3;
            move16();            
#ifdef OBJ_EDITING_PARAMISM_BIN
            if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM )
            {
                /* reusing OMASA function for allocating and initializing MASA_ISM rendering handle (even though not in OMASA) */
                if ( ( error = ivas_omasa_data_open( st_ivas ) ) != IVAS_ERR_OK )
                {
                    return error;
                }
            }
#endif
        }
        ELSE IF( EQ_32( st_ivas->ism_mode, ISM_MODE_DISC ) )
        {
@@ -2232,13 +2242,15 @@ ivas_error ivas_init_decoder_fx(
            }

            reset_indices_dec( st_ivas->hSCE[0]->hCoreCoder[0] );

#ifndef OMASA_OBJECT_EDITING
            IF( EQ_32( output_config, IVAS_AUDIO_CONFIG_EXTERNAL ) )
            {
#endif
                if ( ( error = ivas_ism_metadata_dec_create_fx( st_ivas, st_ivas->nchan_ism, NULL ) ) != IVAS_ERR_OK )
                {
                    return error;
                }
#ifndef OMASA_OBJECT_EDITING
            }
            else
            {
@@ -2247,6 +2259,7 @@ ivas_error ivas_init_decoder_fx(
                    return error;
                }
            }
#endif
        }
        ELSE IF( EQ_32( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) )
        {
Loading