Loading lib_com/ivas_ism_config.c +28 −0 Original line number Diff line number Diff line Loading @@ -586,3 +586,31 @@ ISM_MODE ivas_ism_mode_select( return ism_mode; } #ifdef OMASA_BRATE_SW /*------------------------------------------------------------------------- * ivas_ism_metadata_close() * * Deallocate ISM metadata handles *-------------------------------------------------------------------------*/ void ivas_ism_metadata_close( ISM_METADATA_HANDLE *hIsmMetaData, /* i/o: ISM metadata handles */ const int16_t first_idx /* i : index of first handle to deallocate */ ) { int16_t n; for ( n = first_idx; n < MAX_NUM_OBJECTS; n++ ) { if ( hIsmMetaData[n] != NULL ) { free( hIsmMetaData[n] ); hIsmMetaData[n] = NULL; } } return; } #endif lib_com/ivas_omasa_com.c +41 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,47 @@ ISM_MODE ivas_omasa_ism_mode_select( } #ifdef OMASA_BRATE_SW /*--------------------------------------------------------------- * ivas_set_omasa_TC() * * set number of transport channels in OMASA format * ---------------------------------------------------------------*/ void ivas_set_omasa_TC( const ISM_MODE ism_mode, /* i : ISM mode */ const int16_t nchan_ism, /* i : number of input ISMs */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE /* o : number of CPEs */ ) { switch ( ism_mode ) { case ISM_MASA_MODE_PARAM: *nCPE = 1; *nSCE = 0; break; case ISM_MASA_MODE_ONE_OBJ: *nCPE = 1; *nSCE = 1; break; case ISM_MASA_MODE_DISC: *nCPE = 1; *nSCE = nchan_ism; break; case ISM_MODE_NONE: *nCPE = 1; *nSCE = 0; break; default: break; } return; } #endif #ifdef OMASA_BRATE /*--------------------------------------------------------------- * ivas_interformat_brate() Loading lib_com/ivas_prot.h +35 −3 Original line number Diff line number Diff line Loading @@ -802,6 +802,13 @@ ivas_error set_ism_metadata( float elevation /* i : elevation */ ); #ifdef OMASA_BRATE_SW void ivas_ism_metadata_close( // VE: use it also at the encoder ISM_METADATA_HANDLE *hIsmMetaData, /* i/o: ISM metadata handles */ const int16_t first_idx /* i : index of first handle to deallocate */ ); #endif ivas_error create_ism_metadata_enc( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ const int16_t n_ISms, /* i : number of objects */ Loading Loading @@ -5024,13 +5031,23 @@ void ivas_omasa_enc_close( const int16_t nchan_ism /* i : number of objects */ ); #ifdef OMASA_BRATE_SW ivas_error ivas_omasa_enc_config( Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ ); ivas_error ivas_omasa_dec_config( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); #endif void ivas_omasa_set_config( OMASA_ENC_HANDLE hOMasa, /* i/o: OMASA encoder handle */ MASA_ENCODER_HANDLE hMasa, /* i : MASA encoder handle */ const int32_t input_Fs /* i : Input sample rate */ #ifdef OMASA_DIFFUSE_ISM_MERGE , ISM_MODE ismMode /* i : ISM mode */ const ISM_MODE ismMode /* i : ISM mode */ #endif ); Loading Loading @@ -5061,7 +5078,7 @@ void ivas_set_surplus_brate_enc( void ivas_set_surplus_brate_dec( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ int32_t *ism_total_brate /* i : ISM total bit-rate */ int32_t *ism_total_brate /* i : ISM total bitrate */ ); void set_ism_importance_interformat( Loading Loading @@ -5097,6 +5114,15 @@ ISM_MODE ivas_omasa_ism_mode_select( const int16_t nchan_ism /* i : number of input ISM's */ ); #ifdef OMASA_BRATE_SW void ivas_set_omasa_TC( const ISM_MODE ism_mode, /* i : ISM mode */ const int16_t nchan_ism, /* i : number of input ISMs */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE /* o : number of CPEs */ ); #endif void ivas_merge_masa_transports( float data_in_f1[][L_FRAME48k], /* i : Transport audio signals 1 */ float data_in_f2[][L_FRAME48k], /* i : Transport audio signals 2 */ Loading @@ -5109,6 +5135,12 @@ ivas_error ivas_masa_ism_data_open( Decoder_Struct* st_ivas /* i/o: IVAS decoder handle */ ); #ifdef OMASA_BRATE_SW void ivas_masa_ism_data_close( MASA_ISM_DATA_HANDLE *hMasaIsmData /* i/o: MASA_ISM rendering handle */ ); #endif void preProcessStereoTransportsForMovedObjects( Decoder_Struct* st_ivas, float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,8 @@ #define FIX_4OBJ_128 /* VA: fix to 4 ISMs 24 kbps case: when all objects are HIGH_IMP, keep 24 kbps bitrate, otherwise increase the 24 kbps bitrate */ #define OMASA_BRATE_SW /* VA: support of bitrate switching in OMASA format */ #endif /* MASA_AND_OBJECTS */ Loading lib_dec/ivas_corecoder_dec_reconfig.c +2 −0 Original line number Diff line number Diff line Loading @@ -512,10 +512,12 @@ ivas_error ivas_cldfb_dec_reconfig( } } } /* CLDFB Interpolation weights */ if ( st_ivas->sba_mode == SBA_MODE_SPAR && ( numCldfbAnalyses_old != numCldfbAnalyses || numCldfbSyntheses_old != numCldfbSyntheses || nchan_transport_old != st_ivas->nchan_transport ) ) { ivas_spar_get_cldfb_gains( st_ivas->hSpar, st_ivas->cldfbAnaDec[0], st_ivas->cldfbSynDec[0], hDecoderConfig ); } return IVAS_ERR_OK; } Loading
lib_com/ivas_ism_config.c +28 −0 Original line number Diff line number Diff line Loading @@ -586,3 +586,31 @@ ISM_MODE ivas_ism_mode_select( return ism_mode; } #ifdef OMASA_BRATE_SW /*------------------------------------------------------------------------- * ivas_ism_metadata_close() * * Deallocate ISM metadata handles *-------------------------------------------------------------------------*/ void ivas_ism_metadata_close( ISM_METADATA_HANDLE *hIsmMetaData, /* i/o: ISM metadata handles */ const int16_t first_idx /* i : index of first handle to deallocate */ ) { int16_t n; for ( n = first_idx; n < MAX_NUM_OBJECTS; n++ ) { if ( hIsmMetaData[n] != NULL ) { free( hIsmMetaData[n] ); hIsmMetaData[n] = NULL; } } return; } #endif
lib_com/ivas_omasa_com.c +41 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,47 @@ ISM_MODE ivas_omasa_ism_mode_select( } #ifdef OMASA_BRATE_SW /*--------------------------------------------------------------- * ivas_set_omasa_TC() * * set number of transport channels in OMASA format * ---------------------------------------------------------------*/ void ivas_set_omasa_TC( const ISM_MODE ism_mode, /* i : ISM mode */ const int16_t nchan_ism, /* i : number of input ISMs */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE /* o : number of CPEs */ ) { switch ( ism_mode ) { case ISM_MASA_MODE_PARAM: *nCPE = 1; *nSCE = 0; break; case ISM_MASA_MODE_ONE_OBJ: *nCPE = 1; *nSCE = 1; break; case ISM_MASA_MODE_DISC: *nCPE = 1; *nSCE = nchan_ism; break; case ISM_MODE_NONE: *nCPE = 1; *nSCE = 0; break; default: break; } return; } #endif #ifdef OMASA_BRATE /*--------------------------------------------------------------- * ivas_interformat_brate() Loading
lib_com/ivas_prot.h +35 −3 Original line number Diff line number Diff line Loading @@ -802,6 +802,13 @@ ivas_error set_ism_metadata( float elevation /* i : elevation */ ); #ifdef OMASA_BRATE_SW void ivas_ism_metadata_close( // VE: use it also at the encoder ISM_METADATA_HANDLE *hIsmMetaData, /* i/o: ISM metadata handles */ const int16_t first_idx /* i : index of first handle to deallocate */ ); #endif ivas_error create_ism_metadata_enc( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ const int16_t n_ISms, /* i : number of objects */ Loading Loading @@ -5024,13 +5031,23 @@ void ivas_omasa_enc_close( const int16_t nchan_ism /* i : number of objects */ ); #ifdef OMASA_BRATE_SW ivas_error ivas_omasa_enc_config( Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ ); ivas_error ivas_omasa_dec_config( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); #endif void ivas_omasa_set_config( OMASA_ENC_HANDLE hOMasa, /* i/o: OMASA encoder handle */ MASA_ENCODER_HANDLE hMasa, /* i : MASA encoder handle */ const int32_t input_Fs /* i : Input sample rate */ #ifdef OMASA_DIFFUSE_ISM_MERGE , ISM_MODE ismMode /* i : ISM mode */ const ISM_MODE ismMode /* i : ISM mode */ #endif ); Loading Loading @@ -5061,7 +5078,7 @@ void ivas_set_surplus_brate_enc( void ivas_set_surplus_brate_dec( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ int32_t *ism_total_brate /* i : ISM total bit-rate */ int32_t *ism_total_brate /* i : ISM total bitrate */ ); void set_ism_importance_interformat( Loading Loading @@ -5097,6 +5114,15 @@ ISM_MODE ivas_omasa_ism_mode_select( const int16_t nchan_ism /* i : number of input ISM's */ ); #ifdef OMASA_BRATE_SW void ivas_set_omasa_TC( const ISM_MODE ism_mode, /* i : ISM mode */ const int16_t nchan_ism, /* i : number of input ISMs */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE /* o : number of CPEs */ ); #endif void ivas_merge_masa_transports( float data_in_f1[][L_FRAME48k], /* i : Transport audio signals 1 */ float data_in_f2[][L_FRAME48k], /* i : Transport audio signals 2 */ Loading @@ -5109,6 +5135,12 @@ ivas_error ivas_masa_ism_data_open( Decoder_Struct* st_ivas /* i/o: IVAS decoder handle */ ); #ifdef OMASA_BRATE_SW void ivas_masa_ism_data_close( MASA_ISM_DATA_HANDLE *hMasaIsmData /* i/o: MASA_ISM rendering handle */ ); #endif void preProcessStereoTransportsForMovedObjects( Decoder_Struct* st_ivas, float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,8 @@ #define FIX_4OBJ_128 /* VA: fix to 4 ISMs 24 kbps case: when all objects are HIGH_IMP, keep 24 kbps bitrate, otherwise increase the 24 kbps bitrate */ #define OMASA_BRATE_SW /* VA: support of bitrate switching in OMASA format */ #endif /* MASA_AND_OBJECTS */ Loading
lib_dec/ivas_corecoder_dec_reconfig.c +2 −0 Original line number Diff line number Diff line Loading @@ -512,10 +512,12 @@ ivas_error ivas_cldfb_dec_reconfig( } } } /* CLDFB Interpolation weights */ if ( st_ivas->sba_mode == SBA_MODE_SPAR && ( numCldfbAnalyses_old != numCldfbAnalyses || numCldfbSyntheses_old != numCldfbSyntheses || nchan_transport_old != st_ivas->nchan_transport ) ) { ivas_spar_get_cldfb_gains( st_ivas->hSpar, st_ivas->cldfbAnaDec[0], st_ivas->cldfbSynDec[0], hDecoderConfig ); } return IVAS_ERR_OK; }