Loading lib_com/ivas_prot.h +64 −53 Original line number Diff line number Diff line Loading @@ -5684,14 +5684,19 @@ void ivas_osba_enc( #endif ); #ifdef FIX_782_OSBA_FUNCTION_NAMES ivas_error ivas_osba_data_open( #else ivas_error ivas_masa_ism_data_open( #endif Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ ); #ifndef FIX_782_OSBA_FUNCTION_NAMES ivas_error ivas_sba_ism_separate_object_renderer_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); #endif ivas_error ivas_osba_dirac_td_binaural( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ float *output[], /* o : output synthesis signal */ Loading @@ -5711,9 +5716,15 @@ ivas_error ivas_osba_render( const int16_t output_frame /* i : output frame length per channel */ ); #ifdef FIX_782_OSBA_FUNCTION_NAMES void ivas_osba_data_close( SBA_ISM_DATA_HANDLE *hSbaIsmData /* i/o: OSBA rendering handle */ ); #else void ivas_masa_ism_data_close( MASA_ISM_DATA_HANDLE *hMasaIsmData /* i/o: MASA_ISM rendering handle */ ); #endif /*----------------------------------------------------------------------------------* Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,7 @@ #define FIX_764_HARM_CODE /* VA: issue 764: introduce new function for the same code block at four different places */ #define FIX_747_ISM_TODOS /* VA: issue 747 - address ISM ToDos */ #define FIX_ISMRENDERER_HANDLE_DEALLOC /* VA: issue 781: harmonize Deallocation of handle 'hIsmRendererData' */ #define FIX_782_OSBA_FUNCTION_NAMES /* VA: fix 782: correct OSBA function names */ /* #################### End BE switches ################################## */ Loading lib_dec/ivas_dec.c +5 −1 Original line number Diff line number Diff line Loading @@ -749,7 +749,11 @@ ivas_error ivas_dec( { for ( n = 0; n < nchan_ism; n++ ) { delay_signal( p_output[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); #ifdef FIX_782_OSBA_FUNCTION_NAMES delay_signal( p_output[n], output_frame, st_ivas->hSbaIsmData->delayBuffer[n], st_ivas->hSbaIsmData->delayBuffer_size ); #else delay_signal( output[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); #endif } } Loading lib_dec/ivas_init_dec.c +18 −6 Original line number Diff line number Diff line Loading @@ -1569,13 +1569,16 @@ ivas_error ivas_init_decoder( return error; } #ifdef FIX_782_OSBA_FUNCTION_NAMES if ( ( error = ivas_osba_data_open( st_ivas ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_masa_ism_data_open( st_ivas ) ) != IVAS_ERR_OK ) #endif { return error; } } /* set CNA/CNG flags */ ivas_sba_set_cna_cng_flag( st_ivas ); } Loading Loading @@ -1681,7 +1684,7 @@ ivas_error ivas_init_decoder( st_ivas->nchan_transport = ivas_mc_ls_setup_get_num_channels( ivas_mc_map_output_config_to_mc_ls_setup( st_ivas->transport_config ) ); st_ivas->nSCE = 0; st_ivas->nCPE = st_ivas->nchan_transport / 2; st_ivas->nCPE = st_ivas->nchan_transport / CPE_CHANNELS; st_ivas->element_mode_init = IVAS_CPE_MDCT; Loading Loading @@ -1715,7 +1718,7 @@ ivas_error ivas_init_decoder( } st_ivas->nSCE = 0; st_ivas->nCPE = MC_PARAMUPMIX_MAX_TRANSPORT_CHANS / 2; st_ivas->nCPE = MC_PARAMUPMIX_MAX_TRANSPORT_CHANS / CPE_CHANNELS; st_ivas->nchan_transport = MC_PARAMUPMIX_MAX_TRANSPORT_CHANS; if ( ( error = ivas_mc_paramupmix_dec_open( st_ivas ) ) != IVAS_ERR_OK ) Loading Loading @@ -2080,7 +2083,7 @@ ivas_error ivas_init_decoder( return error; } } #ifndef FIX_782_OSBA_FUNCTION_NAMES if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ Loading @@ -2089,6 +2092,7 @@ ivas_error ivas_init_decoder( return error; } } #endif } /*-----------------------------------------------------------------* Loading Loading @@ -2455,6 +2459,9 @@ void ivas_initialize_handles_dec( st_ivas->hHrtfParambin = NULL; st_ivas->hoa_dec_mtx = NULL; st_ivas->hMasaIsmData = NULL; #ifdef FIX_782_OSBA_FUNCTION_NAMES st_ivas->hSbaIsmData = NULL; #endif st_ivas->hHeadTrackData = NULL; st_ivas->hHrtfTD = NULL; Loading Loading @@ -2668,8 +2675,13 @@ void ivas_destroy_dec( st_ivas->hMonoDmxRenderer = NULL; } #ifdef FIX_782_OSBA_FUNCTION_NAMES /* OSBA structure */ ivas_osba_data_close( &st_ivas->hSbaIsmData ); #else /* MASA ISM structure */ ivas_masa_ism_data_close( &st_ivas->hMasaIsmData ); #endif /* OMASA structure */ ivas_omasa_data_close( &st_ivas->hMasaIsmData ); Loading lib_dec/ivas_osba_dec.c +91 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,81 @@ #include "wmc_auto.h" #ifdef FIX_782_OSBA_FUNCTION_NAMES /*-------------------------------------------------------------------* * ivas_osba_data_open() * * Allocate and initialize SBA_ISM rendering handle *-------------------------------------------------------------------*/ ivas_error ivas_osba_data_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ ) { SBA_ISM_DATA_HANDLE hSbaIsmData; int16_t i; if ( ( hSbaIsmData = (SBA_ISM_DATA_HANDLE) malloc( sizeof( SBA_ISM_DATA ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for OSBA data\n" ) ); } hSbaIsmData->delayBuffer_nchan = st_ivas->nchan_ism; hSbaIsmData->delayBuffer_size = (int16_t) ( ( st_ivas->hDecoderConfig->output_Fs / 50 ) / MAX_PARAM_SPATIAL_SUBFRAMES ); if ( ( hSbaIsmData->delayBuffer = (float **) malloc( hSbaIsmData->delayBuffer_nchan * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for OSBA delay buffer \n" ) ); } for ( i = 0; i < hSbaIsmData->delayBuffer_nchan; i++ ) { if ( ( hSbaIsmData->delayBuffer[i] = (float *) malloc( hSbaIsmData->delayBuffer_size * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for OSBA delay buffer \n" ) ); } set_zero( hSbaIsmData->delayBuffer[i], hSbaIsmData->delayBuffer_size ); } st_ivas->hSbaIsmData = hSbaIsmData; return IVAS_ERR_OK; } /*-------------------------------------------------------------------* * ivas_osba_data_close() * * Deallocate SBA_ISM rendering handle *-------------------------------------------------------------------*/ void ivas_osba_data_close( SBA_ISM_DATA_HANDLE *hSbaIsmData /* i/o: OSBA rendering handle */ ) { int16_t i; if ( hSbaIsmData == NULL || *hSbaIsmData == NULL ) { return; } if ( ( *hSbaIsmData )->delayBuffer != NULL ) { for ( i = 0; i < ( *hSbaIsmData )->delayBuffer_nchan; i++ ) { free( ( *hSbaIsmData )->delayBuffer[i] ); } free( ( *hSbaIsmData )->delayBuffer ); ( *hSbaIsmData )->delayBuffer = NULL; } free( *hSbaIsmData ); *hSbaIsmData = NULL; return; } #else /*-------------------------------------------------------------------* * ivas_masa_ism_data_open() * Loading Loading @@ -131,12 +206,13 @@ ivas_error ivas_sba_ism_separate_object_renderer_open( return IVAS_ERR_OK; } #endif /*--------------------------------------------------------------------------* * ivas_osba_dirac_td_binaural() * * Binaural rendering in OMASA format * Binaural rendering in OSBA format *--------------------------------------------------------------------------*/ ivas_error ivas_osba_dirac_td_binaural( Loading @@ -147,7 +223,6 @@ ivas_error ivas_osba_dirac_td_binaural( { int16_t n; float data_separated_objects[MAX_NUM_OBJECTS][L_FRAME48k]; ivas_error error; float *p_sepobj[MAX_NUM_OBJECTS]; int16_t channel_offset; Loading @@ -170,7 +245,11 @@ ivas_error ivas_osba_dirac_td_binaural( { for ( n = 0; n < st_ivas->nchan_ism; n++ ) { #ifdef FIX_782_OSBA_FUNCTION_NAMES delay_signal( data_separated_objects[n], output_frame, st_ivas->hSbaIsmData->delayBuffer[n], st_ivas->hSbaIsmData->delayBuffer_size ); #else delay_signal( data_separated_objects[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); #endif } } Loading Loading @@ -264,6 +343,12 @@ ivas_error ivas_osba_dirac_td_binaural( } /*-------------------------------------------------------------------------* * ivas_osba_ism_metadata_dec() * * ISM metadata decoding in OSBA format. *-------------------------------------------------------------------------*/ ivas_error ivas_osba_ism_metadata_dec( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const int32_t ism_total_brate, /* i : ISM total bitrate */ Loading Loading @@ -327,7 +412,11 @@ ivas_error ivas_osba_render( for ( n = 0; n < nchan_ism; n++ ) { mvr2r( output_f[n], tmp_ism_out[n], output_frame ); #ifdef FIX_782_OSBA_FUNCTION_NAMES delay_signal( tmp_ism_out[n], output_frame, st_ivas->hSbaIsmData->delayBuffer[n], st_ivas->hSbaIsmData->delayBuffer_size ); #else delay_signal( tmp_ism_out[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); #endif } if ( st_ivas->renderer_type == RENDERER_OSBA_AMBI ) Loading Loading
lib_com/ivas_prot.h +64 −53 Original line number Diff line number Diff line Loading @@ -5684,14 +5684,19 @@ void ivas_osba_enc( #endif ); #ifdef FIX_782_OSBA_FUNCTION_NAMES ivas_error ivas_osba_data_open( #else ivas_error ivas_masa_ism_data_open( #endif Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ ); #ifndef FIX_782_OSBA_FUNCTION_NAMES ivas_error ivas_sba_ism_separate_object_renderer_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); #endif ivas_error ivas_osba_dirac_td_binaural( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ float *output[], /* o : output synthesis signal */ Loading @@ -5711,9 +5716,15 @@ ivas_error ivas_osba_render( const int16_t output_frame /* i : output frame length per channel */ ); #ifdef FIX_782_OSBA_FUNCTION_NAMES void ivas_osba_data_close( SBA_ISM_DATA_HANDLE *hSbaIsmData /* i/o: OSBA rendering handle */ ); #else void ivas_masa_ism_data_close( MASA_ISM_DATA_HANDLE *hMasaIsmData /* i/o: MASA_ISM rendering handle */ ); #endif /*----------------------------------------------------------------------------------* Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,7 @@ #define FIX_764_HARM_CODE /* VA: issue 764: introduce new function for the same code block at four different places */ #define FIX_747_ISM_TODOS /* VA: issue 747 - address ISM ToDos */ #define FIX_ISMRENDERER_HANDLE_DEALLOC /* VA: issue 781: harmonize Deallocation of handle 'hIsmRendererData' */ #define FIX_782_OSBA_FUNCTION_NAMES /* VA: fix 782: correct OSBA function names */ /* #################### End BE switches ################################## */ Loading
lib_dec/ivas_dec.c +5 −1 Original line number Diff line number Diff line Loading @@ -749,7 +749,11 @@ ivas_error ivas_dec( { for ( n = 0; n < nchan_ism; n++ ) { delay_signal( p_output[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); #ifdef FIX_782_OSBA_FUNCTION_NAMES delay_signal( p_output[n], output_frame, st_ivas->hSbaIsmData->delayBuffer[n], st_ivas->hSbaIsmData->delayBuffer_size ); #else delay_signal( output[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); #endif } } Loading
lib_dec/ivas_init_dec.c +18 −6 Original line number Diff line number Diff line Loading @@ -1569,13 +1569,16 @@ ivas_error ivas_init_decoder( return error; } #ifdef FIX_782_OSBA_FUNCTION_NAMES if ( ( error = ivas_osba_data_open( st_ivas ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_masa_ism_data_open( st_ivas ) ) != IVAS_ERR_OK ) #endif { return error; } } /* set CNA/CNG flags */ ivas_sba_set_cna_cng_flag( st_ivas ); } Loading Loading @@ -1681,7 +1684,7 @@ ivas_error ivas_init_decoder( st_ivas->nchan_transport = ivas_mc_ls_setup_get_num_channels( ivas_mc_map_output_config_to_mc_ls_setup( st_ivas->transport_config ) ); st_ivas->nSCE = 0; st_ivas->nCPE = st_ivas->nchan_transport / 2; st_ivas->nCPE = st_ivas->nchan_transport / CPE_CHANNELS; st_ivas->element_mode_init = IVAS_CPE_MDCT; Loading Loading @@ -1715,7 +1718,7 @@ ivas_error ivas_init_decoder( } st_ivas->nSCE = 0; st_ivas->nCPE = MC_PARAMUPMIX_MAX_TRANSPORT_CHANS / 2; st_ivas->nCPE = MC_PARAMUPMIX_MAX_TRANSPORT_CHANS / CPE_CHANNELS; st_ivas->nchan_transport = MC_PARAMUPMIX_MAX_TRANSPORT_CHANS; if ( ( error = ivas_mc_paramupmix_dec_open( st_ivas ) ) != IVAS_ERR_OK ) Loading Loading @@ -2080,7 +2083,7 @@ ivas_error ivas_init_decoder( return error; } } #ifndef FIX_782_OSBA_FUNCTION_NAMES if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ Loading @@ -2089,6 +2092,7 @@ ivas_error ivas_init_decoder( return error; } } #endif } /*-----------------------------------------------------------------* Loading Loading @@ -2455,6 +2459,9 @@ void ivas_initialize_handles_dec( st_ivas->hHrtfParambin = NULL; st_ivas->hoa_dec_mtx = NULL; st_ivas->hMasaIsmData = NULL; #ifdef FIX_782_OSBA_FUNCTION_NAMES st_ivas->hSbaIsmData = NULL; #endif st_ivas->hHeadTrackData = NULL; st_ivas->hHrtfTD = NULL; Loading Loading @@ -2668,8 +2675,13 @@ void ivas_destroy_dec( st_ivas->hMonoDmxRenderer = NULL; } #ifdef FIX_782_OSBA_FUNCTION_NAMES /* OSBA structure */ ivas_osba_data_close( &st_ivas->hSbaIsmData ); #else /* MASA ISM structure */ ivas_masa_ism_data_close( &st_ivas->hMasaIsmData ); #endif /* OMASA structure */ ivas_omasa_data_close( &st_ivas->hMasaIsmData ); Loading
lib_dec/ivas_osba_dec.c +91 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,81 @@ #include "wmc_auto.h" #ifdef FIX_782_OSBA_FUNCTION_NAMES /*-------------------------------------------------------------------* * ivas_osba_data_open() * * Allocate and initialize SBA_ISM rendering handle *-------------------------------------------------------------------*/ ivas_error ivas_osba_data_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ ) { SBA_ISM_DATA_HANDLE hSbaIsmData; int16_t i; if ( ( hSbaIsmData = (SBA_ISM_DATA_HANDLE) malloc( sizeof( SBA_ISM_DATA ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for OSBA data\n" ) ); } hSbaIsmData->delayBuffer_nchan = st_ivas->nchan_ism; hSbaIsmData->delayBuffer_size = (int16_t) ( ( st_ivas->hDecoderConfig->output_Fs / 50 ) / MAX_PARAM_SPATIAL_SUBFRAMES ); if ( ( hSbaIsmData->delayBuffer = (float **) malloc( hSbaIsmData->delayBuffer_nchan * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for OSBA delay buffer \n" ) ); } for ( i = 0; i < hSbaIsmData->delayBuffer_nchan; i++ ) { if ( ( hSbaIsmData->delayBuffer[i] = (float *) malloc( hSbaIsmData->delayBuffer_size * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for OSBA delay buffer \n" ) ); } set_zero( hSbaIsmData->delayBuffer[i], hSbaIsmData->delayBuffer_size ); } st_ivas->hSbaIsmData = hSbaIsmData; return IVAS_ERR_OK; } /*-------------------------------------------------------------------* * ivas_osba_data_close() * * Deallocate SBA_ISM rendering handle *-------------------------------------------------------------------*/ void ivas_osba_data_close( SBA_ISM_DATA_HANDLE *hSbaIsmData /* i/o: OSBA rendering handle */ ) { int16_t i; if ( hSbaIsmData == NULL || *hSbaIsmData == NULL ) { return; } if ( ( *hSbaIsmData )->delayBuffer != NULL ) { for ( i = 0; i < ( *hSbaIsmData )->delayBuffer_nchan; i++ ) { free( ( *hSbaIsmData )->delayBuffer[i] ); } free( ( *hSbaIsmData )->delayBuffer ); ( *hSbaIsmData )->delayBuffer = NULL; } free( *hSbaIsmData ); *hSbaIsmData = NULL; return; } #else /*-------------------------------------------------------------------* * ivas_masa_ism_data_open() * Loading Loading @@ -131,12 +206,13 @@ ivas_error ivas_sba_ism_separate_object_renderer_open( return IVAS_ERR_OK; } #endif /*--------------------------------------------------------------------------* * ivas_osba_dirac_td_binaural() * * Binaural rendering in OMASA format * Binaural rendering in OSBA format *--------------------------------------------------------------------------*/ ivas_error ivas_osba_dirac_td_binaural( Loading @@ -147,7 +223,6 @@ ivas_error ivas_osba_dirac_td_binaural( { int16_t n; float data_separated_objects[MAX_NUM_OBJECTS][L_FRAME48k]; ivas_error error; float *p_sepobj[MAX_NUM_OBJECTS]; int16_t channel_offset; Loading @@ -170,7 +245,11 @@ ivas_error ivas_osba_dirac_td_binaural( { for ( n = 0; n < st_ivas->nchan_ism; n++ ) { #ifdef FIX_782_OSBA_FUNCTION_NAMES delay_signal( data_separated_objects[n], output_frame, st_ivas->hSbaIsmData->delayBuffer[n], st_ivas->hSbaIsmData->delayBuffer_size ); #else delay_signal( data_separated_objects[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); #endif } } Loading Loading @@ -264,6 +343,12 @@ ivas_error ivas_osba_dirac_td_binaural( } /*-------------------------------------------------------------------------* * ivas_osba_ism_metadata_dec() * * ISM metadata decoding in OSBA format. *-------------------------------------------------------------------------*/ ivas_error ivas_osba_ism_metadata_dec( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const int32_t ism_total_brate, /* i : ISM total bitrate */ Loading Loading @@ -327,7 +412,11 @@ ivas_error ivas_osba_render( for ( n = 0; n < nchan_ism; n++ ) { mvr2r( output_f[n], tmp_ism_out[n], output_frame ); #ifdef FIX_782_OSBA_FUNCTION_NAMES delay_signal( tmp_ism_out[n], output_frame, st_ivas->hSbaIsmData->delayBuffer[n], st_ivas->hSbaIsmData->delayBuffer_size ); #else delay_signal( tmp_ism_out[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); #endif } if ( st_ivas->renderer_type == RENDERER_OSBA_AMBI ) Loading