Loading lib_dec/ivas_objectRenderer_internal.c +10 −1 Original line number Diff line number Diff line Loading @@ -75,12 +75,21 @@ ivas_error ivas_td_binaural_renderer( const int16_t output_frame /* i : output frame length */ ) { #ifdef FIX_356_ISM_METADATA_SYNC int16_t ism_md_subframe_update = 2; return ivas_td_binaural_renderer_unwrap( st_ivas->hReverb, st_ivas->transport_config, st_ivas->hBinRendererTd, st_ivas->nchan_transport, LFE_CHANNEL, st_ivas->ivas_format, st_ivas->hIsmMetaData, st_ivas->hDecoderConfig->Opt_Headrotation, (st_ivas->hHeadTrackData != NULL) ? st_ivas->hHeadTrackData->Quaternions : NULL, (st_ivas->hHeadTrackData != NULL) ? st_ivas->hHeadTrackData->Pos : NULL, ism_md_subframe_update, output, output_frame); #else return ivas_td_binaural_renderer_unwrap( st_ivas->hReverb, st_ivas->transport_config, st_ivas->hBinRendererTd, st_ivas->nchan_transport, LFE_CHANNEL, st_ivas->ivas_format, st_ivas->hIsmMetaData, st_ivas->hDecoderConfig->Opt_Headrotation, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->Quaternions : NULL, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->Pos : NULL, output, output_frame ); #endif } #ifdef JBM_TSM_ON_TCS Loading @@ -103,7 +112,7 @@ void ObjRenderIVASSubframe( float *tc_local[MAX_TRANSPORT_CHANNELS]; int16_t ch, slot_size, slots_to_render, output_frame; #ifdef FIX_356_ISM_METADATA_SYNC int16_t subframe_update = 0; int16_t subframe_update = 0; /* Number of subframes to delay metadata to sync with audio */ #endif for ( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { Loading lib_rend/ivas_objectRenderer.c +23 −7 Original line number Diff line number Diff line Loading @@ -265,6 +265,9 @@ ivas_error ivas_td_binaural_renderer_unwrap( const int16_t Opt_Headrotation, /* i : Head rotation flag */ const IVAS_QUATERNION *Quaternions, /* i : Head tracking data per subframe */ const IVAS_VECTOR3 *Pos, /* i : Listener position data per subframe */ #ifdef FIX_356_ISM_METADATA_SYNC const int16_t ism_md_subframe_update, /* i: Number of subframes to delay ism metadata to sync with audio */ #endif #ifdef JBM_TSM_ON_TCS float *output[], /* i/o: SCE channels / Binaural synthesis */ #else Loading @@ -290,8 +293,7 @@ ivas_error ivas_td_binaural_renderer_unwrap( subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; #ifdef FIX_356_ISM_METADATA_SYNC int16_t c_indx, nS, subframe_update; subframe_update = 0; int16_t c_indx, nS; c_indx = 0; for ( nS = 0; nS < num_src; nS++ ) Loading @@ -311,7 +313,7 @@ ivas_error ivas_td_binaural_renderer_unwrap( for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { #ifdef FIX_356_ISM_METADATA_SYNC if ( subframe_idx == subframe_update ) if ( subframe_idx == ism_md_subframe_update ) { /* Update object position(s) */ TDREND_Update_object_positions( hBinRendererTd, num_src, ivas_format, hIsmMetaData ); Loading @@ -334,7 +336,7 @@ ivas_error ivas_td_binaural_renderer_unwrap( /* Render subframe */ #ifdef FIX_356_ISM_METADATA_SYNC if ( ( error = TDREND_GetMix( hBinRendererTd, output, subframe_length, subframe_idx, subframe_update ) ) != IVAS_ERR_OK ) if ( ( error = TDREND_GetMix( hBinRendererTd, output, subframe_length, subframe_idx, ism_md_subframe_update ) ) != IVAS_ERR_OK ) #else if ( ( error = TDREND_GetMix( hBinRendererTd, output, subframe_length, subframe_idx ) ) != IVAS_ERR_OK ) #endif Loading Loading @@ -372,7 +374,7 @@ ivas_error TDREND_GetMix( const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ #ifdef FIX_356_ISM_METADATA_SYNC , const int16_t subframe_update const int16_t ism_md_subframe_update /* Number of subframes to delay ism metadata to sync with audio */ #endif ) { Loading @@ -390,7 +392,7 @@ ivas_error TDREND_GetMix( #endif #ifdef FIX_356_ISM_METADATA_SYNC int16_t subframe_update_flag; subframe_update_flag = subframe_idx == subframe_update; subframe_update_flag = subframe_idx == ism_md_subframe_update; #endif error = IVAS_ERR_OK; Loading Loading @@ -700,6 +702,9 @@ ivas_error ivas_td_binaural_renderer_ext( IVAS_REND_AudioConfigType inConfigType; AUDIO_CONFIG transport_config; ivas_error error; #ifdef FIX_356_ISM_METADATA_SYNC int16_t ism_md_subframe_update = 0; #endif #ifdef JBM_TSM_ON_TCS float *p_output[MAX_OUTPUT_CHANNELS]; int16_t ch; Loading Loading @@ -750,14 +755,25 @@ ivas_error ivas_td_binaural_renderer_ext( } #ifdef JBM_TSM_ON_TCS #ifdef FIX_356_ISM_METADATA_SYNC if( ( error = ivas_td_binaural_renderer_unwrap( hReverb, transport_config, pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, headRotData->headRotEnabled, ( headRotData != NULL ) ? headRotData->headPositions : NULL, ( headRotData != NULL ) ? headRotData->Pos : NULL, ism_md_subframe_update, p_output, output_frame ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_td_binaural_renderer_unwrap( hReverb, transport_config, pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, headRotData->headRotEnabled, ( headRotData != NULL ) ? headRotData->headPositions : NULL, ( headRotData != NULL ) ? headRotData->Pos : NULL, p_output, output_frame ) ) != IVAS_ERR_OK ) #endif #else #ifdef FIX_356_ISM_METADATA_SYNC if ( ( error = ivas_td_binaural_renderer_unwrap( hReverb, transport_config, pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, headRotData->headRotEnabled, ( headRotData != NULL ) ? headRotData->headPositions : NULL, ( headRotData != NULL ) ? headRotData->Pos : NULL, ism_md_subframe_update, output, output_frame ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_td_binaural_renderer_unwrap( hReverb, transport_config, pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, headRotData->headRotEnabled, ( headRotData != NULL ) ? headRotData->headPositions : NULL, ( headRotData != NULL ) ? headRotData->Pos : NULL, output, output_frame ) ) != IVAS_ERR_OK ) #endif #endif { return error; Loading lib_rend/ivas_prot_rend.h +3 −0 Original line number Diff line number Diff line Loading @@ -246,6 +246,9 @@ ivas_error ivas_td_binaural_renderer_unwrap( const int16_t Opt_Headrotation, /* i : Head rotation flag */ const IVAS_QUATERNION *Quaternions, /* i : Head tracking data per subframe */ const IVAS_VECTOR3 *Pos, /* i : Listener position data per subframe */ #ifdef FIX_356_ISM_METADATA_SYNC const int16_t ism_md_subframe_update, #endif #ifdef JBM_TSM_ON_TCS float *output[], /* i/o: SCE channels / Binaural synthesis */ #else Loading Loading
lib_dec/ivas_objectRenderer_internal.c +10 −1 Original line number Diff line number Diff line Loading @@ -75,12 +75,21 @@ ivas_error ivas_td_binaural_renderer( const int16_t output_frame /* i : output frame length */ ) { #ifdef FIX_356_ISM_METADATA_SYNC int16_t ism_md_subframe_update = 2; return ivas_td_binaural_renderer_unwrap( st_ivas->hReverb, st_ivas->transport_config, st_ivas->hBinRendererTd, st_ivas->nchan_transport, LFE_CHANNEL, st_ivas->ivas_format, st_ivas->hIsmMetaData, st_ivas->hDecoderConfig->Opt_Headrotation, (st_ivas->hHeadTrackData != NULL) ? st_ivas->hHeadTrackData->Quaternions : NULL, (st_ivas->hHeadTrackData != NULL) ? st_ivas->hHeadTrackData->Pos : NULL, ism_md_subframe_update, output, output_frame); #else return ivas_td_binaural_renderer_unwrap( st_ivas->hReverb, st_ivas->transport_config, st_ivas->hBinRendererTd, st_ivas->nchan_transport, LFE_CHANNEL, st_ivas->ivas_format, st_ivas->hIsmMetaData, st_ivas->hDecoderConfig->Opt_Headrotation, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->Quaternions : NULL, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->Pos : NULL, output, output_frame ); #endif } #ifdef JBM_TSM_ON_TCS Loading @@ -103,7 +112,7 @@ void ObjRenderIVASSubframe( float *tc_local[MAX_TRANSPORT_CHANNELS]; int16_t ch, slot_size, slots_to_render, output_frame; #ifdef FIX_356_ISM_METADATA_SYNC int16_t subframe_update = 0; int16_t subframe_update = 0; /* Number of subframes to delay metadata to sync with audio */ #endif for ( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) { Loading
lib_rend/ivas_objectRenderer.c +23 −7 Original line number Diff line number Diff line Loading @@ -265,6 +265,9 @@ ivas_error ivas_td_binaural_renderer_unwrap( const int16_t Opt_Headrotation, /* i : Head rotation flag */ const IVAS_QUATERNION *Quaternions, /* i : Head tracking data per subframe */ const IVAS_VECTOR3 *Pos, /* i : Listener position data per subframe */ #ifdef FIX_356_ISM_METADATA_SYNC const int16_t ism_md_subframe_update, /* i: Number of subframes to delay ism metadata to sync with audio */ #endif #ifdef JBM_TSM_ON_TCS float *output[], /* i/o: SCE channels / Binaural synthesis */ #else Loading @@ -290,8 +293,7 @@ ivas_error ivas_td_binaural_renderer_unwrap( subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; #ifdef FIX_356_ISM_METADATA_SYNC int16_t c_indx, nS, subframe_update; subframe_update = 0; int16_t c_indx, nS; c_indx = 0; for ( nS = 0; nS < num_src; nS++ ) Loading @@ -311,7 +313,7 @@ ivas_error ivas_td_binaural_renderer_unwrap( for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { #ifdef FIX_356_ISM_METADATA_SYNC if ( subframe_idx == subframe_update ) if ( subframe_idx == ism_md_subframe_update ) { /* Update object position(s) */ TDREND_Update_object_positions( hBinRendererTd, num_src, ivas_format, hIsmMetaData ); Loading @@ -334,7 +336,7 @@ ivas_error ivas_td_binaural_renderer_unwrap( /* Render subframe */ #ifdef FIX_356_ISM_METADATA_SYNC if ( ( error = TDREND_GetMix( hBinRendererTd, output, subframe_length, subframe_idx, subframe_update ) ) != IVAS_ERR_OK ) if ( ( error = TDREND_GetMix( hBinRendererTd, output, subframe_length, subframe_idx, ism_md_subframe_update ) ) != IVAS_ERR_OK ) #else if ( ( error = TDREND_GetMix( hBinRendererTd, output, subframe_length, subframe_idx ) ) != IVAS_ERR_OK ) #endif Loading Loading @@ -372,7 +374,7 @@ ivas_error TDREND_GetMix( const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ #ifdef FIX_356_ISM_METADATA_SYNC , const int16_t subframe_update const int16_t ism_md_subframe_update /* Number of subframes to delay ism metadata to sync with audio */ #endif ) { Loading @@ -390,7 +392,7 @@ ivas_error TDREND_GetMix( #endif #ifdef FIX_356_ISM_METADATA_SYNC int16_t subframe_update_flag; subframe_update_flag = subframe_idx == subframe_update; subframe_update_flag = subframe_idx == ism_md_subframe_update; #endif error = IVAS_ERR_OK; Loading Loading @@ -700,6 +702,9 @@ ivas_error ivas_td_binaural_renderer_ext( IVAS_REND_AudioConfigType inConfigType; AUDIO_CONFIG transport_config; ivas_error error; #ifdef FIX_356_ISM_METADATA_SYNC int16_t ism_md_subframe_update = 0; #endif #ifdef JBM_TSM_ON_TCS float *p_output[MAX_OUTPUT_CHANNELS]; int16_t ch; Loading Loading @@ -750,14 +755,25 @@ ivas_error ivas_td_binaural_renderer_ext( } #ifdef JBM_TSM_ON_TCS #ifdef FIX_356_ISM_METADATA_SYNC if( ( error = ivas_td_binaural_renderer_unwrap( hReverb, transport_config, pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, headRotData->headRotEnabled, ( headRotData != NULL ) ? headRotData->headPositions : NULL, ( headRotData != NULL ) ? headRotData->Pos : NULL, ism_md_subframe_update, p_output, output_frame ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_td_binaural_renderer_unwrap( hReverb, transport_config, pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, headRotData->headRotEnabled, ( headRotData != NULL ) ? headRotData->headPositions : NULL, ( headRotData != NULL ) ? headRotData->Pos : NULL, p_output, output_frame ) ) != IVAS_ERR_OK ) #endif #else #ifdef FIX_356_ISM_METADATA_SYNC if ( ( error = ivas_td_binaural_renderer_unwrap( hReverb, transport_config, pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, headRotData->headRotEnabled, ( headRotData != NULL ) ? headRotData->headPositions : NULL, ( headRotData != NULL ) ? headRotData->Pos : NULL, ism_md_subframe_update, output, output_frame ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_td_binaural_renderer_unwrap( hReverb, transport_config, pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, headRotData->headRotEnabled, ( headRotData != NULL ) ? headRotData->headPositions : NULL, ( headRotData != NULL ) ? headRotData->Pos : NULL, output, output_frame ) ) != IVAS_ERR_OK ) #endif #endif { return error; Loading
lib_rend/ivas_prot_rend.h +3 −0 Original line number Diff line number Diff line Loading @@ -246,6 +246,9 @@ ivas_error ivas_td_binaural_renderer_unwrap( const int16_t Opt_Headrotation, /* i : Head rotation flag */ const IVAS_QUATERNION *Quaternions, /* i : Head tracking data per subframe */ const IVAS_VECTOR3 *Pos, /* i : Listener position data per subframe */ #ifdef FIX_356_ISM_METADATA_SYNC const int16_t ism_md_subframe_update, #endif #ifdef JBM_TSM_ON_TCS float *output[], /* i/o: SCE channels / Binaural synthesis */ #else Loading