Commit 915a99b2 authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

Merge branch 'main' of forge.3gpp.org:ivas-codec-pc/ivas-codec into...

Merge branch 'main' of forge.3gpp.org:ivas-codec-pc/ivas-codec into 500-head-tracking-api-causes-extra-15ms-of-delay
parents 05921c06 b36db2a0
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -806,6 +806,7 @@ int main(
        if ( ( error = load_fastconv_HRTF_from_binary( hHrtfFastConv, hrtfReader ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError in loading HRTF binary file %s for FastConv \n\n", arg.hrtfCRendFileName );
            goto cleanup;
        }
        IVAS_DEC_HRTF_PARAMBIN_HANDLE hHrtfParambin = NULL;
        IVAS_DEC_GetHrtfParamBinHandle( hIvasDec, &hHrtfParambin );
@@ -813,6 +814,7 @@ int main(
        if ( ( error = load_parambin_HRTF_from_binary( hHrtfParambin, hrtfReader ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError in loading HRTF binary file %s for parametric binauralizer \n\n", arg.hrtfCRendFileName );
            goto cleanup;
        }
    }

+2 −2
Original line number Diff line number Diff line
@@ -236,7 +236,7 @@ int16_t tcx_hm_render(
    }
    ELSE
    {
        div_s( &tmp, 13915, PeakDeviation );
        tmp = div_s( 13915, PeakDeviation );
        tmp = mult_r( tmp, tmp ); /* Q15 */
    }

@@ -282,7 +282,7 @@ void tcx_hm_modify_envelope(

    for ( k = 0; k < 2 * kTcxHmParabolaHalfWidth + 1; ++k )
    {
        div_s( &inv_shape[k], 512, add( 512, round_fx( L_mult( gain, p[k] ) ) ) );
        inv_shape[k] = div_s( 512, add( 512, round_fx( L_mult( gain, p[k] ) ) ) );
    }

    h = 1;
+4 −4
Original line number Diff line number Diff line
@@ -281,7 +281,7 @@ void tcx_arith_scale_envelope(
        mean = L_add( mean, ienv[k] );
    }
    tmp = norm_s( L_frame );
    div_s( &tmp2, 8192, shl( L_frame, tmp ) );
    tmp2 = div_s( 8192, shl( L_frame, tmp ) );
    tmp = shl( tmp2, sub( tmp, 7 ) );
    mean = L_shr( Mpy_32_16( mean, tmp ), 6 ); /* Q16 */

@@ -416,7 +416,7 @@ void tcx_arith_scale_envelope(

            IF( hib > 0 ) /* Bisection search */
            {
                div_s( &adjust, sub( hib_bits, target_bits ), sub( hib_bits, lob_bits ) );
                adjust = div_s( sub( hib_bits, target_bits ), sub( hib_bits, lob_bits ) );
                scale = add( mult_r( sub( lob, hib ), adjust ), hib );
            }
            ELSE
@@ -439,7 +439,7 @@ void tcx_arith_scale_envelope(

            IF( lob > 0 ) /* Bisection search */
            {
                div_s( &adjust, sub( hib_bits, target_bits ), sub( hib_bits, lob_bits ) );
                adjust = div_s( sub( hib_bits, target_bits ), sub( hib_bits, lob_bits ) );
                scale = add( mult_r( sub( lob, hib ), adjust ), hib );
            }
            ELSE
@@ -458,7 +458,7 @@ void tcx_arith_scale_envelope(
                }
                ELSE
                {
                    div_s( &adjust, mult_r( 31130 /*0.95f Q15*/, target_bits ), bits );
                    adjust = div_s( mult_r( 31130 /*0.95f Q15*/, target_bits ), bits );
                }
                scale = mult_r( scale, adjust );
            }
+18 −72
Original line number Diff line number Diff line
@@ -163,8 +163,6 @@ HISTORY:
#ifdef BASOP_NOGLOB
#include <assert.h>
#endif /* BASOP_NOGLOB */
#include "ivas_error.h"
#include "ivas_error_utils.h"

#define WMC_TOOL_SKIP

@@ -410,9 +408,6 @@ Word16 sub( Word16 var1, Word16 var2 )
    L_diff = (Word32) var1 - var2;
    var_out = saturate( L_diff );

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    return ( var_out );
}

@@ -727,9 +722,7 @@ Word16 mult( Word16 var1, Word16 var2 )
    return ( var_out );
}

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_mult                                                  |
@@ -790,9 +783,6 @@ Word32 L_mult_o( Word16 var1, Word16 var2, Flag *Overflow )

    BASOP_CHECK();

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    return ( L_var_out );
}

@@ -1000,15 +990,10 @@ Word16 round_fx( Word32 L_var1 )

    BASOP_CHECK();

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    return ( var_out );
}

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_mac                                                   |
@@ -1070,15 +1055,10 @@ Word32 L_mac( Word32 L_var3, Word16 var1, Word16 var2 )

    BASOP_CHECK();

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    return ( L_var_out );
}

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_msu                                                   |
@@ -1140,15 +1120,10 @@ Word32 L_msu( Word32 L_var3, Word16 var1, Word16 var2 )

    BASOP_CHECK();

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    return ( L_var_out );
}

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_macNs                                                 |
@@ -1421,9 +1396,6 @@ Word32 L_sub_o( Word32 L_var1, Word32 L_var2, Flag *Overflow )

    BASOP_CHECK();

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    return ( L_var_out );
}

