Commit 03cc1fe5 authored by sagnowski's avatar sagnowski
Browse files

Fix rendering too many subframes in TD rend

parent b7b09e85
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -95,7 +95,12 @@ ivas_error ivas_td_binaural_renderer(
        ( st_ivas->hCombinedOrientationData != NULL ) ? st_ivas->hCombinedOrientationData->Quaternions : NULL,
        ( st_ivas->hCombinedOrientationData != NULL ) ? st_ivas->hCombinedOrientationData->listenerPos : NULL,
#endif
        ism_md_subframe_update, output, output_frame );
        ism_md_subframe_update, output, output_frame
#ifdef LIB_REND_API_5MS
        ,
        MAX_PARAM_SPATIAL_SUBFRAMES
#endif
    );
}


+18 −1
Original line number Diff line number Diff line
@@ -266,6 +266,10 @@ ivas_error ivas_td_binaural_renderer_unwrap(
    const int16_t ism_md_subframe_update,              /* i: Number of subframes to delay ism metadata to sync with audio */
    float *output[],                                   /* i/o: SCE channels / Binaural synthesis */
    const int16_t output_frame                         /* i  : output frame length                  */
#ifdef LIB_REND_API_5MS
    ,
    const int16_t num_subframes /* i  : number of subframes to render */
#endif
)
{
    int16_t subframe_length;
@@ -281,7 +285,11 @@ ivas_error ivas_td_binaural_renderer_unwrap(
        p_reverb_signal[ch] = reverb_signal[ch];
    }

#ifdef LIB_REND_API_5MS
    subframe_length = output_frame / num_subframes;
#else
    subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES;
#endif

    c_indx = 0;
    for ( nS = 0; nS < num_src; nS++ )
@@ -294,7 +302,11 @@ ivas_error ivas_td_binaural_renderer_unwrap(
        }
    }

#ifdef LIB_REND_API_5MS
    for ( subframe_idx = 0; subframe_idx < num_subframes; subframe_idx++ )
#else
    for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ )
#endif
    {
        if ( subframe_idx == ism_md_subframe_update )
        {
@@ -696,7 +708,12 @@ ivas_error ivas_td_binaural_renderer_ext(
                                                     ( hCombinedOrientationData != NULL ) ? ( *hCombinedOrientationData )->Quaternions : NULL,
                                                     ( hCombinedOrientationData != NULL ) ? ( *hCombinedOrientationData )->listenerPos : NULL,
#endif
                                                     ism_md_subframe_update_ext, p_output, output_frame ) ) != IVAS_ERR_OK )
                                                     ism_md_subframe_update_ext, p_output, output_frame
#ifdef LIB_REND_API_5MS
                                                     ,
                                                     1
#endif
                                                     ) ) != IVAS_ERR_OK )
    {
        return error;
    }
+3 −0
Original line number Diff line number Diff line
@@ -234,6 +234,9 @@ ivas_error ivas_td_binaural_renderer_unwrap(
    const int16_t ism_md_subframe_update,
    float *output[],                                            /* i/o: SCE channels / Binaural synthesis       */
    const int16_t output_frame                                  /* i  : output frame length                     */
#ifdef LIB_REND_API_5MS
    ,const int16_t num_subframes                                /* i  : number of subframes to render */
#endif
);

ivas_error ivas_td_binaural_renderer_ext(
+4 −0
Original line number Diff line number Diff line
@@ -56,7 +56,11 @@
#define MAX_BUFFER_LENGTH ( MAX_BUFFER_LENGTH_PER_CHANNEL * MAX_INPUT_CHANNELS )

/* Frame size required when rendering to binaural */
#ifdef LIB_REND_API_5MS
#define BINAURAL_RENDERING_FRAME_SIZE_MS 5
#else
#define BINAURAL_RENDERING_FRAME_SIZE_MS 20
#endif


/*-------------------------------------------------------------------*