Commit cb33d3a3 authored by Lauros Pajunen's avatar Lauros Pajunen
Browse files

Fix issue 541. Adapt function calls correctly in paramBin for EXTERNAL_ORIENTATIONS switch.

parent a24d3b7e
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -172,6 +172,7 @@
#define FIX_395_CNG_BW                                  /* Eri: Issue 395 - CNG bandwidth issue for unified stereo */

#define EXTERNAL_ORIENTATIONS                           /* Nokia: Contribution 41: (external) orientation information handling */
#define FIX_541_EXT_REND_MASA_ROTATIONS                 /* Nokia: Issue 541, rotations missing in masa external renderer */

#define MASA_PREREND                                    /* Nokia: Contribution 42: Support for IVAS_rend to merge MASA + other format to MASA */

+16 −2
Original line number Diff line number Diff line
@@ -414,7 +414,11 @@ void ivas_dirac_dec_binaural_render(
    for ( subframe_idx = first_sf; subframe_idx < last_sf; subframe_idx++ )
    {
        int16_t n_samples_sf = slot_size * hDirAC->subframe_nbslots[subframe_idx];
#ifdef EXTERNAL_ORIENTATIONS
        ivas_dirac_dec_binaural_internal( st_ivas, st_ivas->hCombinedOrientationData, output_f_local, nchan_transport, subframe_idx );
#else
        ivas_dirac_dec_binaural_internal( st_ivas, output_f_local, nchan_transport, subframe_idx );
#endif
        for ( ch = 0; ch < nchan_out; ch++ )
        {
            output_f_local[ch] += n_samples_sf;
@@ -712,7 +716,12 @@ static void ivas_dirac_dec_binaural_internal(
    }

#ifdef FIX_511_OPTIMIZE_PARAMBIN_GAIN_FETCH
    ivas_dirac_dec_binaural_formulate_input_and_target_covariance_matrices( st_ivas, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in, Rmat, subframe, st_ivas->hHeadTrackData && st_ivas->hHeadTrackData->num_quaternions >= 0 );
    ivas_dirac_dec_binaural_formulate_input_and_target_covariance_matrices( st_ivas, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in, Rmat, subframe,
#ifdef EXTERNAL_ORIENTATIONS
                                                                            hCombinedOrientationData && hCombinedOrientationData->enableCombinedOrientation[subframe] > 0 );
#else
                                                                            st_ivas->hHeadTrackData && st_ivas->hHeadTrackData->num_quaternions >= 0 );
#endif
#else
    ivas_dirac_dec_binaural_formulate_input_and_target_covariance_matrices( st_ivas, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in, Rmat, subframe );
#endif
@@ -731,7 +740,12 @@ static void ivas_dirac_dec_binaural_internal(
    }

#ifdef FIX_511_OPTIMIZE_PARAMBIN_GAIN_FETCH
    ivas_dirac_dec_binaural_determine_processing_matrices( st_ivas, max_band_decorr, Rmat, st_ivas->hHeadTrackData && st_ivas->hHeadTrackData->num_quaternions >= 0 );
    ivas_dirac_dec_binaural_determine_processing_matrices( st_ivas, max_band_decorr, Rmat,
#ifdef EXTERNAL_ORIENTATIONS
                                                           hCombinedOrientationData && hCombinedOrientationData->enableCombinedOrientation[subframe] > 0 );
#else
                                                           st_ivas->hHeadTrackData && st_ivas->hHeadTrackData->num_quaternions >= 0 );
#endif
#else
    ivas_dirac_dec_binaural_determine_processing_matrices( st_ivas, max_band_decorr, Rmat );
#endif
+9 −1
Original line number Diff line number Diff line
@@ -6415,7 +6415,7 @@ static ivas_error renderActiveInputsMasa(
    IVAS_REND_HANDLE hIvasRend,
    IVAS_REND_AudioBuffer outAudio )
{
    int16_t i;
    int16_t i, sf_idx;
    input_masa *pCurrentInput;
    ivas_error error;

@@ -6427,6 +6427,14 @@ static ivas_error renderActiveInputsMasa(
            continue;
        }

#ifdef FIX_541_EXT_REND_MASA_ROTATIONS
        for ( sf_idx = 0; sf_idx < RENDERER_HEAD_POSITIONS_PER_FRAME; ++sf_idx )
        {
            pCurrentInput->decDummy->hHeadTrackData->Quaternions[sf_idx] = hIvasRend->headRotData.headPositions[sf_idx];
            pCurrentInput->decDummy->hHeadTrackData->Pos[sf_idx] = hIvasRend->headRotData.Pos[sf_idx];
        }
#endif

        if ( ( error = renderInputMasa( pCurrentInput, hIvasRend->outputConfig, outAudio ) ) != IVAS_ERR_OK )
        {
            return error;