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

Merge branch '969-usan-errors-in-igf_scf_dec-for-mc-5-1-decoding-at-80kbps' into 'main'

Resolve "USAN errors in igf_scf_dec for MC 5.1 decoding at 80kbps"

See merge request !1344
parents 6ce78b80 e07fbefb
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@
#define FIX_INV_DIFFUSE_WEIGHT                          /* Orange : Fix error in energy compensation in late binaural reverb*/
#define FIX_20_MS_FRAME_LEN_TABLES_CONVERTER            /* Orange : generate_tables_converter tools can generate rom for 5 and 20 ms frame length */
#define FIX_955_FASTCONV_REND_IN_ISM                    /* VA: put FastConv rendering call under DEBUGGING */
#define FIX_969_USAN_IGF_ARITH                          /* FhG: issue 969: fix USAN error in igf_sce_dec; same issue as #962 */
#define FIX_959_MASA_LINEAR_REND                        /* VA: issue 959: remove unused calling of ivas_sba_linear_renderer() in MASA rendering */

/* #################### End BE switches ################################## */

lib_dec/igf_scf_dec.c

100644 → 100755
+10 −0
Original line number Diff line number Diff line
@@ -211,7 +211,12 @@ static void decode_sfe_vector(
       |    c b
       |      e  --> t
    */
#ifdef FIX_969_USAN_IGF_ARITH
    int16_t pred;
    uint16_t pred_tmp;
#else
    uint16_t pred;
#endif
    int16_t f, ctx, ctx_f, ctx_t;

    for ( f = 0; f < length; f++ )
@@ -221,7 +226,12 @@ static void decode_sfe_vector(
            if ( f == 0 )
            {
                /* decode one of the IGF_SYMBOLS_IN_TABLE == 27 alphabet symbols using the new raw AC function */
#ifdef FIX_969_USAN_IGF_ARITH
                ari_decode_14bits_s27_ext( st, &pred_tmp, &hPrivateData->acState, hPrivateData->cf_se00 );
                pred = (int16_t) pred_tmp;
#else
                ari_decode_14bits_s27_ext( st, &pred, &hPrivateData->acState, hPrivateData->cf_se00 );
#endif
                x[f] = pred << 2;
                x[f] += arith_decode_bits( &hPrivateData->acState, st, 2 ); /* LSBs as 2 bit raw */
            }