Commit e314d889 authored by multrus's avatar multrus
Browse files

[cleanup] accept FIX_1474_USAN_TRANS_INV

parent 0653c5d9
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -163,7 +163,6 @@
#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_1486_INIT_OUTPUT_POINTERS                   /* FhG: always initialize pointers in renderer flush */
#define FIX_1474_USAN_TRANS_INV                         /* Eri: Fix USAN out-of-bounds warning. No OOB occurs, but the pointer is set to point to uninitialized memory. */
#define FIX_2268_OOB_INDEXING_IN_IFFT                   /* VA: Fix for issue 2268, to silence clang18 */
#define FIX_2271_OOB_INDEXING_IN_PIT_OL2                /* VA: Fix for issue 2271, to silence clang18 */
#define FIX_2273_OOB_INDEXING_IN_PIT_FR4                /* VA: Fix to silence clang on ptr init */
+0 −16
Original line number Diff line number Diff line
@@ -101,30 +101,18 @@ void direct_transform(
            in32_r16[L - 1 - i] = in32[i];
        }

#ifndef FIX_1474_USAN_TRANS_INV
        iseg = in32_r16 - segment_length / 4;
#endif
        oseg = out32;

        wh = win + segment_length / 4;
        wl = win + segment_length / 4 - 1;
#ifdef FIX_1474_USAN_TRANS_INV
        sh = in32_r16 + 2 * segment_length / 4;
        sl = in32_r16 + 2 * segment_length / 4 - 1;
#else
        sh = iseg + 3 * segment_length / 4;
        sl = iseg + 3 * segment_length / 4 - 1;
#endif
        for ( i = 0; i < segment_length / 4; i++ )
        {
            dctin32[i] = ( ( *wl-- * *sl-- ) - ( *wh++ * *sh++ ) );
        }

#ifdef FIX_1474_USAN_TRANS_INV
        sl = in32_r16 + segment_length / 4 - 1;
#else
        sl = iseg + segment_length / 2 - 1;
#endif

        for ( i = 0; i < segment_length / 4; i++ )
        {
@@ -133,11 +121,7 @@ void direct_transform(

        edct( dctin32, oseg, segment_length / 2, element_mode );

#ifdef FIX_1474_USAN_TRANS_INV
        iseg = in32_r16 + segment_length / 4;
#else
        iseg = iseg + segment_length / 2;
#endif
        oseg = oseg + segment_length / 2;

        for ( seg = 1; seg < NUM_TIME_SWITCHING_BLOCKS - 1; seg++ )
+0 −16
Original line number Diff line number Diff line
@@ -838,38 +838,22 @@ void inverse_transform(
            }
        }

#ifdef FIX_1474_USAN_TRANS_INV
        out_segment = out_alias;
#else
        out_segment = out_alias - segment_length / 4;
#endif
        in_segment = in_mdct_modif;

        iedct_short( in_segment, alias, segment_length, element_mode );

        for ( ta = segment_length / 4; ta < segment_length / 2; ta++ )
        {
#ifdef FIX_1474_USAN_TRANS_INV
            *out_segment++ = alias[ta];
#else
            out_segment[ta] = alias[ta];
#endif
        }

        for ( ta = segment_length / 2; ta < segment_length; ta++ )
        {
#ifdef FIX_1474_USAN_TRANS_INV
            *out_segment++ = alias[ta] * win[ta];
#else
            out_segment[ta] = alias[ta] * win[ta];
#endif
        }

#ifdef FIX_1474_USAN_TRANS_INV
        out_segment = out_alias + segment_length / 4;
#else
        out_segment = out_segment + segment_length / 2;
#endif
        in_segment = in_segment + segment_length / 2;

        for ( seg = 1; seg < NUM_TIME_SWITCHING_BLOCKS - 1; seg++ )