📄 voip_adapter_compare.c
字号:
if( in_pCurrentVpGroup->un32NbResources > 2 )
{
/*
* Group 1 conferencing parameters
*/
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.fDominantAlgoEnabled != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.fDominantAlgoEnabled )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.un16AttackTimeMsec != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.un16AttackTimeMsec )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.n16NoiseThreshold1 != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.n16NoiseThreshold1 )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.n16NoiseThreshold2 != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.n16NoiseThreshold2 )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.un16HoldTimeMsec != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.un16HoldTimeMsec )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.un16MaxNbTalkerInGroup0 != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.un16MaxNbTalkerInGroup0 )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.n16AttenuationOfGroup0Db != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.n16AttenuationOfGroup0Db )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.un16MaxNbTalkerInGroup1 != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.un16MaxNbTalkerInGroup1 )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.n16AttenuationOfGroup1Db != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.n16AttenuationOfGroup1Db )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.un16MaxNbTalkerInGroup2 != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.un16MaxNbTalkerInGroup2 )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.n16AttenuationOfGroup2Db != in_pTargetVpGroup->GroupParams.Group1.Conf.DominantAlgoParams.n16AttenuationOfGroup2Db )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
}
/*
* Group 1 resources
*/
for( un32Index = 0; un32Index < in_pCurrentVpGroup->un32NbResources; un32Index++ )
{
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.ResType != in_pTargetVpGroup->aRes[un32Index].Params.Group1.ResType )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
/*
* Group 1 TDM resource
*/
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.ResType == TB640_VP_RES_TYPE_TDM )
{
/*
* Group 1 tone parameters
*/
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.CountryCode != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.CountryCode )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.DetectionTypeMask != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.DetectionTypeMask )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fGenerationEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fGenerationEnabled )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fDetectionEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fDetectionEnabled )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fToneVerificationEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fToneVerificationEnabled )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fEarlyToneDetectionEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fEarlyToneDetectionEnabled )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fDtmfSuppressionEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fDtmfSuppressionEnabled )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fDtmfCompleteSuppression != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.fDtmfCompleteSuppression )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.un16DtmfMinValidToneOnMsec != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.un16DtmfMinValidToneOnMsec )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.un16DtmfMinValidToneOffMsec != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.un16DtmfMinValidToneOffMsec )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.un16DtmfMaxValidToneDropout != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Tone.un16DtmfMaxValidToneDropout )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
/*
* Group 1 automatic gain control parameters
*/
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.fEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.fEnabled )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.fEnabled == TBX_TRUE )
{
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.TargetPower != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.TargetPower )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.LossLimit != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.LossLimit )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.GainLimit != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.GainLimit )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.SlewRate != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Agc.SlewRate )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
}
/*
* Group 1 voice activity detection parameters
*/
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Vad.fEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Vad.fEnabled )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Vad.fEnabled == TBX_TRUE )
{
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Vad.SidGenerationScheme != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Vad.SidGenerationScheme )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Vad.CngGenerationScheme != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Vad.CngGenerationScheme )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Vad.NoiseFloor != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Vad.NoiseFloor )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
}
/*
* Group 1 volume control parameters
*/
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.VolumeCtrlTowardTdm != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.VolumeCtrlTowardTdm )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.VolumeCtrlFromTdm != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.VolumeCtrlFromTdm )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
/*
* Group 1 echo cancellation parameters
*/
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnable != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnable )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnable == TBX_TRUE )
{
/*
* Group 1 echo cancellation parameters
*/
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableDCRemovalFilter != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableDCRemovalFilter )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableCoefficientUpdate != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableCoefficientUpdate )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableNonLinearProcessor != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableNonLinearProcessor )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.NonLinearProcessorTuneOption!= in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.NonLinearProcessorTuneOption )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableComfortNoiseGeneration != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableComfortNoiseGeneration )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableCrossCorrelationCalculation != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableCrossCorrelationCalculation )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableSpecialEchoPathChange != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableSpecialEchoPathChange )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableEchoReturnLossDetection != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableEchoReturnLossDetection )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableFastConvergenceControl != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.fEnableFastConvergenceControl )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.un8TailLengthMsec != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.un8TailLengthMsec )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.un8WindowSizeMsec != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.un8WindowSizeMsec )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.DigitalGain != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Tdm.Echo.DigitalGain )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
}
}
/*
* Group 1 Stream resource
*/
else if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.ResType == TB640_VP_RES_TYPE_STREAM )
{
/*
* Group 1 tone parameters
*/
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Stream.Tone.CountryCode != in_pTargetVpGroup->aRes[un32Index].Params.Group1.Stream.Tone.CountryCode )
{
*out_pfMustReallocate = TBX_TRUE;
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
if( in_pCurrentVpGroup->aRes[un32Index].Params.Group1.Stream.Tone.DetectionTypeMask != in_pTargetVpGroup->aRes[
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -