Loading lib_dec/ivas_jbm_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -865,7 +865,7 @@ ivas_error ivas_jbm_dec_feed_tc_to_renderer( { if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { // ivas_ism_dec_digest_tc( st_ivas ); ivas_ism_dec_digest_tc( st_ivas ); ivas_sba_dec_digest_tc( st_ivas, n_render_timeslots, st_ivas->hTcBuffer->n_samples_available ); } else Loading lib_dec/ivas_objectRenderer_internal.c +9 −5 Original line number Diff line number Diff line Loading @@ -145,16 +145,20 @@ ivas_error ivas_td_binaural_renderer_sf( int16_t nchan_ism_internal, nchan_ism, ch_offset; /* Set the number of ISMs */ if ( st_ivas->ivas_format == MASA_ISM_FORMAT #ifdef JBM_FOR_OSBA || st_ivas->ivas_format == SBA_ISM_FORMAT #endif ) if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) { nchan_ism_internal = st_ivas->nchan_ism; nchan_ism = st_ivas->nchan_ism; ch_offset = 2; } #ifdef JBM_FOR_OSBA if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) { nchan_ism_internal = st_ivas->nchan_ism; nchan_ism = st_ivas->nchan_ism; ch_offset = 0; } #endif else { nchan_ism_internal = st_ivas->hTcBuffer->nchan_transport_internal; Loading lib_dec/ivas_osba_dec.c +3 −28 Original line number Diff line number Diff line Loading @@ -148,46 +148,21 @@ ivas_error ivas_osba_dirac_td_binaural_jbm( ) { 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; for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) { p_sepobj[n] = &data_separated_objects[n][0]; } channel_offset = st_ivas->nchan_ism; for ( n = 0; n < st_ivas->nchan_ism; n++ ) { mvr2r( output_f[n], data_separated_objects[n], nSamplesAsked ); } { for ( n = 0; n < st_ivas->nchan_ism; n++ ) { delay_signal( data_separated_objects[n], nSamplesAsked, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); } } ivas_sba_dec_render( st_ivas, nSamplesAsked, nSamplesRendered, nSamplesAvailable, &output_f[2] ); ivas_sba_dec_render( st_ivas, nSamplesAsked, nSamplesRendered, nSamplesAvailable, output_f ); if ( ( error = ivas_td_binaural_renderer_sf( st_ivas, p_sepobj, *nSamplesRendered ) ) != IVAS_ERR_OK ) if ( ( error = ivas_td_binaural_renderer_sf( st_ivas, output_f, *nSamplesRendered ) ) != IVAS_ERR_OK ) { return error; } for ( n = 0; n < BINAURAL_CHANNELS; n++ ) { int16_t i; for ( i = 0; i < nSamplesAsked; i++ ) { output_f[n][i] = 0.5f * output_f[channel_offset + n][i] + 0.5f * p_sepobj[n][i]; output_f[n][i] = 0.5f * output_f[2 + n][i] + 0.5f * output_f[n][i]; } } Loading lib_dec/ivas_spar_decoder.c +26 −11 Original line number Diff line number Diff line Loading @@ -1497,10 +1497,26 @@ void ivas_spar_dec_upmixer_sf( st_ivas->last_active_ivas_total_brate ); slot_size = NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS ); slot_idx_start = hSpar->slots_rendered; #ifdef JBM_FOR_OSBA if ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { int16_t nchan_ism; nchan_ism = st_ivas->nchan_ism; for ( i = 0; i < nchan_internal; i++ ) { p_tc[i] = st_ivas->hTcBuffer->tc[i + nchan_ism] + slot_idx_start * slot_size; } } else #endif { for ( i = 0; i < nchan_internal; i++ ) { p_tc[i] = st_ivas->hTcBuffer->tc[i] + slot_idx_start * slot_size; } } #ifdef DEBUG_SPAR_BYPASS_EVS_CODEC /* by-pass core-coder */ Loading @@ -1513,8 +1529,7 @@ void ivas_spar_dec_upmixer_sf( for ( i = 0; i < nchan_transport; i++ ) { tmp = roundf( output[i][j] * PCM16_TO_FLT_FAC ); pcm = ( tmp > MAX16B_FLT ) ? MAX16B : ( tmp < MIN16B_FLT ) ? MIN16B : (short) tmp; pcm = ( tmp > MAX16B_FLT ) ? MAX16B : ( tmp < MIN16B_FLT ) ? MIN16B : (short) tmp; dbgwrite( &pcm, sizeof( int16_t ), 1, 1, "dmx_dec.raw" ); } } Loading Loading
lib_dec/ivas_jbm_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -865,7 +865,7 @@ ivas_error ivas_jbm_dec_feed_tc_to_renderer( { if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { // ivas_ism_dec_digest_tc( st_ivas ); ivas_ism_dec_digest_tc( st_ivas ); ivas_sba_dec_digest_tc( st_ivas, n_render_timeslots, st_ivas->hTcBuffer->n_samples_available ); } else Loading
lib_dec/ivas_objectRenderer_internal.c +9 −5 Original line number Diff line number Diff line Loading @@ -145,16 +145,20 @@ ivas_error ivas_td_binaural_renderer_sf( int16_t nchan_ism_internal, nchan_ism, ch_offset; /* Set the number of ISMs */ if ( st_ivas->ivas_format == MASA_ISM_FORMAT #ifdef JBM_FOR_OSBA || st_ivas->ivas_format == SBA_ISM_FORMAT #endif ) if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) { nchan_ism_internal = st_ivas->nchan_ism; nchan_ism = st_ivas->nchan_ism; ch_offset = 2; } #ifdef JBM_FOR_OSBA if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) { nchan_ism_internal = st_ivas->nchan_ism; nchan_ism = st_ivas->nchan_ism; ch_offset = 0; } #endif else { nchan_ism_internal = st_ivas->hTcBuffer->nchan_transport_internal; Loading
lib_dec/ivas_osba_dec.c +3 −28 Original line number Diff line number Diff line Loading @@ -148,46 +148,21 @@ ivas_error ivas_osba_dirac_td_binaural_jbm( ) { 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; for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) { p_sepobj[n] = &data_separated_objects[n][0]; } channel_offset = st_ivas->nchan_ism; for ( n = 0; n < st_ivas->nchan_ism; n++ ) { mvr2r( output_f[n], data_separated_objects[n], nSamplesAsked ); } { for ( n = 0; n < st_ivas->nchan_ism; n++ ) { delay_signal( data_separated_objects[n], nSamplesAsked, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); } } ivas_sba_dec_render( st_ivas, nSamplesAsked, nSamplesRendered, nSamplesAvailable, &output_f[2] ); ivas_sba_dec_render( st_ivas, nSamplesAsked, nSamplesRendered, nSamplesAvailable, output_f ); if ( ( error = ivas_td_binaural_renderer_sf( st_ivas, p_sepobj, *nSamplesRendered ) ) != IVAS_ERR_OK ) if ( ( error = ivas_td_binaural_renderer_sf( st_ivas, output_f, *nSamplesRendered ) ) != IVAS_ERR_OK ) { return error; } for ( n = 0; n < BINAURAL_CHANNELS; n++ ) { int16_t i; for ( i = 0; i < nSamplesAsked; i++ ) { output_f[n][i] = 0.5f * output_f[channel_offset + n][i] + 0.5f * p_sepobj[n][i]; output_f[n][i] = 0.5f * output_f[2 + n][i] + 0.5f * output_f[n][i]; } } Loading
lib_dec/ivas_spar_decoder.c +26 −11 Original line number Diff line number Diff line Loading @@ -1497,10 +1497,26 @@ void ivas_spar_dec_upmixer_sf( st_ivas->last_active_ivas_total_brate ); slot_size = NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS ); slot_idx_start = hSpar->slots_rendered; #ifdef JBM_FOR_OSBA if ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { int16_t nchan_ism; nchan_ism = st_ivas->nchan_ism; for ( i = 0; i < nchan_internal; i++ ) { p_tc[i] = st_ivas->hTcBuffer->tc[i + nchan_ism] + slot_idx_start * slot_size; } } else #endif { for ( i = 0; i < nchan_internal; i++ ) { p_tc[i] = st_ivas->hTcBuffer->tc[i] + slot_idx_start * slot_size; } } #ifdef DEBUG_SPAR_BYPASS_EVS_CODEC /* by-pass core-coder */ Loading @@ -1513,8 +1529,7 @@ void ivas_spar_dec_upmixer_sf( for ( i = 0; i < nchan_transport; i++ ) { tmp = roundf( output[i][j] * PCM16_TO_FLT_FAC ); pcm = ( tmp > MAX16B_FLT ) ? MAX16B : ( tmp < MIN16B_FLT ) ? MIN16B : (short) tmp; pcm = ( tmp > MAX16B_FLT ) ? MAX16B : ( tmp < MIN16B_FLT ) ? MIN16B : (short) tmp; dbgwrite( &pcm, sizeof( int16_t ), 1, 1, "dmx_dec.raw" ); } } Loading