Loading lib_com/ivas_prot_fx.h +108 −108 Original line number Diff line number Diff line Loading @@ -204,19 +204,6 @@ Word32 calculate_cpe_brate_MASA_ISM_fx( const Word16 nchan_ism /* i : number of objects */ ); Word16 ivas_jbm_dec_get_num_tc_channels_fx( Decoder_Struct *st_ivas /* i : IVAS decoder handle */ ); ivas_error ivas_jbm_dec_tc_buffer_open_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const TC_BUFFER_MODE tc_buffer_mode, /* i : buffer mode */ const Word16 nchan_transport_jbm, /* i : number of real transport channels */ const Word16 nchan_transport_internal, /* i : number of totally buffered channels */ const Word16 nchan_full, /* i : number of channels to fully store */ const Word16 n_samples_granularity /* i : granularity of the renderer/buffer */ ); void ivas_dct_windowing_fx( const Word16 fade_len, /*Q0*/ const Word16 full_len, /*Q0*/ Loading Loading @@ -947,15 +934,6 @@ void update_last_metadata_fx( const Word16 updt_flag[] /* i : last metadata update flag */ ); ivas_error ivas_jbm_dec_tc_buffer_reconfigure_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const TC_BUFFER_MODE tc_buffer_mode, /* i : new buffer mode */ const Word16 nchan_transport_jbm, /* i : new number of real transport channels */ const Word16 nchan_transport_internal, /* i : new number of totally buffered channels */ const Word16 nchan_full, /* i : new number of channels to fully store */ const Word16 n_samples_granularity /* i : new granularity of the renderer/buffer */ ); ivas_error ivas_dirac_allocate_parameters_fx( SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom, /* i/o: common data for spatial parametric rendering*/ const Word16 params_flag /* i : set of parameters flag */ Loading Loading @@ -999,21 +977,6 @@ Word16 IGF_MapBitRateToIndex( const Word16 rf_mode /* i : flag to signal the RF mode */ ); #ifdef NONBE_1303_REND_GRANULARITY Word16 ivas_jbm_dec_get_render_granularity_fx( const RENDERER_TYPE renderer_type, /* i : renderer type */ const RENDERER_TYPE renderer_type_sec, /* i : secondary renderer type */ const int32_t output_Fs /* i : sampling rate */ ); #else Word16 ivas_jbm_dec_get_render_granularity( const RENDERER_TYPE rendererType, /* i : renderer type */ const IVAS_FORMAT ivas_format, /* i : ivas format */ const MC_MODE mc_mode, /* i : MC mode */ const Word32 output_Fs /* i : sampling rate */ ); #endif void stereo_dft_config_fx( STEREO_DFT_CONFIG_DATA_HANDLE hConfig, /* o : DFT stereo configuration */ const Word32 brate, /* i : IVAS/CPE/nominal total bitrate */ Loading Loading @@ -1095,12 +1058,6 @@ void ivas_ism_render_sf_fx( const Word16 n_samples_to_render /* i : output frame length per channel */ ); void ivas_jbm_dec_get_adapted_linear_interpolator_fx( const Word16 default_interp_length, /* i : default length of the (full-frame) interpolator */ const Word16 interp_length, /* i : length of the interpolator to be created */ Word16 *interpolator_fx /* o : the interpolator */ ); void ivas_omasa_separate_object_render_jbm_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const UWord16 nSamplesRendered, /* i : number of samples rendered */ Loading Loading @@ -2576,14 +2533,6 @@ void ivas_omasa_dirac_rend_jbm_fx( Word32 *output_fx[] /* o : rendered time signal */ ); ivas_error ivas_jbm_dec_render_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const UWord16 nSamplesAsked, /* i : number of samples wanted */ UWord16 *nSamplesRendered, /* o : number of samples rendered */ UWord16 *nSamplesAvailableNext, /* o : number of samples still available in the rendering pipeline */ Word16 *data /* o : output synthesis signal */ ); void ivas_sba_zero_vert_comp_fx( Word32 *sba_data[], /* i : SBA signals */ const Word16 sba_order, /* i : SBA order */ Loading Loading @@ -4228,63 +4177,6 @@ Word64 var_32_fx( Word16 q /* q : q-factor for the array */ ); ivas_error ivas_jbm_dec_tc_fx( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ #ifndef LIB_DEC_REVISION , Word32 *data_fx #endif ); ivas_error ivas_jbm_dec_flush_renderer_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word16 tc_granularity_new, /* i : new renderer granularity */ const RENDERER_TYPE renderer_type_old, /* i : old renderer type */ const AUDIO_CONFIG intern_config_old, /* i : old internal config */ const IVAS_OUTPUT_SETUP_HANDLE hIntSetupOld, /* i : old internal output setup */ const MC_MODE mc_mode_old, /* i : old MC mode */ const ISM_MODE ism_mode_old, /* i : old ISM mode */ UWord16 *nSamplesRendered, /* o : number of samples flushed */ Word16 *data /* o : output synthesis signal */ ); void ivas_jbm_dec_feed_tc_to_renderer_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word16 nSamplesForRendering, /* i : number of TC samples available for rendering */ Word16 *nSamplesResidual /* o : number of samples not fitting into the renderer grid and buffer for the next call*/ #ifndef JBM_MEMORY_OPT , Word32 *data_fx /* i/o: transport channels/output synthesis signal */ #endif ); void ivas_dec_prepare_renderer_fx( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); void ivas_jbm_dec_get_adapted_subframes( const Word16 nCldfbTs, /* i : number of time slots in the current frame */ Word16 *subframe_nbslots, /* i/o: subframe grid */ Word16 *nb_subframes /* i/o: number of subframes in the frame */ ); void ivas_jbm_dec_get_md_map( const Word16 default_len, /* i : default frame length in metadata slots */ const Word16 len, /* i : length of the modfied frames in metadata slots */ const Word16 subframe_len, /* i : default length of a subframe */ const Word16 offset, /* i : current read offset into the md buffer */ const Word16 buf_len, /* i : length of the metadata buffer */ Word16 *map /* o : metadata index map */ ); void ivas_jbm_dec_get_md_map_even_spacing( const Word16 len, /* i : length of the modfied frames in metadata slots */ const Word16 subframe_len, /* i : default length of a subframe */ const Word16 offset, /* i : current read offset into the md buffer */ const Word16 buf_len, /* i : length of the metadata buffer */ Word16 *map /* o : metadata index map */ ); void bitbudget_to_brate( const Word16 x[], /* i : bitbudgets */ Word32 y[], /* o : bitrates */ Loading Loading @@ -6273,14 +6165,122 @@ Word16 is_DTXrate( * JBM prototypes *----------------------------------------------------------------------------------*/ ivas_error ivas_jbm_dec_tc_fx( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ #ifndef LIB_DEC_REVISION , Word32 *data_fx #endif ); ivas_error ivas_jbm_dec_render_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const UWord16 nSamplesAsked, /* i : number of samples wanted */ UWord16 *nSamplesRendered, /* o : number of samples rendered */ UWord16 *nSamplesAvailableNext, /* o : number of samples still available in the rendering pipeline */ Word16 *data /* o : output synthesis signal */ ); ivas_error ivas_jbm_dec_flush_renderer_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word16 tc_granularity_new, /* i : new renderer granularity */ const RENDERER_TYPE renderer_type_old, /* i : old renderer type */ const AUDIO_CONFIG intern_config_old, /* i : old internal config */ const IVAS_OUTPUT_SETUP_HANDLE hIntSetupOld, /* i : old internal output setup */ const MC_MODE mc_mode_old, /* i : old MC mode */ const ISM_MODE ism_mode_old, /* i : old ISM mode */ UWord16 *nSamplesRendered, /* o : number of samples flushed */ Word16 *data /* o : output synthesis signal */ ); void ivas_jbm_dec_feed_tc_to_renderer_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word16 nSamplesForRendering, /* i : number of TC samples available for rendering */ Word16 *nSamplesResidual /* o : number of samples not fitting into the renderer grid and buffer for the next call*/ #ifndef JBM_MEMORY_OPT , Word32 *data_fx /* i/o: transport channels/output synthesis signal */ #endif ); void ivas_dec_prepare_renderer_fx( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); ivas_error ivas_jbm_dec_set_discard_samples_fx( Decoder_Struct *st_ivas /* i/o: main IVAS decoder structre */ ); void ivas_jbm_dec_get_adapted_linear_interpolator_fx( const Word16 default_interp_length, /* i : default length of the (full-frame) interpolator */ const Word16 interp_length, /* i : length of the interpolator to be created */ Word16 *interpolator_fx /* o : the interpolator */ ); void ivas_jbm_dec_get_adapted_subframes( const Word16 nCldfbTs, /* i : number of time slots in the current frame */ Word16 *subframe_nbslots, /* i/o: subframe grid */ Word16 *nb_subframes /* i/o: number of subframes in the frame */ ); void ivas_jbm_dec_get_md_map( const Word16 default_len, /* i : default frame length in metadata slots */ const Word16 len, /* i : length of the modfied frames in metadata slots */ const Word16 subframe_len, /* i : default length of a subframe */ const Word16 offset, /* i : current read offset into the md buffer */ const Word16 buf_len, /* i : length of the metadata buffer */ Word16 *map /* o : metadata index map */ ); Word16 ivas_jbm_dec_get_num_tc_channels_fx( Decoder_Struct *st_ivas /* i : IVAS decoder handle */ ); void ivas_jbm_dec_get_md_map_even_spacing( const Word16 len, /* i : length of the modfied frames in metadata slots */ const Word16 subframe_len, /* i : default length of a subframe */ const Word16 offset, /* i : current read offset into the md buffer */ const Word16 buf_len, /* i : length of the metadata buffer */ Word16 *map /* o : metadata index map */ ); TC_BUFFER_MODE ivas_jbm_dec_get_tc_buffer_mode_fx( Decoder_Struct *st_ivas /* i : IVAS decoder handle */ ); #ifdef NONBE_1303_REND_GRANULARITY Word16 ivas_jbm_dec_get_render_granularity_fx( const RENDERER_TYPE renderer_type, /* i : renderer type */ const RENDERER_TYPE renderer_type_sec, /* i : secondary renderer type */ const int32_t output_Fs /* i : sampling rate */ ); #else Word16 ivas_jbm_dec_get_render_granularity( const RENDERER_TYPE rendererType, /* i : renderer type */ const IVAS_FORMAT ivas_format, /* i : ivas format */ const MC_MODE mc_mode, /* i : MC mode */ const Word32 output_Fs /* i : sampling rate */ ); #endif ivas_error ivas_jbm_dec_tc_buffer_open_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const TC_BUFFER_MODE tc_buffer_mode, /* i : buffer mode */ const Word16 nchan_transport_jbm, /* i : number of real transport channels */ const Word16 nchan_transport_internal, /* i : number of totally buffered channels */ const Word16 nchan_full, /* i : number of channels to fully store */ const Word16 n_samples_granularity /* i : granularity of the renderer/buffer */ ); ivas_error ivas_jbm_dec_tc_buffer_reconfigure_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const TC_BUFFER_MODE tc_buffer_mode, /* i : new buffer mode */ const Word16 nchan_transport_jbm, /* i : new number of real transport channels */ const Word16 nchan_transport_internal, /* i : new number of totally buffered channels */ const Word16 nchan_full, /* i : new number of channels to fully store */ const Word16 n_samples_granularity /* i : new granularity of the renderer/buffer */ ); void ivas_jbm_dec_tc_buffer_close_fx( DECODER_TC_BUFFER_HANDLE *phTcBuffer /* i/o: TC buffer handle */ ); Loading lib_dec/ivas_init_dec_fx.c +3 −1 Original line number Diff line number Diff line Loading @@ -3434,12 +3434,14 @@ void ivas_destroy_dec_fx( /* Limiter struct */ ivas_limiter_close_fx( &( st_ivas->hLimiter ) ); /* Decoder configuration structure */ IF( st_ivas->hDecoderConfig != NULL ) { free( st_ivas->hDecoderConfig ); st_ivas->hDecoderConfig = NULL; } /* JBM TC buffer structure */ ivas_jbm_dec_tc_buffer_close_fx( &st_ivas->hTcBuffer ); IF( st_ivas->hJbmMetadata != NULL ) Loading lib_dec/jbm_pcmdsp_apa_fx.c +16 −0 Original line number Diff line number Diff line Loading @@ -912,7 +912,11 @@ UWord8 apa_exec_ivas_fx( Word16 Q_a_out; Word16 Q_a_out_init_old; #ifdef JBM_MEMORY_OPT Q_a_out = add( getScaleFactor32_copy( a_in, L_mult0( ps->num_channels, l_in ) ), Q11 - Q16 - Q1 ); #else Q_a_out = add( getScaleFactor32_copy( a_in, L_mult0( ps->num_channels, APA_BUF_PER_CHANNEL ) ), Q11 - Q16 - Q1 ); #endif Q_a_out_init_old = Q_a_out; /* store the possible scaling of a_in, to be re-used in the next frame */ move16(); statsResetThreshold = 1637; Loading Loading @@ -989,7 +993,11 @@ UWord8 apa_exec_ivas_fx( Scale_sig( ps->buf_out_fx, ps->buf_out_capacity, sub( Q_a_out, ps->Q_buf_out ) ); // Q_buf_out -> Q_a_out IF( EQ_32( ps->scale, 100 ) ) { #ifdef JBM_MEMORY_OPT FOR( i = 0; i < L_mult0( ps->num_channels, ps->l_frm ); i++ ) #else FOR( i = 0; i < ps->num_channels * APA_BUF_PER_CHANNEL; i++ ) #endif { a_out[i] = a_in[i]; // Q11 move32(); Loading @@ -1001,7 +1009,11 @@ UWord8 apa_exec_ivas_fx( { Word16 *frm_in_ptr = &( frm_in[ps->l_frm] ); #ifdef JBM_MEMORY_OPT FOR( i = 0; i < L_mult0( ps->num_channels, ps->l_frm ); i++ ) #else FOR( i = 0; i < ps->num_channels * APA_BUF_PER_CHANNEL; i++ ) #endif { a_tmp[i] = extract_h( L_shl( a_in[i], add( Q_a_out, Q5 ) ) ); // Q_a_out move16(); Loading Loading @@ -1051,7 +1063,11 @@ UWord8 apa_exec_ivas_fx( } } #ifdef JBM_MEMORY_OPT FOR( i = 0; i < L_mult0( ps->num_channels, ps->l_frm ); i++ ) #else FOR( i = 0; i < ps->num_channels * APA_BUF_PER_CHANNEL; i++ ) #endif { a_out[i] = L_shl( a_tmp[i], sub( Q11, Q_a_out ) ); // Q0 -> Q11 move32(); Loading Loading
lib_com/ivas_prot_fx.h +108 −108 Original line number Diff line number Diff line Loading @@ -204,19 +204,6 @@ Word32 calculate_cpe_brate_MASA_ISM_fx( const Word16 nchan_ism /* i : number of objects */ ); Word16 ivas_jbm_dec_get_num_tc_channels_fx( Decoder_Struct *st_ivas /* i : IVAS decoder handle */ ); ivas_error ivas_jbm_dec_tc_buffer_open_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const TC_BUFFER_MODE tc_buffer_mode, /* i : buffer mode */ const Word16 nchan_transport_jbm, /* i : number of real transport channels */ const Word16 nchan_transport_internal, /* i : number of totally buffered channels */ const Word16 nchan_full, /* i : number of channels to fully store */ const Word16 n_samples_granularity /* i : granularity of the renderer/buffer */ ); void ivas_dct_windowing_fx( const Word16 fade_len, /*Q0*/ const Word16 full_len, /*Q0*/ Loading Loading @@ -947,15 +934,6 @@ void update_last_metadata_fx( const Word16 updt_flag[] /* i : last metadata update flag */ ); ivas_error ivas_jbm_dec_tc_buffer_reconfigure_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const TC_BUFFER_MODE tc_buffer_mode, /* i : new buffer mode */ const Word16 nchan_transport_jbm, /* i : new number of real transport channels */ const Word16 nchan_transport_internal, /* i : new number of totally buffered channels */ const Word16 nchan_full, /* i : new number of channels to fully store */ const Word16 n_samples_granularity /* i : new granularity of the renderer/buffer */ ); ivas_error ivas_dirac_allocate_parameters_fx( SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom, /* i/o: common data for spatial parametric rendering*/ const Word16 params_flag /* i : set of parameters flag */ Loading Loading @@ -999,21 +977,6 @@ Word16 IGF_MapBitRateToIndex( const Word16 rf_mode /* i : flag to signal the RF mode */ ); #ifdef NONBE_1303_REND_GRANULARITY Word16 ivas_jbm_dec_get_render_granularity_fx( const RENDERER_TYPE renderer_type, /* i : renderer type */ const RENDERER_TYPE renderer_type_sec, /* i : secondary renderer type */ const int32_t output_Fs /* i : sampling rate */ ); #else Word16 ivas_jbm_dec_get_render_granularity( const RENDERER_TYPE rendererType, /* i : renderer type */ const IVAS_FORMAT ivas_format, /* i : ivas format */ const MC_MODE mc_mode, /* i : MC mode */ const Word32 output_Fs /* i : sampling rate */ ); #endif void stereo_dft_config_fx( STEREO_DFT_CONFIG_DATA_HANDLE hConfig, /* o : DFT stereo configuration */ const Word32 brate, /* i : IVAS/CPE/nominal total bitrate */ Loading Loading @@ -1095,12 +1058,6 @@ void ivas_ism_render_sf_fx( const Word16 n_samples_to_render /* i : output frame length per channel */ ); void ivas_jbm_dec_get_adapted_linear_interpolator_fx( const Word16 default_interp_length, /* i : default length of the (full-frame) interpolator */ const Word16 interp_length, /* i : length of the interpolator to be created */ Word16 *interpolator_fx /* o : the interpolator */ ); void ivas_omasa_separate_object_render_jbm_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const UWord16 nSamplesRendered, /* i : number of samples rendered */ Loading Loading @@ -2576,14 +2533,6 @@ void ivas_omasa_dirac_rend_jbm_fx( Word32 *output_fx[] /* o : rendered time signal */ ); ivas_error ivas_jbm_dec_render_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const UWord16 nSamplesAsked, /* i : number of samples wanted */ UWord16 *nSamplesRendered, /* o : number of samples rendered */ UWord16 *nSamplesAvailableNext, /* o : number of samples still available in the rendering pipeline */ Word16 *data /* o : output synthesis signal */ ); void ivas_sba_zero_vert_comp_fx( Word32 *sba_data[], /* i : SBA signals */ const Word16 sba_order, /* i : SBA order */ Loading Loading @@ -4228,63 +4177,6 @@ Word64 var_32_fx( Word16 q /* q : q-factor for the array */ ); ivas_error ivas_jbm_dec_tc_fx( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ #ifndef LIB_DEC_REVISION , Word32 *data_fx #endif ); ivas_error ivas_jbm_dec_flush_renderer_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word16 tc_granularity_new, /* i : new renderer granularity */ const RENDERER_TYPE renderer_type_old, /* i : old renderer type */ const AUDIO_CONFIG intern_config_old, /* i : old internal config */ const IVAS_OUTPUT_SETUP_HANDLE hIntSetupOld, /* i : old internal output setup */ const MC_MODE mc_mode_old, /* i : old MC mode */ const ISM_MODE ism_mode_old, /* i : old ISM mode */ UWord16 *nSamplesRendered, /* o : number of samples flushed */ Word16 *data /* o : output synthesis signal */ ); void ivas_jbm_dec_feed_tc_to_renderer_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word16 nSamplesForRendering, /* i : number of TC samples available for rendering */ Word16 *nSamplesResidual /* o : number of samples not fitting into the renderer grid and buffer for the next call*/ #ifndef JBM_MEMORY_OPT , Word32 *data_fx /* i/o: transport channels/output synthesis signal */ #endif ); void ivas_dec_prepare_renderer_fx( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); void ivas_jbm_dec_get_adapted_subframes( const Word16 nCldfbTs, /* i : number of time slots in the current frame */ Word16 *subframe_nbslots, /* i/o: subframe grid */ Word16 *nb_subframes /* i/o: number of subframes in the frame */ ); void ivas_jbm_dec_get_md_map( const Word16 default_len, /* i : default frame length in metadata slots */ const Word16 len, /* i : length of the modfied frames in metadata slots */ const Word16 subframe_len, /* i : default length of a subframe */ const Word16 offset, /* i : current read offset into the md buffer */ const Word16 buf_len, /* i : length of the metadata buffer */ Word16 *map /* o : metadata index map */ ); void ivas_jbm_dec_get_md_map_even_spacing( const Word16 len, /* i : length of the modfied frames in metadata slots */ const Word16 subframe_len, /* i : default length of a subframe */ const Word16 offset, /* i : current read offset into the md buffer */ const Word16 buf_len, /* i : length of the metadata buffer */ Word16 *map /* o : metadata index map */ ); void bitbudget_to_brate( const Word16 x[], /* i : bitbudgets */ Word32 y[], /* o : bitrates */ Loading Loading @@ -6273,14 +6165,122 @@ Word16 is_DTXrate( * JBM prototypes *----------------------------------------------------------------------------------*/ ivas_error ivas_jbm_dec_tc_fx( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ #ifndef LIB_DEC_REVISION , Word32 *data_fx #endif ); ivas_error ivas_jbm_dec_render_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const UWord16 nSamplesAsked, /* i : number of samples wanted */ UWord16 *nSamplesRendered, /* o : number of samples rendered */ UWord16 *nSamplesAvailableNext, /* o : number of samples still available in the rendering pipeline */ Word16 *data /* o : output synthesis signal */ ); ivas_error ivas_jbm_dec_flush_renderer_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word16 tc_granularity_new, /* i : new renderer granularity */ const RENDERER_TYPE renderer_type_old, /* i : old renderer type */ const AUDIO_CONFIG intern_config_old, /* i : old internal config */ const IVAS_OUTPUT_SETUP_HANDLE hIntSetupOld, /* i : old internal output setup */ const MC_MODE mc_mode_old, /* i : old MC mode */ const ISM_MODE ism_mode_old, /* i : old ISM mode */ UWord16 *nSamplesRendered, /* o : number of samples flushed */ Word16 *data /* o : output synthesis signal */ ); void ivas_jbm_dec_feed_tc_to_renderer_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const Word16 nSamplesForRendering, /* i : number of TC samples available for rendering */ Word16 *nSamplesResidual /* o : number of samples not fitting into the renderer grid and buffer for the next call*/ #ifndef JBM_MEMORY_OPT , Word32 *data_fx /* i/o: transport channels/output synthesis signal */ #endif ); void ivas_dec_prepare_renderer_fx( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); ivas_error ivas_jbm_dec_set_discard_samples_fx( Decoder_Struct *st_ivas /* i/o: main IVAS decoder structre */ ); void ivas_jbm_dec_get_adapted_linear_interpolator_fx( const Word16 default_interp_length, /* i : default length of the (full-frame) interpolator */ const Word16 interp_length, /* i : length of the interpolator to be created */ Word16 *interpolator_fx /* o : the interpolator */ ); void ivas_jbm_dec_get_adapted_subframes( const Word16 nCldfbTs, /* i : number of time slots in the current frame */ Word16 *subframe_nbslots, /* i/o: subframe grid */ Word16 *nb_subframes /* i/o: number of subframes in the frame */ ); void ivas_jbm_dec_get_md_map( const Word16 default_len, /* i : default frame length in metadata slots */ const Word16 len, /* i : length of the modfied frames in metadata slots */ const Word16 subframe_len, /* i : default length of a subframe */ const Word16 offset, /* i : current read offset into the md buffer */ const Word16 buf_len, /* i : length of the metadata buffer */ Word16 *map /* o : metadata index map */ ); Word16 ivas_jbm_dec_get_num_tc_channels_fx( Decoder_Struct *st_ivas /* i : IVAS decoder handle */ ); void ivas_jbm_dec_get_md_map_even_spacing( const Word16 len, /* i : length of the modfied frames in metadata slots */ const Word16 subframe_len, /* i : default length of a subframe */ const Word16 offset, /* i : current read offset into the md buffer */ const Word16 buf_len, /* i : length of the metadata buffer */ Word16 *map /* o : metadata index map */ ); TC_BUFFER_MODE ivas_jbm_dec_get_tc_buffer_mode_fx( Decoder_Struct *st_ivas /* i : IVAS decoder handle */ ); #ifdef NONBE_1303_REND_GRANULARITY Word16 ivas_jbm_dec_get_render_granularity_fx( const RENDERER_TYPE renderer_type, /* i : renderer type */ const RENDERER_TYPE renderer_type_sec, /* i : secondary renderer type */ const int32_t output_Fs /* i : sampling rate */ ); #else Word16 ivas_jbm_dec_get_render_granularity( const RENDERER_TYPE rendererType, /* i : renderer type */ const IVAS_FORMAT ivas_format, /* i : ivas format */ const MC_MODE mc_mode, /* i : MC mode */ const Word32 output_Fs /* i : sampling rate */ ); #endif ivas_error ivas_jbm_dec_tc_buffer_open_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const TC_BUFFER_MODE tc_buffer_mode, /* i : buffer mode */ const Word16 nchan_transport_jbm, /* i : number of real transport channels */ const Word16 nchan_transport_internal, /* i : number of totally buffered channels */ const Word16 nchan_full, /* i : number of channels to fully store */ const Word16 n_samples_granularity /* i : granularity of the renderer/buffer */ ); ivas_error ivas_jbm_dec_tc_buffer_reconfigure_fx( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const TC_BUFFER_MODE tc_buffer_mode, /* i : new buffer mode */ const Word16 nchan_transport_jbm, /* i : new number of real transport channels */ const Word16 nchan_transport_internal, /* i : new number of totally buffered channels */ const Word16 nchan_full, /* i : new number of channels to fully store */ const Word16 n_samples_granularity /* i : new granularity of the renderer/buffer */ ); void ivas_jbm_dec_tc_buffer_close_fx( DECODER_TC_BUFFER_HANDLE *phTcBuffer /* i/o: TC buffer handle */ ); Loading
lib_dec/ivas_init_dec_fx.c +3 −1 Original line number Diff line number Diff line Loading @@ -3434,12 +3434,14 @@ void ivas_destroy_dec_fx( /* Limiter struct */ ivas_limiter_close_fx( &( st_ivas->hLimiter ) ); /* Decoder configuration structure */ IF( st_ivas->hDecoderConfig != NULL ) { free( st_ivas->hDecoderConfig ); st_ivas->hDecoderConfig = NULL; } /* JBM TC buffer structure */ ivas_jbm_dec_tc_buffer_close_fx( &st_ivas->hTcBuffer ); IF( st_ivas->hJbmMetadata != NULL ) Loading
lib_dec/jbm_pcmdsp_apa_fx.c +16 −0 Original line number Diff line number Diff line Loading @@ -912,7 +912,11 @@ UWord8 apa_exec_ivas_fx( Word16 Q_a_out; Word16 Q_a_out_init_old; #ifdef JBM_MEMORY_OPT Q_a_out = add( getScaleFactor32_copy( a_in, L_mult0( ps->num_channels, l_in ) ), Q11 - Q16 - Q1 ); #else Q_a_out = add( getScaleFactor32_copy( a_in, L_mult0( ps->num_channels, APA_BUF_PER_CHANNEL ) ), Q11 - Q16 - Q1 ); #endif Q_a_out_init_old = Q_a_out; /* store the possible scaling of a_in, to be re-used in the next frame */ move16(); statsResetThreshold = 1637; Loading Loading @@ -989,7 +993,11 @@ UWord8 apa_exec_ivas_fx( Scale_sig( ps->buf_out_fx, ps->buf_out_capacity, sub( Q_a_out, ps->Q_buf_out ) ); // Q_buf_out -> Q_a_out IF( EQ_32( ps->scale, 100 ) ) { #ifdef JBM_MEMORY_OPT FOR( i = 0; i < L_mult0( ps->num_channels, ps->l_frm ); i++ ) #else FOR( i = 0; i < ps->num_channels * APA_BUF_PER_CHANNEL; i++ ) #endif { a_out[i] = a_in[i]; // Q11 move32(); Loading @@ -1001,7 +1009,11 @@ UWord8 apa_exec_ivas_fx( { Word16 *frm_in_ptr = &( frm_in[ps->l_frm] ); #ifdef JBM_MEMORY_OPT FOR( i = 0; i < L_mult0( ps->num_channels, ps->l_frm ); i++ ) #else FOR( i = 0; i < ps->num_channels * APA_BUF_PER_CHANNEL; i++ ) #endif { a_tmp[i] = extract_h( L_shl( a_in[i], add( Q_a_out, Q5 ) ) ); // Q_a_out move16(); Loading Loading @@ -1051,7 +1063,11 @@ UWord8 apa_exec_ivas_fx( } } #ifdef JBM_MEMORY_OPT FOR( i = 0; i < L_mult0( ps->num_channels, ps->l_frm ); i++ ) #else FOR( i = 0; i < ps->num_channels * APA_BUF_PER_CHANNEL; i++ ) #endif { a_out[i] = L_shl( a_tmp[i], sub( Q11, Q_a_out ) ); // Q0 -> Q11 move32(); Loading