Commit d0aebf73 authored by vasilache's avatar vasilache
Browse files

fix 2433

parent 96ae0d1c
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@
#define FIX_1904_HARM_GSC_ENC                           /* VA: #1904 Harmonization of EVS and IVAS GSC code */
#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 */
#define FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC            /* Nokia: Fix to convert non-converted binary operations */

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

+65 −5
Original line number Diff line number Diff line
@@ -4662,11 +4662,20 @@ static Word16 encode_coherence_indexesDCT0_fx(
    FOR( i = 0; i < no_idx16 - 1; i++ )
    {
        k = sub( k, 16 );
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
        hMetaData->ind_list[indice_coherence + i].value = extract_l( W_extract_l( W_shr( idx, k ) ) ); /*   ( ( idx >> k ) & 65535 );   16 bits */
#else
        hMetaData->ind_list[indice_coherence + i].value = ( ( idx >> k ) & 65535 ); /* 16 bits */
        move16();
#endif
    }
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
    hMetaData->ind_list[indice_coherence + i].value = s_and( extract_l( W_extract_l( idx ) ), sub( shl( 1, k ), 1 ) ); /* ( idx & ( ( 1 << k ) - 1 ) ); */
#else
    hMetaData->ind_list[indice_coherence + i].value = ( idx & ( ( 1 << k ) - 1 ) );
    move16();
#endif


    IF( nbits1 > 0 )
    {
@@ -4687,11 +4696,19 @@ static Word16 encode_coherence_indexesDCT0_fx(
        FOR( j = i + 1; j < no_idx16 + i; j++ )
        {
            k = sub( k, 16 );
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
            hMetaData->ind_list[indice_coherence + j].value = extract_l( W_extract_l( W_shr( idx1, k ) ) ); /*   ( ( idx1 >> k ) & 65535 );   16 bits */
#else
            hMetaData->ind_list[indice_coherence + j].value = ( ( idx1 >> k ) & 65535 ); /* 16 bits */
            move16();
#endif
        }
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
        hMetaData->ind_list[indice_coherence + j].value = s_and( extract_l( W_extract_l( idx1 ) ), sub( shl( 1, k ), 1 ) ); /* ( idx1 & ( ( 1 << k ) - 1 ) ); */
#else
        hMetaData->ind_list[indice_coherence + j].value = ( idx1 & ( ( 1 << k ) - 1 ) );
        move16();
#endif
    }

    return add( nbits, nbits1 );
@@ -4967,10 +4984,17 @@ static Word16 encode_spread_coherence_1sf_fx(
        FOR( i = 0; i < no_idx16 - 1; i++ )
        {
            k = sub( k, 16 );
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
            push_next_indice( hMasaMetaData, extract_l( W_extract_l( W_shr( idx, k ) ) ), 16 ); /*  ( ( idx >> k ) & 65535 );   16 bits */
#else
            push_next_indice( hMasaMetaData, ( ( idx >> k ) & 65535 ), 16 ); /* 16 bits */
#endif
        }

#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
        push_next_indice( hMasaMetaData, s_and( extract_l( W_extract_l( idx ) ), sub( shl( 1, k ), 1 ) ), k ); /* ( idx & ( ( 1 << k ) - 1 ) ); */
#else
        push_next_indice( hMasaMetaData, ( idx & ( ( 1 << k ) - 1 ) ), k );
#endif

        IF( nbits_fr1 > 0 )
        {
@@ -4992,9 +5016,17 @@ static Word16 encode_spread_coherence_1sf_fx(
            FOR( i = 0; i < no_idx16 - 1; i++ )
            {
                k = sub( k, 16 );
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
                push_next_indice( hMasaMetaData, extract_l( W_extract_l( W_shr( idx1, k ) ) ), 16 ); /*  ( ( idx >> k ) & 65535 );   16 bits */
#else
                push_next_indice( hMasaMetaData, ( ( idx1 >> k ) & 65535 ), 16 ); /* 16 bits */
#endif
            }
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
            push_next_indice( hMasaMetaData, s_and( extract_l( W_extract_l( idx1 ) ), sub( shl( 1, k ), 1 ) ), k ); /* ( idx1 & ( ( 1 << k ) - 1 ) ); */
#else
            push_next_indice( hMasaMetaData, ( idx1 & ( ( 1 << k ) - 1 ) ), k );
#endif
        }
    }
    ELSE
@@ -5193,10 +5225,17 @@ static Word16 encode_surround_coherence_fx(
            FOR( i = 0; i < no_idx16 - 1; i++ )
            {
                k = sub( k, 16 );
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
                push_next_indice( hMetaData, extract_l( W_extract_l( W_shr( idx, k ) ) ), 16 ); /*  ( ( idx >> k ) & 65535 );   16 bits */
#else
                push_next_indice( hMetaData, ( ( idx >> k ) & 65535 ), 16 ); /* 16 bits */
#endif
            }

#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
            push_next_indice( hMetaData, s_and( extract_l( W_extract_l( idx ) ), sub( shl( 1, k ), 1 ) ), k ); /* ( idx & ( ( 1 << k ) - 1 ) ); */
#else
            push_next_indice( hMetaData, ( idx & ( ( 1 << k ) - 1 ) ), k );
#endif

            IF( nbits_fr1 > 0 )
            {
@@ -5218,10 +5257,17 @@ static Word16 encode_surround_coherence_fx(
                FOR( i = 0; i < no_idx16 - 1; i++ )
                {
                    k = sub( k, 16 );
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
                    push_next_indice( hMetaData, extract_l( W_extract_l( W_shr( idx1, k ) ) ), 16 ); /*  ( ( idx >> k ) & 65535 );   16 bits */
#else
                    push_next_indice( hMetaData, ( ( idx1 >> k ) & 65535 ), 16 ); /* 16 bits */
#endif
                }

#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
                push_next_indice( hMetaData, s_and( extract_l( W_extract_l( idx1 ) ), sub( shl( 1, k ), 1 ) ), k ); /* ( idx & ( ( 1 << k ) - 1 ) ); */
#else
                push_next_indice( hMetaData, ( idx1 & ( ( 1 << k ) - 1 ) ), k );
#endif
            }
        }
        ELSE
@@ -5422,10 +5468,17 @@ static Word16 encode_surround_coherence_hr_fx(
                    FOR( i = 0; i < no_idx16 - 1; i++ )
                    {
                        k = sub( k, 16 );
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
                        push_next_indice( hMetaData, extract_l( W_extract_l( W_shr( idx, k ) ) ), 16 ); /*  ( ( idx >> k ) & 65535 );   16 bits */
#else
                        push_next_indice( hMetaData, ( ( idx >> k ) & 65535 ), 16 ); /* 16 bits */
#endif
                    }

#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
                    push_next_indice( hMetaData, s_and( extract_l( W_extract_l( idx ) ), sub( shl( 1, k ), 1 ) ), k ); /* ( idx & ( ( 1 << k ) - 1 ) ); */
#else
                    push_next_indice( hMetaData, ( idx & ( ( 1 << k ) - 1 ) ), k );
#endif

                    IF( nbits_fr1 > 0 )
                    {
@@ -5445,10 +5498,17 @@ static Word16 encode_surround_coherence_hr_fx(
                        FOR( i = 0; i < no_idx16 - 1; i++ )
                        {
                            k = sub( k, 16 );
#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
                            push_next_indice( hMetaData, extract_l( W_extract_l( W_shr( idx1, k ) ) ), 16 ); /*  ( ( idx >> k ) & 65535 );   16 bits */
#else
                            push_next_indice( hMetaData, ( ( idx1 >> k ) & 65535 ), 16 ); /* 16 bits */
#endif
                        }

#ifdef FIX_2433_ARITH_OVERFLOW_IN_QMETA_ENC
                        push_next_indice( hMetaData, s_and( extract_l( W_extract_l( idx1 ) ), sub( shl( 1, k ), 1 ) ), k ); /* ( idx & ( ( 1 << k ) - 1 ) ); */
#else
                        push_next_indice( hMetaData, ( idx1 & ( ( 1 << k ) - 1 ) ), k );
#endif
                    }
                }
                ELSE