Commit 6b196ffc authored by vaclav's avatar vaclav
Browse files

update

parent 4d14af92
Loading
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -206,7 +206,6 @@
    <ClCompile Include="..\lib_dec\inov_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_agc_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_binRenderer_internal.c" />
    <ClCompile Include="..\lib_dec\ivas_cldfb_ring_buffer.c" />
    <ClCompile Include="..\lib_dec\ivas_corecoder_dec_reconfig.c" />
    <ClCompile Include="..\lib_dec\ivas_core_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_cpe_dec.c" />
+0 −3
Original line number Diff line number Diff line
@@ -515,9 +515,6 @@
      <Filter>decoder_all_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\lib_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_cldfb_ring_buffer.c">
      <Filter>decoder_ivas_c</Filter>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\lib_dec\ivas_stat_dec.h">
+1 −0
Original line number Diff line number Diff line
@@ -138,6 +138,7 @@
    </Lib>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="..\lib_rend\ivas_cldfb_ring_buffer.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_decorr_dec.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_dec_binaural_functions.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_onsets_dec.c" />
+3 −0
Original line number Diff line number Diff line
@@ -119,6 +119,9 @@
    <ClCompile Include="..\lib_rend\ivas_td_ring_buffer.c">
      <Filter>rend_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_rend\ivas_cldfb_ring_buffer.c">
      <Filter>rend_c</Filter>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\lib_rend\lib_rend.h" />
+50 −19
Original line number Diff line number Diff line
@@ -130,8 +130,8 @@ static ivas_error ivas_create_handle_isar( ISAR_DEC_SPLIT_REND_WRAPPER_HANDLE *h
static void ivas_destroy_handle_isar( ISAR_DEC_SPLIT_REND_WRAPPER_HANDLE *hSplitBinRend_out );
static int16_t get_render_frame_size_ms( IVAS_RENDER_FRAMESIZE render_framesize );
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
static int16_t get_render_frame_size_samples( Decoder_Struct *st_ivas );
static int16_t ivas_dec_split_rend_cldfb_in( Decoder_Struct *st_ivas );
static int16_t get_render_frame_size_samples( const DECODER_CONFIG_HANDLE hDecoderConfig );
static int16_t ivas_dec_split_rend_cldfb_in( const RENDERER_TYPE renderer_type );
#endif
static void update_voip_rendered20ms( IVAS_DEC_HANDLE hIvasDec, const int16_t nSamplesRendered );

@@ -641,13 +641,23 @@ ivas_error IVAS_DEC_GetRenderFramesize(
    return IVAS_ERR_OK;
}


#ifdef FIX_1119_SPLIT_RENDERING_VOIP
static int16_t get_render_frame_size_samples( Decoder_Struct *st_ivas )
/*---------------------------------------------------------------------*
 * get_render_frame_size_samples( )
 *
 *
 *---------------------------------------------------------------------*/

static int16_t get_render_frame_size_samples(
    const DECODER_CONFIG_HANDLE hDecoderConfig /* i  : configuration structure */
)
{
    return (int16_t) ( st_ivas->hDecoderConfig->output_Fs * st_ivas->hDecoderConfig->render_framesize / ( FRAMES_PER_SEC * IVAS_MAX_PARAM_SPATIAL_SUBFRAMES ) );
    return (int16_t) ( hDecoderConfig->output_Fs * hDecoderConfig->render_framesize / ( FRAMES_PER_SEC * IVAS_MAX_PARAM_SPATIAL_SUBFRAMES ) );
}
#endif


/*---------------------------------------------------------------------*
 * IVAS_DEC_GetGetRenderFramesizeSamples( )
 *
@@ -665,7 +675,7 @@ ivas_error IVAS_DEC_GetRenderFramesizeSamples(
    }

#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    *render_framesize = get_render_frame_size_samples( hIvasDec->st_ivas );
    *render_framesize = get_render_frame_size_samples( hIvasDec->st_ivas->hDecoderConfig );
#else
    *render_framesize = (int16_t) ( hIvasDec->st_ivas->hDecoderConfig->output_Fs * hIvasDec->st_ivas->hDecoderConfig->render_framesize / ( FRAMES_PER_SEC * IVAS_MAX_PARAM_SPATIAL_SUBFRAMES ) );
#endif
@@ -673,6 +683,7 @@ ivas_error IVAS_DEC_GetRenderFramesizeSamples(
    return IVAS_ERR_OK;
}


/*---------------------------------------------------------------------*
 * IVAS_DEC_GetGetRenderFramesizeMs( )
 *
@@ -1904,6 +1915,7 @@ static ivas_error isar_render_poses(
)
{
    float pcmBuf[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES * L_FRAME48k];
    Decoder_Struct *st_ivas;
    ivas_error error;
    int16_t i, j, numPoses;

@@ -1914,7 +1926,9 @@ static ivas_error isar_render_poses(

    *needNewFrame = false;

    numPoses = hIvasDec->st_ivas->hSplitBinRend->splitrend.multiBinPoseData.num_poses;
    st_ivas = hIvasDec->st_ivas;

    numPoses = st_ivas->hSplitBinRend->splitrend.multiBinPoseData.num_poses;

    /* init flush buffer for rate switch if not already initizalized */
    if ( hIvasDec->flushbuffer == NULL )
@@ -1939,9 +1953,9 @@ static ivas_error isar_render_poses(
        return IVAS_ERR_OK;
    }

    if ( !ivas_dec_split_rend_cldfb_in( hIvasDec->st_ivas ) )
    if ( !ivas_dec_split_rend_cldfb_in( st_ivas->renderer_type ) )
    {
        ivas_TD_RINGBUF_PushInterleaved( hIvasDec->st_ivas->hSplitBinRend->hMultiBinTdData, pcmBuf, *nOutSamples );
        ivas_TD_RINGBUF_PushInterleaved( st_ivas->hSplitBinRend->hMultiBinTdData, pcmBuf, *nOutSamples );
    }

    /* change buffer layout */
@@ -3792,6 +3806,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples
    }

