Loading apps/decoder.c +7 −4 Original line number Diff line number Diff line Loading @@ -2003,6 +2003,8 @@ static ivas_error decodeG192( #endif { for ( i = 0; i < IVAS_MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) { if ( ( error = HeadRotationFileReading( headRotReader, &Quaternions[i], &Pos[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError %s while reading head orientation from %s\n", IVAS_DEC_GetErrorMessage( error ), #ifdef EXTERNAL_ORIENTATIONS Loading @@ -2013,6 +2015,7 @@ static ivas_error decodeG192( goto cleanup; } } } if ( ( error = IVAS_DEC_FeedHeadTrackData( hIvasDec, Quaternions, Pos #ifdef SPLIT_REND_WITH_HEAD_ROT Loading lib_com/ivas_prot.h +2 −2 Original line number Diff line number Diff line Loading @@ -4960,7 +4960,7 @@ void ivas_quantise_real_values( float *quant, const int16_t dim ); #ifndef FIX_SPLIT_REND_MERGE ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, Loading @@ -4968,7 +4968,7 @@ ivas_error ivas_deindex_real_index( const float max_value, float *quant, const int16_t num_ch_dim2 ); #endif void ivas_spar_get_uniform_quant_strat( ivas_spar_md_com_cfg *pSpar_md_com_cfg, const int16_t table_idx Loading lib_dec/ivas_binRenderer_internal.c +10 −0 Original line number Diff line number Diff line Loading @@ -1368,8 +1368,13 @@ void ivas_binaural_cldfb_sf( { float Cldfb_RealBuffer[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; float Cldfb_ImagBuffer[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; #ifdef FIX_SPLIT_REND_MERGE float Cldfb_RealBuffer_Binaural[1][BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; float Cldfb_ImagBuffer_Binaural[1][BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; #else float Cldfb_RealBuffer_Binaural[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; float Cldfb_ImagBuffer_Binaural[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; #endif int16_t slot_idx, subframeIdx, index_slot, idx_in, idx_lfe, maxBand, ch; int16_t slot_size, slots_to_render, first_sf, last_sf; int16_t slot_index_start, slot_index_start_cldfb; Loading Loading @@ -1440,8 +1445,13 @@ void ivas_binaural_cldfb_sf( for ( slot_idx = 0; slot_idx < st_ivas->hTcBuffer->subframe_nbslots[subframeIdx]; slot_idx++ ) { #ifdef FIX_SPLIT_REND_MERGE RealBuffer[slot_idx] = Cldfb_RealBuffer_Binaural[0][ch][slot_idx]; ImagBuffer[slot_idx] = Cldfb_ImagBuffer_Binaural[0][ch][slot_idx]; #else RealBuffer[slot_idx] = Cldfb_RealBuffer_Binaural[ch][slot_idx]; ImagBuffer[slot_idx] = Cldfb_ImagBuffer_Binaural[ch][slot_idx]; #endif } cldfbSynthesis( RealBuffer, ImagBuffer, &( output_f[ch][slot_index_start_cldfb * maxBand] ), maxBand * st_ivas->hTcBuffer->subframe_nbslots[subframeIdx], st_ivas->cldfbSynDec[ch] ); Loading lib_dec/ivas_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -287,7 +287,7 @@ ivas_error ivas_dec( else { #endif if ( ( error = ivas_td_binaural_renderer( st_ivas, output, output_frame ) ) != IVAS_ERR_OK ) if ( ( error = ivas_td_binaural_renderer( st_ivas, p_output, output_frame ) ) != IVAS_ERR_OK ) { return error; } Loading lib_dec/ivas_dirac_dec.c +16 −3 Original line number Diff line number Diff line Loading @@ -3148,7 +3148,10 @@ void ivas_dirac_dec_render_sf( } ivas_dirac_dec_output_synthesis_get_interpolator( &hDirAC->h_output_synthesis_psd_params, hDirAC->subframe_nbslots[subframe_idx] ); #ifndef FIX_SPLIT_REND_MERGE #ifdef FIX_SPLIT_REND_MERGE index_slot = subframe_idx * hDirAC->subframe_nbslots[subframe_idx]; #endif if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { /* Perform binaural rendering */ Loading Loading @@ -3180,7 +3183,11 @@ void ivas_dirac_dec_render_sf( for ( pos_idx = 0; pos_idx < st_ivas->hBinRenderer->numPoses; pos_idx++ ) #endif { #ifdef FIX_SPLIT_REND_MERGE for ( slot_idx = 0; slot_idx < hDirAC->subframe_nbslots[subframe_idx]; slot_idx++ ) #else for ( slot_idx = 0; slot_idx < hDirAC->subframe_nbslots; slot_idx++ ) #endif { for ( ch = 0; ch < st_ivas->hDecoderConfig->nchan_out; ch++ ) { Loading Loading @@ -3210,6 +3217,7 @@ void ivas_dirac_dec_render_sf( #endif } } #endif #ifndef FIX_393_459_460_SBA_MD if ( hDirAC->hConfig->dec_param_estim == FALSE ) { Loading Loading @@ -3336,8 +3344,13 @@ void ivas_dirac_dec_render_sf( for ( i = 0; i < hDirAC->subframe_nbslots[subframe_idx]; i++ ) { #ifdef FIX_SPLIT_REND_MERGE RealBuffer[i] = Cldfb_RealBuffer_Binaural[0][ch][i]; ImagBuffer[i] = Cldfb_ImagBuffer_Binaural[0][ch][i]; #else RealBuffer[i] = Cldfb_RealBuffer_Binaural[ch][i]; ImagBuffer[i] = Cldfb_ImagBuffer_Binaural[ch][i]; #endif } cldfbSynthesis( RealBuffer, Loading Loading
apps/decoder.c +7 −4 Original line number Diff line number Diff line Loading @@ -2003,6 +2003,8 @@ static ivas_error decodeG192( #endif { for ( i = 0; i < IVAS_MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) { if ( ( error = HeadRotationFileReading( headRotReader, &Quaternions[i], &Pos[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError %s while reading head orientation from %s\n", IVAS_DEC_GetErrorMessage( error ), #ifdef EXTERNAL_ORIENTATIONS Loading @@ -2013,6 +2015,7 @@ static ivas_error decodeG192( goto cleanup; } } } if ( ( error = IVAS_DEC_FeedHeadTrackData( hIvasDec, Quaternions, Pos #ifdef SPLIT_REND_WITH_HEAD_ROT Loading
lib_com/ivas_prot.h +2 −2 Original line number Diff line number Diff line Loading @@ -4960,7 +4960,7 @@ void ivas_quantise_real_values( float *quant, const int16_t dim ); #ifndef FIX_SPLIT_REND_MERGE ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, Loading @@ -4968,7 +4968,7 @@ ivas_error ivas_deindex_real_index( const float max_value, float *quant, const int16_t num_ch_dim2 ); #endif void ivas_spar_get_uniform_quant_strat( ivas_spar_md_com_cfg *pSpar_md_com_cfg, const int16_t table_idx Loading
lib_dec/ivas_binRenderer_internal.c +10 −0 Original line number Diff line number Diff line Loading @@ -1368,8 +1368,13 @@ void ivas_binaural_cldfb_sf( { float Cldfb_RealBuffer[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; float Cldfb_ImagBuffer[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; #ifdef FIX_SPLIT_REND_MERGE float Cldfb_RealBuffer_Binaural[1][BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; float Cldfb_ImagBuffer_Binaural[1][BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; #else float Cldfb_RealBuffer_Binaural[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; float Cldfb_ImagBuffer_Binaural[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; #endif int16_t slot_idx, subframeIdx, index_slot, idx_in, idx_lfe, maxBand, ch; int16_t slot_size, slots_to_render, first_sf, last_sf; int16_t slot_index_start, slot_index_start_cldfb; Loading Loading @@ -1440,8 +1445,13 @@ void ivas_binaural_cldfb_sf( for ( slot_idx = 0; slot_idx < st_ivas->hTcBuffer->subframe_nbslots[subframeIdx]; slot_idx++ ) { #ifdef FIX_SPLIT_REND_MERGE RealBuffer[slot_idx] = Cldfb_RealBuffer_Binaural[0][ch][slot_idx]; ImagBuffer[slot_idx] = Cldfb_ImagBuffer_Binaural[0][ch][slot_idx]; #else RealBuffer[slot_idx] = Cldfb_RealBuffer_Binaural[ch][slot_idx]; ImagBuffer[slot_idx] = Cldfb_ImagBuffer_Binaural[ch][slot_idx]; #endif } cldfbSynthesis( RealBuffer, ImagBuffer, &( output_f[ch][slot_index_start_cldfb * maxBand] ), maxBand * st_ivas->hTcBuffer->subframe_nbslots[subframeIdx], st_ivas->cldfbSynDec[ch] ); Loading
lib_dec/ivas_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -287,7 +287,7 @@ ivas_error ivas_dec( else { #endif if ( ( error = ivas_td_binaural_renderer( st_ivas, output, output_frame ) ) != IVAS_ERR_OK ) if ( ( error = ivas_td_binaural_renderer( st_ivas, p_output, output_frame ) ) != IVAS_ERR_OK ) { return error; } Loading
lib_dec/ivas_dirac_dec.c +16 −3 Original line number Diff line number Diff line Loading @@ -3148,7 +3148,10 @@ void ivas_dirac_dec_render_sf( } ivas_dirac_dec_output_synthesis_get_interpolator( &hDirAC->h_output_synthesis_psd_params, hDirAC->subframe_nbslots[subframe_idx] ); #ifndef FIX_SPLIT_REND_MERGE #ifdef FIX_SPLIT_REND_MERGE index_slot = subframe_idx * hDirAC->subframe_nbslots[subframe_idx]; #endif if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { /* Perform binaural rendering */ Loading Loading @@ -3180,7 +3183,11 @@ void ivas_dirac_dec_render_sf( for ( pos_idx = 0; pos_idx < st_ivas->hBinRenderer->numPoses; pos_idx++ ) #endif { #ifdef FIX_SPLIT_REND_MERGE for ( slot_idx = 0; slot_idx < hDirAC->subframe_nbslots[subframe_idx]; slot_idx++ ) #else for ( slot_idx = 0; slot_idx < hDirAC->subframe_nbslots; slot_idx++ ) #endif { for ( ch = 0; ch < st_ivas->hDecoderConfig->nchan_out; ch++ ) { Loading Loading @@ -3210,6 +3217,7 @@ void ivas_dirac_dec_render_sf( #endif } } #endif #ifndef FIX_393_459_460_SBA_MD if ( hDirAC->hConfig->dec_param_estim == FALSE ) { Loading Loading @@ -3336,8 +3344,13 @@ void ivas_dirac_dec_render_sf( for ( i = 0; i < hDirAC->subframe_nbslots[subframe_idx]; i++ ) { #ifdef FIX_SPLIT_REND_MERGE RealBuffer[i] = Cldfb_RealBuffer_Binaural[0][ch][i]; ImagBuffer[i] = Cldfb_ImagBuffer_Binaural[0][ch][i]; #else RealBuffer[i] = Cldfb_RealBuffer_Binaural[ch][i]; ImagBuffer[i] = Cldfb_ImagBuffer_Binaural[ch][i]; #endif } cldfbSynthesis( RealBuffer, Loading