Commit 2eb479a9 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

fix interpolator framing

parent d3271583
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -150,7 +150,7 @@

/* keep as part of options.h */
#define BASOP_NOGLOB                                    /* Disable global symbols in BASOPs, Overflow/Carry in BASOPs disabled, additional BASOPs in case of Overflow */
/*#define DISABLE_LIMITER */                            /* test switch for testing BE between 5ms and 20ms rendering                                                  */ 
#define DISABLE_LIMITER                            /* test switch for testing BE between 5ms and 20ms rendering                                                  */ 

/* ################## Start DEVELOPMENT switches ######################### */

+15 −3
Original line number Diff line number Diff line
@@ -2232,19 +2232,25 @@ void ivas_dirac_dec_render_sf(
                int16_t az1, el1;
                int16_t n_slots_to_render;
                int16_t n_samples_to_render;
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                int16_t interp_offset;
#endif
                float gain, prev_gain;

                num_objects = st_ivas->nchan_ism;
                nchan_out_woLFE = st_ivas->hIntSetup.nchan_out_woLFE;
                n_slots_to_render = st_ivas->hSpar->subframe_nbslots[st_ivas->hSpar->subframes_rendered];
                n_samples_to_render = hSpatParamRendCom->num_freq_bands * n_slots_to_render;
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                interp_offset = st_ivas->hTcBuffer->n_samples_rendered;
#endif

                if ( st_ivas->hCombinedOrientationData && st_ivas->hCombinedOrientationData->enableCombinedOrientation[0] )
                {
                    ivas_jbm_dec_get_adapted_linear_interpolator( n_samples_to_render, n_samples_to_render, st_ivas->hIsmRendererData->interpolator );
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
					interp_offset = 0;
#endif
                }

                for ( i = 0; i < num_objects; i++ )
@@ -2273,8 +2279,11 @@ void ivas_dirac_dec_render_sf(
                        {
                            float *tc_re, *tc_im;
                            float *w1, w2;

#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
							w1 = &st_ivas->hIsmRendererData->interpolator[st_ivas->hIsmRendererData->interp_offset];
#else
							w1 = &st_ivas->hIsmRendererData->interpolator[interp_offset];
#endif
                            tc_re = pppQMfFrame_ts_re[nchan_transport + i][0];
                            tc_im = pppQMfFrame_ts_im[nchan_transport + i][0];

@@ -2302,6 +2311,9 @@ void ivas_dirac_dec_render_sf(
                    }
                }
            }
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
            st_ivas->hIsmRendererData->interp_offset += hSpatParamRendCom->num_freq_bands * st_ivas->hSpar->subframe_nbslots[st_ivas->hSpar->subframes_rendered];
#endif
        }

        if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM )
+3 −0
Original line number Diff line number Diff line
@@ -722,6 +722,9 @@ void ivas_ism_dec_digest_tc(
                {
                    st_ivas->hIsmRendererData->interpolator[i] = st_ivas->hIsmRendererData->interpolator[i - 1] + 1.f / ( interpolator_length - 1 );
                }
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                st_ivas->hIsmRendererData->interp_offset = 0;
#endif
            }
            else
            {
+3 −0
Original line number Diff line number Diff line
@@ -807,6 +807,9 @@ typedef struct renderer_struct
    float prev_gains[MAX_NUM_OBJECTS][MAX_OUTPUT_CHANNELS];
    float *interpolator;
    int16_t interpolator_length;
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
    int16_t interp_offset;
#endif
    float gains[MAX_NUM_OBJECTS][MAX_OUTPUT_CHANNELS];

} ISM_RENDERER_DATA, *ISM_RENDERER_HANDLE;