Commit f68c6636 authored by Tapani Pihlajakuja's avatar Tapani Pihlajakuja
Browse files

Preview commit of ported signal processing in object editing.

parent bf46ca38
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ typedef struct _IVAS_ISM_METADATA
    Word32 elevation_fx;  /* Q22 */
    Word16 radius_fx;     /* Q9 */
    Word32 spread_fx;     /* Q22 */
    Word32 gainFactor_fx; /* Q31 */
    Word32 gainFactor_fx; /* Q31 */     // TODO: Gain factor can't be Q31, due to the gain editing
    Word32 yaw_fx;        /* Q22 */
    Word32 pitch_fx;      /* Q22 */
    float azimuth;
@@ -137,6 +137,10 @@ typedef struct _IVAS_ISM_METADATA
    float yaw;
    float pitch;
    Word16 non_diegetic_flag;
#ifdef OBJ_EDITING_API
    // float gain;
    Word16 gain_fx;     /* Q12 */
#endif

} IVAS_ISM_METADATA;

@@ -148,6 +152,17 @@ typedef struct

} IVAS_QUATERNION;

#ifdef OBJ_EDITING_API
typedef struct _IVAS_EDITABLE_PARAMETERS
{
    // int16_t num_obj;
    IVAS_ISM_METADATA ism_metadata[IVAS_MAX_NUM_OBJECTS];
    // float gain_bed;
    Word16 num_obj;
    Word16 gain_bed;    // Q12?

} IVAS_EDITABLE_PARAMETERS;
#endif

typedef struct
{
+8 −0
Original line number Diff line number Diff line
@@ -1329,6 +1329,14 @@ enum

#define MASA_INV_ANGLE_AT_EQUATOR_DEG_Q30       (1453366656l)

#ifdef OMASA_OBJECT_EDITING
#define OMASA_GAIN_EDIT_THR                     0.06f                       /* OMASA gain change threshold */
#define OMASA_GAIN_EDIT_THR_FX                  246                         /* OMASA gain change threshold, 0.06f in Q12 */
#define OMASA_AZI_EDIT_THR                      1.0f                        /* OMASA-DISC azimuth change threshold */
#define OMASA_AZI_EDIT_THR_FX                   ONE_IN_Q22                  /* OMASA-DISC azimuth change threshold */
#define OMASA_ELE_EDIT_THR                      2.0f                        /* OMASA-DISC elevation change threshold */
#define OMASA_ELE_EDIT_THR_FX                   ONE_IN_Q23                  /* OMASA-DISC elevation change threshold */
#endif

#define MASA_JBM_RINGBUFFER_FRAMES              3
#define TOLERANCE_360_Q22                       1510033326  /* 360 in Q22 + 0.02 in Q22*/
+3 −0
Original line number Diff line number Diff line
@@ -77,6 +77,9 @@ typedef enum
    IVAS_ERR_EXT_ORIENTATION_NOT_SUPPORTED,
    IVAS_ERR_DIRECTIVITY_NOT_SUPPORTED,
    IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED,
#ifdef OBJ_EDIT_BASOP
    IVAS_ERR_OBJECTS_EDITING_NOT_SUPPORTED,
#endif
    IVAS_ERR_INVALID_HRTF,
#ifdef FIX_989_TD_REND_ROM
    IVAS_ERR_INVALID_HRTF_SAMPLING_RATE,
+12 −0
Original line number Diff line number Diff line
@@ -470,6 +470,18 @@ void ivas_ism_reset_metadata(
    hIsmMeta->non_diegetic_flag = 0;
    move16();

#ifdef OBJ_EDIT_API
    hIsmMeta->edited_gain_fx = ONE_IN_Q12;
    hIsmMeta->edited_azimuth_fx = 0;
    hIsmMeta->edited_elevation_fx = 0;
    hIsmMeta->edited_pitch_fx = 0;
    hIsmMeta->edited_yaw_fx = 0;
    hIsmMeta->edited_radius_fx = ONE_IN_Q9;
    hIsmMeta->gain_fx = ONE_IN_Q12;
    hIsmMeta->non_diegetic_flag = 0;

#endif

    return;
}

+33 −13
Original line number Diff line number Diff line
@@ -184,6 +184,15 @@ void ivas_omasa_render_objects_from_mix_fx(
);


#ifdef OBJ_EDIT_BASOP
void ivas_omasa_gain_masa_tc_fx(
    Word32 *output[],                                            /* i/o: output synthesis signal                 */
    const Word32 gainMasa,                                       /* i  : gain for MASA transport channels        */
    const Word16 nchan_transport_ism,                          /* i  : number of ISM TCs                       */
    const Word16 output_frame                                  /* i  : output frame length per channel         */
);
#endif

ivas_error ivas_omasa_ism_metadata_dec_fx(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder structure                  */
    const Word32 ism_total_brate,                               /* i  : ISM total bitrate                       */
@@ -3932,6 +3941,17 @@ void ivas_set_ism_importance_interformat_fx(
    Word16 ism_imp[]                /* o  : ISM importance flags                */
);

#ifdef OMASA_OBJECT_EDITING
void ivas_omasa_preProcessStereoTransportsForEditedObjects_fx(
    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*/
    Word16 *cldfb_buf_q,
    const Word16 nBins,
    const Word16 subframe
);

#else
void ivas_omasa_preProcessStereoTransportsForMovedObjects_fx(
    Decoder_Struct *st_ivas,
    Word32 inRe_fx[][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /*cldfb_buf_q*/
@@ -3939,7 +3959,7 @@ void ivas_omasa_preProcessStereoTransportsForMovedObjects_fx(
    Word16 *cldfb_buf_q,
    const Word16 nBins,
    const Word16 subframe );

#endif

void ivas_omasa_decode_masa_to_total_fx(
    UWord16 *bit_stream,
Loading