Loading lib_rend/ivas_dirac_rend.c +8 −0 Original line number Diff line number Diff line Loading @@ -2238,6 +2238,14 @@ static void ivas_masa_ext_dirac_render_sf( hMasaExtRend->cldfbAnaRend[ch] ); } if ( nchan_transport == 1 ) { /* Need to set second CLDFB channel to zero as further processing assumes CNA content in it */ set_zero( Cldfb_RealBuffer[1][0], hSpatParamRendCom->num_freq_bands ); set_zero( Cldfb_ImagBuffer[1][0], hSpatParamRendCom->num_freq_bands ); } /*-----------------------------------------------------------------* * protoype signal computation *-----------------------------------------------------------------*/ Loading lib_rend/lib_rend.c +18 −13 Original line number Diff line number Diff line Loading @@ -7557,7 +7557,8 @@ static ivas_error renderActiveInputsSba( static void copyMasaMetadataToDiracRenderer( MASA_METADATA_FRAME *meta, SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom ) SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom, const int16_t maxBin ) { int16_t band, sf, bin; int16_t meta_write_index; Loading @@ -7571,7 +7572,7 @@ static void copyMasaMetadataToDiracRenderer( for ( band = 0; band < MASA_MAXIMUM_CODING_SUBBANDS; band++ ) { for ( bin = MASA_band_grouping_24[band]; bin < MASA_band_grouping_24[band + 1]; bin++ ) for ( bin = MASA_band_grouping_24[band]; bin < MASA_band_grouping_24[band + 1] && bin < maxBin; bin++ ) { hSpatParamRendCom->azimuth[meta_write_index][bin] = (int16_t) meta->directional_meta[0].azimuth[sf][band]; hSpatParamRendCom->elevation[meta_write_index][bin] = (int16_t) meta->directional_meta[0].elevation[sf][band]; Loading Loading @@ -7732,6 +7733,7 @@ static ivas_error renderInputMasa( { IVAS_REND_AudioBuffer inAudio; int16_t ch; int16_t maxBin; float *tmpBuffer[MAX_OUTPUT_CHANNELS]; float tmpBuffer_buff[MAX_OUTPUT_CHANNELS][L_FRAME48k]; #ifdef SPLIT_REND_WITH_HEAD_ROT Loading Loading @@ -7759,6 +7761,7 @@ static ivas_error renderInputMasa( /* Apply input gain to new audio */ v_multc( inAudio.data, masaInput->base.gain, inAudio.data, inAudio.config.numSamplesPerChannel * inAudio.config.numChannels ); maxBin = (int16_t) ( *masaInput->base.ctx.pOutSampleRate * INV_CLDFB_BANDWIDTH ); /* Todo split rend MASA ext: Need to add split renderer path to below. Options are: * - Join together with binaural renderer path Loading @@ -7784,13 +7787,13 @@ static ivas_error renderInputMasa( switch ( masaInput->hMasaExtRend->renderer_type ) { case RENDERER_DIRAC: copyMasaMetadataToDiracRenderer( &masaInput->masaMetadata, masaInput->hMasaExtRend->hSpatParamRendCom ); copyMasaMetadataToDiracRenderer( &masaInput->masaMetadata, masaInput->hMasaExtRend->hSpatParamRendCom, maxBin ); ivas_masa_ext_dirac_render( masaInput->hMasaExtRend, tmpBuffer, num_subframes ); break; case RENDERER_STEREO_PARAMETRIC: case RENDERER_BINAURAL_PARAMETRIC: case RENDERER_BINAURAL_PARAMETRIC_ROOM: copyMasaMetadataToDiracRenderer( &masaInput->masaMetadata, masaInput->hMasaExtRend->hSpatParamRendCom ); copyMasaMetadataToDiracRenderer( &masaInput->masaMetadata, masaInput->hMasaExtRend->hSpatParamRendCom, maxBin ); ivas_masa_ext_rend_parambin_render( masaInput->hMasaExtRend, *masaInput->base.ctx.pCombinedOrientationData, tmpBuffer, num_subframes ); break; case RENDERER_DISABLE: Loading Loading @@ -9161,7 +9164,17 @@ static ivas_error initMasaExtRenderer( } } /* Init CLDFB for analysis & synthesis if renderer is used */ /* Init CLDFB for analysis & synthesis if renderer is used. Otherwise, NULL. */ for ( i = 0; i < MASA_MAX_TRANSPORT_CHANNELS; i++ ) { hMasaExtRend->cldfbAnaRend[i] = NULL; } for ( i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { hMasaExtRend->cldfbSynRend[i] = NULL; } if ( hMasaExtRend->renderer_type != RENDERER_DISABLE ) { for ( i = 0; i < hMasaExtRend->nchan_input; i++ ) Loading @@ -9171,10 +9184,6 @@ static ivas_error initMasaExtRenderer( return error; } } for ( ; i < MASA_MAX_TRANSPORT_CHANNELS; i++ ) { hMasaExtRend->cldfbAnaRend[i] = NULL; } for ( i = 0; i < hMasaExtRend->nchan_output; i++ ) { Loading @@ -9183,10 +9192,6 @@ static ivas_error initMasaExtRenderer( return error; } } for ( ; i < MAX_OUTPUT_CHANNELS; i++ ) { hMasaExtRend->cldfbSynRend[i] = NULL; } } inputMasa->hMasaExtRend = hMasaExtRend; Loading Loading
lib_rend/ivas_dirac_rend.c +8 −0 Original line number Diff line number Diff line Loading @@ -2238,6 +2238,14 @@ static void ivas_masa_ext_dirac_render_sf( hMasaExtRend->cldfbAnaRend[ch] ); } if ( nchan_transport == 1 ) { /* Need to set second CLDFB channel to zero as further processing assumes CNA content in it */ set_zero( Cldfb_RealBuffer[1][0], hSpatParamRendCom->num_freq_bands ); set_zero( Cldfb_ImagBuffer[1][0], hSpatParamRendCom->num_freq_bands ); } /*-----------------------------------------------------------------* * protoype signal computation *-----------------------------------------------------------------*/ Loading
lib_rend/lib_rend.c +18 −13 Original line number Diff line number Diff line Loading @@ -7557,7 +7557,8 @@ static ivas_error renderActiveInputsSba( static void copyMasaMetadataToDiracRenderer( MASA_METADATA_FRAME *meta, SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom ) SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom, const int16_t maxBin ) { int16_t band, sf, bin; int16_t meta_write_index; Loading @@ -7571,7 +7572,7 @@ static void copyMasaMetadataToDiracRenderer( for ( band = 0; band < MASA_MAXIMUM_CODING_SUBBANDS; band++ ) { for ( bin = MASA_band_grouping_24[band]; bin < MASA_band_grouping_24[band + 1]; bin++ ) for ( bin = MASA_band_grouping_24[band]; bin < MASA_band_grouping_24[band + 1] && bin < maxBin; bin++ ) { hSpatParamRendCom->azimuth[meta_write_index][bin] = (int16_t) meta->directional_meta[0].azimuth[sf][band]; hSpatParamRendCom->elevation[meta_write_index][bin] = (int16_t) meta->directional_meta[0].elevation[sf][band]; Loading Loading @@ -7732,6 +7733,7 @@ static ivas_error renderInputMasa( { IVAS_REND_AudioBuffer inAudio; int16_t ch; int16_t maxBin; float *tmpBuffer[MAX_OUTPUT_CHANNELS]; float tmpBuffer_buff[MAX_OUTPUT_CHANNELS][L_FRAME48k]; #ifdef SPLIT_REND_WITH_HEAD_ROT Loading Loading @@ -7759,6 +7761,7 @@ static ivas_error renderInputMasa( /* Apply input gain to new audio */ v_multc( inAudio.data, masaInput->base.gain, inAudio.data, inAudio.config.numSamplesPerChannel * inAudio.config.numChannels ); maxBin = (int16_t) ( *masaInput->base.ctx.pOutSampleRate * INV_CLDFB_BANDWIDTH ); /* Todo split rend MASA ext: Need to add split renderer path to below. Options are: * - Join together with binaural renderer path Loading @@ -7784,13 +7787,13 @@ static ivas_error renderInputMasa( switch ( masaInput->hMasaExtRend->renderer_type ) { case RENDERER_DIRAC: copyMasaMetadataToDiracRenderer( &masaInput->masaMetadata, masaInput->hMasaExtRend->hSpatParamRendCom ); copyMasaMetadataToDiracRenderer( &masaInput->masaMetadata, masaInput->hMasaExtRend->hSpatParamRendCom, maxBin ); ivas_masa_ext_dirac_render( masaInput->hMasaExtRend, tmpBuffer, num_subframes ); break; case RENDERER_STEREO_PARAMETRIC: case RENDERER_BINAURAL_PARAMETRIC: case RENDERER_BINAURAL_PARAMETRIC_ROOM: copyMasaMetadataToDiracRenderer( &masaInput->masaMetadata, masaInput->hMasaExtRend->hSpatParamRendCom ); copyMasaMetadataToDiracRenderer( &masaInput->masaMetadata, masaInput->hMasaExtRend->hSpatParamRendCom, maxBin ); ivas_masa_ext_rend_parambin_render( masaInput->hMasaExtRend, *masaInput->base.ctx.pCombinedOrientationData, tmpBuffer, num_subframes ); break; case RENDERER_DISABLE: Loading Loading @@ -9161,7 +9164,17 @@ static ivas_error initMasaExtRenderer( } } /* Init CLDFB for analysis & synthesis if renderer is used */ /* Init CLDFB for analysis & synthesis if renderer is used. Otherwise, NULL. */ for ( i = 0; i < MASA_MAX_TRANSPORT_CHANNELS; i++ ) { hMasaExtRend->cldfbAnaRend[i] = NULL; } for ( i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { hMasaExtRend->cldfbSynRend[i] = NULL; } if ( hMasaExtRend->renderer_type != RENDERER_DISABLE ) { for ( i = 0; i < hMasaExtRend->nchan_input; i++ ) Loading @@ -9171,10 +9184,6 @@ static ivas_error initMasaExtRenderer( return error; } } for ( ; i < MASA_MAX_TRANSPORT_CHANNELS; i++ ) { hMasaExtRend->cldfbAnaRend[i] = NULL; } for ( i = 0; i < hMasaExtRend->nchan_output; i++ ) { Loading @@ -9183,10 +9192,6 @@ static ivas_error initMasaExtRenderer( return error; } } for ( ; i < MAX_OUTPUT_CHANNELS; i++ ) { hMasaExtRend->cldfbSynRend[i] = NULL; } } inputMasa->hMasaExtRend = hMasaExtRend; Loading