Commit ae8a49f6 authored by Mohammadreza Naghibzadeh's avatar Mohammadreza Naghibzadeh
Browse files

replace loop counter tmp with UWord64 in rc_uni_dec_read_bits()

parent e764e9dc
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();