Commit 06abef45 authored by Jan Kiene's avatar Jan Kiene
Browse files

accept SBA_CREND_ROT_OPT

parent d960ffa1
Loading
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -179,7 +179,6 @@
#define NONBE_FIX_539_MASA_384K_CHIRP                   /* Nokia: issue 539, puts the normalization of the energy ratios at the correct place, affect MASA 384k only */

/* Fixes for bugs found during split rendering contribution development */
#define SBA_CREND_ROT_OPT                               /* Dlb: Optimisation for rotateFrameSba() used for SHD rotations in external renderer */
#define TD_TDREND_FIX_NULLPTR_ACCESS                    /* FhG: avoid nullptr access in ivas_rend_TDObjRendOpen */
#define TD_REND_FIX_DIV_BY_ZERO                         /* FhG: avoid division by zero in sincResample fn */
#define RENAME_GWLPR                                    /* FhG: Rename clashing symbol */
+0 −15
Original line number Diff line number Diff line
@@ -5502,19 +5502,13 @@ static ivas_error rotateFrameSba(
    int16_t m1, m2;
    int16_t shd_rot_max_order;
    int16_t subframe_idx, subframe_len;
#ifdef SBA_CREND_ROT_OPT
    float *writePtr;
#else
    float *readPtr, *writePtr;
#endif
    rotation_matrix Rmat;
    float tmpRot[2 * HEADROT_ORDER + 1];
    rotation_gains gains;
    ivas_error error;
#ifdef SBA_CREND_ROT_OPT
    int16_t idx;
    float val, cf, oneminuscf;
#endif

    push_wmops( "rotateFrameSba" );

@@ -5555,11 +5549,9 @@ static ivas_error rotateFrameSba(

        for ( i = 0; i < subframe_len; i++ )
        {
#ifdef SBA_CREND_ROT_OPT
            idx = subframe_idx * subframe_len + i;
            cf = headRotData->crossfade[i];
            oneminuscf = 1 - cf;
#endif
            /*    As the rotation matrix becomes block diagonal in a SH basis, we can*/
            /*      apply each angular-momentum block individually to save complexity. */

@@ -5575,16 +5567,9 @@ static ivas_error rotateFrameSba(

                    for ( m = m1; m < m2; m++ )
                    {
#ifdef SBA_CREND_ROT_OPT
                        val = inAudio.data[m * inAudio.config.numSamplesPerChannel + idx];
                        /* crossfade with previous rotation gains */
                        tmpRot[n - m1] += ( cf * gains[n][m] * val + oneminuscf * gains_prev[n][m] * val );
#else
                        readPtr = getSmplPtr( inAudio, m, subframe_idx * subframe_len + i );
                        /* crossfade with previous rotation gains */
                        tmpRot[n - m1] += headRotData->crossfade[i] * gains[n][m] * ( *readPtr ) +
                                          ( 1 - headRotData->crossfade[i] ) * gains_prev[n][m] * ( *readPtr );
#endif
                    }
                }
                /* write back the result */