Loading lib_com/ivas_prot_fx.h +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading lib_dec/ivas_ism_param_dec_fx.c +7 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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(); Loading lib_dec/lib_dec_fx.c +26 −6 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading
lib_com/ivas_prot_fx.h +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading
lib_dec/ivas_ism_param_dec_fx.c +7 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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(); Loading
lib_dec/lib_dec_fx.c +26 −6 Original line number Diff line number Diff line Loading @@ -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 { Loading