Commit fe135f56 authored by sagnowski's avatar sagnowski
Browse files

Merge branch 'ivas-float-update' into 2102_ref_split-rendering-in-voip-mode

parents dbd615d6 0904f1f2
Loading
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -106,6 +106,7 @@
    <ClCompile Include="..\lib_lc3plus\attack_detector.c" />
    <ClCompile Include="..\lib_lc3plus\plc_compute_stab_fac.c" />
    <ClCompile Include="..\lib_lc3plus\constants.c" />
    <ClCompile Include="..\lib_lc3plus\com_entropy.c" />
    <ClCompile Include="..\lib_lc3plus\cutoff_bandwidth.c" />
    <ClCompile Include="..\lib_lc3plus\dct4.c" />
    <ClCompile Include="..\lib_lc3plus\dec_entropy.c" />
@@ -116,7 +117,7 @@
    <ClCompile Include="..\lib_lc3plus\estimate_global_gain.c" />
    <ClCompile Include="..\lib_lc3plus\lc3plus_fft.c" />
    <ClCompile Include="..\lib_lc3plus\imdct.c" />
    <ClCompile Include="..\lib_lc3plus\lc3.c" />
    <ClCompile Include="..\lib_lc3plus\lc3plus.c" />
    <ClCompile Include="..\lib_lc3plus\ltpf_coder.c" />
    <ClCompile Include="..\lib_lc3plus\ltpf_decoder.c" />
    <ClCompile Include="..\lib_lc3plus\mdct.c" />
@@ -153,9 +154,9 @@
    <ClCompile Include="..\lib_lc3plus\resamp12k8.c" />
    <ClCompile Include="..\lib_lc3plus\residual_coding.c" />
    <ClCompile Include="..\lib_lc3plus\residual_decoding.c" />
    <ClCompile Include="..\lib_lc3plus\setup_dec_lc3.c" />
    <ClCompile Include="..\lib_lc3plus\setup_enc_lc3.c" />
    <ClCompile Include="..\lib_lc3plus\setup_com_lc3.c" />
    <ClCompile Include="..\lib_lc3plus\setup_dec_lc3plus.c" />
    <ClCompile Include="..\lib_lc3plus\setup_enc_lc3plus.c" />
    <ClCompile Include="..\lib_lc3plus\setup_com_lc3plus.c" />
    <ClCompile Include="..\lib_lc3plus\sns_compute_scf.c" />
    <ClCompile Include="..\lib_lc3plus\sns_interpolate_scf.c" />
    <ClCompile Include="..\lib_lc3plus\sns_quantize_scf.c" />
@@ -169,9 +170,9 @@
    <ClInclude Include="..\lib_lc3plus\defines.h" />
    <ClInclude Include="..\lib_lc3plus\file_io.h" />
    <ClInclude Include="..\lib_lc3plus\functions.h" />
    <ClInclude Include="..\lib_lc3plus\lc3.h" />
    <ClInclude Include="..\lib_lc3plus\setup_dec_lc3.h" />
    <ClInclude Include="..\lib_lc3plus\setup_enc_lc3.h" />
    <ClInclude Include="..\lib_lc3plus\lc3plus.h" />
    <ClInclude Include="..\lib_lc3plus\setup_dec_lc3plus.h" />
    <ClInclude Include="..\lib_lc3plus\setup_enc_lc3plus.h" />
    <ClInclude Include="..\lib_lc3plus\structs.h" />
    <ClInclude Include="..\lib_lc3plus\tinywavein_c.h" />
    <ClInclude Include="..\lib_lc3plus\tinywaveout_c.h" />
+1 −1
Original line number Diff line number Diff line
@@ -193,7 +193,7 @@
#define NONBE_1359_FIX_IVASREND_OMASA_BINAURAL_LOUDNESS /* Nokia: issue 1339: Apply scaling to the object-part of OMASA for binaural rendering in IVAS_rend. */
#define NONBE_1362_FIX_OMASA_TO_MASA1_RENDERING         /* Nokia: Fix OMASA to MASA1 rendering in IVAS_rend */
#define FIX_1383_HEAD_TRACK_SANITIZER                   /* Nok: issue 1383: Fix head tracking struc values reading in renderer */

#define FIX_1411_IGF_CRASH_BW_SWITCHING                 /* FhG: Fix for issue 1411: fixes crash that can happen for IGF with BW switching and DTX*/

