Commit 47780d6c authored by multrus's avatar multrus
Browse files

Merge branch 'main' into basop-2402-simplification-of-arithmetic-codec-subfunctions-2

parents 0a5a795e 76c121e6
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@
#define TMP_1342_WORKAROUND_DEC_FLUSH_BROKEN_IN_SR      /* FhG: Temporary workaround for incorrect implementation of decoder flush with split rendering */
#define NONBE_1122_KEEP_EVS_MODE_UNCHANGED              /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR.  */
#define FIX_BASOP_2620_ICBWE_GSMAPPING_DEAD_CLAMP       /* FhG: remove dead (always-overwritten) gsMapping clamp in ic_bwe_enc_gsMapping_fx; float ref has no clamp */
#define FIX_BASOP_2626_RC_UNI_DEC_READ_BITS_HANG        /* FhG: BASOP #2626: rc_uni_dec_read_bits: replace loop counter tmp with UWord64; with UWord32 the division-substitute loop (tmp <= low) never terminates after the bit-error sentinel sets rc_low=0xFFFFFFFF -> decoder hang on corrupted bitstreams */

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

+4 −0
Original line number Diff line number Diff line
@@ -380,7 +380,11 @@ UWord16 rc_uni_dec_read_bits(
    UWord32 val;
    UWord32 low;   /* local copy (2 to 6 uses) */
    UWord32 range; /* local copy (4 to 7 uses) */
#ifdef FIX_BASOP_2626_RC_UNI_DEC_READ_BITS_HANG
    UWord64 tmp;
#else
    UWord32 tmp;
#endif
    low = rc_st_dec->rc_low;     /*Q0*/
    range = rc_st_dec->rc_range; /*Q0*/
    move32();
+1 −1
Original line number Diff line number Diff line
@@ -852,7 +852,7 @@ static Word32 peak_detect_fx(
                move32();
            }
            // else if ( detected_itd_flag == 0 && *max_max > 1.5f * avg_max && *prev_max > 1.5f * *prev_avg_max && abs( *index - *prev_index ) <= 2 )
            ELSE IF( detected_itd_flag == 0 && BASOP_Util_Cmp_Mant32Exp( *max_max, 0, Mpy_32_32( 1610612736 /*1.5f in Q29*/, avg_max ), add( sum_max_e, 1 ) ) > 0 && BASOP_Util_Cmp_Mant32Exp( *prev_max, 0, Mpy_32_32( 1610612736 /*1.5f in Q29*/, *prev_avg_max ), add( *prev_avg_max_e, 1 ) ) > 0 && LE_16( abs_s( sub( *index, *prev_index ) ), 2 ) )
            ELSE IF( detected_itd_flag == 0 && BASOP_Util_Cmp_Mant32Exp( *max_max, 0, Mpy_32_32( 1610612736 /*1.5f in Q30*/, avg_max ), add( sum_max_e, 1 ) ) > 0 && BASOP_Util_Cmp_Mant32Exp( *prev_max, 0, Mpy_32_32( 1610612736 /*1.5f in Q30*/, *prev_avg_max ), add( *prev_avg_max_e, 1 ) ) > 0 && LE_16( abs_s( sub( *index, *prev_index ) ), 2 ) )
            {
                wfac = 805306368; // 1.5f in Q29
                move32();