Loading Workspace_msvc/lib_dec.vcxproj +0 −1 Original line number Diff line number Diff line Loading @@ -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" /> Loading Workspace_msvc/lib_dec.vcxproj.filters +0 −3 Original line number Diff line number Diff line Loading @@ -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"> Loading Workspace_msvc/lib_rend.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -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" /> Loading Workspace_msvc/lib_rend.vcxproj.filters +3 −0 Original line number Diff line number Diff line Loading @@ -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" /> Loading lib_dec/lib_dec.c +50 −19 Original line number Diff line number Diff line Loading @@ -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 ); Loading Loading @@ -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( ) * Loading @@ -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 Loading @@ -673,6 +683,7 @@ ivas_error IVAS_DEC_GetRenderFramesizeSamples( return IVAS_ERR_OK; } /*---------------------------------------------------------------------* * IVAS_DEC_GetGetRenderFramesizeMs( ) * Loading Loading @@ -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; Loading @@ -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 ) Loading @@ -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 */ Loading Loading @@ -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 ) { Loading Loading @@ -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 ); } Loading Loading @@ -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() * Loading @@ -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 || Loading @@ -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 ); Loading @@ -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 Loading
Workspace_msvc/lib_dec.vcxproj +0 −1 Original line number Diff line number Diff line Loading @@ -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" /> Loading
Workspace_msvc/lib_dec.vcxproj.filters +0 −3 Original line number Diff line number Diff line Loading @@ -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"> Loading
Workspace_msvc/lib_rend.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -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" /> Loading
Workspace_msvc/lib_rend.vcxproj.filters +3 −0 Original line number Diff line number Diff line Loading @@ -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" /> Loading
lib_dec/lib_dec.c +50 −19 Original line number Diff line number Diff line Loading @@ -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 ); Loading Loading @@ -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( ) * Loading @@ -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 Loading @@ -673,6 +683,7 @@ ivas_error IVAS_DEC_GetRenderFramesizeSamples( return IVAS_ERR_OK; } /*---------------------------------------------------------------------* * IVAS_DEC_GetGetRenderFramesizeMs( ) * Loading Loading @@ -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; Loading @@ -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 ) Loading @@ -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 */ Loading Loading @@ -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 ) { Loading Loading @@ -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 ); } Loading Loading @@ -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() * Loading @@ -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 || Loading @@ -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 ); Loading @@ -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