@@ -1781,14 +1753,8 @@ Word32 L_negate( Word32 L_var1 )

    L_var_out = ( L_var1 == MIN_32 ) ? MAX_32 : -L_var1;

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    BASOP_CHECK();

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    return ( L_var_out );
}

@@ -1868,9 +1834,7 @@ Word16 mult_r( Word16 var1, Word16 var2 )
    return ( var_out );
}

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_shl                                                   |
@@ -2109,9 +2073,7 @@ Word32 L_shr( Word32 L_var1, Word16 var2 )
    return ( L_var_out );
}

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : shr_r                                                   |
@@ -2176,9 +2138,6 @@ Word16 shr_r( Word16 var1, Word16 var2 )

    BASOP_CHECK();

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    return ( var_out );
}

@@ -2315,15 +2274,10 @@ Word16 msu_r( Word32 L_var3, Word16 var1, Word16 var2 )

    BASOP_CHECK();

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    return ( var_out );
}

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_deposit_h                                             |
@@ -2697,7 +2651,7 @@ Word16 norm_s( Word16 var1 )
 |             It's a Q15 value (point between b15 and b14).                 |
 |___________________________________________________________________________|
*/
ivas_error div_s( Word16 *result, Word16 var1, Word16 var2 )
Word16 div_s( Word16 var1, Word16 var2 )
{
    Word16 var_out = 0;
    Word16 iteration;
@@ -2706,11 +2660,15 @@ ivas_error div_s( Word16 *result, Word16 var1, Word16 var2 )

    if ( ( var1 > var2 ) || ( var1 < 0 ) || ( var2 < 0 ) )
    {
        return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Division Error var1=%d  var2=%d in div_s", var1, var2 );
        /* printf ("Division Error var1=%d  var2=%d in ", var1, var2); printStack(); */
        char text[60];
        sprintf( text, "Division Error var1=%d  var2=%d in ", var1, var2 );
        abort(); /* exit (0); */
    }
    if ( var2 == 0 )
    {
        return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Division by 0 in div_s" );
        /* printf ("Division by 0, Fatal error in "); printStack(); */
        abort(); /* exit (0); */
    }
    if ( var1 == 0 )
    {
@@ -2743,8 +2701,8 @@ ivas_error div_s( Word16 *result, Word16 var1, Word16 var2 )

    BASOP_CHECK();

    *result = var_out;
    return IVAS_ERR_OK;

    return ( var_out );
}


@@ -2886,15 +2844,10 @@ Word32 L_mls( Word32 Lv, Word16 v )

    BASOP_CHECK();

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
    return Temp;
}

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
/*__________________________________________________________________________
|                                                                           |
|   Function Name : div_l                                                   |
@@ -2933,32 +2886,33 @@ Word32 L_mls( Word32 Lv, Word16 v )
|             It's a Q15 value (point between b15 and b14).                 |
|___________________________________________________________________________|
*/
ivas_error div_l( Word16 *result, Word32 L_num, Word16 den )
Word16 div_l( Word32 L_num, Word16 den )
{
    Word16 var_out = (Word16) 0;
    Word32 L_den;
    Word16 iteration;
    ivas_error error;

    error = IVAS_ERR_OK;

    if ( den == (Word16) 0 )
    {
        return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Division by 0 in div_l, Fatal error in div_l" );
        /* printf("Division by 0 in div_l, Fatal error in "); printStack(); */
        exit( -1 );
    }

    if ( ( L_num < (Word32) 0 ) || ( den < (Word16) 0 ) )
    {
        return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Division Error in div_l, Fatal error in div_l" );
        /* printf("Division Error in div_l, Fatal error in "); printStack(); */
        exit( -1 );
    }

    L_den = L_deposit_h( den );

    if ( L_num >= L_den )
    {


        BASOP_CHECK();
        *result = MAX_16;
        return error;
        return MAX_16;
    }
    else
    {
@@ -2975,13 +2929,10 @@ ivas_error div_l( Word16 *result, Word32 L_num, Word16 den )
            }
        }

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
        BASOP_CHECK();

        *result = var_out;
        return error;
        return var_out;
    }
}