#endif

    /* make sure that the FIFO after decoder/scaler contains at least one sound card frame (i.e. 20ms) */
    while ( *nSamplesRendered < nSamplesPerChannel )
    {
@@ -4003,7 +4018,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    if ( hIvasDec->hasDecodedFirstGoodFrame && splitRendBits != NULL )
    {
        if ( !ivas_dec_split_rend_cldfb_in( st_ivas ) )
        if ( !ivas_dec_split_rend_cldfb_in( st_ivas->renderer_type ) )
        {
            ivas_TD_RINGBUF_PopChannels( hIvasDec->st_ivas->hSplitBinRend->hMultiBinTdData, p_head_pose_buf, *nSamplesRendered );
        }
@@ -5456,17 +5471,33 @@ static ivas_error ivas_dec_reconfig_split_rend(
    return IVAS_ERR_OK;
}


#ifdef FIX_1119_SPLIT_RENDERING_VOIP
static int16_t ivas_dec_split_rend_cldfb_in( Decoder_Struct *st_ivas )
{
/*-------------------------------------------------------------------*
 * ivas_dec_split_rend_cldfb_in()
 *
 *
 *-------------------------------------------------------------------*/

    return st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV ||
           st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ||
           st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC ||
           st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM;
static int16_t ivas_dec_split_rend_cldfb_in(
    const RENDERER_TYPE renderer_type /* i  : renderer type     */
)
{
    if ( renderer_type == RENDERER_BINAURAL_FASTCONV ||
         renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ||
         renderer_type == RENDERER_BINAURAL_PARAMETRIC ||
         renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM )
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
#endif


/*-------------------------------------------------------------------*
 * ivas_dec_init_split_rend()
 *
@@ -5488,7 +5519,7 @@ static ivas_error ivas_dec_init_split_rend(
    cldfb_in_flag = 0;

#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    cldfb_in_flag = ivas_dec_split_rend_cldfb_in( st_ivas );
    cldfb_in_flag = ivas_dec_split_rend_cldfb_in( st_ivas->renderer_type );
#else
    if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV ||
         st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ||
@@ -5501,6 +5532,7 @@ static ivas_error ivas_dec_init_split_rend(

#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    ISAR_PRE_REND_GetMultiBinPoseData( &st_ivas->hRenderConfig->split_rend_config, &st_ivas->hSplitBinRend->splitrend.multiBinPoseData, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->sr_pose_pred_axis : DEFAULT_AXIS );

    num_poses = st_ivas->hSplitBinRend->splitrend.multiBinPoseData.num_poses;
    assert( num_poses <= MAX_HEAD_ROT_POSES );

@@ -5517,8 +5549,7 @@ static ivas_error ivas_dec_init_split_rend(
    }
    else
    {
        error = ivas_TD_RINGBUF_Open( &st_ivas->hSplitBinRend->hMultiBinTdData, get_render_frame_size_samples( st_ivas ), num_poses * BINAURAL_CHANNELS );
        if ( error != IVAS_ERR_OK )
        if ( ( error = ivas_TD_RINGBUF_Open( &st_ivas->hSplitBinRend->hMultiBinTdData, get_render_frame_size_samples( st_ivas->hDecoderConfig ), num_poses * BINAURAL_CHANNELS ) ) != IVAS_ERR_OK )
        {
            return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for split rendering structure" );
        }
Loading