Commit a14d802b authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

[update] see presentation from 2023.04.20:

- enable quaternion support
- enabled pre-rendering mode in IVAS_rend
- bugfix for discontinuities
- update to use EFAP polygon panning for 2DOF correction
- enable extrapolation over entire yaw axis for 1DOF and 2DOF correction
- added script to generate example commandlines at
  scripts/split_rendering/lc3plus/split_rend_lc3plus_cmdlines.py
parent bfc74743
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
include:
  - project: $CUSTOM_CI_PROJECT
    ref: $CUSTOM_CI_REF
    ref: lc3plus-integration-with-unit-tests
    file: $CUSTOM_CI_FILE
+11 −6
Original line number Diff line number Diff line
@@ -466,8 +466,9 @@ static int16_t getTotalNumInChannels(
    IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS],
    IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS],
    IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS],
    IVAS_REND_InputId masaIds[RENDERER_MAX_MASA_INPUTS],
    IVAS_REND_InputId masaIds[RENDERER_MAX_MASA_INPUTS]
#ifdef SPLIT_REND_WITH_HEAD_ROT
    ,
    IVAS_REND_InputId splitBinIds[RENDERER_MAX_BIN_INPUTS]
#endif
)
@@ -958,7 +959,7 @@ int main(

        if ( ( error = IVAS_REND_FeedRenderConfig( hIvasRend, renderConfig ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed\n" );
            fprintf( stderr, "\nIVAS_REND_FeedRenderConfig failed\n" );
            exit( -1 );
        }
#ifdef SPLIT_REND_WITH_HEAD_ROT
@@ -1415,12 +1416,16 @@ int main(
        }
#endif

        IVAS_REND_GetSamples( hIvasRend, outBuffer
        if ( ( error = IVAS_REND_GetSamples( hIvasRend, outBuffer
#ifdef SPLIT_REND_WITH_HEAD_ROT
                                             ,
                                             &bitsBuffer
#endif
        );
                                             ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "Error %s\n", ivas_error_to_string( error ) );
            exit( -1 );
        }

        int16_t num_out_channels;
        num_out_channels = outBuffer.config.numChannels;
+6 −0
Original line number Diff line number Diff line
@@ -1400,6 +1400,12 @@ typedef struct
    IVAS_SPLIT_REND_ROT_AXIS rot_axis;
#ifdef SPLIT_REND_TD_POSE_CORRECTION
    IVAS_SPLIT_REND_POSE_CORRECTION_MODE poseCorrectionMode;
    /* TODO tmu : review */
    bool swap_flag[3];
    bool swap_flag_prev[3];
    float gains[MAX_HEAD_ROT_POSES];
    float gains_prev[MAX_HEAD_ROT_POSES];
    float xfade[L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES];
#endif
} MULTI_BIN_REND_POSE_DATA;
#endif
+8 −1
Original line number Diff line number Diff line
@@ -839,7 +839,14 @@ void ObjRenderIvasFrame_splitBinaural(
                }
                else
                {
                    assert( 0 && "Not implemented" );
                    st_ivas->hHeadTrackData->Quaternions[i].w = -3.0f;
                    Quat2EulerDegree( originalHeadRot[i], /* TODO tmu : fix bug with ordering*/
                                      &st_ivas->hHeadTrackData->Quaternions[i].z,
                                      &st_ivas->hHeadTrackData->Quaternions[i].y,
                                      &st_ivas->hHeadTrackData->Quaternions[i].x );
                    st_ivas->hHeadTrackData->Quaternions[i].x += pMultiBinPoseData->relative_head_poses[pos_idx][0];
                    st_ivas->hHeadTrackData->Quaternions[i].y += pMultiBinPoseData->relative_head_poses[pos_idx][1];
                    st_ivas->hHeadTrackData->Quaternions[i].z += pMultiBinPoseData->relative_head_poses[pos_idx][2];
                }
            }
        }
+3 −0
Original line number Diff line number Diff line
@@ -124,6 +124,9 @@ ivas_error ivas_render_config_init_from_rom(
    ( *hRenderConfig )->split_rend_config.hq_mode = 0;
    ( *hRenderConfig )->split_rend_config.codec_delay_ms = 0;
#endif
#ifdef SPLIT_REND_LC3PLUS
    ( *hRenderConfig )->split_rend_config.poseCorrectionMode = 0;
#endif

    return IVAS_ERR_OK;
}
Loading