Commit 4e0c3f63 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

Merge branch '1141-no-objects-rendered-in-osba-disc-to-binaural_room' into 'main'

[non BE] Fix object-to-MC panning code for BINAURAL_ROOM_IR output

See merge request !1736
parents 5e161604 2fd854a3
Loading
Loading
Loading
Loading
Loading
+26 −8
Original line number Diff line number Diff line
@@ -2224,11 +2224,16 @@ void ivas_dirac_dec_render_sf(
        /* render objects in combined format onto the CICP19 channels for BINAURAL_ROOM_IR */
        if ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC && st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM )
        {
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
            int16_t in_ch;
            for ( in_ch = 0; in_ch < st_ivas->nchan_ism; in_ch++ )
            {
                int16_t j, k, j2, l;
                int16_t num_objects, nchan_out_woLFE, lfe_index;
#endif
                int16_t j, k, l;
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                int16_t j2, lfe_index;
#endif
                int16_t num_objects, nchan_out_woLFE;
                int16_t az1, el1;
                int16_t n_slots_to_render;
                int16_t n_samples_to_render;
@@ -2267,13 +2272,19 @@ void ivas_dirac_dec_render_sf(
                        }
                    }

#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                    for ( j = 0; j < nchan_out_woLFE; j++ )
#else
                lfe_index = 0;
                for ( j = 0, j2 = 0; j < nchan_out_woLFE; j++, j2++ )
#endif
                    {
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                        if ( ( st_ivas->hIntSetup.num_lfe > 0 ) && ( st_ivas->hIntSetup.index_lfe[lfe_index] == j ) )
                        {
                            ( lfe_index < ( st_ivas->hIntSetup.num_lfe - 1 ) ) ? ( lfe_index++, j2++ ) : j2++;
                        }
#endif

                        gain = st_ivas->hIsmRendererData->gains[i][j];
                        prev_gain = st_ivas->hIsmRendererData->prev_gains[i][j];
@@ -2300,8 +2311,13 @@ void ivas_dirac_dec_render_sf(

                                for ( l = 0; l < hSpatParamRendCom->num_freq_bands; l++ )
                                {
#ifdef NONBE_FIX_1141_OSBA_ROOM_RENDERING
                                    Cldfb_RealBuffer[j][k][l] += g * *( tc_re++ );
                                    Cldfb_ImagBuffer[j][k][l] += g * *( tc_im++ );
#else
                                Cldfb_RealBuffer[j2][k][l] += g * *( tc_re++ );
                                Cldfb_ImagBuffer[j2][k][l] += g * *( tc_im++ );
#endif
                                }
                                w1 += hSpatParamRendCom->num_freq_bands;
                            }
@@ -2314,7 +2330,9 @@ void ivas_dirac_dec_render_sf(
                        }
                    }
                }
#ifndef NONBE_FIX_1141_OSBA_ROOM_RENDERING
            }
#endif
#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