Loading lib_rend/lib_rend.c +57 −3 Original line number Diff line number Diff line Loading @@ -2145,6 +2145,7 @@ static ivas_error setRendInputActiveMasa( static void freeDecoderDummy( DecoderDummy **ppDecDummy ) { int16_t i; DecoderDummy *pDecDummy; if ( ppDecDummy == NULL || *ppDecDummy == NULL ) Loading @@ -2155,13 +2156,60 @@ static void freeDecoderDummy( DecoderDummy **ppDecDummy ) if ( pDecDummy->hDecoderConfig != NULL ) { free( pDecDummy->hDecoderConfig ); count_free( pDecDummy->hDecoderConfig ); } if ( pDecDummy->hHeadTrackData != NULL ) { free( pDecDummy->hHeadTrackData ); count_free( pDecDummy->hHeadTrackData ); } ivas_render_config_close( &pDecDummy->hRenderConfig ); #ifdef NOKIA_MASA_EXTERNAL_RENDERER /* CLDFB handles */ for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) { if ( pDecDummy->cldfbAnaDec[i] != NULL ) { deleteCldfb( &( pDecDummy->cldfbAnaDec[i] ) ); pDecDummy->cldfbAnaDec[i] = NULL; } } for ( i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { if ( pDecDummy->cldfbSynDec[i] != NULL ) { deleteCldfb( &( pDecDummy->cldfbSynDec[i] ) ); pDecDummy->cldfbSynDec[i] = NULL; } } /* DirAC handle */ if ( pDecDummy->hDirAC != NULL ) { ivas_dirac_dec_close( pDecDummy->hDirAC ); pDecDummy->hDirAC = NULL; } /* Qmetadata handle */ ivas_qmetadata_close( &pDecDummy->hQMetaData ); /* VBAP handle */ vbap_free_data( &( pDecDummy->hVBAPdata ) ); /* HOA decoder matrix */ if ( pDecDummy->hoa_dec_mtx != NULL ) { count_free( pDecDummy->hoa_dec_mtx ); pDecDummy->hoa_dec_mtx = NULL; } /* Parametric binaural renderer handle */ ivas_dirac_dec_close_binaural_data( &pDecDummy->hDiracDecBin ); #endif count_free( pDecDummy ); pDecDummy = NULL; } static void clearInputMasa( input_masa *inputMasa ) Loading Loading @@ -4437,7 +4485,7 @@ static ivas_error renderMasaToBinaural( input_masa *masaInput, IVAS_REND_AudioBu copyBufferTo2dArray( masaInput->base.inputBuffer, tmpBuffer ); copyMasaMetadataToDiracRenderer( &masaInput->masaMetadata, masaInput->decDummy->hDirAC ); ivas_dirac_dec( masaInput->decDummy, tmpBuffer, masaInput->base.inputBuffer.config.numChannels, NULL, NULL, -1 ); ivas_dirac_dec_binaural( masaInput->decDummy, tmpBuffer, masaInput->base.inputBuffer.config.numChannels ); accumulate2dArrayToBuffer( tmpBuffer, &outAudio ); Loading Loading @@ -4630,6 +4678,12 @@ void IVAS_REND_Close( IVAS_REND_HANDLE *phIvasRend ) { clearInputSba( &hIvasRend->inputsSba[i] ); } #ifdef NOKIA_MASA_EXTERNAL_RENDERER for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { clearInputMasa( &hIvasRend->inputsMasa[i] ); } #endif ivas_limiter_close( &hIvasRend->hLimiter ); Loading Loading
lib_rend/lib_rend.c +57 −3 Original line number Diff line number Diff line Loading @@ -2145,6 +2145,7 @@ static ivas_error setRendInputActiveMasa( static void freeDecoderDummy( DecoderDummy **ppDecDummy ) { int16_t i; DecoderDummy *pDecDummy; if ( ppDecDummy == NULL || *ppDecDummy == NULL ) Loading @@ -2155,13 +2156,60 @@ static void freeDecoderDummy( DecoderDummy **ppDecDummy ) if ( pDecDummy->hDecoderConfig != NULL ) { free( pDecDummy->hDecoderConfig ); count_free( pDecDummy->hDecoderConfig ); } if ( pDecDummy->hHeadTrackData != NULL ) { free( pDecDummy->hHeadTrackData ); count_free( pDecDummy->hHeadTrackData ); } ivas_render_config_close( &pDecDummy->hRenderConfig ); #ifdef NOKIA_MASA_EXTERNAL_RENDERER /* CLDFB handles */ for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) { if ( pDecDummy->cldfbAnaDec[i] != NULL ) { deleteCldfb( &( pDecDummy->cldfbAnaDec[i] ) ); pDecDummy->cldfbAnaDec[i] = NULL; } } for ( i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { if ( pDecDummy->cldfbSynDec[i] != NULL ) { deleteCldfb( &( pDecDummy->cldfbSynDec[i] ) ); pDecDummy->cldfbSynDec[i] = NULL; } } /* DirAC handle */ if ( pDecDummy->hDirAC != NULL ) { ivas_dirac_dec_close( pDecDummy->hDirAC ); pDecDummy->hDirAC = NULL; } /* Qmetadata handle */ ivas_qmetadata_close( &pDecDummy->hQMetaData ); /* VBAP handle */ vbap_free_data( &( pDecDummy->hVBAPdata ) ); /* HOA decoder matrix */ if ( pDecDummy->hoa_dec_mtx != NULL ) { count_free( pDecDummy->hoa_dec_mtx ); pDecDummy->hoa_dec_mtx = NULL; } /* Parametric binaural renderer handle */ ivas_dirac_dec_close_binaural_data( &pDecDummy->hDiracDecBin ); #endif count_free( pDecDummy ); pDecDummy = NULL; } static void clearInputMasa( input_masa *inputMasa ) Loading Loading @@ -4437,7 +4485,7 @@ static ivas_error renderMasaToBinaural( input_masa *masaInput, IVAS_REND_AudioBu copyBufferTo2dArray( masaInput->base.inputBuffer, tmpBuffer ); copyMasaMetadataToDiracRenderer( &masaInput->masaMetadata, masaInput->decDummy->hDirAC ); ivas_dirac_dec( masaInput->decDummy, tmpBuffer, masaInput->base.inputBuffer.config.numChannels, NULL, NULL, -1 ); ivas_dirac_dec_binaural( masaInput->decDummy, tmpBuffer, masaInput->base.inputBuffer.config.numChannels ); accumulate2dArrayToBuffer( tmpBuffer, &outAudio ); Loading Loading @@ -4630,6 +4678,12 @@ void IVAS_REND_Close( IVAS_REND_HANDLE *phIvasRend ) { clearInputSba( &hIvasRend->inputsSba[i] ); } #ifdef NOKIA_MASA_EXTERNAL_RENDERER for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { clearInputMasa( &hIvasRend->inputsMasa[i] ); } #endif ivas_limiter_close( &hIvasRend->hLimiter ); Loading