Commit fe426381 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

insert more proper BASOP code

parent 05b535ce
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -4338,9 +4338,9 @@ void ivas_param_ism_dec_dequant_md_fx(
    Decoder_Struct *st_ivas 
);

void ivas_param_ism_dec_prepare_renderer(
void ivas_param_ism_dec_prepare_renderer_fx(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder handle                                     */
    const uint16_t nCldfbSlots                                  /* i  : number of CLFBS slots in the transport channels         */
    const Word16 nCldfbSlots                                  /* i  : number of CLFBS slots in the transport channels         */
);
#endif

+7 −2
Original line number Diff line number Diff line
@@ -1346,7 +1346,6 @@ void ivas_param_ism_dec_prepare_renderer_fx(
{
    int16_t ch, nchan_transport, nchan_out, nchan_out_woLFE, i;
    int16_t slot_idx, bin_idx;
    Word32 ref_powe_fx[CLDFB_NO_CHANNELS_MAX];
    Word32 cx_diag_fx[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_DMX];
    Word16 exp_cx_diag[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_DMX];
    Word16 exp_real_tmp = 0, exp_imag_tmp = 0;
@@ -1357,11 +1356,17 @@ void ivas_param_ism_dec_prepare_renderer_fx(
    SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom;

    /* Initialization */
    hSpatParamRendCom = st_ivas->hSpatParamRendCom;
    assert( hSpatParamRendCom );
    move32();
    hParamIsmDec = st_ivas->hParamIsmDec;
    assert( hParamIsmDec );
    move32();
    nchan_transport = st_ivas->nchan_transport;
    move16();
    ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate;
    move32();

    /* Initialization */

    hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc_exp = 25;
    move16();
+26 −6
Original line number Diff line number Diff line
@@ -3819,19 +3819,39 @@ ivas_error IVAS_DEC_GetSamplesDecoder(
        /* JBM */
        if ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm )
        {
            if ( apa_set_scale_fx( hIvasDec->hTimeScaler, hIvasDec->tsm_scale ) != 0 )
            IF( apa_set_scale_fx( hIvasDec->hTimeScaler, hIvasDec->tsm_scale ) != 0 )
            {
                return IVAS_ERR_UNKNOWN;
            }

            if ( apa_exec_fx( hIvasDec->hTimeScaler, hIvasDec->apaExecBuffer_fx, hIvasDec->nSamplesFrame * nTransportChannels, (UWord16) hIvasDec->tsm_max_scaling, hIvasDec->apaExecBuffer_fx, &nTimeScalerOutSamples ) != 0 )
            // tmp apaExecBuffer
            IF( EQ_16( (Word16) hIvasDec->mode, IVAS_DEC_MODE_EVS ) )
            {
                Word16 tmp_apaExecBuffer[APA_BUF];
                FOR( Word32 i = 0; i < APA_BUF_PER_CHANNEL * nTransportChannels; ++i )
                {
                    tmp_apaExecBuffer[i] = extract_l( L_shr( hIvasDec->apaExecBuffer_fx[i], Q11 ) ); // Q0
                }
                IF( apa_exec_fx( hIvasDec->hTimeScaler, tmp_apaExecBuffer, (UWord16) imult3216( hIvasDec->nSamplesFrame, nTransportChannels ), (UWord16) hIvasDec->tsm_max_scaling, tmp_apaExecBuffer, &nTimeScalerOutSamples ) != 0 )
                {
                    return IVAS_ERR_UNKNOWN;
                }

            assert( nTimeScalerOutSamples <= APA_BUF );
            nSamplesTcsScaled = nTimeScalerOutSamples / nTransportChannels;
                FOR( Word32 i = 0; i < APA_BUF_PER_CHANNEL * nTransportChannels; ++i )
                {
                    hIvasDec->apaExecBuffer_fx[i] = L_shl( tmp_apaExecBuffer[i], Q11 ); // Q11
                }
            }
            ELSE
            {
                IF( apa_exec_ivas_fx( hIvasDec->hTimeScaler, hIvasDec->apaExecBuffer_fx, (UWord16) imult3216( hIvasDec->nSamplesFrame, nTransportChannels ), (UWord16) hIvasDec->tsm_max_scaling, hIvasDec->apaExecBuffer_fx, &nTimeScalerOutSamples ) != 0 )
                {
                    return IVAS_ERR_UNKNOWN;
                }
            }
            assert( LE_32( (Word32) nTimeScalerOutSamples, APA_BUF ) );
            nSamplesTcsScaled = idiv1616U( extract_l( nTimeScalerOutSamples ), nTransportChannels );
            hIvasDec->timeScalingDone = 1;
            move16();
        }
        else
        {