Commit 8c34ec94 authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

Merge branch 'ivas_split_rendering_basop_main' of...

Merge branch 'ivas_split_rendering_basop_main' of ssh://forge.3gpp.org:29419/sa4/audio/ivas-basop into ivas_split_rendering_basop_main_fix_lc3plus_instrumentation
parents 5d864fbb afde1c1e
Loading
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -378,14 +378,14 @@ stages:
# templates to define stages and platforms
.test-job-linux:
  tags:
    - ivas-basop-linux
    - ivas-linux

.build-job-linux:
  stage: build
  timeout: "2 minutes"
  needs: []
  tags:
    - ivas-basop-linux
    - ivas-linux

.build-job-windows:
  stage: build
@@ -735,7 +735,7 @@ uninterruptible:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      when: always
  tags:
    - ivas-basop-linux
    - ivas-linux

# ---------------------------------------------------------------
# Validation jobs
+4 −3
Original line number Diff line number Diff line
@@ -1956,7 +1956,7 @@ void ivas_binRenderer_fx(
        {
            IVAS_QUATERNION Quaternions_abs, Quaternions_ref, Quaternions_ref2;
            Word32 Rmat_local[3][3];
            Word16 q_fact_orig;
            Word16 q_fact_orig, extra_shift = 0;

            IF( hCombinedOrientationData && hBinRenderer->rotInCldfb )
            {
@@ -1972,6 +1972,7 @@ void ivas_binRenderer_fx(
                    Quaternions_ref2.x_fx = 0;
                    Quaternions_ref2.y_fx = 0;
                    Quaternions_ref2.z_fx = 0;
                    extra_shift = 1;
                }
                ELSE
                {
@@ -2028,9 +2029,9 @@ void ivas_binRenderer_fx(
                        {
                            FOR( k = 0; k < CLDFB_NO_CHANNELS_MAX; k++ )
                            {
                                Cldfb_RealBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_RealBuffer_Binaural_64fx[i][j][k], 29 ) ); //(*Q_in + 29) - 29
                                Cldfb_RealBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_RealBuffer_Binaural_64fx[i][j][k], 29 - extra_shift ) ); //(*Q_in + 29) - 29
                                move32();
                                Cldfb_ImagBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_ImagBuffer_Binaural_64fx[i][j][k], 29 ) ); //(*Q_in + 29) - 29
                                Cldfb_ImagBuffer_Binaural_fx[pos_idx][i][j][k] = W_extract_l( W_shr( Cldfb_ImagBuffer_Binaural_64fx[i][j][k], 29 - extra_shift ) ); //(*Q_in + 29) - 29
                                move32();
                            }
                        }
+22 −9
Original line number Diff line number Diff line
@@ -474,28 +474,40 @@ ivas_error ISAR_PRE_REND_MultiBinToSplitBinaural(
            num_slots = shr( tmp, sub( 15, tmp_e ) ); // Q0
                                                      // num_slots = (Word16) CLDFB_NO_COL_MAX * ivas_fs  / 20;
            /* CLDFB synthesis of main pose */
            FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ )
            {
                Word32 *Cldfb_In_BinReal_p_fx[CLDFB_NO_COL_MAX];
                Word32 *Cldfb_In_BinImag_p_fx[CLDFB_NO_COL_MAX];
                q1 = 31;
                q2 = 31;
                move16();
                move16();
                FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ )
                {
                    FOR( j = 0; j < CLDFB_NO_COL_MAX; j++ )
                    {
                        q1 = s_min( getScaleFactor32( Cldfb_In_BinReal_fx[ch][j], CLDFB_NO_CHANNELS_MAX ), q1 );
                        q2 = s_min( getScaleFactor32( Cldfb_In_BinImag_fx[ch][j], CLDFB_NO_CHANNELS_MAX ), q2 );
                    }
                }

                q_final = s_min( q1, q2 );
                q_final = s_min( add( Q_buff_re, q_final ), add( Q_buff_im, q_final ) );
                q_final = sub( q_final, 3 ); // guard bits
                q_final = s_min( q_final, Q25 );

                FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ )
                {
                    FOR( j = 0; j < CLDFB_NO_COL_MAX; j++ )
                    {
                        Scale_sig32( Cldfb_In_BinReal_fx[ch][j], CLDFB_NO_CHANNELS_MAX, sub( q_final, Q_buff_re ) );
                        Scale_sig32( Cldfb_In_BinImag_fx[ch][j], CLDFB_NO_CHANNELS_MAX, sub( q_final, Q_buff_im ) );
                    }
                }
            }

            FOR( ch = 0; ch < BINAURAL_CHANNELS; ch++ )
            {
                Word32 *Cldfb_In_BinReal_p_fx[CLDFB_NO_COL_MAX];
                Word32 *Cldfb_In_BinImag_p_fx[CLDFB_NO_COL_MAX];


                FOR( slot_idx = 0; slot_idx < num_slots; slot_idx++ )
                {
@@ -514,6 +526,7 @@ ivas_error ISAR_PRE_REND_MultiBinToSplitBinaural(
                hSplitBin->hCldfbHandles->cldfbSyn[ch]->Q_cldfb_state = Q_out[ch];
                move16();
            }
            assert( Q_out[0] == Q_out[1] );

#ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS
            available_bits = ( SplitRendBitRate / FRAMES_PER_SEC ) - pBits->bits_written;