Home
last modified time | relevance | path

Searched refs:LVM_FLOAT (Results 1 – 25 of 153) sorted by relevance

1234567

/frameworks/av/media/libeffects/lvm/lib/Common/src/
DLVC_Core_MixSoft_1St_2i_D16C31_WRA.c30 static LVM_FLOAT ADD2_SAT_FLOAT(LVM_FLOAT a, in ADD2_SAT_FLOAT()
31 LVM_FLOAT b, in ADD2_SAT_FLOAT()
32 LVM_FLOAT c) in ADD2_SAT_FLOAT()
34 LVM_FLOAT temp; in ADD2_SAT_FLOAT()
46 const LVM_FLOAT *src, in LVC_Core_MixSoft_1St_2i_D16C31_WRA()
47 LVM_FLOAT *dst, in LVC_Core_MixSoft_1St_2i_D16C31_WRA()
56 LVM_FLOAT DeltaL = pInstanceL->Delta; in LVC_Core_MixSoft_1St_2i_D16C31_WRA()
57 LVM_FLOAT CurrentL = pInstanceL->Current; in LVC_Core_MixSoft_1St_2i_D16C31_WRA()
58 LVM_FLOAT TargetL = pInstanceL->Target; in LVC_Core_MixSoft_1St_2i_D16C31_WRA()
60 LVM_FLOAT DeltaR = pInstanceR->Delta; in LVC_Core_MixSoft_1St_2i_D16C31_WRA()
[all …]
DAGC_MIX_VOL_2St1Mon_D32_WRA.c201 const LVM_FLOAT *pStSrc, /* Stereo source */ in AGC_MIX_VOL_2St1Mon_D32_WRA()
202 const LVM_FLOAT *pMonoSrc, /* Mono source */ in AGC_MIX_VOL_2St1Mon_D32_WRA()
203 LVM_FLOAT *pDst, /* Stereo destination */ in AGC_MIX_VOL_2St1Mon_D32_WRA()
211 LVM_FLOAT Left; /* Left sample */ in AGC_MIX_VOL_2St1Mon_D32_WRA()
212 LVM_FLOAT Right; /* Right sample */ in AGC_MIX_VOL_2St1Mon_D32_WRA()
213 LVM_FLOAT Mono; /* Mono sample */ in AGC_MIX_VOL_2St1Mon_D32_WRA()
214 LVM_FLOAT AbsPeak; /* Absolute peak signal */ in AGC_MIX_VOL_2St1Mon_D32_WRA()
215 LVM_FLOAT AGC_Mult; /* Short AGC gain */ in AGC_MIX_VOL_2St1Mon_D32_WRA()
216 LVM_FLOAT Vol_Mult; /* Short volume */ in AGC_MIX_VOL_2St1Mon_D32_WRA()
222 LVM_FLOAT AGC_Gain = pInstance->AGC_Gain; /* Get the current AGC gain */ in AGC_MIX_VOL_2St1Mon_D32_WRA()
[all …]
DLVC_Core_MixSoft_1St_D16C31_WRA.c31 const LVM_FLOAT *src, in LVC_Core_MixSoft_1St_D16C31_WRA()
32 LVM_FLOAT *dst, in LVC_Core_MixSoft_1St_D16C31_WRA()
39 LVM_FLOAT Delta= (LVM_FLOAT)pInstance->Delta; in LVC_Core_MixSoft_1St_D16C31_WRA()
40 LVM_FLOAT Current = (LVM_FLOAT)pInstance->Current; in LVC_Core_MixSoft_1St_D16C31_WRA()
41 LVM_FLOAT Target= (LVM_FLOAT)pInstance->Target; in LVC_Core_MixSoft_1St_D16C31_WRA()
42 LVM_FLOAT Temp; in LVC_Core_MixSoft_1St_D16C31_WRA()
61 *(dst++) = (((LVM_FLOAT)*(src++) * (LVM_FLOAT)Current)); in LVC_Core_MixSoft_1St_D16C31_WRA()
78 *(dst++) = (((LVM_FLOAT)*(src++) * Current) ); in LVC_Core_MixSoft_1St_D16C31_WRA()
79 *(dst++) = (((LVM_FLOAT)*(src++) * Current) ); in LVC_Core_MixSoft_1St_D16C31_WRA()
80 *(dst++) = (((LVM_FLOAT)*(src++) * Current) ); in LVC_Core_MixSoft_1St_D16C31_WRA()
[all …]
DLVC_Mixer_Private.h33 LVM_FLOAT Target; /*number specifying value of Target Gain */
34 LVM_FLOAT Current; /*number specifying value of Current Gain */
35 LVM_FLOAT Delta; /*number specifying value of Delta Gain */
62 const LVM_FLOAT *src,
63 LVM_FLOAT *dst,
73 const LVM_FLOAT *src,
74 LVM_FLOAT *dst,
85 const LVM_FLOAT *src1,
86 const LVM_FLOAT *src2,
87 LVM_FLOAT *dst,
[all …]
DLVC_Mixer.h37 LVM_FLOAT PrivateParams[3]; /* Private Instance params for \
106 LVM_FLOAT TargetGain);
112 LVM_FLOAT LVC_Mixer_GetTarget( LVMixer3_FLOAT_st *pStream);
118 LVM_FLOAT LVC_Mixer_GetCurrent( LVMixer3_FLOAT_st *pStream);
125 LVM_FLOAT TargetGain,
126 LVM_FLOAT CurrentGain);
161 const LVM_FLOAT *src,
162 LVM_FLOAT *dst,
173 LVM_FLOAT *src,
174 LVM_FLOAT *dst,
[all …]
DLVC_Core_MixInSoft_D16C31_SAT.c30 const LVM_FLOAT *src, in LVC_Core_MixInSoft_D16C31_SAT()
31 LVM_FLOAT *dst, in LVC_Core_MixInSoft_D16C31_SAT()
39 LVM_FLOAT Delta = pInstance->Delta; in LVC_Core_MixInSoft_D16C31_SAT()
40 LVM_FLOAT Current = pInstance->Current; in LVC_Core_MixInSoft_D16C31_SAT()
41 LVM_FLOAT Target = pInstance->Target; in LVC_Core_MixInSoft_D16C31_SAT()
42 LVM_FLOAT Temp; in LVC_Core_MixInSoft_D16C31_SAT()
55 Temp = ((LVM_FLOAT)*dst) + (((LVM_FLOAT)*(src++) * Current)); in LVC_Core_MixInSoft_D16C31_SAT()
61 *dst++ = (LVM_FLOAT)Temp; in LVC_Core_MixInSoft_D16C31_SAT()
72 Temp = ((LVM_FLOAT)*dst) + (((LVM_FLOAT)*(src++) * Current)); in LVC_Core_MixInSoft_D16C31_SAT()
78 *dst++ = (LVM_FLOAT)Temp; in LVC_Core_MixInSoft_D16C31_SAT()
[all …]
DBQ_2I_D16F16C15_TRC_WRA_01.c42 LVM_FLOAT *pDataIn, in BQ_2I_D16F16C15_TRC_WRA_01()
43 LVM_FLOAT *pDataOut, in BQ_2I_D16F16C15_TRC_WRA_01()
46 LVM_FLOAT ynL,ynR; in BQ_2I_D16F16C15_TRC_WRA_01()
58 ynL = (LVM_FLOAT)pBiquadState->coefs[0] * pBiquadState->pDelays[2]; in BQ_2I_D16F16C15_TRC_WRA_01()
61 ynL += (LVM_FLOAT)pBiquadState->coefs[1] * pBiquadState->pDelays[0]; in BQ_2I_D16F16C15_TRC_WRA_01()
64 ynL += (LVM_FLOAT)pBiquadState->coefs[2] * (*pDataIn); in BQ_2I_D16F16C15_TRC_WRA_01()
67 ynL += (LVM_FLOAT)pBiquadState->coefs[3] * pBiquadState->pDelays[6]; in BQ_2I_D16F16C15_TRC_WRA_01()
70 ynL += (LVM_FLOAT)pBiquadState->coefs[4] * pBiquadState->pDelays[4]; in BQ_2I_D16F16C15_TRC_WRA_01()
78 ynR = (LVM_FLOAT)pBiquadState->coefs[0] * pBiquadState->pDelays[3]; in BQ_2I_D16F16C15_TRC_WRA_01()
81 ynR += (LVM_FLOAT)pBiquadState->coefs[1] * pBiquadState->pDelays[1]; in BQ_2I_D16F16C15_TRC_WRA_01()
[all …]
DBQ_2I_D16F16C14_TRC_WRA_01.c42 LVM_FLOAT *pDataIn, in BQ_2I_D16F16C14_TRC_WRA_01()
43 LVM_FLOAT *pDataOut, in BQ_2I_D16F16C14_TRC_WRA_01()
46 LVM_FLOAT ynL,ynR; in BQ_2I_D16F16C14_TRC_WRA_01()
57 ynL = (LVM_FLOAT)pBiquadState->coefs[0] * pBiquadState->pDelays[2]; in BQ_2I_D16F16C14_TRC_WRA_01()
60 ynL += (LVM_FLOAT)pBiquadState->coefs[1] * pBiquadState->pDelays[0]; in BQ_2I_D16F16C14_TRC_WRA_01()
63 ynL += (LVM_FLOAT)pBiquadState->coefs[2] * (*pDataIn); in BQ_2I_D16F16C14_TRC_WRA_01()
66 ynL += (LVM_FLOAT)pBiquadState->coefs[3] * pBiquadState->pDelays[6]; in BQ_2I_D16F16C14_TRC_WRA_01()
69 ynL += (LVM_FLOAT)pBiquadState->coefs[4] * pBiquadState->pDelays[4]; in BQ_2I_D16F16C14_TRC_WRA_01()
77 ynR = (LVM_FLOAT)pBiquadState->coefs[0] * pBiquadState->pDelays[3]; in BQ_2I_D16F16C14_TRC_WRA_01()
80 ynR += (LVM_FLOAT)pBiquadState->coefs[1] * pBiquadState->pDelays[1]; in BQ_2I_D16F16C14_TRC_WRA_01()
[all …]
DFilters.h50 LVM_FLOAT A0;
51 LVM_FLOAT A1;
52 LVM_FLOAT A2;
53 LVM_FLOAT B1;
54 LVM_FLOAT B2;
73 LVM_FLOAT A0;
74 LVM_FLOAT A1;
75 LVM_FLOAT B1;
DLVC_Core_MixHard_2St_D16C31_SAT.c30 const LVM_FLOAT *src1, in LVC_Core_MixHard_2St_D16C31_SAT()
31 const LVM_FLOAT *src2, in LVC_Core_MixHard_2St_D16C31_SAT()
32 LVM_FLOAT *dst, in LVC_Core_MixHard_2St_D16C31_SAT()
35 LVM_FLOAT Temp; in LVC_Core_MixHard_2St_D16C31_SAT()
37 LVM_FLOAT Current1; in LVC_Core_MixHard_2St_D16C31_SAT()
38 LVM_FLOAT Current2; in LVC_Core_MixHard_2St_D16C31_SAT()
47 Temp = (((LVM_FLOAT)*(src1++) * (LVM_FLOAT)Current1)) + in LVC_Core_MixHard_2St_D16C31_SAT()
48 (((LVM_FLOAT)*(src2++) * (LVM_FLOAT)Current2)); in LVC_Core_MixHard_2St_D16C31_SAT()
DDelayMix_16x16.c73 void DelayMix_Float(const LVM_FLOAT *src, /* Source 1, to be delayed */ in DelayMix_Float()
74 LVM_FLOAT *delay, /* Delay buffer */ in DelayMix_Float()
76 LVM_FLOAT *dst, /* Source/destination */ in DelayMix_Float()
82 LVM_FLOAT temp; in DelayMix_Float()
87 temp = (LVM_FLOAT)((LVM_FLOAT)(*dst + (LVM_FLOAT)delay[Offset]) / 2.0f); in DelayMix_Float()
97 temp = (LVM_FLOAT)((LVM_FLOAT)(*dst - (LVM_FLOAT)delay[Offset]) / 2.0f); in DelayMix_Float()
DFrom2iToMS_16x16.c57 void From2iToMS_Float( const LVM_FLOAT *src, in From2iToMS_Float()
58 LVM_FLOAT *dstM, in From2iToMS_Float()
59 LVM_FLOAT *dstS, in From2iToMS_Float()
62 LVM_FLOAT temp1,left,right; in From2iToMS_Float()
66 left = (LVM_FLOAT)*src; in From2iToMS_Float()
69 right = (LVM_FLOAT)*src; in From2iToMS_Float()
74 *dstM = (LVM_FLOAT)temp1; in From2iToMS_Float()
79 *dstS = (LVM_FLOAT)temp1; in From2iToMS_Float()
DLVC_Core_MixHard_1St_2i_D16C31_SAT.c33 const LVM_FLOAT *src, in LVC_Core_MixHard_1St_2i_D16C31_SAT()
34 LVM_FLOAT *dst, in LVC_Core_MixHard_1St_2i_D16C31_SAT()
37 LVM_FLOAT Temp; in LVC_Core_MixHard_1St_2i_D16C31_SAT()
43 Temp = ((LVM_FLOAT)*(src++) * (LVM_FLOAT)pInstance1->Current); in LVC_Core_MixHard_1St_2i_D16C31_SAT()
49 *dst++ = (LVM_FLOAT)Temp; in LVC_Core_MixHard_1St_2i_D16C31_SAT()
51 Temp = ((LVM_FLOAT)*(src++) * (LVM_FLOAT)pInstance2->Current); in LVC_Core_MixHard_1St_2i_D16C31_SAT()
57 *dst++ = (LVM_FLOAT)Temp; in LVC_Core_MixHard_1St_2i_D16C31_SAT()
DFO_2I_D16F32C15_LShx_TRC_WRA_01.c37 LVM_FLOAT *pDataIn, in FO_2I_D16F32C15_LShx_TRC_WRA_01()
38 LVM_FLOAT *pDataOut, in FO_2I_D16F32C15_LShx_TRC_WRA_01()
41 LVM_FLOAT ynL,ynR; in FO_2I_D16F32C15_LShx_TRC_WRA_01()
42 LVM_FLOAT Temp; in FO_2I_D16F32C15_LShx_TRC_WRA_01()
43 LVM_FLOAT NegSatValue; in FO_2I_D16F32C15_LShx_TRC_WRA_01()
58 ynL = (LVM_FLOAT)pBiquadState->coefs[0] * pBiquadState->pDelays[0]; in FO_2I_D16F32C15_LShx_TRC_WRA_01()
60 ynR = (LVM_FLOAT)pBiquadState->coefs[0] * pBiquadState->pDelays[2]; in FO_2I_D16F32C15_LShx_TRC_WRA_01()
64 ynL += (LVM_FLOAT)pBiquadState->coefs[1] * (*pDataIn); in FO_2I_D16F32C15_LShx_TRC_WRA_01()
66 ynR += (LVM_FLOAT)pBiquadState->coefs[1] * (*(pDataIn+1)); in FO_2I_D16F32C15_LShx_TRC_WRA_01()
115 *pDataOut++ = (LVM_FLOAT)ynL; in FO_2I_D16F32C15_LShx_TRC_WRA_01()
[all …]
/frameworks/av/media/libeffects/lvm/lib/Common/lib/
DBIQUAD.h33 LVM_FLOAT Storage[6];
51 LVM_FLOAT A2; /* a2 */
52 LVM_FLOAT A1; /* a1 */
53 LVM_FLOAT A0; /* a0 */
54 LVM_FLOAT B2; /* -b2! */
55 LVM_FLOAT B1; /* -b1! */
81 LVM_FLOAT A1; /* a1 */
82 LVM_FLOAT A0; /* a0 */
83 LVM_FLOAT B1; /* -b1! */
105 LVM_FLOAT A1; /* a1 */
[all …]
DVectorArithmetic.h33 void LoadConst_Float( const LVM_FLOAT val,
34 LVM_FLOAT *dst,
47 void Copy_Float( const LVM_FLOAT *src,
48 LVM_FLOAT *dst,
65 void Mult3s_Float( const LVM_FLOAT *src,
66 const LVM_FLOAT val,
67 LVM_FLOAT *dst,
89 void DelayMix_Float(const LVM_FLOAT *src, /* Source 1, to be delayed */
90 LVM_FLOAT *delay, /* Delay buffer */
92 LVM_FLOAT *dst, /* Source/destination */
[all …]
DMixer.h36 LVM_FLOAT Alpha; /* Time constant. Set by calling application. \
38 LVM_FLOAT Target; /* Target value. Set by calling application. \
40 LVM_FLOAT Current; /* Current value. Set by the mixer function. */
50 LVM_FLOAT Alpha1;
51 LVM_FLOAT Target1;
52 LVM_FLOAT Current1;
59 LVM_FLOAT Alpha2; /* Warning the address of this location is passed as a \
61 LVM_FLOAT Target2;
62 LVM_FLOAT Current2;
109 LVM_FLOAT LVM_Mixer_TimeConstant(LVM_UINT32 tc,
[all …]
DAGC.h58 LVM_FLOAT AGC_Gain; /* The current AGC gain */
59 LVM_FLOAT AGC_MaxGain; /* The maximum AGC gain */
60 LVM_FLOAT Volume; /* The current volume setting */
61 LVM_FLOAT Target; /* The target volume setting */
62 LVM_FLOAT AGC_Target; /* AGC target level */
63 LVM_FLOAT AGC_Attack; /* AGC attack scaler */
64 LVM_FLOAT AGC_Decay; /* AGC decay scaler */
65 LVM_FLOAT VolumeTC; /* Volume update time constant */
77 const LVM_FLOAT *pStSrc, /* Stereo source */
78 const LVM_FLOAT *pMonoSrc, /* Mono source */
[all …]
DFilter.h44 LVM_FLOAT LVM_Power10( LVM_FLOAT X);
46 LVM_FLOAT LVM_Polynomial(LVM_UINT16 N,
47 LVM_FLOAT *pCoefficients,
48 LVM_FLOAT X);
50 LVM_FLOAT LVM_GetOmega(LVM_UINT32 Fc,
52 LVM_FLOAT LVM_GetOmega(LVM_UINT16 Fc,
56 LVM_FLOAT LVM_FO_LPF( LVM_FLOAT w,
59 LVM_FLOAT LVM_FO_HPF( LVM_FLOAT w,
/frameworks/av/media/libeffects/lvm/lib/SpectrumAnalyzer/src/
DLVPSA_Control.c531 extern LVM_FLOAT LVPSA_Float_TwoPiOnFsTable[]; in LVPSA_BPSinglePrecCoefs()
532 extern LVM_FLOAT LVPSA_Float_CosCoef[]; in LVPSA_BPSinglePrecCoefs()
538 LVM_FLOAT T0; in LVPSA_BPSinglePrecCoefs()
539 LVM_FLOAT D; in LVPSA_BPSinglePrecCoefs()
540 LVM_FLOAT A0; in LVPSA_BPSinglePrecCoefs()
541 LVM_FLOAT B1; in LVPSA_BPSinglePrecCoefs()
542 LVM_FLOAT B2; in LVPSA_BPSinglePrecCoefs()
543 LVM_FLOAT Dt0; in LVPSA_BPSinglePrecCoefs()
544 LVM_FLOAT B2_Den; in LVPSA_BPSinglePrecCoefs()
545 LVM_FLOAT B2_Num; in LVPSA_BPSinglePrecCoefs()
[all …]
/frameworks/av/media/libeffects/lvm/lib/StereoWidening/src/
DLVCS_BypassMix.c77 LVM_FLOAT Gain; in LVCS_BypassMixInit()
78 LVM_FLOAT Current; in LVCS_BypassMixInit()
97 pInstance->TransitionGain = ((LVM_FLOAT)pParams->EffectLevel / 32767); in LVCS_BypassMixInit()
118 Gain = (LVM_FLOAT)(pOutputGainTable[Offset].Loss * pInstance->TransitionGain); in LVCS_BypassMixInit()
132 LVC_Mixer_Init(&pConfig->Mixer_Instance.MixerStream[0], (LVM_FLOAT)(Gain), Current); in LVCS_BypassMixInit()
147 Gain = (LVM_FLOAT)(pOutputGainTable[Offset].Loss * (1.0 - \ in LVCS_BypassMixInit()
148 (LVM_FLOAT)pInstance->TransitionGain)); in LVCS_BypassMixInit()
149 Gain = (LVM_FLOAT)pOutputGainTable[Offset].UnprocLoss * Gain; in LVCS_BypassMixInit()
151 LVC_Mixer_Init(&pConfig->Mixer_Instance.MixerStream[1], (LVM_FLOAT)(Gain), Current); in LVCS_BypassMixInit()
209 LVM_FLOAT GainCorrect; in LVCS_BypassMixInit()
[all …]
DLVCS_ReverbGenerator.c98 (LVM_FLOAT *)&pConfig->StereoSamples[0], /* Destination */ in LVCS_ReverbGeneratorInit()
100 (LVM_UINT16)(sizeof(pConfig->StereoSamples) / sizeof(LVM_FLOAT))); in LVCS_ReverbGeneratorInit()
108 Coeffs.A0 = (LVM_FLOAT)pReverbCoefTable[Offset].A0; in LVCS_ReverbGeneratorInit()
109 Coeffs.A1 = (LVM_FLOAT)pReverbCoefTable[Offset].A1; in LVCS_ReverbGeneratorInit()
110 Coeffs.A2 = (LVM_FLOAT)pReverbCoefTable[Offset].A2; in LVCS_ReverbGeneratorInit()
111 Coeffs.B1 = (LVM_FLOAT)-pReverbCoefTable[Offset].B1; in LVCS_ReverbGeneratorInit()
112 Coeffs.B2 = (LVM_FLOAT)-pReverbCoefTable[Offset].B2; in LVCS_ReverbGeneratorInit()
118 (LVM_UINT16)(sizeof(pData->ReverbBiquadTaps) / sizeof(LVM_FLOAT))); in LVCS_ReverbGeneratorInit()
147 pConfig->ReverbLevel = ((LVM_FLOAT)(ReverbPercentage>>8)) / 32767.0f; in LVCS_ReverbGeneratorInit()
275 const LVM_FLOAT *pInData, in LVCS_ReverbGenerator()
[all …]
DLVCS_StereoEnhancer.c86 CoeffsMid.A0 = (LVM_FLOAT) LVCS_SEMidCoefTable[Offset].A0; in LVCS_SEnhancerInit()
87 CoeffsMid.A1 = (LVM_FLOAT) LVCS_SEMidCoefTable[Offset].A1; in LVCS_SEnhancerInit()
88 CoeffsMid.B1 = (LVM_FLOAT)-LVCS_SEMidCoefTable[Offset].B1; in LVCS_SEnhancerInit()
95 (LVM_UINT16)(sizeof(pData->SEBiquadTapsMid) / sizeof(LVM_FLOAT))); in LVCS_SEnhancerInit()
112 CoeffsSide.A0 = (LVM_FLOAT) pSESideCoefs[Offset].A0; in LVCS_SEnhancerInit()
113 CoeffsSide.A1 = (LVM_FLOAT) pSESideCoefs[Offset].A1; in LVCS_SEnhancerInit()
114 CoeffsSide.A2 = (LVM_FLOAT) pSESideCoefs[Offset].A2; in LVCS_SEnhancerInit()
115 CoeffsSide.B1 = (LVM_FLOAT)-pSESideCoefs[Offset].B1; in LVCS_SEnhancerInit()
116 CoeffsSide.B2 = (LVM_FLOAT)-pSESideCoefs[Offset].B2; in LVCS_SEnhancerInit()
123 (LVM_UINT16)(sizeof(pData->SEBiquadTapsSide) / sizeof(LVM_FLOAT))); in LVCS_SEnhancerInit()
[all …]
DLVCS_Process.c71 const LVM_FLOAT *pInData, in LVCS_Process_CS()
72 LVM_FLOAT *pOutData, in LVCS_Process_CS()
75 const LVM_FLOAT *pInput; in LVCS_Process_CS()
77 LVM_FLOAT *pScratch; in LVCS_Process_CS()
80 pScratch = (LVM_FLOAT *) \ in LVCS_Process_CS()
90 Copy_Float((LVM_FLOAT *)pInData, /* Source */ in LVCS_Process_CS()
91 (LVM_FLOAT *)pInput, /* Destination */ in LVCS_Process_CS()
235 const LVM_FLOAT *pInData, in LVCS_Process()
236 LVM_FLOAT *pOutData, in LVCS_Process()
272 LVM_FLOAT Gain = pInstance->VolCorrect.CompMin; in LVCS_Process()
[all …]
DLVCS_StereoEnhancer.h62 LVM_FLOAT*, LVM_FLOAT*, LVM_INT16);
68 LVM_FLOAT*, LVM_FLOAT*, LVM_INT16);
69 LVM_FLOAT MidGain; /* Middle gain in mobile speaker mode */
90 const LVM_FLOAT *pInData,
91 LVM_FLOAT *pOutData,

1234567