// object-editing feature porting
#define FIX_HRTF_LOAD_API                               // solves API conflicts between HRTF and object-editing features
+35 −23
Original line number Diff line number Diff line
@@ -558,6 +558,10 @@ ivas_error ivas_cpe_enc(
     * Core codec configuration
     *----------------------------------------------------------------*/

#ifdef FIX_1411_IGF_CRASH_BW_SWITCHING
    if ( !( sts[0]->core_brate == SID_2k40 || sts[0]->core_brate == FRAME_NO_DATA ) ) /* Reconfigurations not needed with DTX*/
    {
#endif
        if ( hCPE->element_mode == IVAS_CPE_MDCT && st_ivas->hMCT == NULL )
        {
            /* set coded BW for MDCT stereo */
@@ -582,7 +586,12 @@ ivas_error ivas_cpe_enc(
        /* IGF reconfiguration */
        for ( n = 0; n < n_CoreChannels; n++ )
        {
        if ( ( hCPE->last_element_brate != hCPE->element_brate || hCPE->element_mode != hCPE->last_element_mode || ( hCPE->element_mode == IVAS_CPE_TD && sts[0]->bits_frame_nominal != last_bits_frame_nominal ) || sts[n]->last_bwidth != sts[n]->bwidth ) && ( n == 0 || hCPE->element_mode == IVAS_CPE_MDCT ) )
            if ( ( hCPE->last_element_brate != hCPE->element_brate || hCPE->element_mode != hCPE->last_element_mode || ( hCPE->element_mode == IVAS_CPE_TD && sts[0]->bits_frame_nominal != last_bits_frame_nominal ) || sts[n]->last_bwidth != sts[n]->bwidth
#ifdef FIX_1411_IGF_CRASH_BW_SWITCHING
                   || ( sts[n]->last_core_brate == SID_2k40 || sts[n]->last_core_brate == FRAME_NO_DATA )
#endif
                       ) &&
                 ( n == 0 || hCPE->element_mode == IVAS_CPE_MDCT ) )
            {
                int16_t igf;
                int16_t bw;
@@ -599,6 +608,9 @@ ivas_error ivas_cpe_enc(
                }
            }
        }
#ifdef FIX_1411_IGF_CRASH_BW_SWITCHING
    }
#endif

    /* set ACELP@12k8 / ACELP@16k flag for flexible ACELP core */
    for ( n = 0; n < n_CoreChannels; n++ )
+32 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@
#include "options.h"
#include "isar_lc3plus_common.h"
#include "ivas_error.h"
#include "lc3.h"
#include "lc3plus.h"

/*-----------------------------------------------------------------------------------------*
 * Function ISAR_LC3PLUS_LC3plusErrToIvasErr()
@@ -57,6 +57,13 @@ ivas_error ISAR_LC3PLUS_LC3plusErrToIvasErr(
    return IVAS_ERR_INTERNAL;
}


/*-----------------------------------------------------------------------------------------*
 * Function IVAS_LC3PLUS_LC3plusRtpErrToIvasErr()
 *
 *
 *-----------------------------------------------------------------------------------------*/

ivas_error IVAS_LC3PLUS_LC3plusRtpErrToIvasErr(
    const LC3PLUS_RTP_ERR lc3PlusRtpError )
{
@@ -85,3 +92,27 @@ ivas_error IVAS_LC3PLUS_LC3plusRtpErrToIvasErr(

    return IVAS_ERR_UNKNOWN;
}

/*-----------------------------------------------------------------------------------------*
 * Function IVAS_LC3PLUS_UsToLC3plusFrameDuration()
 *
 *
 *-----------------------------------------------------------------------------------------*/

LC3PLUS_FrameDuration IVAS_LC3PLUS_UsToLC3plusFrameDuration(
    const int16_t lc3PlusFrameDurationUs )
{
    switch ( lc3PlusFrameDurationUs )
    {
        case 2500:
            return LC3PLUS_FRAME_DURATION_2p5MS;
        case 5000:
            return LC3PLUS_FRAME_DURATION_5MS;
        case 10000:
            return LC3PLUS_FRAME_DURATION_10MS;
        default:
            break;
    }

    return LC3PLUS_FRAME_DURATION_UNDEFINED;
}
+5 −2
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@
#include <stdint.h>
#include "options.h"
#include "ivas_error.h"
#include "lc3.h"
#include "lc3plus.h"
#include "isar_lc3plus_payload.h"

/*! common configuration parameters between encoder and decoder */
@@ -45,7 +45,7 @@ typedef struct LC3PLUS_CONFIG
{
    /*! frame duration in microseconds [10000, 5000, 2500] */
    int16_t lc3plus_frame_duration_us;
    /*! isar frame duration in microseconds [20000, 10000, 5000] */
    /*! ISAR frame duration in microseconds [20000, 10000, 5000] */
    int16_t isar_frame_duration_us;
    /*! sampling rate*/
    int32_t samplerate;
@@ -61,4 +61,7 @@ ivas_error ISAR_LC3PLUS_LC3plusErrToIvasErr( const LC3PLUS_Error lc3PlusError );
/*! utility function to convert LC3PLUS_Errors to the suitable ivas_error */
ivas_error IVAS_LC3PLUS_LC3plusRtpErrToIvasErr( const LC3PLUS_RTP_ERR lc3PlusRtpError );

/*! utility function to convert a value in microseconds to an LC3PLUS_FrameDuration */
LC3PLUS_FrameDuration IVAS_LC3PLUS_UsToLC3plusFrameDuration( const int16_t lc3PlusFrameDuration );

#endif /* ISAR_LC3PLUS_COM_H */
Loading