Commit fbfa4580 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch 'ism_metadata_enc_fxd_changes' into 'main'

Functions in ivas_ism_metadata_enc.c converted to fixed point

See merge request !450
parents 244fde2f e69fb98b
Loading
Loading
Loading
Loading
Loading
+54 −2
Original line number Diff line number Diff line
@@ -1226,6 +1226,17 @@ void ivas_ism_reset_metadata_API(
);

/*! r: index of the winning codeword */
#ifdef IVAS_FLOAT_FIXED
Word16 ism_quant_meta_fx(
    const Word32 val,              /* i  : scalar value to quantize        */
    Word32 *valQ,                  /* o  : quantized value                 */
    const Word32 borders_fx[],     /* i  : level borders                   */
    const Word32 q_step_fx,        /* i  : quantization step               */
    const Word32 q_step_border_fx, /* i  : quantization step at the border */
    const Word16 cbsize            /* i  : codebook size                   */
);
#endif

int16_t ism_quant_meta(
    const float val,                                            /* i  : scalar value to quantize                    */
    float *valQ,                                                /* o  : quantized value                             */
@@ -1244,6 +1255,17 @@ float ism_dequant_meta(
    const int16_t cbsize                                        /* i  : codebook size                               */
);

#ifdef IVAS_FLOAT_FIXED
ivas_error ivas_set_ism_metadata_fx(
    ISM_METADATA_HANDLE hIsmMeta,                               /* o  : ISM metadata handle                         */
    const Word32 azimuth,                                        /* i  : azimuth value                               */
    const Word32 elevation,                                      /* i  : elevation value                             */
    const Word16 radius_meta,                                    /* i  : radius                                      */
    const Word32 yaw,                                            /* i  : yaw                                         */
    const Word32 pitch,                                          /* i  : pitch                                       */
    const Word16 non_diegetic_flag                             /* i  : non-diegetic object flag                    */
);
#else
ivas_error ivas_set_ism_metadata(
    ISM_METADATA_HANDLE hIsmMeta,                               /* o  : ISM metadata handle                         */
    const float azimuth,                                        /* i  : azimuth value                               */
@@ -1253,7 +1275,7 @@ ivas_error ivas_set_ism_metadata(
    const float pitch,                                          /* i  : pitch                                       */
    const int16_t non_diegetic_flag                             /* i  : non-diegetic object flag                    */
);

#endif
ivas_error ivas_ism_metadata_enc_create(
    Encoder_Struct *st_ivas,                                    /* i/o: IVAS encoder structure                      */
    const int16_t n_ISms,                                       /* i  : number of objects                           */
@@ -1274,6 +1296,25 @@ ivas_error ivas_ism_enc(
    const int16_t flag_omasa_ener_brate                         /* i  : less bitrate for objects in OMASA flag      */
);

#ifdef IVAS_FLOAT_FIXED
ivas_error ivas_ism_metadata_enc(
    Word32 *ism_total_brate,                                   /* i/o: ISM total bitrate                           */
    const Word16 nchan_ism,                                    /* i  : number of ISM channels                      */
    const Word16 nchan_transport,                              /* i  : number of transport channels                */
    ISM_METADATA_HANDLE hIsmMeta[],                             /* i/o: ISM metadata handles                        */
    SCE_ENC_HANDLE hSCE[],                                      /* i/o: SCE encoder handles                         */
    BSTR_ENC_HANDLE hBstr,                                      /* i/o: bitstream handle                            */
    Word16 nb_bits_metadata[],                                 /* o  : number of metadata bits                     */
    const Word16 localVAD[],                                   /* i  : VAD flag                                    */
    const Word16 ism_mode,                                     /* i  : ISM mode                                    */
    const PARAM_ISM_CONFIG_HANDLE hParamIsm,                    /* i  : Param ISM Config Handle                     */
    const Word16 ism_extended_metadata_flag,                   /* i  : Extended metadata flag                      */
    const Word32 lp_noise_CPE,                                   /* i  : LP filtered total noise estimation          */
    const Word16 flag_omasa_ener_brate,                        /* i  : less bitrate for objects in OMASA flag      */
    Word16 *omasa_stereo_sw_cnt,
    const Word16 ini_frame
);
#else
ivas_error ivas_ism_metadata_enc(
    int32_t *ism_total_brate,                                   /* i/o: ISM total bitrate                           */
    const int16_t nchan_ism,                                    /* i  : number of ISM channels                      */
@@ -1291,7 +1332,7 @@ ivas_error ivas_ism_metadata_enc(
    int16_t *omasa_stereo_sw_cnt,
    const int16_t ini_frame
);

#endif
ivas_error ivas_ism_metadata_dec(
    const int32_t ism_total_brate,                              /* i  : ISM total bitrate                           */
    const int16_t nchan_ism,                                    /* i  : number of ISM channels                      */
@@ -7589,6 +7630,17 @@ void ivas_set_surplus_brate_dec(
    int32_t *ism_total_brate                                    /* i  : ISM total bitrate                       */
);

#ifdef IVAS_FLOAT_FIXED
void ivas_set_ism_importance_interformat_fx(
    const Word32 ism_total_brate,  /* i/o: ISms total bitrate                  */
    const Word16 nchan_transport,  /* i  : number of transported channels      */
    ISM_METADATA_HANDLE hIsmMeta[], /* i/o: ISM metadata handles                */
    SCE_ENC_HANDLE hSCE[],          /* i/o: SCE encoder handles                 */
    const Word32 lp_noise_CPE_fx,       /* i  : LP filtered total noise estimation  */
    Word16 ism_imp[]               /* o  : ISM importance flags                */
);
#endif

void ivas_set_ism_importance_interformat(
    const int32_t ism_total_brate,                              /* i/o: ISms total bitrate                      */
    const int16_t nchan_transport,                              /* i  : number of transported channels          */
+7 −0
Original line number Diff line number Diff line
@@ -93,10 +93,17 @@ typedef struct
    int16_t ism_md_fec_cnt_enc;  /* counter of continuous frames where MD are not transmitted */
    int16_t ism_md_inc_diff_cnt; /* counter of continuous frames where MD are transmitted in inactive segments when MD significantly changes */
    float last_true_radius;      /* last true Q radius value */
#ifdef IVAS_FLOAT_FIXED
    Word16 last_true_radius_fx; /* last true Q radius value */
#endif

    int16_t ism_imp; /* ISM importance flag */
    int16_t ism_md_null_flag;
    int16_t ism_md_lowrate_flag;
#ifdef IVAS_FLOAT_FIXED
    Word32 q_azimuth_old_fx;
    Word32 q_elevation_old_fx;
#endif
    float q_azimuth_old;
    float q_elevation_old;

+57 −1
Original line number Diff line number Diff line
@@ -407,12 +407,68 @@ ivas_error ivas_enc(
        {
            n = hEncoderConfig->nchan_ism;
            hMetaData = st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData;
#ifdef IVAS_FLOAT_FIXED
            /*===============================flt-to-fix=============================================*/
            IF( NE_16( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) || NE_16( st_ivas->ism_mode, ISM_MASA_MODE_MASA_ONE_OBJ ) )
            {
                FOR( int ch = 0; ch < st_ivas->hEncoderConfig->nchan_ism; ch++ )
                {
                    IF( EQ_16( st_ivas->ism_mode, ISM_MODE_DISC ) || EQ_16( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) || EQ_16( st_ivas->ism_mode, ISM_SBA_MODE_DISC ) )
                    {
                        IF( EQ_16( st_ivas->hIsmMetaData[ch]->ism_metadata_flag, 1 ) )
                        {
                            /*IF( NE_16( st_ivas->ism_mode, ISM_SBA_MODE_DISC ) )
                            {
                                hSCE[ch]->hCoreCoder[0]->lp_noise_fx = float_to_fix16( hSCE[ch]->hCoreCoder[0]->lp_noise, Q8 );
                            }*/
                            IF( st_ivas->hIsmMetaData[ch]->ism_metadata_flag == 0 )
                            {
                                st_ivas->hIsmMetaData[ch]->azimuth_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->azimuth, Q22 );
                                st_ivas->hIsmMetaData[ch]->last_true_azimuth_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->last_true_azimuth, Q22 );
                                st_ivas->hIsmMetaData[ch]->elevation_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->elevation, Q22 );
                                st_ivas->hIsmMetaData[ch]->last_true_elevation_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->last_true_elevation, Q22 );
                                st_ivas->hIsmMetaData[ch]->radius_fx = float_to_fix16( st_ivas->hIsmMetaData[ch]->radius, Q9 );
                                st_ivas->hIsmMetaData[ch]->last_true_radius_fx = float_to_fix16( st_ivas->hIsmMetaData[ch]->last_true_radius, Q9 );
                            }
                        }
                    }
                }
            }
            IF( st_ivas->hIsmMetaData != NULL )
            {
                FOR( int ch = 0; ch < st_ivas->hEncoderConfig->nchan_ism; ch++ )
                {
                    st_ivas->hIsmMetaData[ch]->azimuth_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->azimuth, Q22 );
                    st_ivas->hIsmMetaData[ch]->elevation_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->elevation, Q22 );
                    st_ivas->hIsmMetaData[ch]->yaw_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->yaw, Q22 );
                    st_ivas->hIsmMetaData[ch]->pitch_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->pitch, Q22 );
                    st_ivas->hIsmMetaData[ch]->radius_fx = float_to_fix16( st_ivas->hIsmMetaData[ch]->radius, Q9 );
                }
            }
            /*===============================flt-to-fix=============================================*/

            if ( ( error = ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, n, st_ivas->hEncoderConfig->nchan_ism, st_ivas->hIsmMetaData, NULL, hMetaData, &nb_bits_metadata[1], 0, st_ivas->ism_mode, NULL, st_ivas->hEncoderConfig->ism_extended_metadata_flag, -1, 0, NULL, st_ivas->hCPE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK )
            IF( ( error = ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, n, st_ivas->hEncoderConfig->nchan_ism, st_ivas->hIsmMetaData, NULL, hMetaData, &nb_bits_metadata[1], 0, st_ivas->ism_mode, NULL, st_ivas->hEncoderConfig->ism_extended_metadata_flag, L_negate( ONE_IN_Q8 ), 0, NULL, st_ivas->hCPE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK )
            {
                return error;
            }

            /*===============================flt-2-fix======================================*/
            IF( st_ivas->hIsmMetaData != NULL )
            {
                FOR( int ch = 0; ch < st_ivas->hEncoderConfig->nchan_ism; ch++ )
                {
                    st_ivas->hIsmMetaData[ch]->last_true_azimuth = fix_to_float( st_ivas->hIsmMetaData[ch]->last_true_azimuth_fx, Q22 );
                    st_ivas->hIsmMetaData[ch]->last_true_elevation = fix_to_float( st_ivas->hIsmMetaData[ch]->last_true_elevation_fx, Q22 );
                    st_ivas->hIsmMetaData[ch]->last_true_radius = fix16_to_float( st_ivas->hIsmMetaData[ch]->last_true_radius_fx, Q9 );
                }
            }
            /*===============================fix-2-flt======================================*/
#else
            if ( ( error = ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, n, st_ivas->hEncoderConfig->nchan_ism, st_ivas->hIsmMetaData, NULL, hMetaData, &nb_bits_metadata[1], 0, st_ivas->ism_mode, NULL, st_ivas->hEncoderConfig->ism_extended_metadata_flag, -1, 0, NULL, st_ivas->hCPE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK )
            {
                return error;
            }
#endif
            /* SBA metadata encoding and SBA metadata bitstream writing */
            if ( ( error = ivas_spar_enc( st_ivas, &data_f[n], input_frame, nb_bits_metadata, hMetaData ) ) != IVAS_ERR_OK )
            {
+134 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@
#include "wmc_auto.h"
#ifdef IVAS_FLOAT_FIXED
#include "ivas_prot_fx.h"
#include "prot_fx1.h"
#include "prot_fx2.h"
#endif

@@ -259,15 +260,86 @@ ivas_error ivas_ism_enc(

    if ( dtx_flag )
    {
#ifdef IVAS_FLOAT_FIXED
        /*================flt-to-fix===================================*/
        IF( sid_flag )
        {
            IF( GT_16( st_ivas->nchan_transport, 1 ) )
            {
                /* write sce id */
                /* quantize and write coherence */
                floatToFixed_arr16( st_ivas->hISMDTX->coh, st_ivas->hISMDTX->coh_fx, Q15, st_ivas->nchan_transport );
            }
        }
        /*================flt-to-fix===================================*/
#endif
        ivas_ism_metadata_sid_enc( st_ivas->hISMDTX, flag_noisy_speech, nchan_ism, st_ivas->nchan_transport, st_ivas->ism_mode, st_ivas->hIsmMetaData, sid_flag, md_diff_flag, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata );
    }
    else if ( st_ivas->ism_mode == ISM_MODE_PARAM )
    {
#ifdef IVAS_FLOAT_FIXED
        /*===============================flt-to-fix=============================================*/
        IF( NE_16( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) || NE_16( st_ivas->ism_mode, ISM_MASA_MODE_MASA_ONE_OBJ ) )
        {
            FOR( int ch = 0; ch < st_ivas->hEncoderConfig->nchan_ism; ch++ )
            {
                IF( EQ_16( st_ivas->ism_mode, ISM_MODE_DISC ) || EQ_16( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) || EQ_16( st_ivas->ism_mode, ISM_SBA_MODE_DISC ) )
                {
                    IF( EQ_16( st_ivas->hIsmMetaData[ch]->ism_metadata_flag, 1 ) )
                    {
                        IF( NE_16( st_ivas->ism_mode, ISM_SBA_MODE_DISC ) )
                        {
                            st_ivas->hSCE[ch]->hCoreCoder[0]->lp_noise_fx = float_to_fix16( st_ivas->hSCE[ch]->hCoreCoder[0]->lp_noise, Q8 );
                        }
                        IF( st_ivas->hIsmMetaData[ch]->ism_metadata_flag == 0 )
                        {
                            st_ivas->hIsmMetaData[ch]->azimuth_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->azimuth, Q22 );
                            st_ivas->hIsmMetaData[ch]->last_true_azimuth_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->last_true_azimuth, Q22 );
                            st_ivas->hIsmMetaData[ch]->elevation_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->elevation, Q22 );
                            st_ivas->hIsmMetaData[ch]->last_true_elevation_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->last_true_elevation, Q22 );
                            st_ivas->hIsmMetaData[ch]->radius_fx = float_to_fix16( st_ivas->hIsmMetaData[ch]->radius, Q9 );
                            st_ivas->hIsmMetaData[ch]->last_true_radius_fx = float_to_fix16( st_ivas->hIsmMetaData[ch]->last_true_radius, Q9 );
                        }
                    }
                }
            }
        }
        IF( st_ivas->hIsmMetaData != NULL )
        {
            FOR( int ch = 0; ch < st_ivas->hEncoderConfig->nchan_ism; ch++ )
            {
                st_ivas->hIsmMetaData[ch]->azimuth_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->azimuth, Q22 );
                st_ivas->hIsmMetaData[ch]->elevation_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->elevation, Q22 );
                st_ivas->hIsmMetaData[ch]->yaw_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->yaw, Q22 );
                st_ivas->hIsmMetaData[ch]->pitch_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->pitch, Q22 );
                st_ivas->hIsmMetaData[ch]->radius_fx = float_to_fix16( st_ivas->hIsmMetaData[ch]->radius, Q9 );
            }
        }
        /*===============================flt-to-fix=============================================*/
        IF( ( error = ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData,
                                             nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hParamIsm, st_ivas->hEncoderConfig->ism_extended_metadata_flag, L_negate( ONE_IN_Q8 ), 0, NULL, st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK )
        {
            return error;
        }

        /*===============================flt-2-fix======================================*/
        IF( st_ivas->hIsmMetaData != NULL )
        {
            FOR( int ch = 0; ch < st_ivas->hEncoderConfig->nchan_ism; ch++ )
            {
                st_ivas->hIsmMetaData[ch]->last_true_azimuth = fix_to_float( st_ivas->hIsmMetaData[ch]->last_true_azimuth_fx, Q22 );
                st_ivas->hIsmMetaData[ch]->last_true_elevation = fix_to_float( st_ivas->hIsmMetaData[ch]->last_true_elevation_fx, Q22 );
                st_ivas->hIsmMetaData[ch]->last_true_radius = fix16_to_float( st_ivas->hIsmMetaData[ch]->last_true_radius_fx, Q9 );
            }
        }
        /*===============================fix-2-flt======================================*/
#else
        if ( ( error = ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData,
                                              nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hParamIsm, st_ivas->hEncoderConfig->ism_extended_metadata_flag, -1, 0, NULL, st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK )
        {
            return error;
        }
#endif
    }
    else /* ISM_MODE_DISC */
    {
@@ -285,12 +357,74 @@ ivas_error ivas_ism_enc(
        }

        ism_total_brate_ref = ism_total_brate;
#ifdef IVAS_FLOAT_FIXED
        IF( st_ivas->hMasa != NULL )
        {
            st_ivas->hMasa->data.hOmasaData->lp_noise_CPE_fx = floatToFixed( st_ivas->hMasa->data.hOmasaData->lp_noise_CPE, Q8 );
        }

        /*===============================flt-to-fix=============================================*/
        IF( NE_16( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) || NE_16( st_ivas->ism_mode, ISM_MASA_MODE_MASA_ONE_OBJ ) )
        {
            FOR( int ch = 0; ch < st_ivas->hEncoderConfig->nchan_ism; ch++ )
            {
                IF( EQ_16( st_ivas->ism_mode, ISM_MODE_DISC ) || EQ_16( st_ivas->ism_mode, ISM_MASA_MODE_DISC ) || EQ_16( st_ivas->ism_mode, ISM_SBA_MODE_DISC ) )
                {
                    IF( EQ_16( st_ivas->hIsmMetaData[ch]->ism_metadata_flag, 1 ) )
                    {
                        IF( NE_16( st_ivas->ism_mode, ISM_SBA_MODE_DISC ) )
                        {
                            st_ivas->hSCE[ch]->hCoreCoder[0]->lp_noise_fx = float_to_fix16( st_ivas->hSCE[ch]->hCoreCoder[0]->lp_noise, Q8 );
                        }
                        IF( st_ivas->hIsmMetaData[ch]->ism_metadata_flag == 0 )
                        {
                            st_ivas->hIsmMetaData[ch]->azimuth_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->azimuth, Q22 );
                            st_ivas->hIsmMetaData[ch]->last_true_azimuth_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->last_true_azimuth, Q22 );
                            st_ivas->hIsmMetaData[ch]->elevation_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->elevation, Q22 );
                            st_ivas->hIsmMetaData[ch]->last_true_elevation_fx = float_to_fix( st_ivas->hIsmMetaData[ch]->last_true_elevation, Q22 );
                            st_ivas->hIsmMetaData[ch]->radius_fx = float_to_fix16( st_ivas->hIsmMetaData[ch]->radius, Q9 );
                            st_ivas->hIsmMetaData[ch]->last_true_radius_fx = float_to_fix16( st_ivas->hIsmMetaData[ch]->last_true_radius, Q9 );
                        }
                    }
                }
            }
        }
        IF( st_ivas->hIsmMetaData != NULL )
        {
            FOR( int ch = 0; ch < st_ivas->hEncoderConfig->nchan_ism; ch++ )
            {
                st_ivas->hIsmMetaData[ch]->azimuth_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->azimuth, Q22 );
                st_ivas->hIsmMetaData[ch]->elevation_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->elevation, Q22 );
                st_ivas->hIsmMetaData[ch]->yaw_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->yaw, Q22 );
                st_ivas->hIsmMetaData[ch]->pitch_fx = floatToFixed( st_ivas->hIsmMetaData[ch]->pitch, Q22 );
                st_ivas->hIsmMetaData[ch]->radius_fx = float_to_fix16( st_ivas->hIsmMetaData[ch]->radius, Q9 );
            }
        }
        /*===============================flt-to-fix=============================================*/

        IF( ( error = ivas_ism_metadata_enc( &ism_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData,
                                             nb_bits_metadata, vad_flag, st_ivas->ism_mode, NULL, st_ivas->hEncoderConfig->ism_extended_metadata_flag, st_ivas->hMasa != NULL ? st_ivas->hMasa->data.hOmasaData->lp_noise_CPE_fx : 0, flag_omasa_ener_brate, st_ivas->hMasa != NULL ? &( st_ivas->hMasa->data.hOmasaData->omasa_stereo_sw_cnt ) : NULL, st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK )
        {
            return error;
        }
        /*===============================flt-2-fix======================================*/
        IF( st_ivas->hIsmMetaData != NULL )
        {
            FOR( int ch = 0; ch < st_ivas->hEncoderConfig->nchan_ism; ch++ )
            {
                st_ivas->hIsmMetaData[ch]->last_true_azimuth = fix_to_float( st_ivas->hIsmMetaData[ch]->last_true_azimuth_fx, Q22 );
                st_ivas->hIsmMetaData[ch]->last_true_elevation = fix_to_float( st_ivas->hIsmMetaData[ch]->last_true_elevation_fx, Q22 );
                st_ivas->hIsmMetaData[ch]->last_true_radius = fix16_to_float( st_ivas->hIsmMetaData[ch]->last_true_radius_fx, Q9 );
            }
        }
        /*===============================fix-2-flt======================================*/
#else
        if ( ( error = ivas_ism_metadata_enc( &ism_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData,
                                              nb_bits_metadata, vad_flag, st_ivas->ism_mode, NULL, st_ivas->hEncoderConfig->ism_extended_metadata_flag, st_ivas->hMasa != NULL ? st_ivas->hMasa->data.hOmasaData->lp_noise_CPE : 0, flag_omasa_ener_brate, st_ivas->hMasa != NULL ? &( st_ivas->hMasa->data.hOmasaData->omasa_stereo_sw_cnt ) : NULL, st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK )
        {
            return error;
        }
#endif

        if ( st_ivas->hEncoderConfig->ivas_format == MASA_ISM_FORMAT )
        {
+934 −265

File changed.

Preview size limit exceeded, changes collapsed.

Loading