@@ -3138,9 +3089,7 @@ Word32 L_mac0( Word32 L_var3, Word16 var1, Word16 var2 )
    return ( L_var_out );
}

#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
/*___________________________________________________________________________
 |
 |   Function Name : L_msu0
@@ -3200,8 +3149,5 @@ Word32 L_msu0( Word32 L_var3, Word16 var1, Word16 var2 )

    return ( L_var_out );
}
#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */

#undef WMC_TOOL_SKIP
+14 −18
Original line number Diff line number Diff line
@@ -79,10 +79,6 @@
#define _BASIC_OP_H

#include "typedef.h"
#include "ivas_error.h"
#ifndef BASOP_NOGLOB

#endif /* ! BASOP_NOGLOB */
#define BASOP_OVERFLOW2

/*___________________________________________________________________________
@@ -218,13 +214,13 @@ Word32 L_shr_r( Word32 L_var1, Word16 var2 ); /*
Word32 L_abs( Word32 L_var1 );            /* Long abs,              1  */
Word32 L_sat( Word32 L_var1 );            /* Long saturation,       4  */
Word16 norm_s( Word16 var1 );             /* Short norm,            1  */
ivas_error div_s( Word16 *result, Word16 var1, Word16 var2 ); /* Short division,       18  */
Word16 div_s( Word16 var1, Word16 var2 ); /* Short division,       18  */
Word16 norm_l( Word32 L_var1 );           /* Long norm,             1  */
#else                                     /* BASOP_NOGLOB */
Word32 L_abs( Word32 L_var1 );                                               /* Long abs,              1  */
Word32 DEPR_L_sat_co( Word32 L_var1, Flag Overflow, Flag Carry );            /* Long saturation,       4  */
Word16 norm_s( Word16 var1 );                                                /* Short norm,            1  */
ivas_error div_s( Word16 *result, Word16 var1, Word16 var2 );                /* Short division,       18  */
Word16 div_s( Word16 var1, Word16 var2 );                                    /* Short division,       18  */
Word16 norm_l( Word32 L_var1 );                                              /* Long norm,             1  */
#endif                                    /* BASOP_NOGLOB */

@@ -234,11 +230,11 @@ Word16 norm_l( Word32 L_var1 ); /*
 */
#ifndef BASOP_NOGLOB
Word32 L_mls( Word32, Word16 );      /* Weight FFS; currently assigned 5 */
ivas_error div_l( Word16 *result, Word32, Word16 ); /* Weight FFS; currently assigned 32 */
Word16 div_l( Word32, Word16 );      /* Weight FFS; currently assigned 32 */
Word16 i_mult( Word16 a, Word16 b ); /* Weight FFS; currently assigned 3 */
#else                                /* BASOP_NOGLOB */
Word32 L_mls( Word32, Word16 );                                              /* Weight FFS; currently assigned 5 */
ivas_error div_l( Word16 *result, Word32, Word16 );                          /* Weight FFS; currently assigned 32 */
Word16 div_l( Word32, Word16 );                                              /* Weight FFS; currently assigned 32 */
Word16 DEPR_i_mult( Word16 a, Word16 b );                                    /* Weight FFS; currently assigned 3 */
#endif                               /* BASOP_NOGLOB */

Loading