Loading lib_com/ivas_prot_fx.h +12 −0 Original line number Diff line number Diff line Loading @@ -3893,6 +3893,18 @@ ivas_error ivas_osba_render_sf_fx( Word32 *p_output[] /* o : rendered time signal */ ); #ifdef FIX_189_OBJ_EDITING_API void ivas_osba_stereo_add_channels_fx( Word32 *tc_fx[], /* i : transport channels */ Word32 *output_fx[], /* i/o: output channels */ const Word16 gain, /* i : gain bed value */ const Word16 nchan_out, /* i : number of output channels */ const Word16 nchan_ism, /* i : number of ISM channels */ const int16_t ism_mode, /* i : ISM mode */ const UWord16 n_samples_to_render /* i : output frame length per channel */ ); #endif void ivas_osba_data_close_fx( SBA_ISM_DATA_HANDLE *hSbaIsmData /* i/o: OSBA rendering handle */ ); Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,8 @@ #define NONBE_FIX_981_PARAMBIN_DEFAULT_EARLY_PART /* Nokia: Set default early part energy correction to unity for BINAURAL_ROOM_REVERB */ #define NONBE_FIX_1174_MCMASA_LBR_LOOP_ERROR /* Nokia: Fix issue 1174 by removing the unnecessary inner loop causing problems. */ #define FIX_189_OBJ_EDITING_API /* #################### End BASOP porting switches ############################ */ #define FIX_1766_TCX2ACELP_BWE_ISSUE /* VA : Fix rare BWE issue when switching from TCX to ACELP */ Loading lib_dec/ivas_jbm_dec_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -2230,10 +2230,14 @@ ivas_error ivas_jbm_dec_render_fx( ivas_ism_render_sf_fx( st_ivas, st_ivas->renderer_type, p_output_fx, *nSamplesRendered ); /* add already rendered SBA part */ #ifdef FIX_189_OBJ_EDITING_API ivas_osba_stereo_add_channels_fx( p_tc_fx, p_output_fx, 1, nchan_out, st_ivas->nchan_ism, st_ivas->ism_mode, *nSamplesRendered ); #else FOR( n = 0; n < nchan_out; n++ ) { v_add_fixed_no_hdrm( p_output_fx[n], p_tc_fx[n + st_ivas->nchan_ism], p_output_fx[n], *nSamplesRendered ); } #endif } ELSE IF( EQ_32( st_ivas->renderer_type, RENDERER_OSBA_AMBI ) || EQ_32( st_ivas->renderer_type, RENDERER_OSBA_LS ) || EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV_ROOM ) ) { Loading lib_dec/ivas_osba_dec_fx.c +46 −0 Original line number Diff line number Diff line Loading @@ -328,3 +328,49 @@ ivas_error ivas_osba_render_sf_fx( return IVAS_ERR_OK; } #ifdef FIX_189_OBJ_EDITING_API /*-------------------------------------------------------------------------* * ivas_osba_stereo_add_channels() * * *-------------------------------------------------------------------------*/ void ivas_osba_stereo_add_channels_fx( Word32 *tc_fx[], /* i : transport channels */ Word32 *output_fx[], /* i/o: output channels */ const Word16 gain, /* i : gain bed value */ const Word16 nchan_out, /* i : number of output channels */ const Word16 nchan_ism, /* i : number of ISM channels */ const int16_t ism_mode, /* i : ISM mode */ const UWord16 n_samples_to_render /* i : output frame length per channel */ ) { int16_t n; if ( ism_mode == ISM_SBA_MODE_DISC ) { if ( NE_16(gain, 1) ) { assert(0 && "Object editing is not implemented in the BASOP code!"); } else { FOR( n = 0; n < nchan_out; n++ ) { v_add_fixed_no_hdrm( output_fx[n], tc_fx[n + nchan_ism], output_fx[n], n_samples_to_render ); } } } else { FOR( n = 0; n < nchan_out; n++ ) { v_add_fixed_no_hdrm( output_fx[n], tc_fx[n + nchan_ism], output_fx[n], n_samples_to_render ); } } return; } #endif No newline at end of file Loading
lib_com/ivas_prot_fx.h +12 −0 Original line number Diff line number Diff line Loading @@ -3893,6 +3893,18 @@ ivas_error ivas_osba_render_sf_fx( Word32 *p_output[] /* o : rendered time signal */ ); #ifdef FIX_189_OBJ_EDITING_API void ivas_osba_stereo_add_channels_fx( Word32 *tc_fx[], /* i : transport channels */ Word32 *output_fx[], /* i/o: output channels */ const Word16 gain, /* i : gain bed value */ const Word16 nchan_out, /* i : number of output channels */ const Word16 nchan_ism, /* i : number of ISM channels */ const int16_t ism_mode, /* i : ISM mode */ const UWord16 n_samples_to_render /* i : output frame length per channel */ ); #endif void ivas_osba_data_close_fx( SBA_ISM_DATA_HANDLE *hSbaIsmData /* i/o: OSBA rendering handle */ ); Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,8 @@ #define NONBE_FIX_981_PARAMBIN_DEFAULT_EARLY_PART /* Nokia: Set default early part energy correction to unity for BINAURAL_ROOM_REVERB */ #define NONBE_FIX_1174_MCMASA_LBR_LOOP_ERROR /* Nokia: Fix issue 1174 by removing the unnecessary inner loop causing problems. */ #define FIX_189_OBJ_EDITING_API /* #################### End BASOP porting switches ############################ */ #define FIX_1766_TCX2ACELP_BWE_ISSUE /* VA : Fix rare BWE issue when switching from TCX to ACELP */ Loading
lib_dec/ivas_jbm_dec_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -2230,10 +2230,14 @@ ivas_error ivas_jbm_dec_render_fx( ivas_ism_render_sf_fx( st_ivas, st_ivas->renderer_type, p_output_fx, *nSamplesRendered ); /* add already rendered SBA part */ #ifdef FIX_189_OBJ_EDITING_API ivas_osba_stereo_add_channels_fx( p_tc_fx, p_output_fx, 1, nchan_out, st_ivas->nchan_ism, st_ivas->ism_mode, *nSamplesRendered ); #else FOR( n = 0; n < nchan_out; n++ ) { v_add_fixed_no_hdrm( p_output_fx[n], p_tc_fx[n + st_ivas->nchan_ism], p_output_fx[n], *nSamplesRendered ); } #endif } ELSE IF( EQ_32( st_ivas->renderer_type, RENDERER_OSBA_AMBI ) || EQ_32( st_ivas->renderer_type, RENDERER_OSBA_LS ) || EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV_ROOM ) ) { Loading
lib_dec/ivas_osba_dec_fx.c +46 −0 Original line number Diff line number Diff line Loading @@ -328,3 +328,49 @@ ivas_error ivas_osba_render_sf_fx( return IVAS_ERR_OK; } #ifdef FIX_189_OBJ_EDITING_API /*-------------------------------------------------------------------------* * ivas_osba_stereo_add_channels() * * *-------------------------------------------------------------------------*/ void ivas_osba_stereo_add_channels_fx( Word32 *tc_fx[], /* i : transport channels */ Word32 *output_fx[], /* i/o: output channels */ const Word16 gain, /* i : gain bed value */ const Word16 nchan_out, /* i : number of output channels */ const Word16 nchan_ism, /* i : number of ISM channels */ const int16_t ism_mode, /* i : ISM mode */ const UWord16 n_samples_to_render /* i : output frame length per channel */ ) { int16_t n; if ( ism_mode == ISM_SBA_MODE_DISC ) { if ( NE_16(gain, 1) ) { assert(0 && "Object editing is not implemented in the BASOP code!"); } else { FOR( n = 0; n < nchan_out; n++ ) { v_add_fixed_no_hdrm( output_fx[n], tc_fx[n + nchan_ism], output_fx[n], n_samples_to_render ); } } } else { FOR( n = 0; n < nchan_out; n++ ) { v_add_fixed_no_hdrm( output_fx[n], tc_fx[n + nchan_ism], output_fx[n], n_samples_to_render ); } } return; } #endif No newline at end of file