Commit 492e8794 authored by laitinenmik's avatar laitinenmik
Browse files

Use correct metadata index for reading metadata in ls and ambi rendering

parent ffc0f806
Loading
Loading
Loading
Loading
Loading
+12 −14
Original line number Diff line number Diff line
@@ -1887,7 +1887,6 @@ void ivas_dirac_dec_compute_directional_responses(
                    }

#ifdef MASA_AND_OBJECTS
                    // Todo OMASA JBM: Here we probably need to use md_idx for meta access
                    if ( hSpatParamRendCom->numIsmDirections > 0 )
                    {
                        int16_t dir;
@@ -1906,25 +1905,25 @@ void ivas_dirac_dec_compute_directional_responses(
                            }
                            else
                            {
                                ivas_dirac_dec_get_response( hMasaIsm->azimuth_ism[dir][hSpatParamRendCom->dirac_read_idx], hMasaIsm->elevation_ism[dir][hSpatParamRendCom->dirac_read_idx], direct_response_temp, hDirACRend->hOutSetup.ambisonics_order );
                                ivas_dirac_dec_get_response( hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], direct_response_temp, hDirACRend->hOutSetup.ambisonics_order );
                            }

                            for ( l = 0; l < num_channels_dir; l++ )
                            {
                                direct_response_ism[l] += direct_response_temp[l] * hMasaIsm->energy_ratio_ism[dir][hSpatParamRendCom->dirac_read_idx][k];
                                direct_response_ism[l] += direct_response_temp[l] * hMasaIsm->energy_ratio_ism[dir][md_idx][k];
                            }
                        }

                        masaDirect = hSpatParamRendCom->energy_ratio1[hSpatParamRendCom->dirac_read_idx][k] + EPSILON;
                        masaDirect = hSpatParamRendCom->energy_ratio1[md_idx][k] + EPSILON;
                        if ( hSpatParamRendCom->numParametricDirections == 2 )
                        {
                            masaDirect += hSpatParamRendCom->energy_ratio2[hSpatParamRendCom->dirac_read_idx][k];
                            masaDirect += hSpatParamRendCom->energy_ratio2[md_idx][k];
                        }

                        ismDirect = hMasaIsm->energy_ratio_ism[0][hSpatParamRendCom->dirac_read_idx][k];
                        ismDirect = hMasaIsm->energy_ratio_ism[0][md_idx][k];
                        for ( dir = 1; dir < hSpatParamRendCom->numIsmDirections; dir++ )
                        {
                            ismDirect += hMasaIsm->energy_ratio_ism[dir][hSpatParamRendCom->dirac_read_idx][k];
                            ismDirect += hMasaIsm->energy_ratio_ism[dir][md_idx][k];
                        }

                        totalDirect = masaDirect + ismDirect;
@@ -2004,7 +2003,6 @@ void ivas_dirac_dec_compute_directional_responses(
                }

#ifdef MASA_AND_OBJECTS
                // Todo OMASA JBM: Here we also probably need md_idx
                if ( hSpatParamRendCom->numIsmDirections > 0 )
                {
                    int16_t dir;
@@ -2023,26 +2021,26 @@ void ivas_dirac_dec_compute_directional_responses(
                        }
                        else
                        {
                            vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism[dir][hSpatParamRendCom->dirac_read_idx], hMasaIsm->elevation_ism[dir][hSpatParamRendCom->dirac_read_idx], 1 );
                            vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], 1 );
                        }

                        for ( l = 0; l < num_channels_dir; l++ )
                        {
                            direct_response_ism[l] += direct_response_temp[l] * hMasaIsm->energy_ratio_ism[dir][hSpatParamRendCom->dirac_read_idx][k];
                            direct_response_ism[l] += direct_response_temp[l] * hMasaIsm->energy_ratio_ism[dir][md_idx][k];
                        }
                    }
                    normalizePanningGains( direct_response_ism, num_channels_dir );

                    masaDirect = hSpatParamRendCom->energy_ratio1[hSpatParamRendCom->dirac_read_idx][k] + EPSILON;
                    masaDirect = hSpatParamRendCom->energy_ratio1[md_idx][k] + EPSILON;
                    if ( hSpatParamRendCom->numParametricDirections == 2 )
                    {
                        masaDirect += hSpatParamRendCom->energy_ratio2[hSpatParamRendCom->dirac_read_idx][k];
                        masaDirect += hSpatParamRendCom->energy_ratio2[md_idx][k];
                    }

                    ismDirect = hMasaIsm->energy_ratio_ism[0][hSpatParamRendCom->dirac_read_idx][k];
                    ismDirect = hMasaIsm->energy_ratio_ism[0][md_idx][k];
                    for ( dir = 1; dir < hSpatParamRendCom->numIsmDirections; dir++ )
                    {
                        ismDirect += hMasaIsm->energy_ratio_ism[dir][hSpatParamRendCom->dirac_read_idx][k];
                        ismDirect += hMasaIsm->energy_ratio_ism[dir][md_idx][k];
                    }

                    totalDirect = masaDirect + ismDirect;