Commit 2b25a614 authored by Jan Kiene's avatar Jan Kiene
Browse files

correct limiter usage in OMASA

only the MASA channels need limiting, the object channels do not
parent 938b04ae
Loading
Loading
Loading
Loading
+5 −18
Original line number Diff line number Diff line
@@ -295,25 +295,11 @@ ivas_error ivas_enc(
    }
    else if ( ivas_format == MASA_ISM_FORMAT )
    {
#ifdef NONBE_FIX_1165_APPLY_LIMITER_ON_ENCODER_DMX
        int16_t num_channels;
#endif
        float *data_separated_object;
        int16_t idx_separated_object;
        int16_t flag_omasa_ener_brate;

        flag_omasa_ener_brate = 0;
#ifdef NONBE_FIX_1165_APPLY_LIMITER_ON_ENCODER_DMX
        num_channels = st_ivas->nchan_transport;
        if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC )
        {
            num_channels += hEncoderConfig->nchan_ism;
        }
        else if ( st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ )
        {
            num_channels += 1;
        }
#endif

        /* Stereo transport is used also with monoMASA, duplicate mono if monoMASA */
        if ( ( st_ivas->hEncoderConfig->nchan_inp - hEncoderConfig->nchan_ism ) == 1 )
@@ -340,12 +326,13 @@ ivas_error ivas_enc(
        {
            /* Estimate MASA parameters for the objects */
            ivas_omasa_enc( st_ivas->hOMasa, st_ivas->hMasa, st_ivas->hIsmMetaData, data_f, input_frame, st_ivas->nchan_transport, hEncoderConfig->nchan_ism, st_ivas->ism_mode, data_separated_object, &idx_separated_object );
        }

#ifdef NONBE_FIX_1165_APPLY_LIMITER_ON_ENCODER_DMX

            /* Apply limiter on downmix */
        ivas_limiter_apply( st_ivas->hLimiter, data_f, num_channels, input_frame, BER_detect_dummy );
            ivas_limiter_apply( st_ivas->hLimiter, &data_f[st_ivas->hEncoderConfig->nchan_ism], CPE_CHANNELS, input_frame, BER_detect_dummy );
#endif
        }


        /* Encode ISMs transport channels */
        n = 0;